National Health AuthorityNHA Docs

Command Palette

Search for a command to run...

FAQs

Find answers to common technical questions about NHCX integration.

These FAQs summarize common NHCX technical questions. Use them with the official sandbox portal and your latest certification notes.

Verify production values

The source lists X-CM-ID: sbx in the production token example. Verify the correct production value before go-live.

Participant setup

What is a registry ID in the NHCX Participant API?

A registry ID is the unique identifier from an authorized external registry. NHCX uses it to identify a provider, payer, TPA, or EUA. Send it during participant setup and transactions.

Which registry ID applies to each participant type?

Participant typeRegistry ID
ProviderHFR ID from ABDM integration.
PayerIRDAI ID or an authority ID.
TPAIRDAI ID or an authority ID.
EUAClient ID.

What role codes apply in sandbox and production?

RoleCode
Provider10001
Payer10002
Agency TPA10003
EUA10009

What registry codes apply in sandbox and production?

RegistryCode
HFR or EUA10001
Payer or TPA10004

Why does correct role and registry map matter?

An incorrect map can cause access issues. It can also cause request rejection or route transactions to the wrong participant.

Can an entity have multiple participant IDs?

Yes. An entity can have multiple participant IDs. Link each participant ID to a separate HFR ID.

Sandbox endpoints

What are the provider sandbox base URLs?

AreaAPIURL
Session APISession tokenhttps://dev.abdm.gov.in/api/hiecm/gateway/v3/sessions
Setup APICreate participanthttps://apisbx.abdm.gov.in/pmjay/sbxhcx/participanthcxservice/participant/create
Setup APIUpdate participanthttps://apisbx.abdm.gov.in/pmjay/sbxhcx/participanthcxservice/participant/update
Participant APIGet policyhttps://apisbx.abdm.gov.in/pmjay/sbxhcx/participanthcxservice/participant/get/policies
Participant APIDelink policyhttps://apisbx.abdm.gov.in/pmjay/sbxhcx/participanthcxservice/participant/delink/abha/policy
Participant APIFetch certshttps://apisbx.abdm.gov.in/pmjay/sbxhcx/participanthcxservice/fetch/certs
Participant APIFetch participantshttps://apisbx.abdm.gov.in/pmjay/sbxhcx/participanthcxservice/fetch/participants/list
Participant APILink policyhttps://apisbx.abdm.gov.in/pmjay/sbxhcx/participanthcxservice/participant/link/abha/policy
Use case APIInsurance planhttps://apisbx.abdm.gov.in/hcx/v1/insuranceplan/request
Use case APICoverage eligibilityhttps://apisbx.abdm.gov.in/hcx/v1/coverageeligibility/check
Use case APIPreauthorizationhttps://apisbx.abdm.gov.in/hcx/v1/preauth/submit
Use case APIEnhancementhttps://apisbx.abdm.gov.in/hcx/v1/preauth/submit
Use case APICommunicationhttps://apisbx.abdm.gov.in/hcx/v1/communication/request
Use case APIClaimhttps://apisbx.abdm.gov.in/hcx/v1/claim/submit
Use case APIPayment notice callbackhttps://apisbx.abdm.gov.in/hcx/v1/paymentnotice/on_request

How can I generate a sandbox session token?

Call the ABDM session API with your sandbox client credentials.

Generate a sandbox token
curl --request POST 'https://dev.abdm.gov.in/api/hiecm/gateway/v3/sessions' \
  --header 'Content-Type: application/json' \
  --header 'REQUEST-ID: bd515183-a512-4324-be14-f18754730f3e' \
  --header 'TIMESTAMP: 2026-04-28T11:55:45.915Z' \
  --header 'X-CM-ID: sbx' \
  --data-raw '{
    "clientId": "SANDBOX_CLIENT_ID",
    "clientSecret": "SANDBOX_CLIENT_SECRET",
    "grantType": "client_credentials"
  }'

How can I generate a production session token?

Call the ABDM session API with your production client credentials. Verify the correct X-CM-ID value before production use.

Generate a production token
curl --request POST 'https://apis.abdm.gov.in/api/hiecm/gateway/v3/sessions' \
  --header 'Content-Type: application/json' \
  --header 'REQUEST-ID: f51f71c3-020e-423b-a1b1-49b0f25cd553' \
  --header 'TIMESTAMP: 2026-04-28T11:57:09.472Z' \
  --header 'X-CM-ID: sbx' \
  --data-raw '{
    "clientId": "PRODUCTION_CLIENT_ID",
    "clientSecret": "PRODUCTION_CLIENT_SECRET",
    "grantType": "client_credentials"
  }'

Request headers and security

Why does a 401 Unauthorized error appear after an API call?

The token can expire. The bearer_auth header can also contain an invalid token. Generate a new token and retry the API call.

What values apply to x-hcx-api_call_id, x-hcx-request_id, and x-hcx-correlation_id?

Use a random 36-character UUID for each field. Use a new correlation ID for each request cycle.

Example UUID: d9f1a2c2-e3b6-49f9-8c2d-071b13ba85ab.

What timestamp format applies to x-hcx-timestamp?

Use the current UTC timestamp in ISO format. Use this format: YYYY-MM-DD'T'HH:mm:ss.SSS'Z'.

Example: 2024-05-20T11:29:27.358Z.

How does NHCX secure request data?

NHCX requires JWE Compact Serialization for each request sent to NHCX. The JWE protected header contains standard JWE fields and x-hcx-* metadata. This design provides confidentiality, integrity, and traceability.

Protocol behavior

Does NHCX support synchronous responses for use case requests?

No. NHCX use case communication is asynchronous. Providers must implement callback endpoints for payer responses. NHCX does not return a synchronous FHIR decision.

What must provider callback endpoints do?

A provider callback endpoint must return HTTP 202 within 30 seconds. If NHCX does not receive HTTP 202, the gateway retries the callback.

Why should providers integrate the InsurancePlan API?

The InsurancePlan API shows benefit rules before preauthorization. It can identify required documents before submission. It reduces rework and rejection rates. It can help payers approve requests faster.

Dummy payer and test tools

What is dummy payer 1000003538@hcx?

The dummy payer is a sandbox insurance payer for tests. Use it to test provider flows before payer tests. See Dummy Payer.

Where can I find the NHCX integration documents?

Open the NHCX document portal at https://hcxsbx.abdm.gov.in/#/documents.

Where can I find the NHCX-PMJAY documents?

Open the NHCX-PMJAY document portal at https://hcxsbx.abdm.gov.in/#/hmisdocuments.

What is the difference between regular NHCX and PMJAY-NHCX?

Regular NHCX supports private insurance flows for providers, payers, and TPAs. PMJAY-NHCX extends the same framework for government health schemes. PMJAY-NHCX can require extra scheme setup and workflow alignment.

Problem fixes

Why does bio auth return error K-547?

Set lr to Y. Keep the other attributes as specified by the source.

AttributeValue
raDevice type, such as F for fingerprint.
rcY
lrY
deN
pfrN

Create the text value as 2.5 plus ra, rc, lr, de, and pfr. Convert the text value to SHA-256. Encode the SHA-256 hash to Base64 to create wadh.

When does 401 Unauthorized with sender not authorized occur?

This error occurs when the session token expires. Generate a new session token and retry the API call.

Why do callbacks not reach my server?

Check these items first.

CheckRequired action
Callback URLUse a domain name. Do not use an IP address or port number.
Server locationHost the server in India.
NAT IP allow-listAllow 3.109.99.210, 13.126.152.0, and 13.200.129.223.
Firewall rulesPermit inbound requests from the NHCX NAT IPs.
Application routesMap each callback URL to the correct backend route.
Gateway routesCheck API gateway and load balancer rules.
Endpoint versionMatch the endpoint path to the NHCX API version.

Sources

  • faqs.md (NHCX sandbox portal)