Parsing 835 (Claim Payment/Advice) Transactions
Parsing 835 transactions is very similar to parsing claims.
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.
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.
Register below to get access to the parser: