In short
- This workflow creates an ABHA address from a mobile OTP, without Aadhaar.
- The address is not KYC-verified and comes with no 14-digit ABHA number.
- Send the mobile number, verify the OTP, choose an address, then call Create with the patient’s profile.
- Each call takes the latest
txn_id.
When to use this
The patient will not use Aadhaar, or does not have it. This workflow verifies their mobile number with an OTP and creates an ABHA address such asshyam@abdm. The address is not KYC-verified, and the patient gets no 14-digit ABHA number from it.
Alternatives:
- The patient has Aadhaar and its linked mobile: Create an ABHA with Aadhaar OTP gives a KYC-verified ABHA number.
- The patient already has an ABHA address: Log in to an existing ABHA.
- The patient wants to upgrade the address to KYC later: Manage the ABHA profile and KYC.
Before you start
- A client access token, sent as a Bearer token on every call. See Client login.
- Your facility onboarded as a Health Information Provider (HIP). You can send its HIP ID in the optional
X-Hip-Idheader and your own patient id in the optionalX-Partner-Pt-Idheader. - A webhook endpoint registered with Eka, so you receive
abha.created. See Register a webhook. - In hand: the patient’s mobile number, first name, gender, full date of birth and pincode. Middle name, last name and address are optional.
Sequence
Steps
1
Send the mobile number
Send
mobile_number to Generate OTP. The patient receives an OTP. The response carries txn_id and a hint with the masked number.Keep txn_id. Every later call takes the txn_id from the most recent response.If the OTP does not arrive, send txn_id to Resend OTP and use the txn_id it returns. 2
Verify the OTP
Send
txn_id and the otp to Verify OTP. The response carries a new txn_id, skip_state, eka.oid and abha_profiles.abha_profiles is present when ABHA addresses already exist on this mobile. If it is non-empty, show each abha_address and name, and ask whether the patient wants one of those or a new address. To use an existing one, switch to Log in to an existing ABHA. If the patient wants a new address, continue.3
Choose an ABHA address
Call Suggest ABHA Address with
transactionId set to your current txn_id, plus fn, mn, ln and dob (format YYYY-MM-DD) from the patient’s details. The response’s suggestions lists available addresses.Send the chosen abha_address to Does ABHA Address Exist. If exists is true, ask the patient for another one.4
Create the ABHA address
Send
txn_id, abha_address and profile to Create. profile requires first_name, gender (M, F or O), year_of_birth, month_of_birth, day_of_birth and pincode. It also takes middle_name, last_name and address.The response carries success, profile, eka.oid, skip_state, token and refresh_token. Eka also sends the abha.created webhook with abha_address, oid, hip_id and partner_patient_id in data. Reply 200 within 5 seconds; Eka retries on any other status. Verify the Eka-Webhook-Signature header as described in Webhook signature. State you must persist
When it fails
Error responses carrycode, error and source_error. source_error.code holds codes such as MIS-1013. See Error codes.
Test it
The testing page has the sandbox base URL, credentials and the happy path for every journey. Run against the sandbox base URLhttps://api.dev.eka.care.
- Happy path: Generate OTP, Verify OTP, Suggest, Does ABHA Address Exist returns
exists: false, Create. The response hassuccess: trueandeka.oid. -
abha.createdarrives with the sameabha_addressandoid, and its signature verifies. - Wrong OTP once, then the correct one:
MIS-1013, then success. Record the code you receive; the expected code is not confirmed. - Resend OTP, then verify with the new OTP and the returned
txn_id. - Second run with the same mobile: Verify OTP returns a non-empty
abha_profiles. - Create with an address that Does ABHA Address Exist reports as taken:
ABDM-1101. Record the code you receive; the expected code is not confirmed.

