ABHA creation, Aadhaar OTP
Create an ABHA from a verified Aadhaar OTP
Exchanges the OTP you just received for a real ABHA number. Send the txnId from the OTP request, the encrypted OTP value, and the consent block recording that the person agreed.
Certification cases CRT_ABHA_101, CRT_ABHA_102, CRT_ABHA_103, CRT_ABHA_104, CRT_ABHA_105, CRT_ABHA_106, CRT_ABHA_107, CRT_ABHA_108, CRT_ABHA_109, CRT_ABHA_112, CRT_ABHA_113, CRT_ABHA_114, CRT_ABHA_115, CRT_ABHA_201, CRT_ABHA_202, CRT_ABHA_203, CRT_ABHA_204, CRT_ABHA_205, CRT_ABHA_206, CRT_ABHA_207, CRT_ABHA_208, CRT_ABHA_209, CRT_ABHA_210, CRT_ABHA_301, CRT_ABHA_302, CRT_ABHA_303, CRT_ABHA_304, CRT_ABHA_305, CRT_ABHA_306, CRT_ABHA_307, CRT_ABHA_308, CRT_ABHA_309
This is the call that creates the account, so treat a success as a permanent side effect. If you retry it blindly after a timeout you may be enrolling somebody twice.
BENEFIT_NAME is sent on this call when the enrolment belongs to a benefit scheme.
The demographic authentication variant reads the user token from a different place: The Unique UUID v4 per request. Used for idempotency and distributed tracing. Generate a fresh UUID for every call. ISO 8601 UTC timestamp of the request. The benefit scheme an enrolment belongs to. Send A login OTP request sent with NHA's files spell this header four different ways and use scheme values beyond healthid. Which spelling each endpoint accepts is not confirmed against the sandbox. The Conventions page for this module lists all four. The user scoped token returned when a person logs in or verifies an OTP. Profile calls act on one account, so they need this in addition to the gateway token. Required on the calls that read or change a specific person's account. Send the bare token. Unlike the Authorization header this one carries no The specification does not describe this body. Send the call with Try it to see what comes back.token at the top level, while the OTP, face and fingerprint variants take tokens.token. Check which one you get before parsing.Authorizations
Authorizationbearer tokenRequiredaccessToken from POST /api/hiecm/gateway/v3/sessions. Send it as Authorization: Bearer <ACCESS_TOKEN>.Headers
REQUEST-IDstringRequiredTIMESTAMPstringRequiredBENEFIT_NAMEstringhealthid api on the enrol and search calls, and healthid on the login OTP and verify calls under Find ABHA. On the enrolment OTP request the header is present but explicitly disabled, so it is not sent there.healthid api rather than healthid was accepted on the sandbox on 2026-09-11, so the login calls may take either.X-tokenstringBearer prefix, and adding one is refused as ABDM-1094 with the message X-token expired. That message names the wrong thing: a token rejected one second after it was issued has not expired, it was malformed. Check the prefix before the lifetime.Body
authDataobjectRequiredauthData.authMethodsstring[]RequiredauthData.otpobjectauthData.otp.txnIdstringRequiredauthData.otp.otpValuestringauthData.otp.mobilestringRequiredauthData.otp.fingerPrintAuthPidstringauthData.otp.timeStampstringauthData.faceobjectauthData.face.txnIdstringRequiredauthData.face.aadhaarstringRequiredauthData.irisobjectauthData.iris.aadhaarstringRequiredauthData.iris.PidstringRequiredauthData.iris.mobilestringRequiredauthData.bioobjectauthData.bio.aadhaarstringRequiredauthData.bio.fingerPrintAuthPidstringRequiredauthData.bio.mobilestringRequiredconsentobjectRequiredconsent.codestringRequiredconsent.versionstringRequiredResponses
200