The 837P is the HIPAA-mandated EDI transaction a physician, clinic or billing service sends to a payer to bill for professional services - the electronic equivalent of the CMS-1500 paper form.
The payer answers with a 999 acknowledgment for syntax, a 277CA claim acknowledgment for acceptance, and later an 835 remittance advice with the payment. Claims are organized in HL loops: billing provider, subscriber, then patient when the patient is not the subscriber.
005010X222A1HC (GS01)TS837P in EdiFabric.Templates.HipaaThe full X12 837P layout from its OpenEDI definition, the same model ediFabric uses to parse, validate and generate it: 65 loops and 381 segment positions, in file order. Loops are shaded and their segments indented; Max use is how many times a segment or loop may repeat.
| Segment / loop | Name | Usage | Max use |
|---|---|---|---|
ST | Transaction Set Header | Required | 1 |
BHT | Beginning of Hierarchical Transaction | Required | 1 |
| Any order | The loops below can appear in any order | Required | 1 |
| Loop 1000A | Submitter Name | Required | 1 |
NM1 | Submitter Name | Required | 1 |
PER | Submitter EDI Contact Information | Required | 2 |
| Loop 1000B | Receiver Name | Required | 1 |
NM1 | Receiver Name | Required | 1 |
| Loop 2000A | Billing Provider Hierarchical Level | Required | >1 |
HL | Billing Provider Hierarchical Level | Required | 1 |
PRV | Billing Provider Specialty Information | Situational | 1 |
CUR | Foreign Currency Information | Situational | 1 |
| Any order | The loops below can appear in any order | Required | 1 |
| Loop 2010AA | Billing Provider Name | Required | 1 |
NM1 | Billing Provider Name | Required | 1 |
N3 | Billing Provider Address | Required | 1 |
N4 | Billing Provider City State ZIP Code | Required | 1 |
| Any order | The loops below can appear in any order | Required | 1 |
REF | Billing Provider Tax Identification | Required | 1 |
REF | Billing Provider UPIN License Information | Situational | 2 |
PER | Billing Provider Contact Information | Situational | 2 |
| Loop 2010AB | Pay Address Name | Situational | 1 |
NM1 | Pay Address Name | Required | 1 |
N3 | Pay to Address ADDRESS | Required | 1 |
N4 | Pay Address City State ZIP Code | Required | 1 |
| Loop 2010AC | Pay to Plan Name | Situational | 1 |
NM1 | Pay to Plan Name | Required | 1 |
N3 | Pay to Plan Address | Required | 1 |
N4 | Pay to Plan City State ZIP Code | Required | 1 |
| Any order | The loops below can appear in any order | Required | 1 |
REF | Pay to Plan Secondary Identification | Situational | 1 |
REF | Pay to Plan Tax Identification Number | Required | 1 |
| Loop 2000B | Subscriber Hierarchical Level | Required | >1 |
HL | Subscriber Hierarchical Level | Required | 1 |
SBR | Subscriber Information | Required | 1 |
PAT | Patient Information | Situational | 1 |
| Any order | The loops below can appear in any order | Required | 1 |
| Loop 2010BA | Subscriber Name | Required | 1 |
NM1 | Subscriber Name | Required | 1 |
N3 | Subscriber Address | Situational | 1 |
N4 | Subscriber City State ZIP Code | Situational | 1 |
DMG | Subscriber Demographic Information | Situational | 1 |
| Any order | The loops below can appear in any order | Situational | 1 |
REF | Subscriber Secondary Identification | Situational | 1 |
REF | Propertyand Casualty Claim Number | Situational | 1 |
PER | Propertyand Casualty Subscriber Contact Information | Situational | 1 |
| Loop 2010BB | Payer Name | Required | 1 |
NM1 | Payer Name | Required | 1 |
N3 | Payer Address | Situational | 1 |
N4 | Payer City State ZIP Code | Situational | 1 |
| Any order | The loops below can appear in any order | Situational | 1 |
REF | Payer Secondary Identification | Situational | 3 |
REF | Billing Provider Secondary Identification | Situational | 2 |
| Loop 2300 | Claim Information | Situational | 100 |
CLM | Claim Information | Required | 1 |
| Any order | The loops below can appear in any order | Situational | 1 |
DTP | Date Onsetof Current Illnessor Symptom | Situational | 1 |
DTP | Date Initial Treatment Date | Situational | 1 |
DTP | Date Last Seen Date | Situational | 1 |
DTP | Date Acute Manifestation | Situational | 1 |
DTP | Date Accident | Situational | 1 |
DTP | Date Last Menstrual Period | Situational | 1 |
DTP | Date Last X Date | Situational | 1 |
DTP | Date Hearingand Vision Prescription Date | Situational | 1 |
DTP | Date Disability Dates | Situational | 1 |
DTP | Date Last Worked | Situational | 1 |
DTP | Date Authorized Returnto Work | Situational | 1 |
DTP | Date Admission | Situational | 1 |
DTP | Date Discharge | Situational | 1 |
DTP | Date Assumedand Relinquished Care Dates | Situational | 2 |
DTP | Propertyand Casualty Dateof First Contact | Situational | 1 |
DTP | Date Repricer Received Date | Situational | 1 |
PWK | Claim Supplemental Information | Situational | 10 |
CN1 | Contract Information | Situational | 1 |
AMT | Patient Amount Paid | Situational | 1 |
| Any order | The loops below can appear in any order | Situational | 1 |
REF | Service Authorization Exception Code | Situational | 1 |
REF | Mandatory Medicare Section4081 Crossover Indicator | Situational | 1 |
REF | Mammography Certification Number | Situational | 1 |
REF | Referral Number | Situational | 1 |
REF | Prior Authorization | Situational | 1 |
REF | Payer Claim Control Number | Situational | 1 |
REF | Clinical Laboratory Improvement Amendment CLIA Number | Situational | 1 |
REF | Repriced Claim Number | Situational | 1 |
REF | Adjusted Repriced Claim Number | Situational | 1 |
REF | Investigational Device Exemption Number | Situational | 1 |
REF | Claim Identifier for Transmission Intermediaries | Situational | 1 |
REF | Medical Record Number | Situational | 1 |
REF | Demonstration Project Identifier | Situational | 1 |
REF | Care Plan Oversight | Situational | 1 |
K3 | File Information | Situational | 10 |
NTE | Claim Note | Situational | 1 |
CR1 | Ambulance Transport Information | Situational | 1 |
CR2 | Spinal Manipulation Service Information | Situational | 1 |
| Any order | The loops below can appear in any order | Situational | 1 |
CRC | Ambulance Certification | Situational | 3 |
CRC | Patient Condition Information Vision | Situational | 3 |
CRC | Homebound Indicator | Situational | 1 |
CRC | EPSDT Referral | Situational | 1 |
| Any order | The loops below can appear in any order | Required | 1 |
HI | Health Care Diagnosis Code | Required | 1 |
HI | Anesthesia Related Procedure | Situational | 1 |
HI | Condition Information | Situational | 2 |
HCP | Claim Pricing Repricing Information | Situational | 1 |
| Any order | The loops below can appear in any order | Situational | 1 |
| Loop 2310A | Referring Provider Name | Situational | 2 |
NM1 | Referring Provider Name | Required | 1 |
REF | Referring Provider Secondary Identification | Situational | 3 |
| Loop 2310B | Rendering Provider Name | Situational | 1 |
NM1 | Rendering Provider Name | Required | 1 |
PRV | Rendering Provider Specialty Information | Situational | 1 |
REF | Rendering Provider Secondary Identification | Situational | 4 |
| Loop 2310C | Service Facility Location Name | Situational | 1 |
NM1 | Service Facility Location Name | Required | 1 |
N3 | Service Facility Location Address | Required | 1 |
N4 | Service Facility Location City State ZIP Code | Required | 1 |
REF | Service Facility Location Secondary Identification | Situational | 3 |
PER | Service Facility Contact Information | Situational | 1 |
| Loop 2310D | Supervising Provider Name | Situational | 1 |
NM1 | Supervising Provider Name | Required | 1 |
REF | Supervising Provider Secondary Identification | Situational | 4 |
| Loop 2310E | Ambulance Pick Location | Situational | 1 |
NM1 | Ambulance Pick Location | Required | 1 |
N3 | Ambulance Pick Location Address | Required | 1 |
N4 | Ambulance Pick Location City State Zip Code | Required | 1 |
| Loop 2310F | Ambulance Drop Location | Situational | 1 |
NM1 | Ambulance Drop Location | Required | 1 |
N3 | Ambulance Drop Location Address | Required | 1 |
N4 | Ambulance Drop Location City State Zip Code | Required | 1 |
| Loop 2320 | Other Subscriber Information | Situational | 10 |
SBR | Other Subscriber Information | Required | 1 |
CAS | Claim Level Adjustments | Situational | 5 |
| Any order | The loops below can appear in any order | Situational | 1 |
AMT | Coordinationof Benefits COB Payer Paid Amount | Situational | 1 |
AMT | Coordinationof Benefits COB Total Non Amount | Situational | 1 |
AMT | Remaining Patient Liability | Situational | 1 |
OI | Other Insurance Coverage Information | Required | 1 |
MOA | Outpatient Adjudication Information | Situational | 1 |
| Any order | The loops below can appear in any order | Required | 1 |
| Loop 2330A | Other Subscriber Name | Required | 1 |
NM1 | Other Subscriber Name | Required | 1 |
N3 | Other Subscriber Address | Situational | 1 |
N4 | Other Subscriber City State ZIP Code | Situational | 1 |
REF | Other Subscriber Secondary Identification | Situational | 1 |
| Loop 2330B | Other Payer Name | Required | 1 |
NM1 | Other Payer Name | Required | 1 |
N3 | Other Payer Address | Situational | 1 |
N4 | Other Payer City State ZIP Code | Situational | 1 |
DTP | Claim Checkor Remittance Date | Situational | 1 |
| Any order | The loops below can appear in any order | Situational | 1 |
REF | Other Payer Secondary Identifier | Situational | 2 |
REF | Other Payer Prior Authorization Number | Situational | 1 |
REF | Other Payer Referral Number | Situational | 1 |
REF | Other Payer Claim Adjustment Indicator | Situational | 1 |
REF | Other Payer Claim Control Number | Situational | 1 |
| Loop 2330C | Other Payer Referring Provider | Situational | 2 |
NM1 | Other Payer Referring Provider | Required | 1 |
REF | Other Payer Referring Provider Secondary Identification | Required | 3 |
| Loop 2330D | Other Payer Rendering Provider | Situational | 1 |
NM1 | Other Payer Rendering Provider | Required | 1 |
REF | Other Payer Rendering Provider Secondary Identification | Required | 3 |
| Loop 2330E | Other Payer Service Facility Location | Situational | 1 |
NM1 | Other Payer Service Facility Location | Required | 1 |
REF | Other Payer Service Facility Location Secondary Identification | Required | 3 |
| Loop 2330F | Other Payer Supervising Provider | Situational | 1 |
NM1 | Other Payer Supervising Provider | Required | 1 |
REF | Other Payer Supervising Provider Secondary Identification | Required | 3 |
| Loop 2330G | Other Payer Billing Provider | Situational | 1 |
NM1 | Other Payer Billing Provider | Required | 1 |
REF | Other Payer Billing Provider Secondary Identification | Required | 2 |
| Loop 2400 | Service Line Number | Required | 50 |
LX | Service Line Number | Required | 1 |
SV1 | Professional Service | Required | 1 |
SV5 | Durable Medical Equipment Service | Situational | 1 |
| Any order | The loops below can appear in any order | Situational | 1 |
PWK | Line Supplemental Information | Situational | 10 |
PWK | Durable Medical Equipment Certificateof Medical Necessity Indicator | Situational | 1 |
CR1 | Ambulance Transport Information | Situational | 1 |
CR3 | Durable Medical Equipment Certification | Situational | 1 |
| Any order | The loops below can appear in any order | Situational | 1 |
CRC | Ambulance Certification | Situational | 3 |
CRC | Hospice Employee Indicator | Situational | 1 |
CRC | Condition Indicator Durable Medical Equipment | Situational | 1 |
| Any order | The loops below can appear in any order | Required | 1 |
DTP | Date Service Date | Required | 1 |
DTP | Date Prescription Date | Situational | 1 |
DTP | DATE Certification Revision Recertification Date | Situational | 1 |
DTP | Date Begin Therapy Date | Situational | 1 |
DTP | Date Last Certification Date | Situational | 1 |
DTP | Date Last Seen Date | Situational | 1 |
DTP | Date Test Date | Situational | 2 |
DTP | Date Shipped Date | Situational | 1 |
DTP | Date Last X Date | Situational | 1 |
DTP | Date Initial Treatment Date | Situational | 1 |
| Any order | The loops below can appear in any order | Situational | 1 |
QTY | Ambulance Patient Count | Situational | 1 |
QTY | Obstetric Anesthesia Additional Units | Situational | 1 |
MEA | Test Result | Situational | 5 |
CN1 | Contract Information | Situational | 1 |
| Any order | The loops below can appear in any order | Situational | 1 |
REF | Repriced Line Item Reference Number | Situational | 1 |
REF | Adjusted Repriced Line Item Reference Number | Situational | 1 |
REF | Prior Authorization | Situational | 5 |
REF | Line Item Control Number | Situational | 1 |
REF | Mammography Certification Number | Situational | 1 |
REF | Clinical Laboratory Improvement Amendment CLIA Number | Situational | 1 |
REF | Referring Clinical Laboratory Improvement Amendment CLIA Facility Identification | Situational | 1 |
REF | Immunization Batch Number | Situational | 1 |
REF | Referral Number | Situational | 5 |
| Any order | The loops below can appear in any order | Situational | 1 |
AMT | Sales Tax Amount | Situational | 1 |
AMT | Postage Claimed Amount | Situational | 1 |
K3 | File Information | Situational | 10 |
| Any order | The loops below can appear in any order | Situational | 1 |
NTE | Line Note | Situational | 1 |
NTE | Third Party Organization Notes | Situational | 1 |
PS1 | Purchased Service Information | Situational | 1 |
HCP | Line Pricing Repricing Information | Situational | 1 |
| Loop 2410 | Drug Identification | Situational | 1 |
LIN | Drug Identification | Required | 1 |
CTP | Drug Quantity | Required | 1 |
REF | Prescriptionor Compound Drug Association Number | Situational | 1 |
| Any order | The loops below can appear in any order | Situational | 1 |
| Loop 2420A | Rendering Provider Name | Situational | 1 |
NM1 | Rendering Provider Name | Required | 1 |
PRV | Rendering Provider Specialty Information | Situational | 1 |
REF | Rendering Provider Secondary Identification | Situational | 20 |
| Loop 2420B | Purchased Service Provider Name | Situational | 1 |
NM1 | Purchased Service Provider Name | Required | 1 |
REF | Purchased Service Provider Secondary Identification | Situational | 20 |
| Loop 2420C | Service Facility Location | Situational | 1 |
NM1 | Service Facility Location | Required | 1 |
N3 | Service Facility Location Address | Required | 1 |
N4 | Service Facility Location City State ZIP Code | Required | 1 |
REF | Service Facility Location Secondary Identification | Situational | 3 |
| Loop 2420D | Supervising Provider Name | Situational | 1 |
NM1 | Supervising Provider Name | Required | 1 |
REF | Supervising Provider Secondary Identification | Situational | 20 |
| Loop 2420E | Ordering Provider Name | Situational | 1 |
NM1 | Ordering Provider Name | Required | 1 |
N3 | Ordering Provider Address | Situational | 1 |
N4 | Ordering Provider City State ZIP Code | Situational | 1 |
REF | Ordering Provider Secondary Identification | Situational | 20 |
PER | Ordering Provider Contact Information | Situational | 1 |
| Loop 2420F | Referring Provider Name | Situational | 2 |
NM1 | Referring Provider Name | Required | 1 |
REF | Referring Provider Secondary Identification | Situational | 20 |
| Loop 2420G | Ambulance Pick Location | Situational | 1 |
NM1 | Ambulance Pick Location | Required | 1 |
N3 | Ambulance Pick Location Address | Required | 1 |
N4 | Ambulance Pick Location City State Zip Code | Required | 1 |
| Loop 2420H | Ambulance Drop Location | Situational | 1 |
NM1 | Ambulance Drop Location | Required | 1 |
N3 | Ambulance Drop Location Address | Required | 1 |
N4 | Ambulance Drop Location City State Zip Code | Required | 1 |
| Loop 2430 | Line Adjudication Information | Situational | 15 |
SVD | Line Adjudication Information | Required | 1 |
CAS | Line Adjustment | Situational | 5 |
DTP | Line Checkor Remittance Date | Required | 1 |
AMT | Remaining Patient Liability | Situational | 1 |
| Loop 2440 | Form Identification Code | Situational | >1 |
LQ | Form Identification Code | Required | 1 |
FRM | Supporting Documentation | Required | 99 |
| Loop 2000C | Patient Hierarchical Level | Situational | >1 |
HL | Patient Hierarchical Level | Required | 1 |
PAT | Patient Information | Required | 1 |
| Loop 2010CA | Patient Name | Required | 1 |
NM1 | Patient Name | Required | 1 |
N3 | Patient Address | Required | 1 |
N4 | Patient City State ZIP Code | Required | 1 |
DMG | Patient Demographic Information | Required | 1 |
| Any order | The loops below can appear in any order | Situational | 1 |
REF | Propertyand Casualty Claim Number | Situational | 1 |
REF | Propertyand Casualty Patient Identifier | Situational | 1 |
PER | Propertyand Casualty Patient Contact Information | Situational | 1 |
| Loop 2300 | Claim Information | Required | 100 |
CLM | Claim Information | Required | 1 |
| Any order | The loops below can appear in any order | Situational | 1 |
DTP | Date Onsetof Current Illnessor Symptom | Situational | 1 |
DTP | Date Initial Treatment Date | Situational | 1 |
DTP | Date Last Seen Date | Situational | 1 |
DTP | Date Acute Manifestation | Situational | 1 |
DTP | Date Accident | Situational | 1 |
DTP | Date Last Menstrual Period | Situational | 1 |
DTP | Date Last X Date | Situational | 1 |
DTP | Date Hearingand Vision Prescription Date | Situational | 1 |
DTP | Date Disability Dates | Situational | 1 |
DTP | Date Last Worked | Situational | 1 |
DTP | Date Authorized Returnto Work | Situational | 1 |
DTP | Date Admission | Situational | 1 |
DTP | Date Discharge | Situational | 1 |
DTP | Date Assumedand Relinquished Care Dates | Situational | 2 |
DTP | Propertyand Casualty Dateof First Contact | Situational | 1 |
DTP | Date Repricer Received Date | Situational | 1 |
PWK | Claim Supplemental Information | Situational | 10 |
CN1 | Contract Information | Situational | 1 |
AMT | Patient Amount Paid | Situational | 1 |
| Any order | The loops below can appear in any order | Situational | 1 |
REF | Service Authorization Exception Code | Situational | 1 |
REF | Mandatory Medicare Section4081 Crossover Indicator | Situational | 1 |
REF | Mammography Certification Number | Situational | 1 |
REF | Referral Number | Situational | 1 |
REF | Prior Authorization | Situational | 1 |
REF | Payer Claim Control Number | Situational | 1 |
REF | Clinical Laboratory Improvement Amendment CLIA Number | Situational | 1 |
REF | Repriced Claim Number | Situational | 1 |
REF | Adjusted Repriced Claim Number | Situational | 1 |
REF | Investigational Device Exemption Number | Situational | 1 |
REF | Claim Identifier for Transmission Intermediaries | Situational | 1 |
REF | Medical Record Number | Situational | 1 |
REF | Demonstration Project Identifier | Situational | 1 |
REF | Care Plan Oversight | Situational | 1 |
K3 | File Information | Situational | 10 |
NTE | Claim Note | Situational | 1 |
CR1 | Ambulance Transport Information | Situational | 1 |
CR2 | Spinal Manipulation Service Information | Situational | 1 |
| Any order | The loops below can appear in any order | Situational | 1 |
CRC | Ambulance Certification | Situational | 3 |
CRC | Patient Condition Information Vision | Situational | 3 |
CRC | Homebound Indicator | Situational | 1 |
CRC | EPSDT Referral | Situational | 1 |
| Any order | The loops below can appear in any order | Required | 1 |
HI | Health Care Diagnosis Code | Required | 1 |
HI | Anesthesia Related Procedure | Situational | 1 |
HI | Condition Information | Situational | 2 |
HCP | Claim Pricing Repricing Information | Situational | 1 |
| Any order | The loops below can appear in any order | Situational | 1 |
| Loop 2310A | Referring Provider Name | Situational | 2 |
NM1 | Referring Provider Name | Required | 1 |
REF | Referring Provider Secondary Identification | Situational | 3 |
| Loop 2310B | Rendering Provider Name | Situational | 1 |
NM1 | Rendering Provider Name | Required | 1 |
PRV | Rendering Provider Specialty Information | Situational | 1 |
REF | Rendering Provider Secondary Identification | Situational | 4 |
| Loop 2310C | Service Facility Location Name | Situational | 1 |
NM1 | Service Facility Location Name | Required | 1 |
N3 | Service Facility Location Address | Required | 1 |
N4 | Service Facility Location City State ZIP Code | Required | 1 |
REF | Service Facility Location Secondary Identification | Situational | 3 |
PER | Service Facility Contact Information | Situational | 1 |
| Loop 2310D | Supervising Provider Name | Situational | 1 |
NM1 | Supervising Provider Name | Required | 1 |
REF | Supervising Provider Secondary Identification | Situational | 4 |
| Loop 2310E | Ambulance Pick Location | Situational | 1 |
NM1 | Ambulance Pick Location | Required | 1 |
N3 | Ambulance Pick Location Address | Required | 1 |
N4 | Ambulance Pick Location City State Zip Code | Required | 1 |
| Loop 2310F | Ambulance Drop Location | Situational | 1 |
NM1 | Ambulance Drop Location | Required | 1 |
N3 | Ambulance Drop Location Address | Required | 1 |
N4 | Ambulance Drop Location City State Zip Code | Required | 1 |
| Loop 2320 | Other Subscriber Information | Situational | 10 |
SBR | Other Subscriber Information | Required | 1 |
CAS | Claim Level Adjustments | Situational | 5 |
| Any order | The loops below can appear in any order | Situational | 1 |
AMT | Coordinationof Benefits COB Payer Paid Amount | Situational | 1 |
AMT | Coordinationof Benefits COB Total Non Amount | Situational | 1 |
AMT | Remaining Patient Liability | Situational | 1 |
OI | Other Insurance Coverage Information | Required | 1 |
MOA | Outpatient Adjudication Information | Situational | 1 |
| Any order | The loops below can appear in any order | Required | 1 |
| Loop 2330A | Other Subscriber Name | Required | 1 |
NM1 | Other Subscriber Name | Required | 1 |
N3 | Other Subscriber Address | Situational | 1 |
N4 | Other Subscriber City State ZIP Code | Situational | 1 |
REF | Other Subscriber Secondary Identification | Situational | 1 |
| Loop 2330B | Other Payer Name | Required | 1 |
NM1 | Other Payer Name | Required | 1 |
N3 | Other Payer Address | Situational | 1 |
N4 | Other Payer City State ZIP Code | Situational | 1 |
DTP | Claim Checkor Remittance Date | Situational | 1 |
| Any order | The loops below can appear in any order | Situational | 1 |
REF | Other Payer Secondary Identifier | Situational | 2 |
REF | Other Payer Prior Authorization Number | Situational | 1 |
REF | Other Payer Referral Number | Situational | 1 |
REF | Other Payer Claim Adjustment Indicator | Situational | 1 |
REF | Other Payer Claim Control Number | Situational | 1 |
| Loop 2330C | Other Payer Referring Provider | Situational | 2 |
NM1 | Other Payer Referring Provider | Required | 1 |
REF | Other Payer Referring Provider Secondary Identification | Required | 3 |
| Loop 2330D | Other Payer Rendering Provider | Situational | 1 |
NM1 | Other Payer Rendering Provider | Required | 1 |
REF | Other Payer Rendering Provider Secondary Identification | Required | 3 |
| Loop 2330E | Other Payer Service Facility Location | Situational | 1 |
NM1 | Other Payer Service Facility Location | Required | 1 |
REF | Other Payer Service Facility Location Secondary Identification | Required | 3 |
| Loop 2330F | Other Payer Supervising Provider | Situational | 1 |
NM1 | Other Payer Supervising Provider | Required | 1 |
REF | Other Payer Supervising Provider Secondary Identification | Required | 3 |
| Loop 2330G | Other Payer Billing Provider | Situational | 1 |
NM1 | Other Payer Billing Provider | Required | 1 |
REF | Other Payer Billing Provider Secondary Identification | Required | 2 |
| Loop 2400 | Service Line Number | Required | 50 |
LX | Service Line Number | Required | 1 |
SV1 | Professional Service | Required | 1 |
SV5 | Durable Medical Equipment Service | Situational | 1 |
| Any order | The loops below can appear in any order | Situational | 1 |
PWK | Line Supplemental Information | Situational | 10 |
PWK | Durable Medical Equipment Certificateof Medical Necessity Indicator | Situational | 1 |
CR1 | Ambulance Transport Information | Situational | 1 |
CR3 | Durable Medical Equipment Certification | Situational | 1 |
| Any order | The loops below can appear in any order | Situational | 1 |
CRC | Ambulance Certification | Situational | 3 |
CRC | Hospice Employee Indicator | Situational | 1 |
CRC | Condition Indicator Durable Medical Equipment | Situational | 1 |
| Any order | The loops below can appear in any order | Required | 1 |
DTP | Date Service Date | Required | 1 |
DTP | Date Prescription Date | Situational | 1 |
DTP | DATE Certification Revision Recertification Date | Situational | 1 |
DTP | Date Begin Therapy Date | Situational | 1 |
DTP | Date Last Certification Date | Situational | 1 |
DTP | Date Last Seen Date | Situational | 1 |
DTP | Date Test Date | Situational | 2 |
DTP | Date Shipped Date | Situational | 1 |
DTP | Date Last X Date | Situational | 1 |
DTP | Date Initial Treatment Date | Situational | 1 |
| Any order | The loops below can appear in any order | Situational | 1 |
QTY | Ambulance Patient Count | Situational | 1 |
QTY | Obstetric Anesthesia Additional Units | Situational | 1 |
MEA | Test Result | Situational | 5 |
CN1 | Contract Information | Situational | 1 |
| Any order | The loops below can appear in any order | Situational | 1 |
REF | Repriced Line Item Reference Number | Situational | 1 |
REF | Adjusted Repriced Line Item Reference Number | Situational | 1 |
REF | Prior Authorization | Situational | 5 |
REF | Line Item Control Number | Situational | 1 |
REF | Mammography Certification Number | Situational | 1 |
REF | Clinical Laboratory Improvement Amendment CLIA Number | Situational | 1 |
REF | Referring Clinical Laboratory Improvement Amendment CLIA Facility Identification | Situational | 1 |
REF | Immunization Batch Number | Situational | 1 |
REF | Referral Number | Situational | 5 |
| Any order | The loops below can appear in any order | Situational | 1 |
AMT | Sales Tax Amount | Situational | 1 |
AMT | Postage Claimed Amount | Situational | 1 |
K3 | File Information | Situational | 10 |
| Any order | The loops below can appear in any order | Situational | 1 |
NTE | Line Note | Situational | 1 |
NTE | Third Party Organization Notes | Situational | 1 |
PS1 | Purchased Service Information | Situational | 1 |
HCP | Line Pricing Repricing Information | Situational | 1 |
| Loop 2410 | Drug Identification | Situational | 1 |
LIN | Drug Identification | Required | 1 |
CTP | Drug Quantity | Required | 1 |
REF | Prescriptionor Compound Drug Association Number | Situational | 1 |
| Any order | The loops below can appear in any order | Situational | 1 |
| Loop 2420A | Rendering Provider Name | Situational | 1 |
NM1 | Rendering Provider Name | Required | 1 |
PRV | Rendering Provider Specialty Information | Situational | 1 |
REF | Rendering Provider Secondary Identification | Situational | 20 |
| Loop 2420B | Purchased Service Provider Name | Situational | 1 |
NM1 | Purchased Service Provider Name | Required | 1 |
REF | Purchased Service Provider Secondary Identification | Situational | 20 |
| Loop 2420C | Service Facility Location | Situational | 1 |
NM1 | Service Facility Location | Required | 1 |
N3 | Service Facility Location Address | Required | 1 |
N4 | Service Facility Location City State ZIP Code | Required | 1 |
REF | Service Facility Location Secondary Identification | Situational | 3 |
| Loop 2420D | Supervising Provider Name | Situational | 1 |
NM1 | Supervising Provider Name | Required | 1 |
REF | Supervising Provider Secondary Identification | Situational | 20 |
| Loop 2420E | Ordering Provider Name | Situational | 1 |
NM1 | Ordering Provider Name | Required | 1 |
N3 | Ordering Provider Address | Situational | 1 |
N4 | Ordering Provider City State ZIP Code | Situational | 1 |
REF | Ordering Provider Secondary Identification | Situational | 20 |
PER | Ordering Provider Contact Information | Situational | 1 |
| Loop 2420F | Referring Provider Name | Situational | 2 |
NM1 | Referring Provider Name | Required | 1 |
REF | Referring Provider Secondary Identification | Situational | 20 |
| Loop 2420G | Ambulance Pick Location | Situational | 1 |
NM1 | Ambulance Pick Location | Required | 1 |
N3 | Ambulance Pick Location Address | Required | 1 |
N4 | Ambulance Pick Location City State Zip Code | Required | 1 |
| Loop 2420H | Ambulance Drop Location | Situational | 1 |
NM1 | Ambulance Drop Location | Required | 1 |
N3 | Ambulance Drop Location Address | Required | 1 |
N4 | Ambulance Drop Location City State Zip Code | Required | 1 |
| Loop 2430 | Line Adjudication Information | Situational | 15 |
SVD | Line Adjudication Information | Required | 1 |
CAS | Line Adjustment | Situational | 5 |
DTP | Line Checkor Remittance Date | Required | 1 |
AMT | Remaining Patient Liability | Situational | 1 |
| Loop 2440 | Form Identification Code | Situational | >1 |
LQ | Form Identification Code | Required | 1 |
FRM | Supporting Documentation | Required | 99 |
SE | Transaction Set Trailer | Required | 1 |
Usage follows the 005010X222A1 implementation guide: Required segments must be sent, Situational ones only when the guide's condition applies. Trading partners often add their own rules in companion guides - ediFabric templates can be adjusted to match. Open the element-level definition in the EdiNation spec library.
One claim with four service lines for a patient who is a dependent of the subscriber. Paste it into EdiNation to see every element named and validated.
ISA*00* *00* *ZZ*1234567 *ZZ*11111 *170508*1141*^*00501*000000101*1*P*:~ GS*HC*XXXXXXX*XXXXX*20170617*1741*101*X*005010X222A1~ ST*837*0021*005010X222A1~ BHT*0019*00*244579*20061015*1023*CH~ NM1*41*2*PREMIER BILLING SERVICE*****46*TGJ23~ PER*IC*JERRY*TE*3055552222*EX*231~ NM1*40*2*KEY INSURANCE COMPANY*****46*66783JJT~ HL*1**20*1~ PRV*BI*PXC*203BF0100Y~ NM1*85*2*BEN KILDARE SERVICE*****XX*9876543210~ N3*234 SEAWAY ST~ N4*MIAMI*FL*33111~ REF*EI*587654321~ NM1*87*2*Kildare Associates~ N3*2345 OCEAN BLVD~ N4*MIAMI*FL*33111~ HL*2*1*22*1~ SBR*P**2222-SJ******CI~ NM1*IL*1*SMITH*JANE****MI*JS00111223333~ DMG*D8*19430501*F~ NM1*PR*2*KEY INSURANCE COMPANY*****PI*999996666~ REF*G2*KA6663~ HL*3*2*23*0~ PAT*19~ NM1*QC*1*SMITH*TED~ N3*236 N MAIN ST~ N4*MIAMI*FL*33413~ DMG*D8*19730501*M~ CLM*26463774*100***11:B:1*Y*A*Y*I~ REF*D9*17312345600006351~ HI*BK:0340*BF:V7389~ LX*1~ SV1*HC:99213*40*UN*1***1~ DTP*472*D8*20061003~ LX*2~ SV1*HC:87070*15*UN*1***1~ DTP*472*D8*20061003~ LX*3~ SV1*HC:99214*35*UN*1***2~ DTP*472*D8*20061010~ LX*4~ SV1*HC:86663*10*UN*1***2~ DTP*472*D8*20061010~ SE*42*0021~ GE*1*101~ IEA*1*000000101~
ediFabric turns every loop, segment and element into a named field. This is the transaction from the sample, in the JSON that ediFabric Native and Cloud return and accept.
{
"ST": {
"TransactionSetIdentifierCode_01": "837",
"TransactionSetControlNumber_02": "0021",
"ImplementationConventionPreference_03": "005010X222A1"
},
"BHT_BeginningOfHierarchicalTransaction": {
"HierarchicalStructureCode_01": "0019",
"TransactionSetPurposeCode_02": "00",
"SubmitterTransactionIdentifier_03": "244579",
"TransactionSetCreationDate_04": "20061015",
"TransactionSetCreationTime_05": "1023",
"TransactionTypeCode_06": "CH"
},
"AllNM1": {
"Loop1000A": {
"NM1_SubmitterName": {
"EntityIdentifierCode_01": "41",
"EntityTypeQualifier_02": "2",
"ResponseContactLastorOrganizationName_03": "PREMIER BILLING SERVICE",
"IdentificationCodeQualifier_08": "46",
"ResponseContactIdentifier_09": "TGJ23"
},
"PER_SubmitterEDIContactInformation": [
{
"ContactFunctionCode_01": "IC",
"ResponseContactName_02": "JERRY",
"CommunicationNumberQualifier_03": "TE",
"ResponseContactCommunicationNumber_04": "3055552222",
"CommunicationNumberQualifier_05": "EX",
"ResponseContactCommunicationNumber_06": "231"
}
]
},
"Loop1000B": {
"NM1_ReceiverName": {
"EntityIdentifierCode_01": "40",
"EntityTypeQualifier_02": "2",
"ResponseContactLastorOrganizationName_03": "KEY INSURANCE COMPANY",
"IdentificationCodeQualifier_08": "46",
"ResponseContactIdentifier_09": "66783JJT"
}
}
},
"Loop2000A": [
{
"HL_BillingProviderHierarchicalLevel": {
"HierarchicalIDNumber_01": "1",
"HierarchicalLevelCode_03": "20",
"HierarchicalChildCode_04": "1"
},
"PRV_BillingProviderSpecialtyInformation": {
"ProviderCode_01": "BI",
"ReferenceIdentificationQualifier_02": "PXC",
"ProviderTaxonomyCode_03": "203BF0100Y"
},
"AllNM1": {
"Loop2010AA": {
"NM1_BillingProviderName": {
"EntityIdentifierCode_01": "85",
"EntityTypeQualifier_02": "2",
"ResponseContactLastorOrganizationName_03": "BEN KILDARE SERVICE",
"IdentificationCodeQualifier_08": "XX",
"ResponseContactIdentifier_09": "9876543210"
},
"N3_BillingProviderAddress": {
"ResponseContactAddressLine_01": "234 SEAWAY ST"
},
"N4_BillingProviderCity_State_ZIPCode": {
"AdditionalPatientInformationContactCityName_01": "MIAMI",
"AdditionalPatientInformationContactStateCode_02": "FL",
"AdditionalPatientInformationContactPostalZoneorZIPCode_03": "33111"
},
"AllREF": {
"REF_BillingProviderTaxIdentification": {
"ReferenceIdentificationQualifier_01": "EI",
"MemberGrouporPolicyNumber_02": "587654321"
}
}
},
"Loop2010AB": {
"NM1_Pay_AddressName": {
"EntityIdentifierCode_01": "87",
"EntityTypeQualifier_02": "2",
"ResponseContactLastorOrganizationName_03": "Kildare Associates"
},
"N3_Pay_ToAddress_ADDRESS": {
"ResponseContactAddressLine_01": "2345 OCEAN BLVD"
},
"N4_Pay_AddressCity_State_ZIPCode": {
"AdditionalPatientInformationContactCityName_01": "MIAMI",
"AdditionalPatientInformationContactStateCode_02": "FL",
"AdditionalPatientInformationContactPostalZoneorZIPCode_03": "33111"
}
}
},
"Loop2000B": [
{
"HL_SubscriberHierarchicalLevel": {
"HierarchicalIDNumber_01": "2",
"HierarchicalParentIDNumber_02": "1",
"HierarchicalLevelCode_03": "22",
"HierarchicalChildCode_04": "1"
},
"SBR_SubscriberInformation": {
"PayerResponsibilitySequenceNumberCode_01": "P",
"InsuredGrouporPolicyNumber_03": "2222-SJ",
"ClaimFilingIndicatorCode_09": "CI"
},
"AllNM1": {
"Loop2010BA": {
"NM1_SubscriberName": {
"EntityIdentifierCode_01": "IL",
"EntityTypeQualifier_02": "1",
"ResponseContactLastorOrganizationName_03": "SMITH",
"ResponseContactFirstName_04": "JANE",
"IdentificationCodeQualifier_08": "MI",
"ResponseContactIdentifier_09": "JS00111223333"
},
"DMG_SubscriberDemographicInformation": {
"DateTimePeriodFormatQualifier_01": "D8",
"DependentBirthDate_02": "19430501",
"DependentGenderCode_03": "F"
}
},
"Loop2010BB": {
"NM1_PayerName": {
"EntityIdentifierCode_01": "PR",
"EntityTypeQualifier_02": "2",
"ResponseContactLastorOrganizationName_03": "KEY INSURANCE COMPANY",
"IdentificationCodeQualifier_08": "PI",
"ResponseContactIdentifier_09": "999996666"
},
"AllREF": {
"REF_BillingProviderSecondaryIdentification": [
{
"ReferenceIdentificationQualifier_01": "G2",
"MemberGrouporPolicyNumber_02": "KA6663"
}
]
}
}
},
"Loop2000C": [
{
"HL_PatientHierarchicalLevel": {
"HierarchicalIDNumber_01": "3",
"HierarchicalParentIDNumber_02": "2",
"HierarchicalLevelCode_03": "23",
"HierarchicalChildCode_04": "0"
},
"PAT_PatientInformation": {
"IndividualRelationshipCode_01": "19"
},
"Loop2010CA": {
"NM1_PatientName": {
"EntityIdentifierCode_01": "QC",
"EntityTypeQualifier_02": "1",
"ResponseContactLastorOrganizationName_03": "SMITH",
"ResponseContactFirstName_04": "TED"
},
"N3_PatientAddress": {
"ResponseContactAddressLine_01": "236 N MAIN ST"
},
"N4_PatientCity_State_ZIPCode": {
"AdditionalPatientInformationContactCityName_01": "MIAMI",
"AdditionalPatientInformationContactStateCode_02": "FL",
"AdditionalPatientInformationContactPostalZoneorZIPCode_03": "33413"
},
"DMG_PatientDemographicInformation": {
"DateTimePeriodFormatQualifier_01": "D8",
"DependentBirthDate_02": "19730501",
"DependentGenderCode_03": "M"
}
},
"Loop2300": [
{
"CLM_ClaimInformation": {
"PatientControlNumber_01": "26463774",
"TotalClaimChargeAmount_02": "100",
"HealthCareServiceLocationInformation_05": {
"FacilityTypeCode_01": "11",
"FacilityCodeQualifier_02": "B",
"ClaimFrequencyTypeCode_03": "1"
},
"ProviderorSupplierSignatureIndicator_06": "Y",
"AssignmentorPlanParticipationCode_07": "A",
"BenefitsAssignmentCertificationIndicator_08": "Y",
"ReleaseofInformationCode_09": "I"
},
"AllREF": {
"REF_ClaimIdentifierForTransmissionIntermediaries": {
"ReferenceIdentificationQualifier_01": "D9",
"MemberGrouporPolicyNumber_02": "17312345600006351"
}
},
"AllHI": {
"HI_HealthCareDiagnosisCode": {
"HealthCareCodeInformation_01": {
"CodeListQualifierCode_01": "BK",
"IndustryCode_02": "0340"
},
"HealthCareCodeInformation_02": {
"CodeListQualifierCode_01": "BF",
"IndustryCode_02": "V7389"
}
}
},
"Loop2400": [
{
"LX_ServiceLineNumber": {
"AssignedNumber_01": "1"
},
"SV1_ProfessionalService": {
"CompositeMedicalProcedureIdentifier_01": {
"ProductorServiceIDQualifier_01": "HC",
"ProcedureCode_02": "99213"
},
"LineItemChargeAmount_02": "40",
"UnitorBasisforMeasurementCode_03": "UN",
"ServiceUnitCount_04": "1",
"CompositeDiagnosisCodePointer_07": {
"DiagnosisCodePointer_01": "1"
}
},
"AllDTP": {
"DTP_Date_ServiceDate": {
"DateTimeQualifier_01": "472",
"DateTimePeriodFormatQualifier_02": "D8",
"DateTimePeriod_03": "20061003"
}
}
},
{
"LX_ServiceLineNumber": {
"AssignedNumber_01": "2"
},
"SV1_ProfessionalService": {
"CompositeMedicalProcedureIdentifier_01": {
"ProductorServiceIDQualifier_01": "HC",
"ProcedureCode_02": "87070"
},
"LineItemChargeAmount_02": "15",
"UnitorBasisforMeasurementCode_03": "UN",
"ServiceUnitCount_04": "1",
"CompositeDiagnosisCodePointer_07": {
"DiagnosisCodePointer_01": "1"
}
},
"AllDTP": {
"DTP_Date_ServiceDate": {
"DateTimeQualifier_01": "472",
"DateTimePeriodFormatQualifier_02": "D8",
"DateTimePeriod_03": "20061003"
}
}
},
{
"LX_ServiceLineNumber": {
"AssignedNumber_01": "3"
},
"SV1_ProfessionalService": {
"CompositeMedicalProcedureIdentifier_01": {
"ProductorServiceIDQualifier_01": "HC",
"ProcedureCode_02": "99214"
},
"LineItemChargeAmount_02": "35",
"UnitorBasisforMeasurementCode_03": "UN",
"ServiceUnitCount_04": "1",
"CompositeDiagnosisCodePointer_07": {
"DiagnosisCodePointer_01": "2"
}
},
"AllDTP": {
"DTP_Date_ServiceDate": {
"DateTimeQualifier_01": "472",
"DateTimePeriodFormatQualifier_02": "D8",
"DateTimePeriod_03": "20061010"
}
}
},
{
"LX_ServiceLineNumber": {
"AssignedNumber_01": "4"
},
"SV1_ProfessionalService": {
"CompositeMedicalProcedureIdentifier_01": {
"ProductorServiceIDQualifier_01": "HC",
"ProcedureCode_02": "86663"
},
"LineItemChargeAmount_02": "10",
"UnitorBasisforMeasurementCode_03": "UN",
"ServiceUnitCount_04": "1",
"CompositeDiagnosisCodePointer_07": {
"DiagnosisCodePointer_01": "2"
}
},
"AllDTP": {
"DTP_Date_ServiceDate": {
"DateTimeQualifier_01": "472",
"DateTimePeriodFormatQualifier_02": "D8",
"DateTimePeriod_03": "20061010"
}
}
}
]
}
]
}
]
}
]
}
],
"SE": {
"NumberofIncludedSegments_01": "42",
"TransactionSetControlNumber_02": "0021"
}
}Read the file into typed objects with ediFabric .NET, convert it to JSON in process with the ediFabric Native bindings for Python, Java and C, or post it to the ediFabric Cloud REST API from any language.
using EdiFabric.Templates.Hipaa5010; License.SetSerial("YOUR_SERIAL_KEY"); using (var stream = File.OpenRead(@"C:\edi\ClaimPayment.txt")) using (var reader = new X12Reader(stream, "EdiFabric.Templates.Hipaa")) { var items = await reader.ReadToEndAsync(); foreach (var transaction in items.OfType<TS837P>()) { if (transaction.IsValid(out MessageErrorContext errors)) Console.WriteLine($"{transaction.ST.TransactionSetControlNumber_02} is valid"); else Console.WriteLine(string.Join(Environment.NewLine, errors.Flatten())); } }
import json import edifabric_x12 as ef serial = "YOUR_SERIAL_KEY" ef.load_library() ef.set_serial(serial) ef.set_map(json.dumps({"default": serial, "maps": {}})) edi = open("ClaimPayment.txt", "rb").read() output, offset = ef.parse(edi, ef.ParseMode.JSON_VALIDATE) transactions = output[:offset] report = json.loads(output[offset:]) print(report["errors_count"])
import com.edifabric.nativex12.EdiFabricX12; import com.edifabric.nativex12.ParseMode; import com.edifabric.nativex12.ParseResult; String serial = "YOUR_SERIAL_KEY"; EdiFabricX12.loadLibrary(); EdiFabricX12.setSerial(serial); EdiFabricX12.setMap("{\"default\":\"" + serial + "\",\"maps\":{}}"); String edi = Files.readString(Path.of("ClaimPayment.txt")); ParseResult result = EdiFabricX12.parse(edi, ParseMode.JSON_VALIDATE); System.out.println(result.getTransactions()); System.out.println(result.getReport());
#include "edifabric_x12.h" const char *serial = "YOUR_SERIAL_KEY"; ef_parse_result result; if (ef_load_library(NULL) != 0) return 1; ef_set_serial(serial); ef_set_map("{\"default\":\"YOUR_SERIAL_KEY\",\"maps\":{}}"); char *edi = read_file("ClaimPayment.txt", NULL); /* helper in example_all_functions.c */ if (ef_parse(edi, EF_PARSE_JSON_VALIDATE, NULL, &result) == 0) { /* transactions = output[0 .. offset), report = output[offset .. length) */ fwrite(result.output.data, 1, (size_t)result.output.length, stdout); ef_free(result.output.data); }
curl -X POST 'https://api.edination.com/v2/x12/read' \ -H 'Ocp-Apim-Subscription-Key: YOUR_SERIAL_KEY' \ -H 'Content-Type: application/octet-stream' \ --data-binary '@ClaimPayment.txt'
Populate a TS837P object in .NET, or pass JSON in the shape shown above to ediFabric Native or ediFabric Cloud, and get a valid 837P file back.
using EdiFabric.Templates.Hipaa5010; License.SetSerial("YOUR_SERIAL_KEY"); var transaction = new TS837P(); // Indicates the start of a claim transaction set and assigns a control number. transaction.ST = new ST(); transaction.ST.TransactionSetIdentifierCode_01 = "837"; transaction.ST.TransactionSetControlNumber_02 = "0001"; transaction.ST.ImplementationConventionPreference_03 = "005010X222A1"; // Indicates the claim was created on October 15, 2006 and submitter is identified with 244579. transaction.BHT_BeginningOfHierarchicalTransaction = new BHT_BeginningOfHierarchicalTransaction_8(); transaction.BHT_BeginningOfHierarchicalTransaction.HierarchicalStructureCode_01 = "0019"; transaction.BHT_BeginningOfHierarchicalTransaction.TransactionSetPurposeCode_02 = "00"; transaction.BHT_BeginningOfHierarchicalTransaction.SubmitterTransactionIdentifier_03 = "244579"; transaction.BHT_BeginningOfHierarchicalTransaction.TransactionSetCreationDate_04 = "20061015"; transaction.BHT_BeginningOfHierarchicalTransaction.TransactionSetCreationTime_05 = "1023"; transaction.BHT_BeginningOfHierarchicalTransaction.TransactionTypeCode_06 = "CH"; // Occurrence of NM1 Loops in any order transaction.AllNM1 = new All_NM1_837P_6(); // Begin 1000A Loop SUBMITTER transaction.AllNM1.Loop1000A = new Loop_1000A_837P(); // ... set the remaining loops and segments the same way // SegmentBuilders is in the Common project of the example repository using (var stream = new MemoryStream()) { using (var writer = new X12Writer(stream)) { writer.Write(SegmentBuilders.BuildIsa("1")); writer.Write(SegmentBuilders.BuildGs("1", "SENDER1", "RECEIVER1", "005010X222A1")); writer.Write(transaction); } Console.WriteLine(Encoding.UTF8.GetString(stream.ToArray())); }
import json import edifabric_x12 as ef serial = "YOUR_SERIAL_KEY" ef.load_library() ef.set_serial(serial) ef.set_map(json.dumps({"default": serial, "maps": {}})) # the transactions JSON returned by ef.parse, edited or produced by your application transactions = open("ClaimPayment.json", "rb").read() edi = ef.build(transactions, postfix="\r\n") print(edi)
import com.edifabric.nativex12.EdiFabricX12; String serial = "YOUR_SERIAL_KEY"; EdiFabricX12.loadLibrary(); EdiFabricX12.setSerial(serial); EdiFabricX12.setMap("{\"default\":\"" + serial + "\",\"maps\":{}}"); // the transactions JSON returned by parse, edited or produced by your application String transactions = Files.readString(Path.of("ClaimPayment.json")); String edi = EdiFabricX12.build(transactions, "\r\n"); System.out.println(edi);
#include "edifabric_x12.h" ef_buffer edi; if (ef_load_library(NULL) != 0) return 1; ef_set_serial("YOUR_SERIAL_KEY"); ef_set_map("{\"default\":\"YOUR_SERIAL_KEY\",\"maps\":{}}"); /* the transactions JSON returned by ef_parse, edited or produced by your application */ char *transactions = read_file("ClaimPayment.json", NULL); if (ef_build(transactions, "\r\n", &edi) == 0) { fwrite(edi.data, 1, (size_t)edi.length, stdout); ef_free(edi.data); }
# the JSON returned by /read, edited or produced by your application curl -X POST 'https://api.edination.com/v2/x12/write' \ -H 'Ocp-Apim-Subscription-Key: YOUR_SERIAL_KEY' \ -H 'Content-Type: application/json' \ --data-binary '@ClaimPayment.json' \ -o 'ClaimPayment.txt'
All three are X12 837 health care claims. The 837P (005010X222A1) bills professional services and replaces the CMS-1500 form. The 837I (005010X223A2) bills institutional services such as hospital stays and replaces the UB-04. The 837D (005010X224A2) bills dental services.
A 999 implementation acknowledgment that reports whether the file is syntactically valid, then a 277CA claim acknowledgment that accepts or rejects each claim. Paid and denied claims are reported later in an 835 remittance advice.
Up to 50 service lines (loop 2400) per claim, and up to 12 diagnosis codes in the HI segment. Larger encounters are split into multiple claims.
In .NET, install EdiFabric and EdiFabric.Templates.Hipaa, read the file with X12Reader into TS837P objects and write them back with X12Writer. From Python, Java or C, use ediFabric Native, which converts 837P files to JSON and JSON back to X12 inside your process. From any other language, post the file to the ediFabric Cloud REST API.