National Health AuthorityNHA Docs

Command Palette

Search for a command to run...

Requests and Responses

Prepare NHCX FHIR request and response payloads with the correct bundles, value sets, and mandatory values.

Use this page when you prepare a JWE payload for an NHCX use case. Use Payload Code Snippets to encrypt and decrypt the payload. Use Provider Use Cases and Payer Use Cases for sandbox exit scope.

Source corrections

The source uses x--hcx-sender_code in several rows. Use x-hcx-sender_code in each payload. The source also uses encripted; use encrypted.

Common protected headers

Include these mandatory headers in each encrypted request and response. Add the optional headers only when the use case needs them.

HeaderTypeMandatory value or rule
algStringRSA-OAEP-256
encStringA256GCM
x-hcx-api_call_idUUIDNew API call ID
x-hcx-statusStringUse the status in the use case table.
x-hcx-timestampUnix timestampCurrent timestamp, for example 1706308383
x-hcx-sender_codeStringSender participant code, for example 1000001@sbx
x-hcx-recipient_codeStringRecipient participant code, for example 1000002@sbx
x-hcx-correlation_idUUIDRequest API call ID for a response, or the target request ID for status.
x-hcx-ben-abha-idStringBeneficiary ABHA ID
Optional headerTypeUse
x-hcx-workflow_idStringAdd the workflow code when available.
x-hcx-use_caseStringAdd the use case value when available.
x-hcx-debug_flagEnumAdd INFO when you need diagnostics.
x-hcx-error_detailsProtocolErrorAdd code, message, and trace when an error exists.

Protocol error response

Send this response when the receiver cannot decrypt, validate, or process a payload.

FieldMandatory value or rule
typeProtocolResponse
algRSA-OAEP-256
encA256GCM
x-hcx-api_call_idNew API call ID
x-hcx-statusresponse.error
x-hcx-timestampCurrent timestamp
x-hcx-sender_codeError sender code
x-hcx-recipient_codeError receiver code
x-hcx-correlation_idOriginal request correlation ID
x-hcx-error_detailscode, message, and trace
x-hcx-ben-abha-idBeneficiary ABHA ID

Use case payload rules

Coverage Eligibility

FlowEndpointBundleStatusMandatory values
Request/v1/coverageeligibility/checkCoverageEligibilityRequestBundlerequest.initiatedCoverageEligibilityRequest.identifier, status=active, priority=normal, purpose=validation, patient, created, enterer, provider, facility
Response/v1/coverageeligibility/on_checkCoverageEligibilityResponseBundleresponse.completedCoverageEligibilityResponse and required reference resources
Error/v1/coverageeligibility/on_checkProtocolResponseresponse.errorCommon error fields

Preauthorization

FlowEndpointBundleStatusMandatory values
Request/v1/preauth/submitClaimBundlerequest.initiatedClaim.identifier, status=active, priority=normal, purpose=validation, use=preauthorization, patient, type, created, enterer, provider, facility
Response/v1/preauth/on_submitClaimResponseBundleresponse.completeClaimResponse and required reference resources
Error/v1/preauth/on_submitProtocolResponseresponse.errorCommon error fields

Claim

FlowEndpointBundleStatusMandatory values
Request/v1/claim/submitClaimBundlerequest.initiatedClaim.identifier, status=active, priority=normal, purpose=validation, use=claim, patient, type, created, enterer, provider, facility
Response/v1/claim/on_submitClaimResponseBundleresponse.partial or response.completeClaimResponse and required reference resources
Error/v1/claim/on_submitProtocolResponseresponse.errorCommon error fields

Payment Notice

FlowEndpointBundleStatusMandatory values
Request/v1/paymentnotice/requestTaskBundle with PaymentNoticerequest.initiatedPaymentNotice.identifier, status=active, request, payment, recipient, amount
Payment reconciliationIncluded in requestPaymentReconciliationactive or canceledpaymentDate, paymentAmount, paymentIdentifier
Response/v1/paymentnotice/on_requestTaskBundle with Task outputresponse.completeTask output ACKNOWLEDGED or RECEIVED
Error/v1/paymentnotice/on_requestProtocolResponseresponse.errorCommon error fields

Communication for Additional Documents

FlowEndpointBundleStatusMandatory values
Request/v1/communication/requestTaskBundle with CommunicationRequestrequest.initiatedCommunicationRequest.identifier=ClaimNumber, status=active, priority=routine, reasonReference, basedOn
Response/v1/communication/on_requestTaskBundle with Communicationresponse.completeCommunication.identifier=ClaimNumber, status=completed, priority=routine, statusReason, about, payload.contentAttachment, payload.contentCodeableConcept
Response optional values/v1/communication/on_requestCommunicationresponse.completepayload.contentReference, recipient, sender, note
Error/v1/communication/on_requestProtocolResponseresponse.errorCommon error fields

Reprocess, Cancel, Release, or Nullify

FlowEndpointBundleStatusMandatory values
Request/v1/task/submitTaskBundlerequest.initiatedTask.status=requested, Task.code, Task.input.type=ClaimNumber, Task.input.value=Claim Number, Task.basedOn
Task code/v1/task/submitTaskrequest.initiatedUse reprocess, cancel, release, or nullify.
Response/v1/task/on_submitTaskBundleresponse.completeTask and ClaimResponse as bundle components
Error/v1/task/on_submitProtocolResponseresponse.errorCommon error fields
FlowEndpointBundleStatusMandatory values
Request/v1/search/submitTaskBundlerequest.initiatedTask.status=requested, Task.input.type, Task.input.value, Task.basedOn
Input values/v1/search/submitTaskrequest.initiatedUse 1 or more inputs, such as ClaimNumber, FromDate, ToDate, PolicyNumber, or ProductNumber.
Response/v1/search/on_submitTaskBundleresponse.partial or response.completeTask and ClaimResponse as bundle components
Error/v1/search/on_submitProtocolResponseresponse.errorCommon error fields

Status

FlowEndpointBundleStatusMandatory values
Request/v1/statusEmpty payloadrequest.initiatedCommon mandatory headers and an empty payload string
Response/v1/on_statusProtocol header onlyrequest.dispatchedCommon mandatory response headers

Insurance Plan

FlowEndpointBundleStatusMandatory values
Request/v1/insuranceplan/requestTaskrequest.initiatedTask.code=poll, Task.input.type=PolicyNumber, Task.input.value
Request optional inputs/v1/insuranceplan/requestTaskrequest.initiatedProductNumber and ProviderId
Response/v1/insuranceplan/on_requestTaskBundleresponse.completeInsurancePlan output as InsurancePlanBundle

Value sets

Use these codes when the related field appears in a bundle.

Workflow ID values

CodeValue
10Patient Registered
11Patient Admitted
12Preauth Request Initiated
121Preauth Query Response Submitted
13Enhancement Request Initiated
131Enhancement Query Response Submitted
14Discharge Submitted
141Discharge Query Response Submitted
15Claim Request Initiated
16Claim Request Resubmitted
151Claim Query Response Submitted
17Payment Received
18Reprocess Request Submitted
20Preauth Request Received
21Preauth Request Approved
22Enhancement Request Approved
241Enhancement Request Queried
23Preauth Request Rejected
24Preauth Request Queried
25Claim Request Received
26Claim Request Approved
261Discharge Request Approved
262Discharge Request Rejected
263Discharge Request Queried
27Claim Request Queried
28Claim Request in process
29Claim Forwarded
251Reprocess Request Received
252Reprocess Request Approved
253Reprocess Request Rejected
254Reprocess Request Queried
30Payment Initiated
31Payment Processed
33Payment Settled

Use case values

CodeDescription
Preauthorization NewNew preauthorization request
Preauthorization EnhancementEnhancement request for a preapproved case
Preauthorization ResubmitResubmitted preauthorization
Claim NewNew claim request
Claim ResubmitResubmitted claim request
Claim ReprocessClaim reprocess request after partial approval or rejection

Task code values

CodeDescription
reprocessRequest claim readjudication after partial approval or rejection.
nullifyClose a provider claim.
cancelCancel a provider claim.
approveApprove a task.
searchSearch resources such as claim responses.
pollRetrieve data for a given input.
suspendSuspend a submitted preauthorization or claim.

Task input values

CodeDescription
PayerIdIdentifies the payer.
ProviderIdIdentifies the provider or hospital.
PolicyNumberIdentifies the member policy.
ProductNumberIdentifies the policy benefit product.
ClaimNumberFinds claim details in the payer system.
IntimationNumberFinds preauthorization or claim details in the payer system.
FromDateSets the start date for search.
ToDateSets the end date for search.
FinanceYearSets the policy year or financial year.
ServiceCodeIdentifies a benefit service code.

Payment type values

CodeDescription
approvedamountApproved claim amount
tdsTDS deduction amount
servicetaxService tax amount
advanceAdvance amount
recoveredRecovered amount
penaltyPenalty amount
claimedamountProvider claimed amount

Task output values

CodeDescription
paymentackPayment acknowledged
claimcancelledClaim cancelled
claimreinitiatedClaim reinitiated
claimsuspendedClaim suspended
taskackTask acknowledged
taskdeliveredTask delivered

Task reason values

CodeDescription
partialpaymentReprocess due to partial payment by payer
erroneousclaimReprocess due to an erroneous provider claim
claimrejectedReprocess due to claim rejection by payer
referredReferral to another hospital
erroneousregistrationIncorrect beneficiary registration for a policy
wrongdiagnosisAdditional facts found during treatment
treatmentplanchangedTreatment plan changed during admission

Adjudication reason values

CodeDescription
Non-CoveredServiceService not covered by the policy
ExceededCoverageLimitClaim amount exceeds the coverage limit
DuplicateClaimClaim submitted more than once
Coordination-of-BenefitsClaim needs coordination with another policy
IncompleteDocumentationRequired documents are incomplete
PolicyDeductibleClaim amount is subject to policy deductible
Co-PaymentClaimant owes co-payment or coinsurance
ClaimError-1Claim has a submission error.
FraudulentClaimClaim appears fraudulent.
MedicalNecessityService lacks medical necessity.
BenefitLimitReachedClaimant reached the benefit limit.
MissedFilingDeadlineClaim missed the filing deadline.
PaymentAlreadyMadeService already has payment.
ClaimError-2 to ClaimError-28Use the claim error code for the matching scheme reason.
PreauthError-1 to PreauthError-15Use the preauthorization error code for the matching scheme reason.

Claim response form code values

CodeDescription
preauthapprovalPreauthorization approval letter
claimapprovalClaim settlement approval letter
preauthdenialPreauthorization rejection letter
claimdenialClaim rejection letter
feedbackletterPatient feedback form
policydocumentPolicy terms document
dischargeapprovalProvisional discharge approval

Procedure category values

Use the HL7 procedure category value set.

CodeDescription
ProcedureProcedure service or product
InvestigationInvestigation service or product
ImplantImplant service or product
DrugDrug service or product
PackagePackage service or product
RoomRoom service or product
StratificationStratification service or product
ConsultationConsultation service or product

Benefit category values

Use the ABDM benefit category value set.

CodeDescription
BMBurns Management
EREmergency Room Packages
HDHigh End Diagnostics
HMHigh End Medicine
HPHigh End Procedures
IDInfectious Diseases, General Medicine
INInterventional
MCCardiology
MGGeneral Medicine, Pediatric Medical Management
MMMental Disorders
MNNeonatal Care
MOMedical Oncology
MPOphthalmology, Pediatric Medical Management, General Medicine
MRRadiation Oncology
OTOrgan and Tissue Transplant
SBOrthopedics
SCSurgical Oncology
SEOphthalmology
SGGeneral Surgery, Pediatric Surgery
SLENT
SMOral and Maxillofacial Surgery
SNNeurosurgery
SOOBG and Gynecology
SPPlastic and Reconstructive Surgery
SSPediatric Surgery
STPolytrauma
SUUrology
SVCTVS
USUnspecified Surgical Package

Sources

  • requests-and-responses-for-usecases.md (NHCX sandbox portal)