Parsing 835 (Claim Payment/Advice) Transactions
View complete example in GitHub
Parsing 835 transactions is similar to parsing claims.
The parser returns a list of Payment objects; each object represents an adjudicated claim.
It also returns a list of ProviderAdjustment objects for provider-level adjustments (PLB segment).
Claims and payments share the same object model, including ServiceLine, Subscriber, and other objects.
Claim and Payment objects inherit common properties from the same superclass.
Many types, expressed as Java enums, are also shared.
Refer to our JSON schema documentation for a complete list of objects, fields and their mapping to X12 EDI segments and elements.
Here is an example:
var parser = new EdiParser(ediFile835);
List<Payment> payments = parser.parse835(-1);
assertThat(payments).isNotEmpty();
Payment payment = payments.get(0);
// Get key payment fields
String payerControlNumber=payment.payerControlNumber();
String patientControlNumber=payment.patientControlNumber();
BigDecimal chargeAmount = payment.chargeAmount();
BigDecimal paidAmount = payment.paymentAmount();
ClaimStatus status=payment.claimStatus();
OrgOrPerson payee=payment.payee();
String payeeNpi = payee.identifier();
assertNotNull(payerControlNumber, status, patientControlNumber, chargeAmount, paidAmount, patientControlNumber, payeeNpi);
// iterate over lines and get key fields
for (var line : payment.lines()) {
String procedureCode = line.procedure().code();
LocalDate serviceDate = line.serviceDateFrom();
BigDecimal lineChargeAmount = line.chargeAmount();
BigDecimal linePaidAmount = line.paidAmount();
assertNotNull(procedureCode, serviceDate, lineChargeAmount, linePaidAmount);
}
Please visit our GitHub repo for more examples.