Dental Claims JSON
Submit an 837D dental claim in JSON format
/dental-claims/submission
This endpoint sends 837D dental claims to payers.
- Call this endpoint with a JSON payload.
- Stedi translates your request to the X12 837 EDI format and sends it to the payer.
- The endpoint returns a response from Stedi in JSON format containing information about the claim you submitted and whether the submission was successful.
Visit Submit dental claims for a full how-to guide.
A Stedi API Key for authentication.
Body
Information about the assistant surgeon who rendered the care. Use this object when the rendering providers provided these services in the role of the assistant surgeon.
This should be an individual, not an organization, and you should supply at least the surgeon's lastName
, taxonomyCode
, and an identifier, which is typically the npi
.
Information about the billing provider.
- For tax identification, you must include either the provider's Social Security Number (SSN) or their Employer Identification Number (EIN), but not both.
- If the billing provider has an NPI, you must include it in the
npi
property. If the billing provider does not have an NPI, you must include either thecommercialNumber
or thelocationNumber
for identification. Some payers may require thenpi
and either thecommercialNumber
or thelocationNumber
as a secondary identifier.
A code specifying the type of transaction. Defaults to CH
if not provided.
31
: Only for use by state Medicaid agencies performing post payment recovery.CH
: Use when the transaction contains only fee for service claims or claims with at least one chargeable line item. Also use when it's not clear whether a transaction contains claims or capitated encounters, or if the transaction contains a mix of claims and capitated encounters.RP
: Use for capitated encounters. Also use when the transaction is being sent to an entity for purposes other than adjudication of a claim. For example, when you're sending the claim to a state health agency that is using the claim for health data reporting purposes.
31
CH
RP
Information about the healthcare claim.
Note that the objects and properties marked as required are required for all claims, while others are conditionally required, depending on type of claim and claim circumstances. For example, you must always provide the placeOfServiceCode
property, but you only need to provide the otherSubscriberInformation
object in coordination of benefits scenarios. When you include a conditionally required object, you must provide all of its required properties.
Dependent who received the medical care associated with the claim. Note that if the dependent has their own member ID for the health plan, you should include the dependent's information in the subscriber
object instead. To check whether a dependent has a member ID, submit an Eligibility Check to the payer. The payer returns the dependent's member ID in the dependents.memberId
property in the response, if present.
Use when the address for payment is different than that of the billing provider for this claim.
Use for subrogation payment requests. If you include this information, you must also set the claimInformation.otherSubscriberInformation.payerPaidAmount
to the amount the payer (for example, Medicaid) actually paid.
The payer's address. Some payers use this for internal routing. Only provide this address if the payer explicitly requires it.
The entity responsible for the payment of the claim, such as an insurance company or government agency.
Information about the provider who directed the patient to the rendering provider for care. For example, a primary care physician may refer patients to a specialist. Use when the referring provider applies to the entire claim, not just a specific service line.
This should be an individual, not an organization, and you should supply at least the provider's lastName
and an identifier, which is typically the npi
.
Information about the person or company (laboratory or other facility) who rendered the care. Use this object for all types of rendering providers including laboratories. When a substitute provider (locum tenens) was used, enter that provider's information here.
- Use when the provider applies to the entire claim or to at least one service line. For example, if a claim had two service lines with two different rendering providers, you would include the provider for the first service line here and leave the
claimInformation.serviceLines.renderingProvider
object for that service line blank. Then, you would specify the second provider in the appropriate service line'sclaimInformation.serviceLines.renderingProvider
object. - You can omit this object when the rendering provider is the same as the billing provider. In that case, you would include the provider's information in the
billing
object and leave this object blank.
The entity submitting the healthcare claim. This can be either an individual or an organization, such as a doctor, hospital, or insurance company. You must submit at least organizationName
or lastName
properties and the contactInformation
object. If you don't supply the submitterIdentification
property, Stedi uses the value from billing.npi
in the request.
The person or entity who is the primary policyholder for the health plan or a dependent with their own member ID.
- When a dependent has a unique, payer-assigned member ID, treat them as the
subscriber
for the claim submission - include their information here and omit thedependent
object from the request. Note that the subscriber can be an individual or a business entity. Stedi treats the subscriber as an individual when the request doesn't contain a value for thesubscriber.organizationName
property. - You must set the
dateOfBirth
andgender
properties when the subscriber is the patient. Stedi determines that the subscriber is the patient when thedependent
object is not included in the request. - If either
dateOfBirth
orgender
is set, you must include both properties. You can either include both properties or neither within a single request.
The entity responsible for overseeing the rendering provider and the care reported in this claim. Applies when the rendering provider is supervised by a physician. Use when the provider applies to the entire claim, not just a specific service line.
This should be an individual, not an organization, and you should supply at least the provider's lastName
and an identifier, which is typically the npi
.
This is the payer's business name, like Cigna or Aetna.
This is the Payer ID. Visit the Payer Network for a complete list. You can send requests using the Primary Payer ID, the Stedi Payer ID, or any alias listed in the payer record.
Whether you want to send a test or production claim. This property also allows you to filter claims in the Stedi portal by production or test data. By default, this property is set to P
for production data. Use T
to designate a claim as test data.
Response
DentalClaimsSubmission 200 response
Information about the claim.
An identifier for the transaction.
Currently not used.
Currently not used.
A list of errors. Currently not used.
Currently not used.
A 200
response indicates that Stedi successfully generated the X12 EDI claim format required by the payer. It does not indicate whether the payer has accepted the claim - the payer will respond later with a 277CA containing this information. Learn more about 277CAs. A 400
response indicates one or more problems with the claim data in the request. Examples include missing required fields, invalid values, or incorrect data types. The response includes a message describing the problem.
200 OK
400 BAD_REQUEST
Metadata from Stedi about the request.
Information about the payer for the submitted claim.
The status of the claim submission.
An ID for the payer you identified in the original claim. This value may differ from the tradingPartnerServiceId
you submitted in the original request because it reflects the payer's internal concept of their ID, not necessarily the ID Stedi uses to route requests to this payer.
A list of warnings.
curl --request POST \
--url "https://healthcare.us.stedi.com/2024-04-01/dental-claims/submission" \
--header "Authorization: <api_key>" \
--header "Content-Type: application/json" \
--data '{
"billing": {
"address": {
"address1": "ABA Inc 123 Some St",
"city": "Denver",
"postalCode": "802383000",
"state": "CO"
},
"contactInformation": {
"name": "ABA Inc",
"phoneNumber": "3134893157"
},
"employerId": "123456789",
"npi": "1999999992",
"organizationName": "ABA Inc",
"providerType": "BillingProvider",
"taxonomyCode": "106S00000X"
},
"claimInformation": {
"benefitsAssignmentCertificationIndicator": "Y",
"claimChargeAmount": "832.00",
"claimFilingCode": "FI",
"claimFrequencyCode": "1",
"claimSupplementalInformation": {
"priorAuthorizationNumber": "20231010012345678"
},
"healthCareCodeInformation": [
{
"diagnosisCode": "K081",
"diagnosisTypeCode": "ABK"
}
],
"patientControlNumber": "<YOUR-CLAIM-ID>",
"placeOfServiceCode": "12",
"planParticipationCode": "A",
"releaseInformationCode": "Y",
"serviceFacilityLocation": {
"address": {
"address1": "ABA Inc 123 Some St",
"city": "Denver",
"postalCode": "802383100",
"state": "CO"
},
"npi": "1999999992",
"organizationName": "ABA Inc",
"phoneNumber": "3131234567"
},
"serviceLines": [
{
"dentalService": {
"compositeDiagnosisCodePointers": {
"diagnosisCodePointers": [
"1"
]
},
"lineItemChargeAmount": "832.00",
"oralCavityDesignation": [
"1",
"2"
],
"placeOfServiceCode": "12",
"procedureCode": "D7140",
"procedureCount": 2,
"prosthesisCrownOrInlayCode": "I"
},
"providerControlNumber": "a0UDo000000dd2dMAA",
"renderingProvider": {
"firstName": "Jane",
"lastName": "Doe",
"npi": "1999999992",
"taxonomyCode": "122300000X"
},
"serviceDate": "20230428",
"teethInformation": [
{
"toothCode": "3",
"toothSurfaceCodes": [
"M",
"O"
]
}
]
}
],
"signatureIndicator": "Y",
"toothStatus": [
{
"toothNumber": "3",
"toothStatusCode": "E"
}
]
},
"payerAddress": {
"address1": "PO Box 7000",
"city": "Camden",
"postalCode": "29000",
"state": "SC"
},
"receiver": {
"organizationName": "United HealthCare Dental"
},
"rendering": {
"firstName": "Jane",
"lastName": "Doe",
"npi": "1999999992",
"providerType": "RenderingProvider",
"taxonomyCode": "106S00000X"
},
"submitter": {
"contactInformation": {
"name": "BILLING DEPARTMENT",
"phoneNumber": "3131234567"
},
"organizationName": "ABA Inc",
"submitterIdentification": "<YOUR-SUBMITTER-ID"
},
"subscriber": {
"address": {
"address1": "1234 Some St",
"city": "Buckeye",
"postalCode": "85326",
"state": "AZ"
},
"dateOfBirth": "20180615",
"firstName": "John",
"gender": "F",
"groupNumber": "1234567890",
"lastName": "Doe",
"memberId": "123412345",
"paymentResponsibilityLevelCode": "P"
},
"tradingPartnerName": "United HealthCare Dental",
"tradingPartnerServiceId": "52133",
"usageIndicator": "T"
}'
const body = JSON.stringify({
"billing": {
"address": {
"address1": "ABA Inc 123 Some St",
"city": "Denver",
"postalCode": "802383000",
"state": "CO"
},
"contactInformation": {
"name": "ABA Inc",
"phoneNumber": "3134893157"
},
"employerId": "123456789",
"npi": "1999999992",
"organizationName": "ABA Inc",
"providerType": "BillingProvider",
"taxonomyCode": "106S00000X"
},
"claimInformation": {
"benefitsAssignmentCertificationIndicator": "Y",
"claimChargeAmount": "832.00",
"claimFilingCode": "FI",
"claimFrequencyCode": "1",
"claimSupplementalInformation": {
"priorAuthorizationNumber": "20231010012345678"
},
"healthCareCodeInformation": [
{
"diagnosisCode": "K081",
"diagnosisTypeCode": "ABK"
}
],
"patientControlNumber": "<YOUR-CLAIM-ID>",
"placeOfServiceCode": "12",
"planParticipationCode": "A",
"releaseInformationCode": "Y",
"serviceFacilityLocation": {
"address": {
"address1": "ABA Inc 123 Some St",
"city": "Denver",
"postalCode": "802383100",
"state": "CO"
},
"npi": "1999999992",
"organizationName": "ABA Inc",
"phoneNumber": "3131234567"
},
"serviceLines": [
{
"dentalService": {
"compositeDiagnosisCodePointers": {
"diagnosisCodePointers": [
"1"
]
},
"lineItemChargeAmount": "832.00",
"oralCavityDesignation": [
"1",
"2"
],
"placeOfServiceCode": "12",
"procedureCode": "D7140",
"procedureCount": 2,
"prosthesisCrownOrInlayCode": "I"
},
"providerControlNumber": "a0UDo000000dd2dMAA",
"renderingProvider": {
"firstName": "Jane",
"lastName": "Doe",
"npi": "1999999992",
"taxonomyCode": "122300000X"
},
"serviceDate": "20230428",
"teethInformation": [
{
"toothCode": "3",
"toothSurfaceCodes": [
"M",
"O"
]
}
]
}
],
"signatureIndicator": "Y",
"toothStatus": [
{
"toothNumber": "3",
"toothStatusCode": "E"
}
]
},
"payerAddress": {
"address1": "PO Box 7000",
"city": "Camden",
"postalCode": "29000",
"state": "SC"
},
"receiver": {
"organizationName": "United HealthCare Dental"
},
"rendering": {
"firstName": "Jane",
"lastName": "Doe",
"npi": "1999999992",
"providerType": "RenderingProvider",
"taxonomyCode": "106S00000X"
},
"submitter": {
"contactInformation": {
"name": "BILLING DEPARTMENT",
"phoneNumber": "3131234567"
},
"organizationName": "ABA Inc",
"submitterIdentification": "<YOUR-SUBMITTER-ID"
},
"subscriber": {
"address": {
"address1": "1234 Some St",
"city": "Buckeye",
"postalCode": "85326",
"state": "AZ"
},
"dateOfBirth": "20180615",
"firstName": "John",
"gender": "F",
"groupNumber": "1234567890",
"lastName": "Doe",
"memberId": "123412345",
"paymentResponsibilityLevelCode": "P"
},
"tradingPartnerName": "United HealthCare Dental",
"tradingPartnerServiceId": "52133",
"usageIndicator": "T"
})
fetch("https://healthcare.us.stedi.com/2024-04-01/dental-claims/submission", {
headers: {
"Authorization": "<api_key>"
},
body
})
package main
import (
"fmt"
"net/http"
"io/ioutil"
"strings"
)
func main() {
url := "https://healthcare.us.stedi.com/2024-04-01/dental-claims/submission"
body := strings.NewReader(`{
"billing": {
"address": {
"address1": "ABA Inc 123 Some St",
"city": "Denver",
"postalCode": "802383000",
"state": "CO"
},
"contactInformation": {
"name": "ABA Inc",
"phoneNumber": "3134893157"
},
"employerId": "123456789",
"npi": "1999999992",
"organizationName": "ABA Inc",
"providerType": "BillingProvider",
"taxonomyCode": "106S00000X"
},
"claimInformation": {
"benefitsAssignmentCertificationIndicator": "Y",
"claimChargeAmount": "832.00",
"claimFilingCode": "FI",
"claimFrequencyCode": "1",
"claimSupplementalInformation": {
"priorAuthorizationNumber": "20231010012345678"
},
"healthCareCodeInformation": [
{
"diagnosisCode": "K081",
"diagnosisTypeCode": "ABK"
}
],
"patientControlNumber": "<YOUR-CLAIM-ID>",
"placeOfServiceCode": "12",
"planParticipationCode": "A",
"releaseInformationCode": "Y",
"serviceFacilityLocation": {
"address": {
"address1": "ABA Inc 123 Some St",
"city": "Denver",
"postalCode": "802383100",
"state": "CO"
},
"npi": "1999999992",
"organizationName": "ABA Inc",
"phoneNumber": "3131234567"
},
"serviceLines": [
{
"dentalService": {
"compositeDiagnosisCodePointers": {
"diagnosisCodePointers": [
"1"
]
},
"lineItemChargeAmount": "832.00",
"oralCavityDesignation": [
"1",
"2"
],
"placeOfServiceCode": "12",
"procedureCode": "D7140",
"procedureCount": 2,
"prosthesisCrownOrInlayCode": "I"
},
"providerControlNumber": "a0UDo000000dd2dMAA",
"renderingProvider": {
"firstName": "Jane",
"lastName": "Doe",
"npi": "1999999992",
"taxonomyCode": "122300000X"
},
"serviceDate": "20230428",
"teethInformation": [
{
"toothCode": "3",
"toothSurfaceCodes": [
"M",
"O"
]
}
]
}
],
"signatureIndicator": "Y",
"toothStatus": [
{
"toothNumber": "3",
"toothStatusCode": "E"
}
]
},
"payerAddress": {
"address1": "PO Box 7000",
"city": "Camden",
"postalCode": "29000",
"state": "SC"
},
"receiver": {
"organizationName": "United HealthCare Dental"
},
"rendering": {
"firstName": "Jane",
"lastName": "Doe",
"npi": "1999999992",
"providerType": "RenderingProvider",
"taxonomyCode": "106S00000X"
},
"submitter": {
"contactInformation": {
"name": "BILLING DEPARTMENT",
"phoneNumber": "3131234567"
},
"organizationName": "ABA Inc",
"submitterIdentification": "<YOUR-SUBMITTER-ID"
},
"subscriber": {
"address": {
"address1": "1234 Some St",
"city": "Buckeye",
"postalCode": "85326",
"state": "AZ"
},
"dateOfBirth": "20180615",
"firstName": "John",
"gender": "F",
"groupNumber": "1234567890",
"lastName": "Doe",
"memberId": "123412345",
"paymentResponsibilityLevelCode": "P"
},
"tradingPartnerName": "United HealthCare Dental",
"tradingPartnerServiceId": "52133",
"usageIndicator": "T"
}`)
req, _ := http.NewRequest("POST", url, body)
req.Header.Add("Authorization", "<api_key>")
req.Header.Add("Content-Type", "application/json")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := ioutil.ReadAll(res.Body)
fmt.Println(res)
fmt.Println(string(body))
}
import requests
url = "https://healthcare.us.stedi.com/2024-04-01/dental-claims/submission"
body = {
"billing": {
"address": {
"address1": "ABA Inc 123 Some St",
"city": "Denver",
"postalCode": "802383000",
"state": "CO"
},
"contactInformation": {
"name": "ABA Inc",
"phoneNumber": "3134893157"
},
"employerId": "123456789",
"npi": "1999999992",
"organizationName": "ABA Inc",
"providerType": "BillingProvider",
"taxonomyCode": "106S00000X"
},
"claimInformation": {
"benefitsAssignmentCertificationIndicator": "Y",
"claimChargeAmount": "832.00",
"claimFilingCode": "FI",
"claimFrequencyCode": "1",
"claimSupplementalInformation": {
"priorAuthorizationNumber": "20231010012345678"
},
"healthCareCodeInformation": [
{
"diagnosisCode": "K081",
"diagnosisTypeCode": "ABK"
}
],
"patientControlNumber": "<YOUR-CLAIM-ID>",
"placeOfServiceCode": "12",
"planParticipationCode": "A",
"releaseInformationCode": "Y",
"serviceFacilityLocation": {
"address": {
"address1": "ABA Inc 123 Some St",
"city": "Denver",
"postalCode": "802383100",
"state": "CO"
},
"npi": "1999999992",
"organizationName": "ABA Inc",
"phoneNumber": "3131234567"
},
"serviceLines": [
{
"dentalService": {
"compositeDiagnosisCodePointers": {
"diagnosisCodePointers": [
"1"
]
},
"lineItemChargeAmount": "832.00",
"oralCavityDesignation": [
"1",
"2"
],
"placeOfServiceCode": "12",
"procedureCode": "D7140",
"procedureCount": 2,
"prosthesisCrownOrInlayCode": "I"
},
"providerControlNumber": "a0UDo000000dd2dMAA",
"renderingProvider": {
"firstName": "Jane",
"lastName": "Doe",
"npi": "1999999992",
"taxonomyCode": "122300000X"
},
"serviceDate": "20230428",
"teethInformation": [
{
"toothCode": "3",
"toothSurfaceCodes": [
"M",
"O"
]
}
]
}
],
"signatureIndicator": "Y",
"toothStatus": [
{
"toothNumber": "3",
"toothStatusCode": "E"
}
]
},
"payerAddress": {
"address1": "PO Box 7000",
"city": "Camden",
"postalCode": "29000",
"state": "SC"
},
"receiver": {
"organizationName": "United HealthCare Dental"
},
"rendering": {
"firstName": "Jane",
"lastName": "Doe",
"npi": "1999999992",
"providerType": "RenderingProvider",
"taxonomyCode": "106S00000X"
},
"submitter": {
"contactInformation": {
"name": "BILLING DEPARTMENT",
"phoneNumber": "3131234567"
},
"organizationName": "ABA Inc",
"submitterIdentification": "<YOUR-SUBMITTER-ID"
},
"subscriber": {
"address": {
"address1": "1234 Some St",
"city": "Buckeye",
"postalCode": "85326",
"state": "AZ"
},
"dateOfBirth": "20180615",
"firstName": "John",
"gender": "F",
"groupNumber": "1234567890",
"lastName": "Doe",
"memberId": "123412345",
"paymentResponsibilityLevelCode": "P"
},
"tradingPartnerName": "United HealthCare Dental",
"tradingPartnerServiceId": "52133",
"usageIndicator": "T"
}
response = requests.request("POST", url, json = body, headers = {
"Authorization": "<api_key>",
"Content-Type": "application/json"
})
print(response.text)
import java.net.URI;
import java.net.http.HttpClient;
import java.net.http.HttpRequest;
import java.net.http.HttpResponse;
import java.net.http.HttpResponse.BodyHandlers;
import java.time.Duration;
import java.net.http.HttpRequest.BodyPublishers;
var body = BodyPublishers.ofString("""{
"billing": {
"address": {
"address1": "ABA Inc 123 Some St",
"city": "Denver",
"postalCode": "802383000",
"state": "CO"
},
"contactInformation": {
"name": "ABA Inc",
"phoneNumber": "3134893157"
},
"employerId": "123456789",
"npi": "1999999992",
"organizationName": "ABA Inc",
"providerType": "BillingProvider",
"taxonomyCode": "106S00000X"
},
"claimInformation": {
"benefitsAssignmentCertificationIndicator": "Y",
"claimChargeAmount": "832.00",
"claimFilingCode": "FI",
"claimFrequencyCode": "1",
"claimSupplementalInformation": {
"priorAuthorizationNumber": "20231010012345678"
},
"healthCareCodeInformation": [
{
"diagnosisCode": "K081",
"diagnosisTypeCode": "ABK"
}
],
"patientControlNumber": "<YOUR-CLAIM-ID>",
"placeOfServiceCode": "12",
"planParticipationCode": "A",
"releaseInformationCode": "Y",
"serviceFacilityLocation": {
"address": {
"address1": "ABA Inc 123 Some St",
"city": "Denver",
"postalCode": "802383100",
"state": "CO"
},
"npi": "1999999992",
"organizationName": "ABA Inc",
"phoneNumber": "3131234567"
},
"serviceLines": [
{
"dentalService": {
"compositeDiagnosisCodePointers": {
"diagnosisCodePointers": [
"1"
]
},
"lineItemChargeAmount": "832.00",
"oralCavityDesignation": [
"1",
"2"
],
"placeOfServiceCode": "12",
"procedureCode": "D7140",
"procedureCount": 2,
"prosthesisCrownOrInlayCode": "I"
},
"providerControlNumber": "a0UDo000000dd2dMAA",
"renderingProvider": {
"firstName": "Jane",
"lastName": "Doe",
"npi": "1999999992",
"taxonomyCode": "122300000X"
},
"serviceDate": "20230428",
"teethInformation": [
{
"toothCode": "3",
"toothSurfaceCodes": [
"M",
"O"
]
}
]
}
],
"signatureIndicator": "Y",
"toothStatus": [
{
"toothNumber": "3",
"toothStatusCode": "E"
}
]
},
"payerAddress": {
"address1": "PO Box 7000",
"city": "Camden",
"postalCode": "29000",
"state": "SC"
},
"receiver": {
"organizationName": "United HealthCare Dental"
},
"rendering": {
"firstName": "Jane",
"lastName": "Doe",
"npi": "1999999992",
"providerType": "RenderingProvider",
"taxonomyCode": "106S00000X"
},
"submitter": {
"contactInformation": {
"name": "BILLING DEPARTMENT",
"phoneNumber": "3131234567"
},
"organizationName": "ABA Inc",
"submitterIdentification": "<YOUR-SUBMITTER-ID"
},
"subscriber": {
"address": {
"address1": "1234 Some St",
"city": "Buckeye",
"postalCode": "85326",
"state": "AZ"
},
"dateOfBirth": "20180615",
"firstName": "John",
"gender": "F",
"groupNumber": "1234567890",
"lastName": "Doe",
"memberId": "123412345",
"paymentResponsibilityLevelCode": "P"
},
"tradingPartnerName": "United HealthCare Dental",
"tradingPartnerServiceId": "52133",
"usageIndicator": "T"
}""");
HttpClient client = HttpClient.newBuilder()
.connectTimeout(Duration.ofSeconds(10))
.build();
HttpRequest.Builder requestBuilder = HttpRequest.newBuilder()
.uri(URI.create("https://healthcare.us.stedi.com/2024-04-01/dental-claims/submission"))
.header("Content-Type", "application/json")
.header("Authorization", "<api_key>")
.POST(body)
.build();
try {
HttpResponse<String> response = client.send(requestBuilder.build(), BodyHandlers.ofString());
System.out.println("Status code: " + response.statusCode());
System.out.println("Response body: " + response.body());
} catch (Exception e) {
e.printStackTrace();
}
{
"code": "string",
"message": "string"
}
{
"code": "string",
"message": "string"
}
{
"code": "string",
"message": "string"
}
{
"code": "string",
"message": "string"
}
{
"code": "string",
"message": "string"
}
{
"code": "string",
"message": "string"
}
{
"code": "string",
"message": "string"
}