Submit the HEM-entity participant create
Creates a hospital (HEM-entity) participant from the full empanelment payload (bank, tax, beds, specialities, doctors); returns status and hospitalid.
Business purpose
Government scheme empanelment needs far more than a name and a certificate: a hospital must be identified by scheme, state and district, carry bank details for settlement, tax identifiers for deduction handling, and descriptive data such as hospital type, bed strength, accreditation, specialities and doctors. This endpoint captures that full hospital-empanelment profile in one registry call so the payer side can settle and audit against it. It exists alongside the thinner v2 create because scheme onboarding (for example PMJAY) involves configuration that regular private-insurance onboarding does not.
When to use
Use it for scheme hospital onboarding, such as PMJAY, when the operator asks for this form. It is not a drop-in swap for /v2/participant/create.
Preconditions
- You have a valid access token.
- The body has every required field, including the bank details.
- If you send tax details, include the PAN, TAN and GST numbers together.
- You have a Base64-encoded certificate and a callback URL that uses a domain name.
Postconditions
The registry returns status and hospitalid. It does not return a participant code, so keep the participantcode you sent.
Common mistakes
- Expecting a participant code back and not saving
hospitalid. - Leaving out required fields inside the bank details.
- Guessing field names. Copy them exactly from the schema.
- Sending the certificate without Base64 encoding.
Best practices
- Build the payload from the schema field by field and validate nested objects (BankDetails, HospitalDoctorDetails, IncentiveRequest) before sending; a 400 does not point at the offending nested field.
- Collect bank, tax, MICR and IFSC values from the finance team in advance; they are mandatory and settlement depends on them.
- Keep the private key that pairs with encryption_cert in PKCS8 form on the callback host only.
- Never log the full request; it contains bank account and tax identifiers.
- Confirm with the onboarding operator whether a passcode approval step applies, since the response has no transactionid to pair with /validate.
Related scenario
A district hospital being empanelled under a state scheme is asked to register as an HEM entity. The hospital's IT partner obtains a Bearer token and assembles the full payload: scheme_code, state and district, bed strength, hospital type, speciality list, doctor roster, bank details for settlement and PAN, TAN and GST numbers, plus the Base64 certificate and callback URL. They call /v2/participant/hementity/create and receive status and hospitalid. The record is then available to the scheme payer via /participant/search, and the hospital moves on to fetching the payer's certificate with /fetch/certs before sending its first pre-authorisation.
Specification
Chapter Your certificate of the NHCX integration specification. Every NHCX call carries the access token from the session call in a header named Example Always HTTP 200 with ParticipantCreateResponseV2 containing status and hospitalid.Authorizations
bearer_authapiKeyRequiredbearer_auth, as the word Bearer, a space and the token. NHCX reads bearer_auth, not Authorization.Bearer <access token>Headers
AcceptstringRequiredapplication/json on the participant service.Body
participant_namestringparticipantcodestringscheme_codestringstatestringdistrictstringentityidstringhospitaltypestringincentiveCodestringhospitalbedstrengthstringlab_ynstringrolesstring[]specialityListstring[]primaryEmailstringprimaryMobilestringencryption_certstringendpoint_urlstringbankdetailsobjectbankdetails.facilitybankaccountnamestringbankdetails.authorizedsignatorynamestringbankdetails.bankaccountnumberstringbankdetails.ifsccodestringbankdetails.banknamestringbankdetails.bankbranchnamestringbankdetails.bankaddressstringbankdetails.micrcodestringbankdetails.accounttypestringtaxdetailsobjecttaxdetails.pannumberstringtaxdetails.tannumberstringtaxdetails.gstnumberstringResponses
200statusstringhospitalidstring