Payer: send a communication request
Payer pushes a Task plus Communication bundle to a provider mid-claim: TAT alerts, wallet or policy changes, grievances or extra-information requests.
Business purpose
Every other NHCX exchange is provider-initiated and expects a matching response. Communication inverts that: it is the payer's asynchronous, event-driven channel into the hospital system, used when something must be said about an in-flight case without the provider having asked. It carries TAT breach alerts, grievance notices, wallet or benefit updates, policy or package-rate changes, requests for additional evidence and claim-arbitration intimations. Hospitals benefit because these signals arrive in a structured, routable bundle rather than by phone or email, and payers benefit because adjudication can proceed without waiting for an out-of-band exchange.
When to use
The payer uses it to send the provider a message outside the pre-authorisation or claim flow, such as a delay notice, a grievance or a request for more information. The workflow code in the header must match the related claim or pre-authorisation.
Preconditions
- A valid access token and the provider's certificate.
- The bundle is encrypted for the provider.
- The header carries
x-hcx-statusrequest.initiatedand a fresh correlation ID.
Postconditions
- NHCX answers
202at once. That only means the message was accepted. - The provider's acknowledgement arrives later on
/v1/communication/on_request, with the same correlation ID.
Common mistakes
- Treating the
202as the provider's answer. - Sending a workflow code that does not match the related claim or pre-authorisation.
- Reusing a correlation ID from an earlier or failed cycle.
- Using it in place of the query inside a
ClaimResponse.
Best practices
- Mint a new UUID for x-hcx-API_call_ID on every call and for x-hcx-correlation_ID on every new communication cycle, including retries after failure.
- Put the routing intent in Task.reasonCode and the message classification in Communication.category, topic and priority; pair additionalinfo with category instruction or questionnaire.
- Use IST timestamps; UTC causes validation failures.
- Persist the correlation ID before posting so the on_request acknowledgement can be matched.
- Expect up to five redeliveries if the provider mis-acknowledges; keep your own handling idempotent.
- Implement v1/error so a message that never reaches the provider is reported back to you.
Related scenario
A state health agency's TPA notices that a cashless claim from a district hospital has sat in adjudication past the scheme's turnaround threshold. It builds a Task bundle with reasonCode tatquery, category reminder, topic progress-update and priority asap, encrypts it for the hospital and posts /v1/communication/request with the workflow ID of the claim submitted earlier on /v1/claim/submit. The gateway returns 202 and forwards the bundle. The hospital's claims desk is alerted, and its system posts the acknowledgement Task on /v1/communication/on_request with the same correlation ID. Adjudication then continues and the outcome arrives on /v1/claim/on_submit as usual.
Specification
Chapter Communication 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 One per originating request. The Open Protocol page marks it Mandatory; the Technical Specifications page marks it Optional. Optional on the envelope. Send it anyway, as a fresh UUID per originating request: it is cheap and satisfies both readings until NHA rules. Example The thread that ties a request to its answers. The correlation ID rule says when to reuse it. Mandatory on the envelope. Example Which step, or which case. The workflow code explains both readings. Optional 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 The beneficiary's ABHA number. Optional: send it when the beneficiary has an ABHA number. Optional on the envelope. Example The gateway validates the JWE headers, workflow id and NIIP and returns HTTP 202 with a StatusSuccessResponse (timestamp, api_call_id, correlation_id, result with sender_code, recipient_code, entity_type and protocol_status, and an error object).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_codestringRequired<payer participant code>x-hcx-recipient_codestringRequired<provider participant code>x-hcx-api_call_idstringRequired<uuid>x-hcx-request_idstring<uuid>x-hcx-correlation_idstringRequired<uuid>x-hcx-workflow_idstring15x-hcx-timestampstringRequired<iso timestamp>x-hcx-statusstringRequiredrequest.initiatedx-hcx-ben-abha-idstring<14-digit ABHA number>Body
payloadstringResponses
202timestampstringapi_call_idstringcorrelation_idstringresultobjectresult.sender_codestringresult.recipient_codestringresult.entity_typestringresult.protocol_statusstringerrorobjecterror.codestringerror.messagestring
Callbacks
- NHCX delivers this call to the provider, on the provider's own
/v1/communication/request, not back to you. Provider receives a communication request. - The provider's answer comes back to you on
/v1/communication/on_request, the callback you host.