Skip to main content

Workflow Codes

Endpoints alone do not identify an NHCX transaction. A new preauthorisation, a resubmission, an enhancement and a query response all travel on /v1/preauth/submit carrying the same bundle. What separates them is the workflow code in the x-hcx-workflow_id header. Each code also expects a particular status word, given here beside it. The source is the official Workflow Status Sheet on the portal, updated 18 August 2026, which remains the authority as codes are added.

The A-series registry and session calls carry no workflow code because they are infrastructure calls rather than claim transactions.

Workflow Code Prefix Families

NHA organizes workflow codes into numeric mainline cashless codes and alphanumeric families:

PrefixFamily NameScope & Operational Coverage
RReimbursementMirrors the numeric cashless codes for the reimbursement route - the patient paid, and is claiming it back.
GGrievanceRaising a grievance, its acknowledgement, and its failure path.
RPReturn paymentMoney going back the other way.
NNotificationsPush notifications addressed to payer, provider or beneficiary.
DCDischarge correctionCorrecting a discharge already submitted.
PCPreauth cancellationWithdrawing a pre-authorisation. Raised on /v1/task/submit with code cancel, not on the preauth endpoint.

Mainline Cashless State Machines

In the diagrams below, each arrow carries the workflow code of the message that moves the case.

Preauthorisation Lifecycle

Claim Lifecycle

Payment & Settlement Lifecycle


Master Catalog of All 74 Workflow Codes

Complete index of all published codes:

CodeMeaning / NameSent ByPermitted StatusesStages / OutcomesReused
10Patient RegisteredProviderrequest.initiatedPatient RegisteredNo
11Patient AdmittedProviderrequest.initiatedPatient AdmittedNo
12Preauth Request InitiatedProviderrequest.initiatedPreauth Request InitiatedNo
121Preauth Request ResubmittedProviderrequest.initiatedPreAuth Reprocess(Resubmission) InitimationNo
PC01Preauth Cancel InitiatedProviderrequest.initiatedPreauthorization CancellationNo
19Preauth Query Response SubmittedProviderresponse.completePreAuth Query Response SubmittedNo
13Enhancement Request InitiatedProviderrequest.initiatedEnhancement Request InitiatedNo
131Enhancement Query Response SubmittedProviderresponse.partial, response.error, response.completeEnhancement Query Ack Success, Enhancement Query Ack Failed, Enhancement Query Response SubmittedYes
14Discharge SubmittedProviderrequest.initiatedDischarge SubmittedNo
141Discharge Query Response SubmittedProviderresponse.completeDischarge Query Response SubmittedNo
15Claim Request InitiatedProviderrequest.initiatedClaim Request InitiatedNo
151Claim Query Response SubmittedProviderresponse.completeClaim Query Response SubmittedNo
17Payment ReceivedProviderresponse.completePayment Notice RecivedNo
36Claim Arbitration Request SubmittedProviderrequest.initiatedClaim Arbitration IntimationNo
20Preauth Request ReceivedPayerresponse.partial, response.errorPreAuth Ack Success, PreAuth Ack FailedYes
21Preauth Request ApprovedPayerresponse.completePreauth Request ApprovedNo
22Enhancement Request ApprovedPayerresponse.completeEnhancement Request ApprovedNo
23Preauth Request RejectedPayerresponse.completePreAuth Request RejectedNo
24Preauth Request QueriedPayerrequest.initiatedPreAuth Request QueriedNo
241Enhancement Request QueriedPayerrequest.initiatedEnhancement Query RaiseNo
25Claim Request ReceivedPayerresponse.partial, response.errorClaim Doc Ack Success, Claim Doc Ack FailedYes
26Claim Request ApprovedPayerresponse.completeClaim Request ApprovedNo
27Claim Request QueriedPayerrequest.initiated, response.partial/completeClaim Request Queried, Claim Request QueriedYes
28Claim Request In ProcessPayerresponse.partialClaim Request in processNo
29Claim ForwardedPayerresponse.partialClaim ForwardedNo
251Reprocess Request ReceivedPayerresponse.completePreAuth Reprocess AckNo
252Reprocess Request ApprovedPayerresponse.completeReprocess Request ApprovedNo
253Reprocess Request RejectedPayerresponse.completeReprocess Request RejectedNo
254Reprocess Request QueriedPayerrequest.initiatedReprocess Request QueriedNo
261Discharge Request ApprovedPayerresponse.partialDischarge Request ApprovedNo
262Discharge Request RejectedPayerresponse.completeDischarge Request RejectedNo
263Discharge Request QueriedPayerrequest.initiatedDischarge Request QueriedNo
30Payment InitiatedPayerrequest.initiated, response.partial, response.errorPayment Notice Initmation, Payment Notice Ack Success, Payment Notice Ack FailedYes
31Payment ProcessedPayerrequest.initiatedPayment ProcessedNo
33Payment SettledPayerrequest.initiatedPayment SettledNo
45Final Bill Initimationrequest.initiated, response.partial, response.errorFinal Bill Initimation, Final Bill Ack Success, Final Bill Ack FailedYes
181Final Bill Query Responseresponse.completeFinal Bill Query ResponseNo
161Claim Doc Query Responseresponse.completeClaim Doc Query ResponseNo
18Preauth Query Ack Successresponse.partial, response.errorPreAuth Query Ack Success, PreAuth Query Ack FailedYes
231Enhancement Denyresponse.completeEnhancement DenyNo
46Final Bill Approveresponse.completeFinal Bill ApproveNo
47Final Bill Query Raiserequest.initiated, response.partial, response.errorFinal Bill Query Raise, Final Bill Query Ack Success, Final Bill Query Ack FailedYes
491Final Bill Denyresponse.completeFinal Bill DenyNo
291Claim Doc Denyresponse.completeClaim Doc DenyNo
R122Reimburstment Claim Reprocess Requestedrequest.initiatedReimburstment Claim Reprocess RequestedNo
R15Reimburstment Claim Submittedrequest.initiatedReimburstment Claim SubmittedNo
R151Reimburstment Claim Query Response Submittedresponse.completeReimburstment Claim Query Response SubmittedNo
R252Reimburstment Claim Reprocess Request Approvedresponse.completeReimburstment Claim Reprocess Request ApprovedNo
R253Reimburstment Claim Reprocess Request Rejectedresponse.completeReimburstment Claim Reprocess Request RejectedNo
R254Reimburstment Claim Reprocess Request Queriedrequest.initiatedReimburstment Claim Reprocess Request QueriedNo
R26Reimburstment Claim Approvedresponse.completeReimburstment Claim ApprovedNo
R27Reimburstment Claim Queriedrequest.initiatedReimburstment Claim QueriedNo
R28Reimburstment Claim Evaluation In Processresponse.partialReimburstment Claim evaluation in processNo
R291Reimburstment Claim Rejectedresponse.completeReimburstment Claim RejectedNo
34Wallet Upgrade Intimationrequest.initiatedWallet Upgrade IntimationNo
38Fraud Alertrequest.initiatedFraud AlertNo
35Wallet Upgrade Acknowledgementresponse.completeWallet Upgrade AcknowledgementNo
37Claim Arbitration Acknowledgementresponse.completeClaim Arbitration AcknowledgementNo
39Fraud Alert Acknowledgementresponse.completeFraud Alert AcknowledgementNo
G11Grievance Intimationrequest.initiatedGrievance IntimationNo
G12Grievance Acknowledmentresponse.completeGrievance AcknowledmentNo
G13Grievance Intimation Failureresponse.errorGrievance Intimation FailureNo
41Preauth Arbitration Intimationrequest.initiatedPreauth Arbitration IntimationNo
42Preauth Arbitration Acknowledgementresponse.completePreauth Arbitration AcknowledgementNo
RP1Return Payment Intimationrequest.initiatedReturn Payment IntimationNo
RP2Return Payment Acknowledgementresponse.completeReturn Payment AcknowledgementNo
RP3Return Payment Failureresponse.errorReturn Payment FailureNo
N01Notifications Intended To Payerrequest.initiatedNotifications Intended to PayerNo
N02Notifications Intended To Providerrequest.initiatedNotifications Intended to ProviderNo
N03Notifications Intended To Beneficiaryrequest.initiatedNotifications Intended to BeneficiaryNo
N04Acknowledgement Of The Notificaionresponse.completeAcknowledgement of the NotificaionNo
DC01Discharge Correction Intimationrequest.initiatedDischarge Correction IntimationNo
DC02Acknowledgement For Discharge Correctionresponse.completeAcknowledgement for Discharge CorrectionNo
PC02Preauthorization Cancellation Accomplishedresponse.completePreauthorization Cancellation AccomplishedNo

Reconciled Discrepancies and Authority Rules

Seven codes are published differently in the PMJAY Handbook and the Workflow Status Sheet, resolved here by taking the Workflow Status Sheet as the definitive authority:

CodePMJAY HandbookWorkflow Status Sheet
17PAYMENT_RECEIVED, provider-side - "Payment received acknowledgment""Payment Notice Recived", response.complete
24Payer-side response code, PREAUTH_REQUEST_QUERIED"PreAuth Request Queried", header request.initiated
27Payer-side response code, CLAIM_REQUEST_QUERIED"Claim Request Queried", header request.initiated
30Payer-side, PAYMENT_INITIATED"Payment Notice Initmation", request.initiated
31 / 33Payer-side response codesheader request.initiated
251REPROCESS_REQUEST_RECEIVED"PreAuth Reprocess Ack"
36CLAIM_ARBITRATION_REQUEST_SUBMITTED, use case "Reprocess/Erroneous request""Claim Arbitration Intimation"

The same authority settles these conflicts across official NHA publications (Workflow Status Sheet vs PMJAY Handbook vs Value Sets):

  1. 251: Reconciled as Preauthorisation Resubmission acknowledgement in the sheet; the PMJAY handbook uses it in its claim reprocess section.
  2. Cancellation (PC01 vs 122): The sheet and handbook code table prescribe PC01 (request) and PC02 (completion). The handbook prose mentions 122, which clashes with R122 (reimbursement claim reprocess). Integrators should strictly use PC01 and PC02 on /v1/task/submit.
  3. 18: Defined as Preauthorisation Query Acknowledgement in the sheet; the handbook repurposes it for claim reprocess.
  4. Reprocess (36 vs 18): Section 11 gives 18 for reprocess, while Section 12 gives 36 (Claim Arbitration). Integrators should use 36 with task code reprocess and reason claimrejected.
  5. Shortfall: Rides on 36 as a Task with code reprocess and reason partialpayment, raised only after payment notice 33 has arrived and been acknowledged with 17.
  6. 25 and 291: Named as Claim Document acknowledgement and denial in the sheet, and Claim request received and denied in the value sets. Both refer to the same transition.

Protocol Fault Flags

The source sheet's audit flags mark certain code-and-status pairs as protocol errors rather than normal traffic:

  • For 131, 45, 47, and 30, sending either response.partial or response.error is flagged as an invalid state transition.
  • 18 sent with response.error is flagged as an invalid terminal state.
  • Query 27 sent as response.partial or response.complete is invalid (must be request.initiated).