Submit the face auth capture PID
Polls for the face capture the patient completes in the ABHA app after scanning the QR code for the txnId from Face auth init.
Business purpose
The face capture happens on the patient's phone, out of the hospital system's sight. This call is how the hospital learns that it has finished. It is the step between showing the QR code and verifying.
When to use
Call it repeatedly after showing the QR code, until the capture is complete. There is no callback.
Preconditions
- A
txnIdfromFace auth init. - The patient has scanned the QR code.
- The ABDM session token, a fresh
REQUEST-IDandTIMESTAMP, sent to the ABDM proxy host.
Postconditions
It answers PENDING until the patient finishes, then COMPLETE. Then call Face auth verify.
Common mistakes
- Waiting for a callback instead of polling.
- Calling
Face auth verifybefore this answersCOMPLETE. - Sending it to the fingerprint host.
Best practices
- Poll while the QR code is on screen, and stop when the answer is
COMPLETE. - Show the desk that the capture is pending, so the patient is not asked to scan twice.
Related scenario
The desk has shown the QR code for a discharge face authentication. It polls this endpoint with the txnId and gets PENDING while the patient completes the scan in the ABHA app. The next poll answers COMPLETE, and the desk calls Face auth verify.
Specification
Chapter Biometric authentication of the NHCX integration specification. Answers Headers
REQUEST-IDstringRequiredREQUEST-ID is a fresh UUID that you generate for every call. Sending the same one twice is the mistake to avoid; generate it, do not copy it from an example.TIMESTAMPstringRequiredTIMESTAMP is the current time in UTC, ISO 8601 with milliseconds and a trailing Z, as in 2026-09-04T06:15:51.975Z. A clock that has drifted will be refused, so take the time from the system rather than constructing it by hand. How to produce it in each language is at the end of this chapter.Body
txnIdstringResponses
200PENDING with Awaiting PID capture until the patient finishes, then COMPLETE with PID capture successful.statusstringmessagestring