Mapping into API from 835
Introduction
This document provides a comprehensive mapping between the Payment API’s request DTO and the X12 835 remittance advice standard. It is designed to help you understand how each field in the API request relates to the 835 specification, and to identify fields that are unique to this API.
- Mapping tables in the following sections show the correspondence between API fields and 835 segments/elements.
- Fields not present in the 835 standard are clearly noted.
- The example JSON below provides the complete structure of the API response for reference.
Example Payment API Request DTO (JSON)
{
"accountShortCode": "your-account-short-code",
"subAccountShortCode": "your-sub-account-short-code",
"payment": {
"paymentDetails": {
"issuerPaymentId": "48dc20ff1d97977e65209b927d28dc6b",
"issuerReferenceId": "EVRYHEALTH001",
"paymentDate": "2025-05-29",
"adjudicationCutoffDate": "2025-05-29",
"adjudicationVersion": "2",
"amount": 1754.98,
"remitMethod": "PDF",
"documents": [
{
"url": "https://test.com/api/v1/documents/5243",
"type": "EOB"
}
],
"jurisdictionalBody": "MN",
"numberOfAttachedPDFs": 1,
"type": "Payment"
},
"payeeDetails": {
"name": "John Doe",
"address": {
"address1": "123 West St.",
"address2": "Apt 987",
"city": "Dallas",
"state": "TX",
"postalCode": "75227",
"country": "USA"
},
"taxId": "786532990",
"npiId": "1234567890",
"receiverId": "string"
},
"shippingDetails": {
"name": "John Doe",
"address": {
"address1": "123 West St.",
"address2": "Apt 987",
"city": "Dallas",
"state": "TX",
"postalCode": "75227",
"country": "USA"
}
},
"totalNumberClaims": 1,
"claimLevelInformation": [
{
"providerSummaryInformation": {
"referenceIdentification": "123456",
"facilityCode": "11",
"date": "2025-05-29",
"quantity": 110,
"monetaryAmount": 130957.66
},
"supplementalProviderSummaryInformation": {
"totalDrgAmount": 123456.78,
"totalFederalSpecificAmount": 23456.78,
"totalHospitalSpecificAmount": 34567.89,
"totalDisproportionateShareAmount": 45678.9,
"totalCapitalAmount": 56789.01,
"totalImeAmount": 67890.12,
"totalOutlierDayCount": 5,
"totalDayOutlierAmount": 78901.23,
"totalCostOutlierAmount": 78901.23,
"averageDrgLengthOfStay": 3,
"totalDischargeCount": 4,
"totalCostReportDayCount": 4,
"totalCoveredDayCount": 4,
"totalNonCoveredDayCount": 4,
"totalMspPassThroughAmount": 78901.23,
"averageDrgWeight": 44.6,
"totalPpsCapitalFspDrgAmount": 44.6,
"totalPpsCapitalHspDrgAmount": 44.6,
"totalPpsDshDrgAmount": 44.6
},
"claimLoop": [
{
"claimPaymentInformation": {
"patientControlNumber": "7722337",
"statusCode": 1,
"totalChargeAmount": 211366.97,
"paymentAmount": 138018.4,
"patientResponsibilityAmount": 9000.28,
"filingIndicatorCode": "12",
"payerClaimControlNumber": "119932404007801",
"facilityTypeCode": "02",
"claimFrequencyCode": "3",
"diagnosisRelatedGroupDrgCode": "123",
"diagnosisRelatedGroupDrgWeight": 1.234,
"dischargeFraction": 0.25
},
"claimAdjustment": [
{
"claimAdjustmentGroupCode": "CO",
"adjustments": [
{
"adjustmentReasonCode": "45",
"monetaryAmount": 41.08,
"adjustmentQuantity": 0
}
]
}
],
"involvedEntitiesInfo": [
{
"entityIdentifierCode": "QC",
"entityTypeQualifier": "1",
"lastName": "Shephard",
"firstName": "Sam",
"middleNameOrInitial": "O",
"nameSuffix": "SENIOR",
"identificationCodeQualifier": "34",
"entityIdentifier": "string"
}
],
"inPatientAdjudicationInformation": {
"coveredDaysOrVisitsCount": 5,
"ppsOperatingOutlierAmount": 143745.97,
"lifetimePsychiatricDaysCount": 2,
"claimDrgAmount": 84765.37,
"claimPaymentRemarkCode": "M1234",
"claimDisproportionateShareAmount": 2345.67,
"claimMspPassThroughAmount": 345.67,
"claimPpsCapitalAmount": 4567.89,
"ppsCapitalFspDrgAmount": 567.89,
"ppsCapitalHspDrgAmount": 678.9,
"ppsCapitalDshDrgAmount": 789.01,
"oldCapitalAmount": 890.12,
"ppsCapitalImeAmount": 901.23,
"ppsOperatingHospitalSpecificDrgAmount": 1234.56,
"costReportDaysCount": 10,
"ppsOperatingFederalSpecificDrgAmount": 1234.56
},
"outPatientAdjudicationInformation": {
"reimbursementRate": 0.25,
"hcpcsPayableAmount": 1234.56,
"claimPaymentRemarkCode1": "M1234",
"claimPaymentRemarkCode2": "M5678",
"claimPaymentRemarkCode3": "M91011",
"claimPaymentRemarkCode4": "M1213",
"claimPaymentRemarkCode5": "M1415",
"esrdPaymentAmount": 678.9
},
"relatedIdentification": [
{
"referenceIdentificationQualifier": "1L",
"referenceIdentification": "string"
}
],
"relevantDates": [
{
"qualifier": "036",
"date": "2025-05-29"
}
],
"claimContactInformation": {
"name": "John",
"primaryPhone": {
"type": "Phone",
"number": "8005551212",
"extension": "579"
},
"secondaryPhone": {
"type": "Phone",
"number": "8005551212",
"extension": "579"
},
"email": "[email protected]"
},
"claimSupplementalInformation": [
{
"amountQualifierCode": "T",
"claimSupplementalInformationAmount": 49.36
}
],
"loop2110": [
{
"servicePaymentInformation": {
"compositeMedicalProcedureId1": {
"productServiceIdQualifier": "AD",
"procedureCode": "99214",
"procedureModifier1": "string",
"procedureModifier2": "string",
"procedureModifier3": "string",
"procedureModifier4": "string",
"procedureCodeDesc": "string"
},
"lineItemChargeAmount": 100,
"lineItemProviderPaymentAmount": 80,
"nationalUniformBillingCommitteeRevenueCode": "99214",
"quantity1": 2,
"compositeMedicalProcedureId2": {
"productServiceIdQualifier": "AD",
"procedureCode": "99214",
"procedureModifier1": "string",
"procedureModifier2": "string",
"procedureModifier3": "string",
"procedureModifier4": "string",
"procedureCodeDesc": "string"
},
"quantity2": 2
},
"serviceDate": [
{
"dateTimeQualifier": "150",
"date": "2025-05-29"
}
],
"serviceAdjustment": [
{
"claimAdjustmentGroupCode": "CO",
"adjustments": [
{
"adjustmentReasonCode": "45",
"monetaryAmount": 41.08,
"adjustmentQuantity": 0
}
]
}
],
"relatedIdentificationRefSvc": [
{
"referenceIdentificationQualifier": "RB",
"referenceIdentifier": "100"
}
],
"serviceSupplementalAmountInformationAmt": [
{
"amountQualifierCode": "B6",
"claimSupplementalInformationAmount": 425
}
],
"healthCareRemarkCode": [
{
"codeListQualifierCode": "HE",
"remarkCode": "12345"
}
]
}
]
}
]
}
],
"providerLevelAdjustment": [
{
"providerIdentifier": "1134673957",
"fiscalPeriodDate": "2025-05-29",
"adjustments": [
{
"reasonCode": "FB",
"identifier": "2004990161",
"amount": 224.83
}
]
}
]
},
"issuerBatchId": "D8S6FSD686S68DS6",
"correlationId": "AKJHF87G674J5"
}var dto = new PaymentDto
{
AccountShortCode = "your-account-short-code",
SubAccountShortCode = "your-sub-account-short-code",
IssuerBatchId = "D8S6FSD686S68DS6",
CorrelationId = "AKJHF87G674J5",
Payment = new Payment
{
PaymentDetails = new PaymentDetails
{
IssuerPaymentId = "48dc20ff1d97977e65209b927d28dc6b",
IssuerReferenceId = "EVRYHEALTH001",
PaymentDate = DateTime.Parse("2025-05-29"),
AdjudicationCutoffDate = DateTime.Parse("2025-05-29"),
AdjudicationVersion = "2",
Amount = 1754.98m,
RemitMethod = "PDF",
JurisdictionalBody = "MN",
NumberOfAttachedPDFs = 1,
Type = "Payment",
Documents = new List<Document>
{
new Document
{
Url = "https://test.com/api/v1/documents/5243",
Type = "EOB"
}
}
},
PayeeDetails = new PayeeDetails
{
Name = "John Doe",
TaxId = "786532990",
NpiId = "1234567890",
ReceiverId = "string",
Address = new Address
{
Address1 = "123 West St.",
Address2 = "Apt 987",
City = "Dallas",
State = "TX",
PostalCode = "75227",
Country = "USA"
}
},
ShippingDetails = new ShippingDetails
{
Name = "John Doe",
Address = new Address
{
Address1 = "123 West St.",
Address2 = "Apt 987",
City = "Dallas",
State = "TX",
PostalCode = "75227",
Country = "USA"
}
},
TotalNumberClaims = 1,
ClaimLevelInformation = new List<ClaimLevelInformation>
{
new ClaimLevelInformation
{
ProviderSummaryInformation = new ProviderSummaryInformation
{
ReferenceIdentification = "123456",
FacilityCode = "11",
Date = DateTime.Parse("2025-05-29"),
Quantity = 110,
MonetaryAmount = 130957.66m
},
SupplementalProviderSummaryInformation = new SupplementalProviderSummaryInformation
{
TotalDrgAmount = 123456.78m,
TotalFederalSpecificAmount = 23456.78m,
TotalHospitalSpecificAmount = 34567.89m,
TotalDisproportionateShareAmount = 45678.9m,
TotalCapitalAmount = 56789.01m,
TotalImeAmount = 67890.12m,
TotalOutlierDayCount = 5,
TotalDayOutlierAmount = 78901.23m,
TotalCostOutlierAmount = 78901.23m,
AverageDrgLengthOfStay = 3,
TotalDischargeCount = 4,
TotalCostReportDayCount = 4,
TotalCoveredDayCount = 4,
TotalNonCoveredDayCount = 4,
TotalMspPassThroughAmount = 78901.23m,
AverageDrgWeight = 44.6m,
TotalPpsCapitalFspDrgAmount = 44.6m,
TotalPpsCapitalHspDrgAmount = 44.6m,
TotalPpsDshDrgAmount = 44.6m
},
ClaimLoop = new List<ClaimLoop>
{
new ClaimLoop
{
ClaimPaymentInformation = new ClaimPaymentInformation
{
PatientControlNumber = "7722337",
StatusCode = 1,
TotalChargeAmount = 211366.97m,
PaymentAmount = 138018.4m,
PatientResponsibilityAmount = 9000.28m,
FilingIndicatorCode = "12",
PayerClaimControlNumber = "119932404007801",
FacilityTypeCode = "02",
ClaimFrequencyCode = "3",
DiagnosisRelatedGroupDrgCode = "123",
DiagnosisRelatedGroupDrgWeight = 1.234m,
DischargeFraction = 0.25m
},
ClaimAdjustment = new List<ClaimAdjustment>
{
new ClaimAdjustment
{
ClaimAdjustmentGroupCode = "CO",
Adjustments = new List<Adjustment>
{
new Adjustment
{
AdjustmentReasonCode = "45",
MonetaryAmount = 41.08m,
AdjustmentQuantity = 0
}
}
}
},
InvolvedEntitiesInfo = new List<InvolvedEntity>
{
new InvolvedEntity
{
EntityIdentifierCode = "QC",
EntityTypeQualifier = "1",
LastName = "Shephard",
FirstName = "Sam",
MiddleNameOrInitial = "O",
NameSuffix = "SENIOR",
IdentificationCodeQualifier = "34",
EntityIdentifier = "string"
}
},
InPatientAdjudicationInformation = new InPatientAdjudicationInformation
{
CoveredDaysOrVisitsCount = 5,
PpsOperatingOutlierAmount = 143745.97m,
LifetimePsychiatricDaysCount = 2,
ClaimDrgAmount = 84765.37m,
ClaimPaymentRemarkCode = "M1234",
ClaimDisproportionateShareAmount = 2345.67m,
ClaimMspPassThroughAmount = 345.67m,
ClaimPpsCapitalAmount = 4567.89m,
PpsCapitalFspDrgAmount = 567.89m,
PpsCapitalHspDrgAmount = 678.9m,
PpsCapitalDshDrgAmount = 789.01m,
OldCapitalAmount = 890.12m,
PpsCapitalImeAmount = 901.23m,
PpsOperatingHospitalSpecificDrgAmount = 1234.56m,
CostReportDaysCount = 10,
PpsOperatingFederalSpecificDrgAmount = 1234.56m
},
OutPatientAdjudicationInformation = new OutPatientAdjudicationInformation
{
ReimbursementRate = 0.25m,
HcpcsPayableAmount = 1234.56m,
ClaimPaymentRemarkCode1 = "M1234",
ClaimPaymentRemarkCode2 = "M5678",
ClaimPaymentRemarkCode3 = "M91011",
ClaimPaymentRemarkCode4 = "M1213",
ClaimPaymentRemarkCode5 = "M1415",
EsrdPaymentAmount = 678.9m
},
RelatedIdentification = new List<RelatedIdentification>
{
new RelatedIdentification
{
ReferenceIdentificationQualifier = "1L",
ReferenceIdentification = "string"
}
},
RelevantDates = new List<RelevantDate>
{
new RelevantDate
{
Qualifier = "036",
Date = DateTime.Parse("2025-05-29")
}
},
ClaimContactInformation = new ClaimContactInformation
{
Name = "John",
PrimaryPhone = new Phone
{
Type = "Phone",
Number = "8005551212",
Extension = "579"
},
SecondaryPhone = new Phone
{
Type = "Phone",
Number = "8005551212",
Extension = "579"
},
Email = "[email protected]"
},
ClaimSupplementalInformation = new List<ServiceSupplementalAmount>
{
new ServiceSupplementalAmount
{
AmountQualifierCode = "T",
ClaimSupplementalInformationAmount = 49.36m
}
},
Loop2110 = new List<ServiceLine>
{
new ServiceLine
{
ServicePaymentInformation = new ServicePaymentInformation
{
CompositeMedicalProcedureId1 = new CompositeProcedure
{
ProductServiceIdQualifier = "AD",
ProcedureCode = "99214",
ProcedureModifier1 = "string",
ProcedureModifier2 = "string",
ProcedureModifier3 = "string",
ProcedureModifier4 = "string",
ProcedureCodeDesc = "string"
},
LineItemChargeAmount = 100m,
LineItemProviderPaymentAmount = 80m,
NationalUniformBillingCommitteeRevenueCode = "99214",
Quantity1 = 2,
CompositeMedicalProcedureId2 = new CompositeProcedure
{
ProductServiceIdQualifier = "AD",
ProcedureCode = "99214",
ProcedureModifier1 = "string",
ProcedureModifier2 = "string",
ProcedureModifier3 = "string",
ProcedureModifier4 = "string",
ProcedureCodeDesc = "string"
},
Quantity2 = 2
},
ServiceDate = new List<ServiceDate>
{
new ServiceDate
{
DateTimeQualifier = "150",
Date = DateTime.Parse("2025-05-29")
}
},
ServiceAdjustment = new List<ServiceAdjustment>
{
new ServiceAdjustment
{
ClaimAdjustmentGroupCode = "CO",
Adjustments = new List<Adjustment>
{
new Adjustment
{
AdjustmentReasonCode = "45",
MonetaryAmount = 41.08m,
AdjustmentQuantity = 0
}
}
}
},
RelatedIdentificationRefSvc = new List<RelatedIdentification>
{
new RelatedIdentification
{
ReferenceIdentificationQualifier = "RB",
ReferenceIdentifier = "100"
}
},
ServiceSupplementalAmountInformationAmt = new List<ServiceSupplementalAmount>
{
new ServiceSupplementalAmount
{
AmountQualifierCode = "B6",
ClaimSupplementalInformationAmount = 425m
}
},
HealthCareRemarkCode = new List<HealthCareRemarkCode>
{
new HealthCareRemarkCode
{
CodeListQualifierCode = "HE",
RemarkCode = "12345"
}
},
}
}
}
}
}
},
ProviderLevelAdjustment = new List<ProviderLevelAdjustment>
{
new ProviderLevelAdjustment
{
ProviderIdentifier = "1134673957",
FiscalPeriodDate = DateTime.Parse("2025-05-29"),
Adjustments = new List<Adjustment>
{
new Adjustment
{
ReasonCode = "FB",
Identifier = "2004990161",
Amount = 224.83m
}
}
}
}
}
};PaymentDto dto = new PaymentDto();
dto.setAccountShortCode("your-account-short-code");
dto.setSubAccountShortCode("your-sub-account-short-code");
dto.setIssuerBatchId("D8S6FSD686S68DS6");
dto.setCorrelationId("AKJHF87G674J5");
Payment payment = new Payment();
PaymentDetails paymentDetails = new PaymentDetails();
paymentDetails.setIssuerPaymentId("48dc20ff1d97977e65209b927d28dc6b");
paymentDetails.setIssuerReferenceId("EVRYHEALTH001");
paymentDetails.setPaymentDate(LocalDate.parse("2025-05-29"));
paymentDetails.setAdjudicationCutoffDate(LocalDate.parse("2025-05-29"));
paymentDetails.setAdjudicationVersion("2");
paymentDetails.setAmount(new BigDecimal("1754.98"));
paymentDetails.setRemitMethod("PDF");
paymentDetails.setJurisdictionalBody("MN");
paymentDetails.setNumberOfAttachedPDFs(1);
paymentDetails.setType("Payment");
List<Document> documents = new ArrayList<>();
Document document = new Document();
document.setUrl("https://test.com/api/v1/documents/5243");
document.setType("EOB");
documents.add(document);
paymentDetails.setDocuments(documents);
payment.setPaymentDetails(paymentDetails);
PayeeDetails payeeDetails = new PayeeDetails();
payeeDetails.setName("John Doe");
payeeDetails.setTaxId("786532990");
payeeDetails.setNpiId("1234567890");
payeeDetails.setReceiverId("string");
Address payeeAddress = new Address();
payeeAddress.setAddress1("123 West St.");
payeeAddress.setAddress2("Apt 987");
payeeAddress.setCity("Dallas");
payeeAddress.setState("TX");
payeeAddress.setPostalCode("75227");
payeeAddress.setCountry("USA");
payeeDetails.setAddress(payeeAddress);
payment.setPayeeDetails(payeeDetails);
ShippingDetails shippingDetails = new ShippingDetails();
shippingDetails.setName("John Doe");
Address shippingAddress = new Address();
shippingAddress.setAddress1("123 West St.");
shippingAddress.setAddress2("Apt 987");
shippingAddress.setCity("Dallas");
shippingAddress.setState("TX");
shippingAddress.setPostalCode("75227");
shippingAddress.setCountry("USA");
shippingDetails.setAddress(shippingAddress);
payment.setShippingDetails(shippingDetails);
payment.setTotalNumberClaims(1);
List<ClaimLevelInformation> claimLevelInformationList = new ArrayList<>();
ClaimLevelInformation claimLevelInformation = new ClaimLevelInformation();
ProviderSummaryInformation providerSummaryInformation = new ProviderSummaryInformation();
providerSummaryInformation.setReferenceIdentification("123456");
providerSummaryInformation.setFacilityCode("11");
providerSummaryInformation.setDate(LocalDate.parse("2025-05-29"));
providerSummaryInformation.setQuantity(110);
providerSummaryInformation.setMonetaryAmount(new BigDecimal("130957.66"));
claimLevelInformation.setProviderSummaryInformation(providerSummaryInformation);
SupplementalProviderSummaryInformation supplementalProviderSummaryInformation = new SupplementalProviderSummaryInformation();
supplementalProviderSummaryInformation.setTotalDrgAmount(new BigDecimal("123456.78"));
supplementalProviderSummaryInformation.setTotalFederalSpecificAmount(new BigDecimal("23456.78"));
supplementalProviderSummaryInformation.setTotalHospitalSpecificAmount(new BigDecimal("34567.89"));
supplementalProviderSummaryInformation.setTotalDisproportionateShareAmount(new BigDecimal("45678.9"));
supplementalProviderSummaryInformation.setTotalCapitalAmount(new BigDecimal("56789.01"));
supplementalProviderSummaryInformation.setTotalImeAmount(new BigDecimal("67890.12"));
supplementalProviderSummaryInformation.setTotalOutlierDayCount(5);
supplementalProviderSummaryInformation.setTotalDayOutlierAmount(new BigDecimal("78901.23"));
supplementalProviderSummaryInformation.setTotalCostOutlierAmount(new BigDecimal("78901.23"));
supplementalProviderSummaryInformation.setAverageDrgLengthOfStay(3);
supplementalProviderSummaryInformation.setTotalDischargeCount(4);
supplementalProviderSummaryInformation.setTotalCostReportDayCount(4);
supplementalProviderSummaryInformation.setTotalCoveredDayCount(4);
supplementalProviderSummaryInformation.setTotalNonCoveredDayCount(4);
supplementalProviderSummaryInformation.setTotalMspPassThroughAmount(new BigDecimal("78901.23"));
supplementalProviderSummaryInformation.setAverageDrgWeight(new BigDecimal("44.6"));
supplementalProviderSummaryInformation.setTotalPpsCapitalFspDrgAmount(new BigDecimal("44.6"));
supplementalProviderSummaryInformation.setTotalPpsCapitalHspDrgAmount(new BigDecimal("44.6"));
supplementalProviderSummaryInformation.setTotalPpsDshDrgAmount(new BigDecimal("44.6"));
claimLevelInformation.setSupplementalProviderSummaryInformation(supplementalProviderSummaryInformation);
List<ClaimLoop> claimLoops = new ArrayList<>();
ClaimLoop claimLoop = new ClaimLoop();
ClaimPaymentInformation claimPaymentInformation = new ClaimPaymentInformation();
claimPaymentInformation.setPatientControlNumber("7722337");
claimPaymentInformation.setStatusCode(1);
claimPaymentInformation.setTotalChargeAmount(new BigDecimal("211366.97"));
claimPaymentInformation.setPaymentAmount(new BigDecimal("138018.4"));
claimPaymentInformation.setPatientResponsibilityAmount(new BigDecimal("9000.28"));
claimPaymentInformation.setFilingIndicatorCode("12");
claimPaymentInformation.setPayerClaimControlNumber("119932404007801");
claimPaymentInformation.setFacilityTypeCode("02");
claimPaymentInformation.setClaimFrequencyCode("3");
claimPaymentInformation.setDiagnosisRelatedGroupDrgCode("123");
claimPaymentInformation.setDiagnosisRelatedGroupDrgWeight(new BigDecimal("1.234"));
claimPaymentInformation.setDischargeFraction(new BigDecimal("0.25"));
claimLoop.setClaimPaymentInformation(claimPaymentInformation);
List<ClaimAdjustment> claimAdjustments = new ArrayList<>();
ClaimAdjustment claimAdjustment = new ClaimAdjustment();
claimAdjustment.setClaimAdjustmentGroupCode("CO");
List<Adjustment> adjustments = new ArrayList<>();
Adjustment adjustment = new Adjustment();
adjustment.setAdjustmentReasonCode("45");
adjustment.setMonetaryAmount(new BigDecimal("41.08"));
adjustment.setAdjustmentQuantity(0);
adjustments.add(adjustment);
claimAdjustment.setAdjustments(adjustments);
claimAdjustments.add(claimAdjustment);
claimLoop.setClaimAdjustment(claimAdjustments);
List<InvolvedEntity> involvedEntities = new ArrayList<>();
InvolvedEntity involvedEntity = new InvolvedEntity();
involvedEntity.setEntityIdentifierCode("QC");
involvedEntity.setEntityTypeQualifier("1");
involvedEntity.setLastName("Shephard");
involvedEntity.setFirstName("Sam");
involvedEntity.setMiddleNameOrInitial("O");
involvedEntity.setNameSuffix("SENIOR");
involvedEntity.setIdentificationCodeQualifier("34");
involvedEntity.setEntityIdentifier("string");
involvedEntities.add(involvedEntity);
claimLoop.setInvolvedEntitiesInfo(involvedEntities);
InPatientAdjudicationInformation inPatientAdjudicationInformation = new InPatientAdjudicationInformation();
inPatientAdjudicationInformation.setCoveredDaysOrVisitsCount(5);
inPatientAdjudicationInformation.setPpsOperatingOutlierAmount(new BigDecimal("143745.97"));
inPatientAdjudicationInformation.setLifetimePsychiatricDaysCount(2);
inPatientAdjudicationInformation.setClaimDrgAmount(new BigDecimal("84765.37"));
inPatientAdjudicationInformation.setClaimPaymentRemarkCode("M1234");
inPatientAdjudicationInformation.setClaimDisproportionateShareAmount(new BigDecimal("2345.67"));
inPatientAdjudicationInformation.setClaimMspPassThroughAmount(new BigDecimal("345.67"));
inPatientAdjudicationInformation.setClaimPpsCapitalAmount(new BigDecimal("4567.89"));
inPatientAdjudicationInformation.setPpsCapitalFspDrgAmount(new BigDecimal("567.89"));
inPatientAdjudicationInformation.setPpsCapitalHspDrgAmount(new BigDecimal("678.9"));
inPatientAdjudicationInformation.setPpsCapitalDshDrgAmount(new BigDecimal("789.01"));
inPatientAdjudicationInformation.setOldCapitalAmount(new BigDecimal("890.12"));
inPatientAdjudicationInformation.setPpsCapitalImeAmount(new BigDecimal("901.23"));
inPatientAdjudicationInformation.setPpsOperatingHospitalSpecificDrgAmount(new BigDecimal("1234.56"));
inPatientAdjudicationInformation.setCostReportDaysCount(10);
inPatientAdjudicationInformation.setPpsOperatingFederalSpecificDrgAmount(new BigDecimal("1234.56"));
claimLoop.setInPatientAdjudicationInformation(inPatientAdjudicationInformation);
OutPatientAdjudicationInformation outPatientAdjudicationInformation = new OutPatientAdjudicationInformation();
outPatientAdjudicationInformation.setReimbursementRate(new BigDecimal("0.25"));
outPatientAdjudicationInformation.setHcpcsPayableAmount(new BigDecimal("1234.56"));
outPatientAdjudicationInformation.setClaimPaymentRemarkCode1("M1234");
outPatientAdjudicationInformation.setClaimPaymentRemarkCode2("M5678");
outPatientAdjudicationInformation.setClaimPaymentRemarkCode3("M91011");
outPatientAdjudicationInformation.setClaimPaymentRemarkCode4("M1213");
outPatientAdjudicationInformation.setClaimPaymentRemarkCode5("M1415");
outPatientAdjudicationInformation.setEsrdPaymentAmount(new BigDecimal("678.9"));
claimLoop.setOutPatientAdjudicationInformation(outPatientAdjudicationInformation);
List<RelatedIdentification> relatedIdentifications = new ArrayList<>();
RelatedIdentification relatedIdentification = new RelatedIdentification();
relatedIdentification.setReferenceIdentificationQualifier("1L");
relatedIdentification.setReferenceIdentification("string");
relatedIdentifications.add(relatedIdentification);
claimLoop.setRelatedIdentification(relatedIdentifications);
List<RelevantDate> relevantDates = new ArrayList<>();
RelevantDate relevantDate = new RelevantDate();
relevantDate.setQualifier("036");
relevantDate.setDate(LocalDate.parse("2025-05-29"));
relevantDates.add(relevantDate);
claimLoop.setRelevantDates(relevantDates);
ClaimContactInformation claimContactInformation = new ClaimContactInformation();
claimContactInformation.setName("John");
Phone primaryPhone = new Phone();
primaryPhone.setType("Phone");
primaryPhone.setNumber("8005551212");
primaryPhone.setExtension("579");
claimContactInformation.setPrimaryPhone(primaryPhone);
Phone secondaryPhone = new Phone();
secondaryPhone.setType("Phone");
secondaryPhone.setNumber("8005551212");
secondaryPhone.setExtension("579");
claimContactInformation.setSecondaryPhone(secondaryPhone);
claimContactInformation.setEmail("[email protected]");
claimLoop.setClaimContactInformation(claimContactInformation);
List<ServiceSupplementalAmount> claimSupplementalInformation = new ArrayList<>();
ServiceSupplementalAmount supplementalAmount = new ServiceSupplementalAmount();
supplementalAmount.setAmountQualifierCode("T");
supplementalAmount.setClaimSupplementalInformationAmount(new BigDecimal("49.36"));
claimSupplementalInformation.add(supplementalAmount);
claimLoop.setClaimSupplementalInformation(claimSupplementalInformation);
List<ServiceLine> loop2110 = new ArrayList<>();
ServiceLine serviceLine = new ServiceLine();
ServicePaymentInformation servicePaymentInformation = new ServicePaymentInformation();
CompositeProcedure compositeProcedure1 = new CompositeProcedure();
compositeProcedure1.setProductServiceIdQualifier("AD");
compositeProcedure1.setProcedureCode("99214");
compositeProcedure1.setProcedureModifier1("string");
compositeProcedure1.setProcedureModifier2("string");
compositeProcedure1.setProcedureModifier3("string");
compositeProcedure1.setProcedureModifier4("string");
compositeProcedure1.setProcedureCodeDesc("string");
servicePaymentInformation.setCompositeMedicalProcedureId1(compositeProcedure1);
servicePaymentInformation.setLineItemChargeAmount(new BigDecimal("100"));
servicePaymentInformation.setLineItemProviderPaymentAmount(new BigDecimal("80"));
servicePaymentInformation.setNationalUniformBillingCommitteeRevenueCode("99214");
servicePaymentInformation.setQuantity1(2);
CompositeProcedure compositeProcedure2 = new CompositeProcedure();
compositeProcedure2.setProductServiceIdQualifier("AD");
compositeProcedure2.setProcedureCode("99214");
compositeProcedure2.setProcedureModifier1("string");
compositeProcedure2.setProcedureModifier2("string");
compositeProcedure2.setProcedureModifier3("string");
compositeProcedure2.setProcedureModifier4("string");
compositeProcedure2.setProcedureCodeDesc("string");
servicePaymentInformation.setCompositeMedicalProcedureId2(compositeProcedure2);
servicePaymentInformation.setQuantity2(2);
serviceLine.setServicePaymentInformation(servicePaymentInformation);
List<ServiceDate> serviceDates = new ArrayList<>();
ServiceDate serviceDate = new ServiceDate();
serviceDate.setDateTimeQualifier("150");
serviceDate.setDate(LocalDate.parse("2025-05-29"));
serviceDates.add(serviceDate);
serviceLine.setServiceDate(serviceDates);
List<ServiceAdjustment> serviceAdjustments = new ArrayList<>();
ServiceAdjustment serviceAdjustment = new ServiceAdjustment();
serviceAdjustment.setClaimAdjustmentGroupCode("CO");
List<Adjustment> serviceAdjustmentsList = new ArrayList<>();
Adjustment serviceAdjustmentDetail = new Adjustment();
serviceAdjustmentDetail.setAdjustmentReasonCode("45");
serviceAdjustmentDetail.setMonetaryAmount(new BigDecimal("41.08"));
serviceAdjustmentDetail.setAdjustmentQuantity(0);
serviceAdjustmentsList.add(serviceAdjustmentDetail);
serviceAdjustment.setAdjustments(serviceAdjustmentsList);
serviceAdjustments.add(serviceAdjustment);
serviceLine.setServiceAdjustment(serviceAdjustments);
List<RelatedIdentification> relatedIdentificationRefSvc = new ArrayList<>();
RelatedIdentification relatedIdentificationSvc = new RelatedIdentification();
relatedIdentificationSvc.setReferenceIdentificationQualifier("RB");
relatedIdentificationSvc.setReferenceIdentification("100");
relatedIdentificationRefSvc.add(relatedIdentificationSvc);
serviceLine.setRelatedIdentificationRefSvc(relatedIdentificationRefSvc);
List<ServiceSupplementalAmount> serviceSupplementalAmountInformationAmt = new ArrayList<>();
ServiceSupplementalAmount serviceSupplementalAmount = new ServiceSupplementalAmount();
serviceSupplementalAmount.setAmountQualifierCode("B6");
serviceSupplementalAmount.setClaimSupplementalInformationAmount(new BigDecimal("425"));
serviceSupplementalAmountInformationAmt.add(serviceSupplementalAmount);
serviceLine.setServiceSupplementalAmountInformationAmt(serviceSupplementalAmountInformationAmt);
List<HealthCareRemarkCode> healthCareRemarkCodes = new ArrayList<>();
HealthCareRemarkCode healthCareRemarkCode = new HealthCareRemarkCode();
healthCareRemarkCode.setCodeListQualifierCode("HE");
healthCareRemarkCode.setRemarkCode("12345");
healthCareRemarkCodes.add(healthCareRemarkCode);
serviceLine.setHealthCareRemarkCode(healthCareRemarkCodes);
loop2110.add(serviceLine);
claimLoop.setLoop2110(loop2110);
claimLoops.add(claimLoop);
claimLevelInformation.setClaimLoop(claimLoops);
claimLevelInformationList.add(claimLevelInformation);
payment.setClaimLevelInformation(claimLevelInformationList);
List<ProviderLevelAdjustment> providerLevelAdjustments = new ArrayList<>();
ProviderLevelAdjustment providerLevelAdjustment = new ProviderLevelAdjustment();
providerLevelAdjustment.setProviderIdentifier("1134673957");
providerLevelAdjustment.setFiscalPeriodDate(LocalDate.parse("2025-05-29"));
List<Adjustment> providerAdjustments = new ArrayList<>();
Adjustment providerAdjustment = new Adjustment();
providerAdjustment.setReasonCode("FB");
providerAdjustment.setIdentifier("2004990161");
providerAdjustment.setAmount(new BigDecimal("224.83"));
providerAdjustments.add(providerAdjustment);
providerLevelAdjustment.setAdjustments(providerAdjustments);
providerLevelAdjustments.add(providerLevelAdjustment);
payment.setProviderLevelAdjustment(providerLevelAdjustments);
dto.setPayment(payment);
const dto = {
accountShortCode: "your-account-short-code",
subAccountShortCode: "your-sub-account-short-code",
issuerBatchId: "D8S6FSD686S68DS6",
correlationId: "AKJHF87G674J5",
payment: {
paymentDetails: {
issuerPaymentId: "48dc20ff1d97977e65209b927d28dc6b",
issuerReferenceId: "EVRYHEALTH001",
paymentDate: "2025-05-29",
adjudicationCutoffDate: "2025-05-29",
adjudicationVersion: "2",
amount: 1754.98,
remitMethod: "PDF",
jurisdictionalBody: "MN",
numberOfAttachedPDFs: 1,
type: "Payment",
documents: [
{
url: "https://test.com/api/v1/documents/5243",
type: "EOB"
}
]
},
payeeDetails: {
name: "John Doe",
taxId: "786532990",
npiId: "1234567890",
receiverId: "string",
address: {
address1: "123 West St.",
address2: "Apt 987",
city: "Dallas",
state: "TX",
postalCode: "75227",
country: "USA"
}
},
shippingDetails: {
name: "John Doe",
address: {
address1: "123 West St.",
address2: "Apt 987",
city: "Dallas",
state: "TX",
postalCode: "75227",
country: "USA"
}
},
totalNumberClaims: 1,
claimLevelInformation: [
{
providerSummaryInformation: {
referenceIdentification: "123456",
facilityCode: "11",
date: "2025-05-29",
quantity: 110,
monetaryAmount: 130957.66
},
supplementalProviderSummaryInformation: {
totalDrgAmount: 123456.78,
totalFederalSpecificAmount: 23456.78,
totalHospitalSpecificAmount: 34567.89,
totalDisproportionateShareAmount: 45678.9,
totalCapitalAmount: 56789.01,
totalImeAmount: 67890.12,
totalOutlierDayCount: 5,
totalDayOutlierAmount: 78901.23,
totalCostOutlierAmount: 78901.23,
averageDrgLengthOfStay: 3,
totalDischargeCount: 4,
totalCostReportDayCount: 4,
totalCoveredDayCount: 4,
totalNonCoveredDayCount: 4,
totalMspPassThroughAmount: 78901.23,
averageDrgWeight: 44.6,
totalPpsCapitalFspDrgAmount: 44.6,
totalPpsCapitalHspDrgAmount: 44.6,
totalPpsDshDrgAmount: 44.6
},
claimLoop: [
{
claimPaymentInformation: {
patientControlNumber: "7722337",
statusCode: 1,
totalChargeAmount: 211366.97,
paymentAmount: 138018.4,
patientResponsibilityAmount: 9000.28,
filingIndicatorCode: "12",
payerClaimControlNumber: "119932404007801",
facilityTypeCode: "02",
claimFrequencyCode: "3",
diagnosisRelatedGroupDrgCode: "123",
diagnosisRelatedGroupDrgWeight: 1.234,
dischargeFraction: 0.25
},
claimAdjustment: [
{
claimAdjustmentGroupCode: "CO",
adjustments: [
{
adjustmentReasonCode: "45",
monetaryAmount: 41.08,
adjustmentQuantity: 0
}
]
}
],
involvedEntitiesInfo: [
{
entityIdentifierCode: "QC",
entityTypeQualifier: "1",
lastName: "Shephard",
firstName: "Sam",
middleNameOrInitial: "O",
nameSuffix: "SENIOR",
identificationCodeQualifier: "34",
entityIdentifier: "string"
}
],
inPatientAdjudicationInformation: {
coveredDaysOrVisitsCount: 5,
ppsOperatingOutlierAmount: 143745.97,
lifetimePsychiatricDaysCount: 2,
claimDrgAmount: 84765.37,
claimPaymentRemarkCode: "M1234",
claimDisproportionateShareAmount: 2345.67,
claimMspPassThroughAmount: 345.67,
claimPpsCapitalAmount: 4567.89,
ppsCapitalFspDrgAmount: 567.89,
ppsCapitalHspDrgAmount: 678.9,
ppsCapitalDshDrgAmount: 789.01,
oldCapitalAmount: 890.12,
ppsCapitalImeAmount: 901.23,
ppsOperatingHospitalSpecificDrgAmount: 1234.56,
costReportDaysCount: 10,
ppsOperatingFederalSpecificDrgAmount: 1234.56
},
outPatientAdjudicationInformation: {
reimbursementRate: 0.25,
hcpcsPayableAmount: 1234.56,
claimPaymentRemarkCode1: "M1234",
claimPaymentRemarkCode2: "M5678",
claimPaymentRemarkCode3: "M91011",
claimPaymentRemarkCode4: "M1213",
claimPaymentRemarkCode5: "M1415",
esrdPaymentAmount: 678.9
},
relatedIdentification: [
{
referenceIdentificationQualifier: "1L",
referenceIdentification: "string"
}
],
relevantDates: [
{
qualifier: "036",
date: "2025-05-29"
}
],
claimContactInformation: {
name: "John",
primaryPhone: {
type: "Phone",
number: "8005551212",
extension: "579"
},
secondaryPhone: {
type: "Phone",
number: "8005551212",
extension: "579"
},
email: "[email protected]"
},
claimSupplementalInformation: [
{
amountQualifierCode: "T",
claimSupplementalInformationAmount: 49.36
}
],
loop2110: [
{
servicePaymentInformation: {
compositeMedicalProcedureId1: {
productServiceIdQualifier: "AD",
procedureCode: "99214",
procedureModifier1: "string",
procedureModifier2: "string",
procedureModifier3: "string",
procedureModifier4: "string",
procedureCodeDesc: "string"
},
lineItemChargeAmount: 100,
lineItemProviderPaymentAmount: 80,
nationalUniformBillingCommitteeRevenueCode: "99214",
quantity1: 2,
compositeMedicalProcedureId2: {
productServiceIdQualifier: "AD",
procedureCode: "99214",
procedureModifier1: "string",
procedureModifier2: "string",
procedureModifier3: "string",
procedureModifier4: "string",
procedureCodeDesc: "string"
},
quantity2: 2
},
serviceDate: [
{
dateTimeQualifier: "150",
date: "2025-05-29"
}
],
serviceAdjustment: [
{
claimAdjustmentGroupCode: "CO",
adjustments: [
{
adjustmentReasonCode: "45",
monetaryAmount: 41.08,
adjustmentQuantity: 0
}
]
}
],
relatedIdentificationRefSvc: [
{
referenceIdentificationQualifier: "RB",
referenceIdentifier: "100"
}
],
serviceSupplementalAmountInformationAmt: [
{
amountQualifierCode: "B6",
claimSupplementalInformationAmount: 425
}
],
healthCareRemarkCode: [
{
codeListQualifierCode: "HE",
remarkCode: "12345"
}
]
}
]
}
]
}
],
providerLevelAdjustment: [
{
providerIdentifier: "1134673957",
fiscalPeriodDate: "2025-05-29",
adjustments: [
{
reasonCode: "FB",
identifier: "2004990161",
amount: 224.83
}
]
}
]
}
};Field Type Code Description
| Code | Meaning | Description |
|---|---|---|
| M | Mandatory | Always required. The form or process cannot proceed without this field. |
| O | Optional | Always optional, no matter the situation. User can skip it without consequence. |
| S | Situational | Optional until a certain condition is met. Once that condition is true, the field must be filled in. |
| X | Required under certain conditions | Becomes required only if specific value or selection was previously used. |
1. Root Object Fields
| Field (JSON Path) | Description | 835 Segment/Element | Notes |
|---|---|---|---|
accountShortCode | This is the unique ID provided by the payer during account creation. | Not part of 835 | API-specific |
subAccountShortCode | This is the unique ID provided by the payer during sub-account creation. | Not part of 835 | API-specific |
payment | Payment details object (see sections below) | Various (see below) | Object, contains main payment information |
issuerBatchId | Identifier for the issuer batch | Not part of 835 | API-specific |
correlationId | Correlation ID for tracking payments across batches | Not part of 835 | API-specific |
2. Payment
| Field Name | Type | Description |
|---|---|---|
| paymentDetails | object | Details about the payment itself (amount, date, method, etc.) |
| payeeDetails | object | Information about the payment recipient (provider) |
| shippingDetails | object | Shipping address information (if applicable) |
| totalNumberClaims | integer | Total number of claims in the payment batch |
| claimLevelInformation | array of objects | Details of each claim and their associated information |
| providerLevelAdjustment | array of objects | Provider-level adjustment details (PLB segments in 835) |
2.1 Payment Details (payment.paymentDetails)
DTO Payment Details Fields | 835 Segment | Required? | Comments |
|---|---|---|---|
issuerPaymentId | TRN-02 | M | This number must be unique within the sender/receiver relationship. The number is assigned by the sender. If payment is made by check, this must be the check number. If payment is made by EFT, this must be the EFT reference number. If this is a non-payment 835, this must be a unique remittance advice identification number. |
issuerReferenceId | REF-02 - REF EV | X | Use REF-02 from the 835 segment where REF01 is EV. |
paymentDate | DTM-02 | X | The date of the payment within the issuer's system. |
adjudicationCutoffDate | DTM-02 | X | Use DTM02 where DTM01 is "405". |
adjudicationVersion | REF F2 | Does not appear in 835 guide | |
amount | BPR-02 | M | Use BPR02 for the total payment amount for this 835. The total payment amount for this 835 cannot exceed eleven characters, including decimals (9999999999.99). Although the value can be zero, the 835 cannot be issued for less than zero dollars. Decimal elements will be limited to a maximum length of 10 characters including reported or implied places for cents (implied value of 00 after the decimal point). |
remitMethod | BPR-01 | M | What documents need to be provided: PDF = provided PDF Data = Optum-composed NODOCS =no documents generated 835s are generated according to the payment network and are not affected by this choice. If input is PDF,DOCS = PDF will come first and then Optum-composed documents and vice cersa |
jurisdictionalBody | -- | Does not appear in 835 guide | Applicable only on worker's comp payments, so this will be null. |
numberOfAttachedPDFs | -- | Does not appear in 835 guide | Number of pre-composed sub-account provided PDF documents that need to be attached to the payment. The payment will not process if the required number of documents are not present. |
2.2 Payee Details (payment.payeeDetails)
DTO Payee Details Fields | 835 Segment | Required? | Comments |
|---|---|---|---|
name | (Loop 1000B) N1-02 | M | Payee name |
address1 | (Loop 1000B) N3-01 | M | Line 1 of payee address. If needed, this is the mailing address used for payments and documents UNLESS the shipping address is filled out. |
address2 | (Loop 1000B) N3-02 | O | Payee second address. |
city | (Loop 1000B) N4-01 | O | Payee city name |
state | (Loop 1000B) N4-02 | S | Payee address state. SITUATIONAL RULE: Required when the address is in the United States of America, including its territories, or Canada. |
postalCode | (Loop 1000B) N4-03 | O | Payee address zip code. SITUATIONAL RULE: Required when the address is in the United States of America, including its territories, or Canada, or when a postal code exists for the country in N404. |
country | (Loop 1000B) N4-04 | S | Payee address 3-digit country code. SITUATIONAL RULE: Required when the address is outside the United States of America. |
taxId | (Loop 1000B) N1-04 OR REF 02 | X | Federal Taxpayer’s Identification Number Required if provider is not mandated by NPI. For individual providers as payees, use this qualifier to represent the Social Security Number. |
npiId | (Loop 1000B) N1-04 | X | National Provider Identifier Required when the National Provider Identifier is mandated for use and the payee is a covered health care provider under the mandate. |
receiverId | (Loop 1000B) REF*EV | Only if the payer assigns a specific receiver ID to the payee (e.g., a provider or billing service). | Receiver Identification Number—specifically, the Receiver ID assigned by the Payer. |
2.3 Shipping Details (payment.shippingDetails)
| DTO Shipping Details Fields | 835 Segment | Required? | Comments |
|---|---|---|---|
| name | -- | -- | Name in the shipping address. If this address is filled in, then payment and documents will be mailed to this address. Not part of the 835, this field supports capabilities unique to our platform. |
| address1 | -- | -- | Line 1 of payee address. If this address is filled in, then payment and documents will be mailed to this address. Not part of the 835, this field supports capabilities unique to our platform. |
| address2 | -- | -- | Line 2 of payee address. If this address is filled in, then payment and documents will be mailed to this address. Not part of the 835, this field supports capabilities unique to our platform. |
| city | -- | -- | Payee address city. If this address is filled in, then payment and documents will be mailed to this address. Not part of the 835, this field supports capabilities unique to our platform. |
| state | -- | -- | Payee address state. If this address is filled in, then payment and documents will be mailed to this address. Not part of the 835, this field supports capabilities unique to our platform. |
| postalCode | -- | -- | Payee address zip code. If this address is filled in, then payment and documents will be mailed to this address. Not part of the 835, this field supports capabilities unique to our platform. |
| country | -- | -- | Payee address 3-digit country code. If this address is filled in, then payment and documents will be mailed to this address. Not part of the 835, this field supports capabilities unique to our platform. |
2.4 Total Number of Claims (payment.totalNumberClaims)
| DTO Claim Details Fields | 835 Segment | Required? | Comments |
|---|---|---|---|
| totalNumberClaims | -- | -- | Not part of the 835, this is the number of claims attached to the claim. |
2.5 Claim Level Information (loop2000) (payment.claimLevelInformation[])
DTO Property | 835 Segment | Required? M=Mandatory O=Optional X=Required under certain conditions S=Situational | Comments |
|---|---|---|---|
providerSummaryInformation | TS3 | M | Provider Summary Information |
supplementalProviderSummaryInformation | TS2 | M | Provider Supplemental Summary Information |
claimLoop | N/A | M | Contains detailed claim-level information, including payment information, adjustments, involved entities, adjudication details, and service-level data (Loop 2110). |
2.4.1 Provider Summary Information (claimLevelInformation[].providerSummaryInformation)
| DTO Provider Summary Information Fields | 835 Segment | Required? | Comments |
|---|---|---|---|
| referenceIdentification | TS3-01 | M | This is the provider number. |
| facilityCode | TS3-02 | M | When reporting a TS3 segment for professional claims and the claims are not all for the same place of service, report a place of service of 11 (Office) as the default value. When reporting a TS3 segment for pharmaceutical claims and the claims are not all for the same place of service, report a place of service of 99 (Other unlisted facility) as the default value. |
| date | TS3-03 | M | Use this date for the last day of the provider’s fiscal year. If the end of the provider’s fiscal year is not known, use December 31st of the current year. |
| quantity | TS3-04 | M | This is the total number of claims. |
| monetaryAmount | TS3-05 | M | Decimal elements will be limited to a maximum length of 10 characters including reported or implied places for cents (implied value of 00 after the decimal point). This applies to all 782 elements. |
2.4.2 Supplemental Provider Summary Information (claimLevelInformation[].supplementalProviderSummaryInformation)
| DTO Supplemental Provider Summary Fields | 835 Segment | Required? | Comments |
|---|---|---|---|
| totalDrgAmount | TS2-01 | S | This includes: operating federal-specific amount, operating hospital-specific amount, operating Indirect Medical Education amount, and operating Disproportionate Share Hospital amount. It does not include any operating outlier amount. SITUATIONAL RULE: Required when the value of the Total DRG amount is\not zero. If not required by this implementation guide, do not send. |
| totalFederalSpecificAmount | TS2-02 | O | SITUATIONAL RULE: Required when total federal specific amount is not zero. |
| totalHospitalSpecificAmount | TS2-03 | O | SITUATIONAL RULE: Required when total hospital specific amount is not zero. |
| totalDisproportionateShareAmount | TS2-04 | O | SITUATIONAL RULE: Required when total disproportionate share amount is not zero. |
| totalCapitalAmount | TS2-05 | O | SITUATIONAL RULE: Required when total capital amount is not zero. This includes: capital federal-specific amount, hospital federal specific amount, hold harmless amount, Indirect Medical Education amount, Disproportionate Share Hospital amount, and the exception amount. It does not include any capital outlier amount. |
| totalImeAmount | TS2-06 | O | SITUATIONAL RULE: Required when total indirect medical education amount is not zero. |
| totalOutlierDayCount | TS2-07 | O | SITUATIONAL RULE: Required when total outlier day count is not zero. |
| totalDayOutlierAmount | TS2-08 | O | SITUATIONAL RULE: Required when the value of the total day outlier amount is not zero. |
| totalCostOutlierAmount | TS2-09 | O | SITUATIONAL RULE: Required when the value of the total cost outlier amount is not zero. |
| averageDrgLengthOfStay | TS2-10 | O | SITUATIONAL RULE: Required when the value of the average DRG length of stay is not zero. |
| totalDischargeCount | TS2-11 | O | SITUATIONAL RULE: Required when the value of the total discharge count is not zero. This is the discharge count produced by PPS PRICER SOFTWARE. |
| totalCostReportDayCount | TS2-12 | O | SITUATIONAL RULE: Required when the value of the total cost report day count is not zero. |
| totalCoveredDayCount | TS2-13 | O | SITUATIONAL RULE: Required when the value of the total covered day count is not zero. |
| totalNonCoveredDayCount | TS2-14 | O | SITUATIONAL RULE: Required when the value of the total noncovered day count is not zero. |
| totalMspPassThroughAmount | TS2-15 | O | SITUATIONAL RULE: Required when the value of the total MSP Pass through amount is not zero. |
| averageDrgWeight | TS2-16 | O | SITUATIONAL RULE: Required when the value of the average DRG Weight is not zero. |
| totalPpsCapitalFspDrgAmount | TS2-17 | O | SITUATIONAL RULE: Required when the value of the total PPS capital FSP (Federal-specific Portion) DRG amount is not zero. |
| totalPpsCapitalHspDrgAmount | TS2-18 | O | SITUATIONAL RULE: Required when the value of the total PPS Capital HSP (Hospital-specific Portion) DRG Amount is not zero. |
| totalPpsDshDrgAmount | TS2-19 | O | SITUATIONAL RULE: Required when the value of the Total PPS Capital DSH (Disproportionate Share, Hospital) DRG amount is not zero. |
2.4.3 Claim Loop (loop2100) (claimLevelInformation[].claimLoop[])
Loop 2100 represents claim payment information.
Inside this loop are the following segments:
- CLP (Claim Payment Information) – provides the claim status, total charges, payment amount, patient responsibility, and claim identifiers.
- NM1 (Patient or Insured Name) – identifies the patient or insured party related to the claim.
- CAS (Claim Adjustment) – shows any adjustments made at the claim level, such as contractual obligations or denials.
- DTM (Date/Time) – indicates important dates related to the claim, such as the service date or adjudication date.
- REF (Reference Identification) – may include claim control numbers or other identifiers used by the payer or provider.
- AMT (Monetary Amount) – used to report additional monetary values, such as remaining deductible or allowed amount.
If a provider submitted multiple claims in a single remittance, the 835 file will contain multiple Loop 2100s, one for each claim. Each of these may contain nested Loop 2110s for the individual service lines within the claim.
| DTO Property | 835 Segment | Required? | Comments |
|---|---|---|---|
| claimPaymentInformation | CLP | M | Claim Payment Information |
| claimAdjustment | CAS | M | Claim Adjustment |
| involvedEntitiesInfo | NM1 | M | Patient Name |
| inPatientAdjudicationInformation | MIA | M | Inpatient Adjudication Information |
| outPatientAdjudicationInformation | MOA | M | Outpatient Adjudication Information |
| relatedIdentification | REF | M | Other claim-related identification |
| relevantDates | DTM | M | Production Date |
| claimContactInformation | PER | S | Claim Contact Information |
| claimSupplementalInformation | AMT | M | Claim Supplemental Information |
| loop2110 | SVC | M | Service Payment Information |
2.4.3.1 Claim Payment Information (claimLoop[].claimPaymentInformation)
| DTO Claim Payment Information Fields | 835 Segment | Required? | Comments |
|---|---|---|---|
| patientControlNumber | CLP-01 | M | Use this number for the patient control number assigned by the provider. If the patient control number is not present on the incoming claim, enter a single zero. The value in CLP01 must be identical to any value received as a Claim Submitter’s Identifier on the original claim (CLM01 of the ANSI ASC X12 837, if applicable). This data element is the primary key for posting the remittance information into the provider’s database. In the case of pharmacy claims, this is the prescription reference number (field 402-02 in the NCPDP 5.1 format). |
| statusCode | CLP-02 | M | To determine the full claim status, reference claim adjustment reason codes in the CAS segment in conjunction with this claim status code. |
| totalChargeAmount | CLP-03 | M | Use this monetary amount for the submitted charges for this claim. The amount can be positive, zero, or negative. Decimal elements will be limited to a maximum length of 10 characters including reported or implied places for cents (implied value of 00 after the decimal point). |
| paymentAmount | CLP-04 | M | Use this monetary amount for the amount paid for this claim. It can be positive, zero, or negative, but the value in BPR02 may not be negative. |
| patientResponsibilityAmount | CLP-05 | O | SITUATIONAL RULE: Required when the patient’s responsibility is greater than zero. Amounts in CLP05 must have supporting adjustments reflected in CAS segments at the 2100 (CLP) or 2110 (SVC) loop level with a Claim Adjustment Group (CAS01) code of PR (Patient Responsibility). Use this monetary amount for the payer’s statement of the patient responsibility amount for this claim, which can include such items as deductible, non-covered services, co-pay, and co-insurance. This is not used for reversals. |
| filingIndicatorCode | CLP-06 | M | For many providers to electronically post the 835 remittance data to their patient accounting systems without human intervention, a unique, provider-specific insurance plan code is needed. |
| payerClaimControlNumber | CLP-07 | M | Use this number for the payer’s internal control number. This number must apply to the entire claim. |
| facilityTypeCode | CLP-08 | O | SITUATIONAL RULE: Required when the information was received on the original claim. May be provided at the sender’s discretion, but cannot be required by the receiver. |
| claimFrequencyCode | CLP-09 | O | SITUATIONAL RULE: Required when the information was received on the original claim. |
| diagnosisRelatedGroupDrgCode | CLP-11 | O | SITUATIONAL RULE: Required for institutional claims when the claim was adjudicated using a DRG. |
| diagnosisRelatedGroupDrgWeight | CLP-12 | O | SITUATIONAL RULE: Required for institutional claims when the claim was adjudicated using a DRG. This is the adjudicated DRG Weight. |
| dischargeFraction | CLP-13 | O | SITUATIONAL RULE: Required when a discharge fraction was applied in the adjudication process. This is the adjudicated discharge fraction. |
2.4.3.2 Claim Adjustment (claimLoop[].claimAdjustment[])
| DTO Claim Adjustment Fields | 835 Segment | Required? | Comments |
|---|---|---|---|
| claimAdjustmentGroupCode | CAS-01 | M | Evaluate the usage of group codes in CAS01 based on the following order for their applicability to a set of one or more adjustments: PR, CO, PI, OA. |
| adjustmentReasonCode | CAS-02/05/08/11/14/17 | M | Multiple elements within the same CAS (Claim Adjustment Segment) are grouped together for interpretation or processing. |
| monetaryAmount | CAS-03/06/09/12/15/18 | M | Multiple elements within the same CAS (Claim Adjustment Segment) are grouped together for interpretation or processing. |
| adjustmentQuantity | CAS-04/07/10/13/16/19 | M | Multiple elements within the same CAS (Claim Adjustment Segment) are grouped together for interpretation or processing. |
2.4.3.3 Involved Entities Information (claimLoop[].involvedEntitiesInfo[])
| DTO Involved Entities Fields | 835 Segment | Required? | Comments |
|---|---|---|---|
| entityIdentifierCode | NM1-01 | M | The value of QC indicates patient |
| entityTypeQualifier | NM1-02 | M | Entity Type Qualifier |
| lastName | NM1-03 | S | SITUATIONAL RULE: Required for all claims that are not Retail Pharmacy claims or for Retail Pharmacy claims when the information is known. |
| firstName | NM1-04 | O | SITUATIONAL RULE: Required when the patient has a first name and it is known. |
| middleNameOrInitial | NM1-05 | O | SITUATIONAL RULE: Required when the patient has a middle name or initial and it is known. |
| nameSuffix | NM1-07 | O | SITUATIONAL RULE: Required when this information is necessary for identification of the individual. |
| identificationCodeQualifier | NM1-08 | S | SITUATIONAL RULE: Required when the patient identifier (NM109) is known or was reported on the healthcare claim. |
| entityIdentifier | NM1-09 | S | SITUATIONAL RULE: Required when the patient identifier is known or was reported on the health care claim. |
2.4.3.4 Inpatient Adjudication Information (claimLoop[].inPatientAdjudicationInformation)
| DTO Inpatient Adjudication Fields | 835 Segment | Required? | Comments |
|---|---|---|---|
| coveredDaysOrVisitsCount | MIA-01 | M | Implementers utilizing the MIA segment always transmit the number zero. |
| ppsOperatingOutlierAmount | MIA-02 | O | SITUATIONAL RULE: Required when an additional payment is made for excessive cost incurred by the provider when the payer is Medicare or Medicaid and the value is different than zero. |
| lifetimePsychiatricDaysCount | MIA-03 | O | SITUATIONAL RULE: Required for psychiatric claims when the payer is Medicare or Medicaid and the value is different than zero. |
| claimDrgAmount | MIA-04 | O | SITUATIONAL RULE: Required for claims paid under a Diagnostic Related Group when the payer is Medicare or Medicaid and the value is different than zero. |
| claimPaymentRemarkCode | MIA-05 | O | SITUATIONAL RULE: Required when a claim level Claim Payment Remark Code applies to this claim. |
| claimDisproportionateShareAmount | MIA-06 | O | SITUATIONAL RULE: Required when Medicare or Medicaid is the payer and the value is different than zero. |
| claimMspPassThroughAmount | MIA-07 | O | SITUATIONAL RULE: Required when Medicare or Medicaid is the payer and the value is different than zero. |
| claimPpsCapitalAmount | MIA-08 | O | SITUATIONAL RULE: Required when Medicare or Medicaid is the payer and the value is different than zero. |
| ppsCapitalFspDrgAmount | MIA-09 | O | SITUATIONAL RULE: Required when Medicare or Medicaid is the payer and the value is different than zero. |
| ppsCapitalHspDrgAmount | MIA-10 | O | SITUATIONAL RULE: Required when Medicare or Medicaid is the payer and the value is different than zero. |
| ppsCapitalDshDrgAmount | MIA-11 | O | SITUATIONAL RULE: Required when Medicare or Medicaid is the payer and the value is different than zero. |
| oldCapitalAmount | MIA-12 | O | SITUATIONAL RULE: Required when Medicare or Medicaid is the payer and the value is different than zero. |
| ppsCapitalImeAmount | MIA-13 | O | SITUATIONAL RULE: Required when Medicare or Medicaid is the payer and the value is different than zero. |
| ppsOperatingHospitalSpecificDrgAmount | MIA-14 | O | SITUATIONAL RULE: Required when Medicare or Medicaid is the payer and the value is different than zero. |
| costReportDaysCount | MIA-15 | O | SITUATIONAL RULE: Required when Medicare or Medicaid is the payer and the value is different than zero. |
| ppsOperatingFederalSpecificDrgAmount | MIA-16 | O | SITUATIONAL RULE: Required when Medicare or Medicaid is the payer and the value is different than zero. |
2.4.3.5 Outpatient Adjudication Information (claimLoop[].outPatientAdjudicationInformation)
| DTO Outpatient Adjudication Fields | 835 Segment | Required? | Comments |
|---|---|---|---|
| reimbursementRate | MOA-01 | O | SITUATIONAL RULE: Required when the outpatient institutional claim reimbursement rate is not zero for a Medicare or Medicaid claim. |
| hcpcsPayableAmount | MOA-02 | O | SITUATIONAL RULE: Required when the outpatient institutional claim HCPCS Payable Amount is not zero for a Medicare or Medicaid claim. |
| claimPaymentRemarkCode1 | MOA-03 | O | SITUATIONAL RULE: Required when a Claim Payment Remark Code applies to this entire claim. |
| claimPaymentRemarkCode2 | MOA-04 | O | SITUATIONAL RULE: Required when an additional Claim Payment Remark Code applies to this entire claim. |
| claimPaymentRemarkCode3 | MOA-05 | O | SITUATIONAL RULE: Required when an additional Claim Payment Remark Code applies to this entire claim. |
| claimPaymentRemarkCode4 | MOA-06 | O | SITUATIONAL RULE: Required when an additional Claim Payment Remark Code applies to this entire claim. |
| claimPaymentRemarkCode5 | MOA-07 | O | SITUATIONAL RULE: Required when an additional Claim Payment Remark Code applies to this entire claim. |
| esrdPaymentAmount | MOA-08 | O | SITUATIONAL RULE: Required when the outpatient institutional claim ESRD Payment Amount is not zero for a Medicare or Medicaid claim. |
2.4.3.6 Related Identification (claimLoop[].relatedIdentification[])
DTO Related Identification Fields | 835 Segment | Required? | Comments |
|---|---|---|---|
referenceIdentificationQualifier | REF-01 | M | 1L - Group or Policy Number 1W - Member Identification Number 28 - Employee Identification Number 6P - Group Number BB - Authorization Number |
referenceIdentification | REF-02 | M | Reference Identification |
2.4.3.7 Relevant Dates (claimLoop[].relevantDates[])
| DTO Relevant Dates Fields | 835 Segment | Required? | Comments |
|---|---|---|---|
| qualifier | DTM-01 | M | Date/Time Qualifier |
| date | DTM-02 | M | Report the end date for the adjudication production cycle for claims included in this 835. |
2.4.3.8 Claim Contact Information (claimLoop[].claimContactInformation)
| DTO Claim Contact Information Fields | 835 Segment | Required? | Comments |
|---|---|---|---|
| name | PER-02 | O | SITUATIONAL RULE: Required when the name of the individual to contact is not already defined or is different than the name within the prior contact segment (PER). |
| primaryPhone | PER-03/04 | M | Multiple elements within the same PER segment are grouped together for interpretation or processing. |
| secondaryPhone | PER-05/06 | S | SITUATIONAL RULE: Required when a second claim-specific communications contact number exists. |
| PER-07 | X | Multiple elements within the same PER segment are grouped together for interpretation or processing. |
2.4.3.9 Loop 2110 (claimLoopInformation[].loop2110[])
Loop 2110 represents service line payment information—that is, the details for each individual service within a claim. Inside this loop, you have segments:
- SVC (Service Payment Information) – describes the procedure code, charge amount, and payment amount.
- DTM (Date/Time) – indicates the date of service.
- CAS (Service Adjustment) – shows any adjustments made at the service line level.
- REF (Reference Identification) – may include authorization or tracking numbers.
- AMT (Monetary Amount) – used for reporting additional monetary amounts like patient responsibility.
If a claim (from Loop 2100) includes multiple services, the 835 file will contain multiple Loop 2110s nested within that Loop 2100—one for each service line.
Summary table:
| DTO Property | 835 Segment | Required? | Comments |
|---|---|---|---|
| servicePaymentInformation | SVC | M | Service Payment Information |
| serviceDate | DTM | M | Service Date |
| serviceAdjustment | CAS | M | Claim Adjustment Group Code |
| relatedIdentificationRefSvc | REF | M | Service Identification |
| serviceSupplementalAmountInformationAmt | AMT | O | SITUATIONAL RULE: Required when the value of any specific amount identified by the AMT01 qualifier is non-zero. |
| healthCareRemarkCode | LQ | O | SITUATIONAL RULE: Required when remark codes or NCPDP Reject/Payment codes are necessary for the provider to fully understand the adjudication message for a given service line. |
2.4.3.9.1 Service Payment Information (loop2110[].servicePaymentInformation)
| DTO Service Payment Information Fields | 835 Segment | Required? | Comments |
|---|---|---|---|
| compositeMedicalProcedureId1 | SVC-01 | M | This is the adjudicated medical procedure information. This code is a composite data structure. |
| lineItemChargeAmount | SVC-02 | M | Use this monetary amount for the submitted service charge amount. Decimal elements will be limited to a maximum length of 10 characters including reported or implied places for cents (implied value of 00 after the decimal point). |
| lineItemProviderPaymentAmount | SVC-03 | O | Use this number for the service amount paid. The value in SVC03 must equal the value in SVC02 minus all monetary amounts in the subsequent CAS segments of this loop. |
| nationalUniformBillingCommitteeRevenueCode | SVC-04 | O | SITUATIONAL RULE: Required when an NUBC revenue code was considered during adjudication in addition to a procedure code already identified in SVC01. |
| quantity1 | SVC-05 | O | SITUATIONAL RULE: Required when the paid units of service are different than one. May be provided at sender’s discretion, but cannot be required by the receiver. |
| compositeMedicalProcedureId2 | SVC-06 | O | SITUATIONAL RULE: Required when the adjudicated procedure code provided in SVC01 is different from the submitted procedure code from the original claim. |
| quantity2 | SVC-07 | O | SITUATIONAL RULE: Required when the paid units of service provided in SVC05 is different from the submitted units of service from the original claim. |
2.4.3.9.1.1 Composite Medical Procedure ID 1 (servicePaymentInformation.compositeMedicalProcedureId1)
| DTO Composite Medical Procedure ID 1 Fields | 835 Segment | Required? | Comments |
|---|---|---|---|
| productServiceIdQualifier | SVC-01>01 | M | The value in SVC01-1 qualifies the values in SVC01-2, SVC01-3, SVC01-4, SVC01-5, SVC01-6, and SVC01-7. |
| procedureCode | SVC-01>02 | M | This is the adjudicated procedure code or revenue code as identified by the qualifier in SVC01-1. |
| procedureModifier1 | SVC-01>03 | O | SITUATIONAL RULE: Required when a procedure code modifier applies to this service. |
| procedureModifier2 | SVC-01>04 | O | SITUATIONAL RULE: Required when a second procedure code modifier applies to this service. |
| procedureModifier3 | SVC-01>05 | O | SITUATIONAL RULE: Required when a third procedure code modifier applies to this service. |
| procedureModifier4 | SVC-01>06 | O | SITUATIONAL RULE: Required when a fourth procedure code modifier applies to this service. |
| procedureCodeDesc | SVC-01>07 | O | Procedure code description |
2.4.3.9.1.2 Composite Medical Procedure ID 2 (servicePaymentInformation.compositeMedicalProcedureId2)
| DTO Composite Medical Procedure ID 2 Fields | 835 Segment | Required? | Comments |
|---|---|---|---|
| productServiceIdQualifier | SVC-06>01 | M | The value in SVC06-1 qualifies the value in SVC06-2, SVC06-3, SVC06-4, SVC06-5, SVC06-6, and SVC06-7. |
| procedureCode | SVC-06>02 | M | Product/Service ID |
| procedureModifier1 | SVC-06>03 | O | SITUATIONAL RULE: Required when a procedure code modifier applies to this service. |
| procedureModifier2 | SVC-06>04 | O | SITUATIONAL RULE: Required when a second procedure code modifier applies to this service. |
| procedureModifier3 | SVC-06>05 | O | SITUATIONAL RULE: Required when a third procedure code modifier applies to this service. |
| procedureModifier4 | SVC-06>06 | O | SITUATIONAL RULE: Required when a fourth procedure code modifier applies to this service. |
| procedureCodeDesc | SVC-06>07 | O | SITUATIONAL RULE: Required when a description was received on the original service for a not otherwise classified procedure code. |
2.4.3.9.2 Service Date (loop2110[].serviceDate)
DTO Service Date Fields | 835 Segment | Required? | Comments |
|---|---|---|---|
dateTimeQualifier | DTM-01 | M | 150 - Service Period Start 151 - Service Period End 472 - Service |
date | DTM-02 | M | Date |
2.4.3.9.3 Service Adjustment (loop2110[].serviceAdjustment)
| DTO Service Adjustment Fields | 835 Segment | Required? | Comments |
|---|---|---|---|
| claimAdjustmentGroupCode | CAS-01 | M | Evaluate the usage of group codes in CAS01 based on the following order for their applicability to a set of one or more adjustments: PR, CO, PI, OA. |
| adjustmentReasonCode | CAS-02/05/08/11/14/17 | M | Multiple elements within the same CAS (Claim Adjustment Segment) are grouped together for interpretation or processing. |
| monetaryAmount | CAS-03/06/09/12/15/18 | M | Multiple elements within the same CAS (Claim Adjustment Segment) are grouped together for interpretation or processing. |
| adjustmentQuantity | CAS-04/07/10/13/16/19 | M | Multiple elements within the same CAS (Claim Adjustment Segment) are grouped together for interpretation or processing. |
2.4.3.9.4 Related Identification (loop2110[].relatedIdentificationRefSvc)
DTO Related Identification Fields | 835 Segment | Required? | Comments |
|---|---|---|---|
referenceIdentificationQualifier | REF-01 | M | 1S - Ambulatory Patient Group (APG) Number APC - Ambulatory Payment Classification BB - Authorization Number E9 - Attachment Code G1 - Prior Authorization Number G3 - Predetermination of Benefits Identification Number LU - Location Number (Payer’s identification for the provider location. REQUIRED when the specific site of service affected the payment of the claim.) RB - Rate Code Number reflects Ambulatory Surgical Center (ASC) rate for Medicare, either 0, 50, 100, or 150%. |
referenceIdentifier | REF-02 | M | Reference Identification |
2.4.3.9.5 Service Supplemental Amount Information (loop2110[].serviceSupplementalAmountInformationAmt)
DTO Service Supplemental Amount Fields | 835 Segment | Required? | Comments |
|---|---|---|---|
amountQualifierCode | AMT-01 | M | B6 - Allowed - Actual (Allowed amount is the amount the payer deems payable prior to considering patient responsibility.) KH - Deduction Amount (Late Filing Reduction) T - Tax T2 - Total Claim Before Taxes (Use this monetary amount for the service charge before taxes. This is only used when there is an applicable tax amount on this service.) ZK - Federal Medicare or Medicaid Payment Mandate - Category 1 ZL - Federal Medicare or Medicaid Payment Mandate - Category 2 |
claimSupplementalInformationAmount | AMT-02 | M | Decimal elements will be limited to a maximum length of 10 characters including reported or implied places for cents (implied value of 00 after the decimal point). This applies to all subsequent 782 elements. |
2.4.3.9.6 Health Care Remark Code (loop2110[].healthCareRemarkCode)
DTO Health Care Remark Code Fields | 835 Segment | Required? | Comments |
|---|---|---|---|
codeListQualifierCode | LQ-01 | O | HE - Claim Payment Remark Codes RX - National Council for Prescription Drug Programs Reject/Payment Codes. SITUATIONAL RULE: Required when remark codes or NCPDP Reject/Payment codes are necessary for the provider to fully understand the adjudication message for a given service line. If not required by this implementation guide, may be provided at the sender’s discretion, but cannot be required by the receiver. |
remarkCode | LQ-02 | X | Industry Code. SITUATIONAL RULE: If LQ01 is present, then LQ02 is required. |
2.6 Provider Level Adjustment (payment.providerLevelAdjustments)
| DTO Provider Level Adjustment Fields | 835 Segment | Required? | Comments |
|---|---|---|---|
| providerIdentifier | PLB-01 | M | When the National Provider Identifier (NPI) is mandated and the provider is a covered health care provider under that mandate, this must be the NPI assigned to the provider. Until the NPI is mandated, this is the provider identifier as assigned by the payer. |
| fiscalPeriodDate | PLB-02 | M | This is the last day of the provider’s fiscal year. If the end of the provider’s fiscal year is not known by the payer, use December 31st of the current year. |
2.5.1 Adjustments (payment.providerLevelAdjustment[].adjustments[])
| DTO Adjustments Fields | 835 Segment | Required? | Comments |
|---|---|---|---|
| reasonCode | PLB-03 | M | The reason code for the adjustment. |
| identifier | PLB-03 | M | The identifier associated with the adjustment. |
| amount | PLB-04 | M | The monetary amount of the adjustment. |
Updated 4 months ago
