NHCX: report a request it could not deliver
Where the exchange tells a sender that a request could not be delivered after five attempts. Received by every participant under its registered address. There is no outbound form.
Business purpose
When the exchange cannot deliver a request, it tries five times, retires the correlation ID and tells the original sender here. A system without this endpoint never learns that its request died, and a dead request looks exactly like a case still under review. Every participant must host it.
When to use
You host this path and never call it. Providers and payers both need it, so build it first.
Preconditions
- Your callback URL is registered: a domain name over HTTPS, hosted in India, answering within 30 seconds.
- Your handler accepts a body it does not know. The report is plain JSON, not encrypted.
Postconditions
Answer 202. The original request is dead, so a retry needs a new correlation ID.
Common mistakes
- Not hosting it, so failed deliveries go unseen.
- Rejecting the report because it does not match a fixed schema.
- Retrying the failed request on the old correlation ID.
Best practices
- Store the report whole before doing anything with it.
- Mark the case it names as undelivered, so the desk does not wait for a decision that will not come.
- Check it first when a case goes quiet, before asking the exchange with
/v1/status.
Related scenario
A hospital posts a pre-authorisation and gets its receipt, but the payer's endpoint is down. The exchange tries five times, retires the correlation ID and posts a report to the hospital's /v1/error. The handler stores the report whole, answers 202 with the receipt, and marks the pre-authorisation undelivered. The desk resubmits it with a fresh correlation ID once the payer is reachable.
Specification
Chapter Building and sending a JWE of the NHCX integration specification. Every NHCX call carries the access token from the session call in a header named Example These fields go in the JWE protected header of Key management algorithm. Always Example Content encryption algorithm. Always Example Your participant code. Mandatory on the envelope. Example The recipient's. For a provider, the processor code from the policy lookup. Mandatory on the envelope. Example Fresh on every message, including responses. Mandatory on the envelope. Example The thread that ties a request to its answers. The correlation ID rule says when to reuse it. Mandatory on the envelope. Example The time the message was made. Timestamp gives the format. Mandatory on the envelope. Example Where this message stands. Status words lists the values. Mandatory on the envelope. Example Answer 202 with the receipt, like every other delivery, filling in whatever identifiers the report carries and leaving the rest empty.Authorizations
bearer_authapiKeyRequiredbearer_auth, as the word Bearer, a space and the token. NHCX reads bearer_auth, not Authorization.Bearer <access token>Protected header
payload, not as HTTP headers. Building and sending a JWE shows how to prepare and encrypt the payload, and Receiving a callback how to decrypt one.algstringRequiredRSA-OAEP-256: the content key is wrapped with the recipient's RSA public key.RSA-OAEP-256encstringRequiredA256GCM.A256GCMx-hcx-sender_codestringRequirednhcx-gateway@hcxx-hcx-recipient_codestringRequired<provider participant code>x-hcx-api_call_idstringRequired<uuid>x-hcx-correlation_idstringRequired<correlation id>x-hcx-timestampstringRequired<iso timestamp>x-hcx-statusstringRequiredresponse.errorBody
typestringx-hcx-sender_codestringx-hcx-recipient_codestringx-hcx-api_call_idstringx-hcx-correlation_idstringx-hcx-workflow_idstringx-hcx-timestampstringx-hcx-statusstringx-hcx-error_detailsobjectx-hcx-error_details.codestringx-hcx-error_details.messagestringx-hcx-error_details.tracestringx-hcx-entity-typestringResponses
200timestampstringapi_call_idstringcorrelation_idstringresultobjectresult.sender_codestringresult.recipient_codestringresult.entity_typestringresult.protocol_statusstringerrorobjecterror.codestringerror.messagestring
Callbacks
- NHCX delivers this call to the participant, on the participant's own
/v1/error, not back to you. Participant receives an error report.