ABHA verification, mobile OTP
Send a login OTP
Starts a login. loginHint selects what the person is identifying themselves with: mobile, aadhaar or abha-number. As everywhere in M1, loginId is encrypted rather than raw.
Certification cases PROF_ABHA_605, VRFY_ABHA_101, VRFY_ABHA_201, VRFY_ABHA_301, VRFY_ABHA_302, VRFY_ABHA_303, VRFY_ABHA_304, VRFY_ABHA_305, VRFY_ABHA_401, VRFY_ABHA_402, VRFY_ABHA_403, VRFY_ABHA_404, VRFY_ABHA_405
The shape you encrypt matters, because the service validates the plaintext after it decrypts. On 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. What the person is identifying themselves with. One of The identifier for that The transaction id to carry into the next step, with a message.abha-number that is the fourteen digits with their dashes, NN-NNNN-NNNN-NNNN, for example 91-1234-5678-9015. The bare digits are refused with 400 {"loginId": "LoginId is invalid"}, observed on the sandbox on 11 September 2026. On mobile the plaintext is ten digits with no country code, and on aadhaar twelve digits with no spaces.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.Body
scopestring[]RequiredloginHintstringRequiredmobileaadhaarabha-numberloginIdstringRequiredloginHint, RSA encrypted against the ABDM public certificate and base64 encoded. The plaintext shape is checked after decryption: an ABHA number is NN-NNNN-NNNN-NNNN with its dashes, a mobile number is ten digits with no country code, an Aadhaar number is twelve digits with no spaces.otpSystemstringRequiredtxnIdstringResponses
200