Technical Reference Guide

📢

Coming Soon!!


📘

NOTE

Please use the table of contents on the right side of this page to quickly navigate to a desired topic.

API Data dictionary

The following data dictionary includes all the essential information you will need to integrate with our Pre-Care Estimate API and serves as a ready reference source should you encounter a problem. It is intended to support developers, analysts and stakeholders in understanding the structure, usage, and expected values of the data exchanged through the system.

Use this data dictionary:

  • As a reference when integrating with or troubleshooting the API/data interface.
  • Ensure all required fields are populated when constructing requests.
  • Refer to the error codes section for guidance on resolving issues.

📘

NOTE

Please note that our APIs are private and secure, and require unique credentials to generate a Bearer token and gain access to. Please (generate a Bearer token based on your API environment) to obtain access to our APIs.

URLs

SandboxProduction
Generate Bearer tokenhttps://sandbox-apigw.optum.com/apip/auth/sntl/v1/token

Health checkhttps://sandbox-apigw.optum.com/oihub/dental/claim/precheck/v1/healthcheck

Pre-Care Estimatehttps://sandbox-apigw.optum.com/oihub/dental/claim/precheck/v1
Generate Bearer tokenhttps://apigw.optum.com/apip/auth/sntl/v1/token

Health checkhttps://apigw.optum.com/oihub/dental/claim/precheck/v1/healthcheck

Pre-Care Estimatehttps://apigw.optum.com/oihub/dental/claim/precheck/v1

Query examples

See the following example queries or API requests that illustrate usage and expected formats; useful for developers and testers to understand expected formats and usage patterns.

Generate a Bearer token

Click Generate Bearer Token for Optum Real Dental APIs, for steps, see Generate a Bearer Token.

Perform API health check

All our APIs include a /healthcheck endpoint to verify that the connection to the API server is established and API is operational.

In Try It! interface

  1. Paste the Bearer token generated above in the CREDENTIALS >> Bearer box on the top-right side of the page.
  2. Click Try It! under the cURL Request box.

If the request was successful, a RTS payer claim precheck service is healthy response message shows in the RESPONSE box below the Try It! box. If the request failed, an error reason shows one of the HTTP Error Codes.

In your development platform

  1. Download our OpenAPI Spec (for example Pre-Care Estimate OpenAPI Spec) and import it into your development platform.
  2. Expand the API collection folder and click the Get Token endpoint to generate a Bearer token.
  3. Click the Body tab and enter your unique secure credentials.
    • grant_type: client_credentials
    • client_id: your client_id
    • client_secret: your client_secret
  4. Send the request to generate a Bearer token.
  5. Now, click the /healthcheck endpoint and send it view if the connection to the API server was established.

If the request was successful, the response shows as
{"message": "RTS payer claim precheck service is healthy"} in the response box. If the request failed, the reason shows in the response box. Here are the HTTP Error Codes.

Run the Pre-Care Estimate endpoint in Try It! interface

  1. Click Pre-Care Estimate (GraphQL).
  2. Enter the Bearer token generated in the section above in the CREDENTIALS >> Bearer box on the far-right side of the page.
  3. Enter the request body (see example below) in the Query field.
{
  "query": "query getClaimPrecheck($input: ClaimInput!) { claimPreCheck(input: $input) { transactionId x12ResponseData responseType x12Response277CA message statusCode } }",
  "variables": {
    "input": {
      "x12RequestData": "11111111"
    }
  }
}

Request body

Defines the input parameters required for API calls or data queries. Includes field names, data types, required/optional status, and descriptions.

❗️

IMPORTANT

Please note that the request requires you to provide all the required field values. Please note that these required values are GREYED out, which are pre-populated example values and can be selected to view the canned response. To view the required fields, expand the + symbol (indicated by the variables field below. For more information, please refer to the Technical Reference Guide section.

Parameters

ParameterDescription
queryGraphQL query (highlighted in red in the following figure) for the Pre-Care Estimate operation (pre-populated in Try It! interface) (required)
payerIdYour 5-digit payer ID (pre-populated in Try It! interface) (required)
x12RequestDataContains 837X12 request data (highlighted in blue in the following figure) for Institutional/Professional claims. MUST pass member ID, First Name, Last Name, DOB, and TIN. (pre-populated in Try It! interface) (Required)
providerTaxIdProvider ID (required use, 999999)
apim-gateway-client-idEx: bc32ffeb-8606-6f23-9f26-ee76438bed9f (Required)
  1. Enter the X12 request body (see example below) in the variables >> x12RequestData field.
ISA*00*          *00*          *ZZ*OptumTest      *ZZ*UNITED HEALTHCA*251125*1926*^*00501*329192637*0*P*:~GS*HC*OptumTest*UNITED HEALTHCARE / UNIMERICA DENTAL*20251125*1926*1*X*005010X224A2~ST*837*000000001*005010X224A2~BHT*0019*00*e4baeba400cf-1764098797093*20251125*192637*CH~NM1*41*1*OptumTest*CHRISTINE J.****46*691ccccb882c7ad15fe240b4~NM1*40*2*UNITED HEALTHCARE / UNIMERICA DENTAL*****PI*52133~HL*1**20*1~NM1*85*2*Anne Apxx*****XX*0928227765~N3*111 World Way~N4*Tustin*CA*92780~REF*EI*940562680~PER*IC*Anne Apxx*TE*6260000000~NM1*85*2*Anne Apxx*****XX*0928227765~N3*111 World Way~N4*Tustin*CA*92780~HL*2*1*22*0~SBR*P*18*0711793~NM1*IL*1*ROSAS*DANNY****MI*550751819~DMG*D8*19810817~NM1*PR*2*UNITED HEALTHCARE / UNIMERICA DENTAL*****PI*52133~N3*PO Box 30567~N4*SaltLakeCity*UT*84130~CLM*5664*276.3***11:B:3*Y*A**N**********PB~HI*ABK:D0140*ABK:D0150*ABK:D0120*ABK:D0160*ABK:D0170~NM1*82*1*KIM*CHRISTINE J.****NPI*1437608361~PRV*PE*PXC*1223P0221X~NM1*77*2*OptumTest*CHRISTINE J.****NPI*1437608361~N3*111 World Way~N4*Tustin*CA*92780~LX*1~SV3*AD:D0140*12.1*11***1*string****1~TOO*JP*1*32~DTP*472*D8*20251103~LX*2~SV3*AD:D0150*12.1*11***1*string****1~TOO*JP*1*32~DTP*472*D8*20251103~LX*3~SV3*AD:D0120*12.1*11***1*string****1~TOO*JP*1*32~DTP*472*D8*20251103~LX*4~SV3*AD:D0160*120.0*11***1*string****1~TOO*JP*1*32~DTP*472*D8*20251103~LX*5~SV3*AD:D0170*120.0*11***1*string****1~TOO*JP*1*32~DTP*472*D8*20251103~SE*48*000000001~GE*1*1~IEA*1*329192637~
  1. Enter the apim-dateway-clent-id (your gateway identifier, for example, rcm-link-npprod) in the Headers >> providerTaxId field.
  2. Enter the unique provider tax ID in the Headers >> providerTaxId field.
  3. Click Try It! to view the response(see exam below) in the RESPONSE box.

Response body

Lists the fields returned in the response payload. Includes field names, data types, formats, and descriptions.

{
    "data": {
        "claimPreCheck": {
            "transactionId": "58aa5f03-b501-d184-8260-1918c1363cdf",
            "x12ResponseData": "ISA*00*          *00*          *ZZ*OptumTest      *ZZ*UNITED HEALTHCA*251125*1926*^*00501*329192637*0*P*:~GS*HC*OptumTest*UNITED HEALTHCARE / UNIMERICA DENTAL*20251125*1926*1*X*005010X224A2~ST*837*000000001*005010X224A2~BHT*0019*00*e4baeba400cf-1764098797093*20251125*192637*CH~NM1*41*1*OptumTest*CHRISTINE J.****46*691ccccb882c7ad15fe240b4~NM1*40*2*UNITED HEALTHCARE / UNIMERICA DENTAL*****PI*52133~HL*1**20*1~NM1*85*2*Anne Apxx*****XX*0928227765~N3*111 World Way~N4*Tustin*CA*92780~REF*EI*940562680~PER*IC*Anne Apxx*TE*6260000000~NM1*85*2*Anne Apxx*****XX*0928227765~N3*111 World Way~N4*Tustin*CA*92780~HL*2*1*22*0~SBR*P*18*0711793~NM1*IL*1*ROSAS*DANNY****MI*550751819~DMG*D8*19810817~NM1*PR*2*UNITED HEALTHCARE / UNIMERICA DENTAL*****PI*52133~N3*PO Box 30567~N4*SaltLakeCity*UT*84130~CLM*5664*276.3***11:B:3*Y*A**N**********PB~HI*ABK:D0140*ABK:D0150*ABK:D0120*ABK:D0160*ABK:D0170~NM1*82*1*KIM*CHRISTINE J.****NPI*1437608361~PRV*PE*PXC*1223P0221X~NM1*77*2*OptumTest*CHRISTINE J.****NPI*1437608361~N3*111 World Way~N4*Tustin*CA*92780~LX*1~SV3*AD:D0140*12.1*11***1*string****1~TOO*JP*1*32~DTP*472*D8*20251103~LX*2~SV3*AD:D0150*12.1*11***1*string****1~TOO*JP*1*32~DTP*472*D8*20251103~LX*3~SV3*AD:D0120*12.1*11***1*string****1~TOO*JP*1*32~DTP*472*D8*20251103~LX*4~SV3*AD:D0160*120.0*11***1*string****1~TOO*JP*1*32~DTP*472*D8*20251103~LX*5~SV3*AD:D0170*120.0*11***1*string****1~TOO*JP*1*32~DTP*472*D8*20251103~SE*48*000000001~GE*1*1~IEA*1*329192637~",
            "responseType": "835",
            "x12Response277CA": null,
            "x12Response835": "ISA*00*          *00*          *ZZ*UNITED HEALTHCA*ZZ*OptumTest      *251204*0821*^*00501*329192637*1*T*:~GS*HP*UNITED HEALTHCARE / UNIMERICA DENTAL*OptumTest*20251204*0821*1*X*005010X221A1~ST*835*000000001~BPR*I*0*C*ACH*CTX***********20241102~TRN*1*RTA253389ae8734957*1*$DEFWEB1~DTM*405*20241102~N1*PR*UNITED HEALTHCARE / UNIMERICA DENTAL*PI*52133~N3*PO Box 30567~N4*SaltLakeCity*UT*84130~REF*2U*52133~N1*PE*Anne Apxx*XX*0928227765~N3*111 World Way~N4*Tustin*CA*92780~REF*EI*940562680~LX*1~CLP*250193722300*15*276*0*0**D**3~CAS*CO**0~NM1*QC*1*ROSAS*DANNY****MI*550751819~DTM*232*20251103~SVC*AD:D0140*12.1**11*1~DTM*472*20251103~SVC*AD:D0150*12.1**11*2~DTM*472*20251103~SVC*AD:D0120*12.1**11*3~DTM*472*20251103~SVC*AD:D0160*120.0**11*4~DTM*472*20251103~SVC*AD:D0170*120.0**11*5~DTM*472*20251103~SE*28*000000001~GE*1*1~IEA*1*329192637~",
            "message": "Multiple members found. Eligibility checked for the first member.",
            "statusCode": "200"
        }
    }
}

"data": {
    "claimPreCheck": {
      "transactionId": "string",
      "x12ResponseData": "string(837 for success/ 837999 for failure)",
      "x12Response277CA": "string(277D for pre-check failed)",
      "x12Response835": "string(835D for success)",
      "responseType": "837999| 277 | 835 ",      
      "message": "string",
      "statusCode": "string"
    }
  }
}

Run the Pre-Care Estimate endpoint in developer platform

  1. Download and import our Pre-Care Estimate OpenAPI Spec.
  2. Click the Get Token and generate a Bearer token (see generate a Bearer token .

📘

NOTE

Check the Body and Header parameters to make sure that the values comply with these parameters.

  1. Click and send the /Claim Pre-Check 835, /Claim Pre-Check 277, or /Claim Pre-Check 999 endpoint to view the response.

If the request was successful, the response shows as
{"message": "RTS payer claim precheck service is healthy"} in the response box. If the request failed, the reason shows in the response box. Here are the HTTP Error Codes.

Subscribe to live and mock data testing in sandbox

Please see subscribe to live and mock data testing in sandbox.

Integrate our APIs in production environment

Please see Integrate our APIs in production environment

HTTP Status Codes

The following table provides error codes, including code values, messages, and troubleshooting guidance.

Status CodeError DescriptionMessage ExampleNotes
401When token is blank in authorization{ "message": "access_token is missing" }
401When token is expired in authorization{ "message": "jwt signature verification failed: Verification failed" }
401When token is invalid in authorization{ "message": "invalid jwt: invalid header: " }
500Internal server error - Problem occurred on the server{ "errors": [ { "code": "INTERNAL_SERVER_ERROR", "description": "An unexpected error occurred while processing the request", } ] }
400"Cannot query field \"fieldname\" on type \"Query\"{ "errors": [ { "code": "GRAPHQL_VALIDATION_FAILED", "description": "Cannot query field \"fieldname\" on type \"Query\"., } ] }
400"Syntax Error: Unexpected \"}\"."{ "errors": [ { "code": "GRAPHQL_PARSE_FAILED", "description": "Schema Validation Failure", } ] }
200Error{ "errors": [ { "code": "BAD_USER_INPUT", "description": "Variable \"$input\" of required type \"Claimprechecknput!\" was not provided." } ] }When request variable input fields are incorrect
200Error{ "errors": [ { "code": "MISSING_REQUIRED_FIELD", "description": "Missing mandatory field: providerTaxId" } ], "data": { "claimsprecheck": null } }
  • "Missing mandatory header field: traceId"
  • "Missing mandatory header field: consumerId"
  • "Missing mandatory field: providerTaxId"
200Error{ "errors": [ { "code": "Unauthorized - Authentication failed", "description": "error : error_description" ] }, "data": { "claimsprecheck": null } }When sub module authentication failure occurs
ex: description: "invalid_client: Invalid client authentication" ex:description: "invalid_token:The access token is invalid or has expired"