National Health Authority

Command Palette

Search for a command to run...

Integration Handbook

Use the PMJAY integration handbook to plan roles, milestones, JWE protocol work, API sequences, and claim lifecycle requirements.

This page distils the large PMJAY handbook for HMIS teams. It keeps the process, roles, milestones, sequences, and mandatory requirements. It omits most payload tables.

Use the latest specification

The handbook references NRCeS FHIR R4 and NHCX protocol rules. Always compare with the latest NHA and NRCeS releases.

Reader roles

RoleUse this page for
Product ownerUnderstand how PMJAY work changes inside a hospital.
Operations teamRun payer lookup, policy lookup, callbacks, and query work.
Engineering teamBuild JWE, FHIR bundles, callbacks, parsers, and storage.
QA teamTest each workflow ID, callback, and error family.

Business outcome

The HMIS must identify the payer, confirm a linked policy, and prepare cashless admission data. It must fetch InsurancePlan rules before benefit selection. It must submit preauthorisation, claim, reprocess, and payment acknowledgement transactions. It must receive payer callbacks asynchronously.

End-to-end lifecycle

flowchart TD
A[Payer discovery] --> B[Policy discovery]
B --> C[InsurancePlan fetch]
C --> D[Coverage eligibility]
D --> E[Biometric authentication]
E --> F[Preauthorisation]
F --> G{Payer decision}
G -->|Approved| H[Treatment and discharge]
G -->|Query| I[Query response]
I --> F
G -->|Rejected| J[Close or reprocess]
H --> K[Claim submission]
K --> L{Claim decision}
L -->|Approved| M[Payment notice]
L -->|Query| N[Claim query response]
N --> K
L -->|Rejected or partial| O[Reprocess if valid]
M --> P[Payment acknowledgement]

Cashless admission sequence

Discover the payer

Search NHCX payer participants and select the PMJAY payer for the case.

Discover policies

Call policy discovery with ABHA, member ID, or mobile number.

Resolve identifiers

Store payer ID, member ID, product ID, product name, and policy number.

Fetch plan rules

Call InsurancePlan for the selected payer, provider, and policy.

Verify eligibility

Call CoverageEligibility with the correct purpose for the clinical step.

Submit preauthorisation

Build a FHIR Claim bundle with Claim.use set to preauthorization.

Submit claim

Reuse the preauth data and set Claim.use to claim.

Track payment

Persist the UTR from PaymentReconciliation.paymentIdentifier.value.

Protocol requirements

All NHCX transaction payloads use JWE Compact Serialization. Encrypt the FHIR Bundle before submission. Decrypt each callback with the provider private key. Return HTTP 202 within 30 seconds for each callback.

Representative JWE protected header
{
  "alg": "RSA-OAEP-256",
  "enc": "A256GCM",
  "x-hcx-sender_code": "1000004446@hcx",
  "x-hcx-recipient_code": "1518@hcx",
  "x-hcx-api_call_id": "a1b2c3d4-e5f6-7890-abcd-ef1234567890",
  "x-hcx-request_id": "f0e1d2c3-b4a5-6978-0fed-cba987654321",
  "x-hcx-correlation_id": "11223344-5566-7788-99aa-bbccddeeff00",
  "x-hcx-workflow_id": "12",
  "x-hcx-timestamp": "2026-03-19T11:46:34+05:30",
  "x-hcx-status": "request.initiated",
  "x-hcx-ben-abha-id": "91711234567890"
}
RequirementValue
JWE algorithmRSA-OAEP-256
Content encryptionA256GCM
Bundle typecollection
Timestamp offset+05:30
Certificate cache24 hours
Callback resultHTTP 202 within 30 seconds

Authentication and gateway

Request an NHCX token with client credentials. Refresh the token before 1200 seconds. Fetch the payer certificate before encryption. Try X.509 import first. Use SPKI as a fallback for short keys.

EnvironmentBase URL
Sandboxhttps://apisbx.abdm.gov.in/pmjay/sbxhcx
Productionhttps://apis.abdm.gov.in/pmjay/hcx

Workflow IDs

Provider actionWorkflow ID
New preauthorisation12
Preauthorisation resubmission121
Preauthorisation cancellation122
Preauthorisation query response19
Enhancement request13
Final claim15
Claim resubmission16
Claim query response151
Payment acknowledgement17
Reprocess request18
Payer callbackWorkflow ID
Preauthorisation approved21
Preauthorisation rejected23
Preauthorisation queried24
Claim approved26
Claim queried27
Claim in process28
Reprocess approved252
Reprocess rejected253
Reprocess queried254
Payment initiated30
Payment processed31
Payment settled33

Core API sequences

InsurancePlan

Send a FHIR Task with code poll. Include policyNumber, providerId, or both. Receive an InsurancePlan bundle through /insuranceplan/on_request. Store InsurancePlan, Organization, and Questionnaire entries.

CoverageEligibility

Send a CoverageEligibilityRequest with purpose validation, benefits, or auth-requirements. Include Patient, Organization, Coverage, and PractitionerRole references. Include items for auth-requirements. Read inforce, benefit amounts, exclusions, and authorization support codes.

Preauthorisation

Send a Claim bundle with Claim.use preauthorization. Include patient identity, coverage, provider, insurer, diagnosis, procedure, care team, items, and supporting information. Use workflow ID 12 for a new request. Use workflow ID 19 for a query response. Use /task/submit with code cancel for cancellation.

Claim

Send a Claim bundle with Claim.use claim. Reuse approved preauth data when possible. Replace estimates with final bill amounts. Add discharge summary, operative notes, diagnostics, and final bills. PMJAY merges discharge and claim into one claim flow.

Reprocess

Use a Task resource with code reprocess. Link it to the original claim number. Add the reason code, evidence, and supporting documents. Parse the nested ClaimResponse from the Task callback.

Payment

Receive a Task bundle with PaymentNotice and PaymentReconciliation. Store the net amount, TDS amount, payment date, and UTR. Acknowledge the notice with a Task output code paymentack.

Parser rules

Callback patternHMIS action
outcome=complete and reason approvedMark approved and track settlement.
outcome=partial and reason approvedStore reduced benefit and read processNote.
outcome=partial and reason queriedCollect data and submit a query response.
outcome=complete and reason cancelledMark rejected or cancelled.

Do not treat outcome=complete as approval by itself. Always check the adjudication reason code.

Supporting information codes

CodeUse
ADDDAdmission date and discharge date.
EDTEncounter date and time.
DISDischarge summary.
DIADiagnostic report.
CDClinical document.
INFAdditional claim information.
POIProof of identity.
POAProof of address.
DOBProof of date of birth.

Error families

FamilyTypical cause
PAYR-14xxInsurancePlan policy, renewal, or hospital authorization errors.
PAYR-11xxCoverageEligibility purpose, payer, beneficiary, or item errors.
PAYR-12xxPreauthorisation amount, package, document, token, or workflow errors.
PAYR-13xxClaim, discharge, LAMA, DAMA, and final document errors.
NHCX-10xxGateway registration, duplicate, status, or protocol errors.
PAYR-10xxBridge, FHIR validation, encryption, and payload errors.

Communication lifecycle caveat

The handbook documents a Communication Request lifecycle. The PMJAY FRD says PMJAY claim queries do not use the Communication API. Use the preauth or claim query workflow for PMJAY claim queries. Use Communication Request only when the payer confirms a separate notification use case.

Sources

  • pmjay-integration-handbook.md (NHCX sandbox portal)