API for Parsing/Converting X12 EDI 835
We now provide API to convert X12 EDI 835 transactions into “business-friendly” JSON objects. This API is similar to our 837 claim conversion API. X12 EDI text is “posted” in the request body; the service returns an array of payment objects.
You can also convert your 835 files into CSV, see this post for details.
The schema of the JSON response is loosely based on the X12 EDI structure without any of the EDI’s complexity. You don’t need to know anything about loops or segments. Data types are automatically converted based on EDI metadata.
Schemas for the patient/subscriber and the service provider are shared with the claim parsing API.
Here is a fragment of the 835 X12 EDI and a corresponding fragment of the response in JSON format. You can view a complete example here, and click on the “JSON” button to view the JSON output.
CLP*7722337*1*226*132**12*119932404007801*11*1~
NM1*QC*1*DOE*SALLY~
NM1*IL*1*DOE*John****MI*SJD11111~
NM1*82*1*BAN*ERIN****XX*1811901945~
REF*F8*12345~
REF*EA*12345~
REF*1C*12345678~
AMT*AU*132~
AMT*D8*100~
QTY*CA*4~
SVC*AD:D0120*46*25~
{
"chargeAmount": 226.00,
"paymentAmount": 132.00,
"transaction": {
"controlNumber": "35681",
"transactionType": "PAYMENT",
"productionDate": "2019-03-14",
"transactionSetIdentifierCode": "PAYMENT"
},
"placeOfServiceType": "OFFICE",
"patientControlNumber": "7722337",
"payerControlNumber": "119932404007801",
"claimStatus": "PRIMARY",
"insurancePlan": "PPO",
"subscriber": {
"person": {
"entityRole": "INSURED_SUBSCRIBER",
"entityType": "INDIVIDUAL",
"identificationType": "MEMBER_ID",
"identifier": "SJD11111",
"lastNameOrOrgName": "DOE",
"firstName": "John"
}
},
"patient": {
"person": {
"entityRole": "PATIENT",
"entityType": "INDIVIDUAL",
"lastNameOrOrgName": "DOE",
"firstName": "SALLY"
}
},
"serviceProvider": {
"entityRole": "RENDERING",
"entityType": "INDIVIDUAL",
"identificationType": "NPI",
"identifier": "1811901945",
"lastNameOrOrgName": "BAN",
"firstName": "ERIN",
"additionalIds": [
{
"referenceNumber": "12345678",
"referenceType": "MEDICARE_PROVIDER_NUMBER"
}
]
},
"otherClaimRelatedIdentifiers": [
{
"referenceNumber": "12345",
"referenceType": "ORIGINAL_REFERENCE_NUMBER"
},
{
"referenceNumber": "12345",
"referenceType": "MEDICAL_RECORD_NUMBER"
}
],
"supplementalAmounts": [
{
"type": "COVERAGE_AMOUNT",
"amount": 132.00
},
{
"type": "DISCOUNT_AMOUNT",
"amount": 100.00
}
],
"supplementalQuantities": [
{
"type": "COVERED",
"quantity": 4
}
],
"serviceLines": [
{
"chargeAmount": 46.00,
"paidAmount": 25.00,
"supplementalAmount": 25.00,
"serviceDateFrom": "2019-03-24",
"procedure": {
"type": "PROCEDURE",
"code": "D0120",
"desc": "PERIODIC ORAL EVALUATION ESTABLISHED PATIENT"
},
"adjustments": [
{
"group": "CONTRACTUAL",
"reasonCode": "131",
"amount": 21.00
}
]
}
]
}
You can also convert 837 transactions into claim objects using the same API endpoint.
You can “post” your EDI in the body of the request and get JSON back as a response, or use the multipart request to upload and convert large files.
For example (for a single file):
curl -X POST -H "Content-Type: text/plain" --data-binary @../edi_files/835/negotiated_discount.dat ${API_URL}/edi/json
You can see more examples in our github repo.