X12 EDI Conversion and Parsing API (2.10.3)

Download OpenAPI specification:Download

EDI Converter API for parsing and converting 835, 837 and other healthcare EDI and NCPDP telecom transactions to JSON or CSV. Also supports healthcare code lookup.

Application Info

Returns application info, including version and license

Get version and license info

Returns application info, including version and license

Responses

Response samples

Content type
application/json
{
  • "version": "2.10",
  • "buildDateTime": "2024-11-26T12:23:10.875",
  • "licenseInfo": {
    }
}

EDI-to-CSV

Converts X12 EDI input to CSV. You can post the EDI file's content as text or use multi-part request to upload files. See Python and curl examples in our GitHub repo. See also introduction to the CSV conversion API here.
For more output examples, navigate to our EDI resource center, select any file, and click "Export/CSV".

Convert X12 EDI 837/835 to CSV

Converts X12 EDI input into comma-separated (CSV) flat file format. EDI can be posted as text in the body of the request or uploaded using multi-part/form-data request. The output is streamed as the input is parsed.

query Parameters
schemaFileName
string
Default: "csv_conversion.yaml"

Name of the file containing the CSV conversion schemas

schemaName
string
Default: "lines-with-header-repeat-first-row"

Name of the 'schema' (configuration) for CSV conversion in the CSV schema file. See this document for more details.

chunkSize
integer <int32>
Default: 200

How many claims or payments to parse at a time

Request Body schema:
files
required
Array of strings <binary> [ items <binary > ]

Responses

Request samples

# Post EDI as text
curl -X POST -H "Content-Type: text/plain" \
--data-binary  @../edi_files/835/835.edi  \ 
$API_URL/edi/csv

# Upload EDI files using multipart request
curl -F files=@"../edi_files/837/837-1.dat" -F files=@"../edi_files/837/837-2.dat" \
$API_URL/edi/csv

Response samples

Content type
text/plain
Example
Id,TransactionType,FileName,TransactionControlNumber,PatientControlNumber,ClaimStatus,ChargeAmount,PaymentAmount,PatientResponsibilityAmount,ClaimFilingIndicatorCode,PayerControlNumber,FacilityTypeCode,FrequencyTypeCode,TotalPaymentAmount,CreditOrDebitFlagCode,PaymentMethodType,ReceiverAccountNumber,PaymentDate,CheckOrEftTraceNumber,PayerEin,ProductionDate,TotalAdjAmount,Adj1Group,Adj1ReasonCode,Adj1Amount,Adj1Quantity,Adj2Group,Adj2ReasonCode,Adj2Amount,Adj2Quantity,Adj3Group,Adj3ReasonCode,Adj3Amount,Adj3Quantity,Adj4Group,Adj4ReasonCode,Adj4Amount,Adj4Quantity,Adj5Group,Adj5ReasonCode,Adj5Amount,Adj5Quantity,PayerIdentificationType,PayerIdentifier,PayerName,PayerAddressLine,PayerAddressLine2,PayerAddressCity,PayerAddressStateCode,PayerAddressZipCode,PayerContact1Name,PayerContact1ContactNumber1Type,PayerContact1ContactNumber1Number,PayerContact1ContactNumber2Type,PayerContact1ContactNumber2Number,PayerContact2Name,PayerContact2ContactNumber1Type,PayerContact2ContactNumber1Number,PayerContact2ContactNumber2Type,PayerContact2ContactNumber2Number,PayerAdditionalId1Type,PayerAdditionalId1Identification,PayerAdditionalId2Type,PayerAdditionalId2Identification,PayeeIdentificationType,PayeeIdentifier,PayeeLastNameOrOrgName,PayeeAddressLine,PayeeAddressLine2,PayeeAddressCity,PayeeAddressStateCode,PayeeAddressZipCode,PayeeContacts,PayeeAdditionalId1Type,PayeeAdditionalId1Identification,PayeeAdditionalId2Type,PayeeAdditionalId2Identification,PatientIdentificationType,PatientIdentifier,PatientLastName,PatientFirstName,PatientMiddleName,SubscriberIdentificationType,SubscriberIdentifier,SubscriberLastName,SubscriberFirstName,SubscriberMiddleName,CorrectedPatientIdentificationType,CorrectedPatientIdentifier,CorrectedPatientLastName,CorrectedPatientFirstName,CorrectedPatientMiddleName,ServiceProviderIdentificationType,ServiceProviderIdentifier,ServiceProviderLastNameOrOrgName,ServiceProviderFirstName,ServiceProviderMiddleName,ServiceProviderContacts,ServiceProviderAdditionalId1Type,ServiceProviderAdditionalId1Identification,ServiceProviderAdditionalId2Type,ServiceProviderAdditionalId2Identification,CrossoverCarrierIdentificationType,CrossoverCarrierIdentifier,CrossoverCarrierName,CorrectedPayerIdentificationType,CorrectedPayerIdentifier,CorrectedPayerName,OtherSubscriberIdentificationType,OtherSubscriberIdentifier,OtherSubscriberLastName,OtherSubscriberFirstName,OtherSubscriberMiddleName,OtherClaimRelatedId1Type,OtherClaimRelatedId1Identification,OtherClaimRelatedId2Type,OtherClaimRelatedId2Identification,ServiceDateFrom,ServiceDateTo,StatementDateFrom,StatementDateTo,CoverageExpirationDate,ClaimReceivedDate,CoverageAmount,SupplementalAmt1Type,SupplementalAmt1Amount,SupplementalAmt2Type,SupplementalAmt2Amount,SupplementalQty1Type,SupplementalQty1Quantity,SupplementalQty2Type,SupplementalQty2Quantity,LineControlNumber,LineProcedureCode,LineProcedureModifier1Code,LineProcedureModifier2Code,LineProcedureModifier3Code,LineChargeAmount,LinePaidAmount,LineRevenueCode,LineUnitCount,LineOriginalProcedureCode,LineOriginalProcedureModifier1Code,LineOriginalProcedureModifier2Code,LineOriginalProcedureModifier3Code,LineOriginalUnitCount,LineServiceDateFrom,LineServiceDateTo,LineTotalAdjAmount,LineAdj1Group,LineAdj1ReasonCode,LineAdj1Amount,LineAdj1Quantity,LineAdj2Group,LineAdj2ReasonCode,LineAdj2Amount,LineAdj2Quantity,LineAdj3Group,LineAdj3ReasonCode,LineAdj3Amount,LineAdj3Quantity,LineAdj4Group,LineAdj4ReasonCode,LineAdj4Amount,LineAdj4Quantity,LineAdj5Group,LineAdj5ReasonCode,LineAdj5Amount,LineAdj5Quantity,LineServiceId1Type,LineServiceId1Identification,LineServiceId2Type,LineServiceId2Identification,LineServiceId3Type,LineServiceId3Identification,LineHealthcarePolicyId,LineRenderingProviderId1Type,LineRenderingProviderId1Identification,LineRenderingProviderId2Type,LineRenderingProviderId2Identification,LineAllowedAmount,LineSupplementalAmt1Type,LineSupplementalAmt1Amount,LineSupplementalAmt2Type,LineSupplementalAmt2Amount,LineSupplementalQty1Type,LineSupplementalQty1Quantity,LineSupplementalQty2Type,LineSupplementalQty2Quantity,LineRemarkCode1,LineRemarkCode2,LineRemarkCode3,LineRemarkCode4,LineRemarkCode5
67296b98b38d5a00b592c91d,835,not_covered_inpatient.dat,10060875,PATACCT,PRIMARY,40000,8000,,MC,CLAIMNUMBER,,1,8000,C,CHECK,,2019-08-16,CK NUMBER 1,1234567890,2019-08-27,32259,CONTRACTUAL,197,2000,1,CONTRACTUAL,45,30000,,PATIENT_RESPONSIBILITY,132,259,,,,,,,,,,,,ANY PLAN USA,1 WALK THIS WAY,,ANYCITY,OH,45209,,PHONE,8661112222,,,EDI,PHONE,8002223333,EMAIL,EDI.SUPPORT@ANYPAYER.COM,,,,,NPI,1123454567,PROVIDER,2255 ANY ROAD,,ANY CITY,CA,12211,,,,,,MEMBER_ID,ABC123456789,DOE,JOHN,N,MEMBER_ID,ABC123456789,DOE,JOHN,N,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,2019-01-01,2019-01-05,2019-02-28,2019-02-09,38000,COVERAGE_AMOUNT,38000,,,COVERED,4,,,1,,,,,,,,,,,,,,,,0,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,
67296b99b38d5a00b592c949,835,dollars_data_separate.dat,112233,5554555444,PRIMARY,800,500,300,12,94060555410000,,1,1100,C,ACH,144444,2019-03-16,71700666555,1935665544,2019-03-14,300,,,,,,,,,,,,,,,,,,,,,,,RUSHMORE LIFE,10 SOUTH AVENUET,,RAPID CITY,SD,55111,JOHN WAYNE,PHONE,8005551212,EXTENSION,123,,,,,,,,,,NPI,5544667733,ACME MEDICAL CENTER,,,,,,,,,,,MEMBER_ID,33344555510,BUDD,WILLIAM,,MEMBER_ID,33344555510,BUDD,WILLIAM,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,2023-03-01,2023-03-01,,,,,800,COVERAGE_AMOUNT,800,,,,,,,1,99211,,,,800,500,,1,,,,,,2023-03-01,2023-03-01,300,PATIENT_RESPONSIBILITY,1,300,,,,,,,,,,,,,,,,,,,,,,,,,,,,,800,ALLOWED_ACTUAL,800,,,,,,,,,,,
67296b99b38d5a00b592c94a,835,dollars_data_separate.dat,112233,8765432112,PRIMARY,1200,600,600,12,9407779923000,,1,1100,C,ACH,144444,2019-03-16,71700666555,1935665544,2019-03-14,600,,,,,,,,,,,,,,,,,,,,,,,RUSHMORE LIFE,10 SOUTH AVENUET,,RAPID CITY,SD,55111,JOHN WAYNE,PHONE,8005551212,EXTENSION,123,,,,,,,,,,NPI,5544667733,ACME MEDICAL CENTER,,,,,,,,,,,MEMBER_ID,44455666610,SETTLE,SUSAN,,MEMBER_ID,44455666610,SETTLE,SUSAN,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,2023-03-10,2023-03-10,,,,,1200,COVERAGE_AMOUNT,1200,,,,,,,1,93555,,,,1200,600,,1,,,,,,2023-03-10,2023-03-10,600,PATIENT_RESPONSIBILITY,1,600,,,,,,,,,,,,,,,,,,,,,,,,,,,,,1200,ALLOWED_ACTUAL,1200,,,,,,,,,,,

EDI-to-JSON

Converts (parses) X12 EDI input to JSON. You can post the EDI file's content as text or use multi-part request to upload files.
See Python and curl examples in our GitHub repo. Intro to the schema of JSON response:

Convert X12 EDI to JSON

Converts X12 EDI input to JSON. EDI can be posted as text in the body of the request or uploaded using multi-part/form-data request.
The response is a JSON array or NDJSON (new-line delimited JSON). The output is streamed as the input is parsed.

query Parameters
ndjson
boolean
Default: false

Produce NDJSON instead of JSON array

splitTran
boolean
Default: false

Parse by claim/payment as opposed to an entire transaction. Set it to 'true' for 837/835 transactions. Must be set to 'false' for all other transactions.

descriptions
boolean
Default: true

Provide descriptions for all codes (ICD, CPT, NDC). Descriptions can increase the size of the response. This option defaults to true.

Request Body schema:
files
required
Array of strings <binary> [ items <binary > ]

Responses

Request samples

# Post EDI as text
curl -X POST -H "Content-Type: text/plain" \
--data-binary  @../edi_files/837/837.edi  \ 
"$API_URL/edi/json?splitTran=true&ndjson=true"

# Upload EDI files using multipart request
curl -F files=@"../edi_files/837/837-1.dat" -F files=@"../edi_files/837/837-2.dat" \
"$API_URL/edi/json?splitTran=true&ndjson=true"

Response samples

Content type
application/json
Example
[
  • {
    },
  • {
    }
]

Convert X12 EDI to JSON in memory (small files)

Parses X12 EDI and returns returns an array of claims (837), payments (835) or segments (all other transactions). The parsing is done entirely in memory, so only suitable for small files. Fully synchronous; the entire file is parsed before returning the response. For large files use 'api/edi' endpoints instead.

Python example

query Parameters
asSegments
boolean
Default: false

Return JSON representation of loops and segments. This is the default mode for non-835, non-837 transactions.

gen999
boolean
Default: false

Generate 999–Functional Group Acknowledgement Report for all parsed transactions. The resulting EDI is available in the "ackEdi" field of the response

Request Body schema: text/plain
required

Text in X12 EDI format

string

Responses

Response samples

Content type
application/json
{
  • "claims": [
    ],
  • "payments": [
    ],
  • "segments": { },
  • "ackEdi": "string",
  • "parsingProblems": [
    ]
}

Healthcare Code Lookup

Searches healthcare codes sets, such as ICD-10, HCPCS and many others and returns JSON or CSV with codes and descriptions. Note: only available from our public server.

exportCsv

Exports codes that matched the query in the CSV format

query Parameters
query
string
downloadAsFile
boolean
fileName
string
howMany
integer <int32>
type
string

Responses

fetchCodeDetailsByCodeAndType

Fetches code's details, including the code's edits and categories

path Parameters
code
required
string
query Parameters
type
string
Example: type=PROCEDURE

Has to be supplied if the code may not be unique across all code sets. E.g., some codes could be used for both procedure and diagnosis

Responses

Response samples

Content type
application/json
{
  • "type": "PROCEDURE",
  • "subType": "HCPCS",
  • "code": "string",
  • "desc": "string",
  • "fullDesc": "string",
  • "instructionDesc": "string",
  • "shortDesc": "string",
  • "startDate": "2019-08-24",
  • "endDate": "2019-08-24",
  • "formattedCode": "string",
  • "presentOnAdmissionIndicator": "string",
  • "occurrenceDate": "2019-08-24",
  • "occurrenceEndDate": "2019-08-24",
  • "amount": 0,
  • "descFromClaim": "string",
  • "issuingOrg": "string",
  • "modifiers": [
    ],
  • "editsHolder": {
    },
  • "categories": [
    ]
}

searchCodes

Searches healthcare code sets using provided search terms. The terms can include codes or any word from a code's description or definition

query Parameters
query
required
string
Example: query=0080, 0LRQ07Z, knee replacement
type
string
Example: type=diagnosis

Narrow down the query to a particular code set

afterStartDate
string <date>
Example: afterStartDate=2020-12-10

Find codes with the start (effective) date after the parameter's value

afterEndDate
string <date>
Example: afterEndDate=2020-12-10

Find codes with the end (deactivation) date after the parameter's value

Responses

Response samples

Content type
application/json
[
  • {
    }
]

NCPDP Parsing

Parses text in NCPDP telecom format and returns JSON

parseNcpdp

Converts NCPDP input into JSON.

Request Body schema: application/json
required

Text in NCPDP telecom format

string

Responses

Request samples

Content type
application/json
"string"

Response samples

Content type
application/json
{ }