National Health AuthorityNHA Docs

Command Palette

Search for a command to run...

Insurance Plan IG

Implement the PMJAY InsurancePlan bundle to read policy benefits, limits, documents, claim conditions, and eligibility rules.

The InsurancePlan bundle is the digital policy source for PMJAY. Use it before treatment selection, eligibility checks, preauthorisation, and claims.

Core APIs

DirectionAPIPurpose
Provider to payer/v1/insuranceplan/requestRequest the digital policy definition.
Payer to provider/v1/insuranceplan/on_requestReturn the InsurancePlan bundle.
Provider to payer/v1/coverageeligibility/checkValidate a beneficiary against the policy.
Payer to provider/v1/coverageeligibility/on_checkReturn the eligibility result.

Both APIs use an asynchronous NHCX model. The provider sends an encrypted request. The payer sends an encrypted callback.

InsurancePlan request

Send a FHIR Task resource in a Bundle. Use Task code poll. Provide at least 1 input. Use both inputs when they are available.

Task fieldCardinalityExamplePurpose
Task.resourceType1..1TaskWrap the plan request.
Task.status1..1requestedMark the request as active.
Task.intent1..1orderRequest payer action.
Task.code.coding.system1..1https://nhcx.abdm.gov.in/apiIdentify the API namespace.
Task.code.coding.code1..1pollFetch the InsurancePlan.
Task.input.type.coding.code1..1policyNumberSend the policy code.
Task.input.valueString0..1POL987654321Identify the policy.
Task.input.type.coding.code0..1providerIdSend the provider ID.
Task.input.valueString0..1HFR123456Identify the hospital.
Representative Task resource
{
  "resourceType": "Task",
  "status": "requested",
  "intent": "order",
  "code": {
    "coding": [
      {
        "system": "https://nhcx.abdm.gov.in/api",
        "code": "poll"
      }
    ]
  },
  "input": [
    {
      "type": { "coding": [{ "code": "policyNumber" }] },
      "valueString": "POL987654321"
    },
    {
      "type": { "coding": [{ "code": "providerId" }] },
      "valueString": "HFR123456"
    }
  ]
}

Callback bundle

The decrypted callback is a FHIR Bundle with type collection. It can contain these resources.

ResourceUse
InsurancePlanHolds policy, package, cost, condition, document, and limit data.
OrganizationIdentifies the payer and provider.
QuestionnaireHolds STG, past history, family history, and document questions.

Policy structure approaches

The guide shows 2 ways to represent benefits. A payer can use either model. Your HMIS must parse both models when the payer supports both.

Plan to specific cost model

Use this model for PMJAY package cost rules.

InsurancePlan pathPMJAY concept
plan.specificCost.categorySpeciality, such as General Medicine.
plan.specificCost.benefitPackage or service.
benefit.costPackage cost.
cost.qualifiersImplant, stratification, investigation, or medicine qualifier.

Coverage to benefit model

Use this model for coverage limits and benefit limits.

PathExampleMeaning
coverage.type.coding.codeIPIn-patient coverage.
coverage.networkApollo Hospitals NetworkEmpanelled provider network.
benefit.type.coding.codeICUICU benefit.
benefit.requirementPre-authorisation requiredAuthorization rule.
limit.value.value500000Benefit limit.
limit.value.unitINRCurrency.

Key InsurancePlan fields

ElementRequiredUse
InsurancePlan.planNoHolds all cost rules for the plan.
plan.extension:claim-exclusionNoLists excluded conditions or procedures.
plan.extension:claimConditionNoLists claim rules.
plan.extension:claimSupportingInfoRequirementNoLists mandatory documents.
plan.identifierNoStores the business policy identifier.
plan.typeYesIdentifies the plan type.
plan.networkNoLists the provider network.
plan.generalCostNoStores the overall PMJAY sum insured.
plan.specificCostNoStores category and package costs.
specificCost.categoryYesIdentifies the speciality.
benefit.typeYesIdentifies the package.
benefit.cost.typeYesIdentifies the cost type.
benefit.cost.qualifiersNoAdds implant or stratification rules.
benefit.cost.valueNoStores the cost or extra amount.

Claim condition examples

ConditionHMIS rule
reserved_for_govt_ynBlock a private facility when the value reserves the benefit for government facilities.
auto_approve_ynMark the package as eligible for auto approval.
enhancement_applicable_ynBlock enhancement when the value is false.
quantity_allowedEnforce the allowed package quantity.
implant_applicable_ynEnable implant fields only when the value is true.
strat_applicable_ynEnable stratification fields only when the value is true.
cyclic_proc_ynPermit repeat cycles for dialysis-like benefits.
losCheck the maximum length of stay.
StandaloneDo not combine the package with another procedure.
UnspecifiedAllow free-entry package name and cost when the policy permits it.

CoverageEligibility after InsurancePlan

Use CoverageEligibility after you fetch the InsurancePlan. Use the policy code, provider ID, payer ID, and beneficiary identifier.

PurposeWhat the payer verifies
discoveryActive policies for the beneficiary.
validationEligibility before treatment.
benefitsCoverage limits and benefit amounts.
auth-requirementsPreauth requirement, documents, and STGs.

Combined operational view

Hospital stepInsurancePlan use
RegistrationLoad the policy and the provider-specific packages.
Coverage validationConfirm active coverage and wallet balance.
Benefit selectionRestrict package choices to the plan.
PreauthorisationAttach STGs and mandatory documents from plan rules.
ClaimAttach final documents from plan and eligibility rules.

Provider responsibilities

  • Retrieve the digital policy with InsurancePlan APIs.
  • Store benefits and costs in a queryable format.
  • Validate eligibility with CoverageEligibility APIs.
  • Check documents and conditions before submission.
  • Use the callback payload after JWE decryption.

Payer responsibilities

  • Publish accurate InsurancePlan bundles.
  • Maintain current policy and package definitions.
  • Validate eligibility requests.
  • Return encrypted callbacks through NHCX.

Sources

  • insurance-plan-ig.md (NHCX sandbox portal)