Skip to main content
Use this guide when you want OTP.ID to verify a user with a Missed Call flow. You send channel: "misscall" to POST /v3/request or POST /v3/send, OTP.ID places a call, and the caller ID carries the OTP. There is no SMS and no message body for this channel. Your UI must use verification.prefix and verification.otp_length from the direct request or send response to guide the user. The full calling number is not returned by V3, so your form should show the prefix as read-only context and collect only the trailing digits that the user sees in the call log.

How the flow works

1

Create or send the Missed Call transaction

Call POST /v3/request when you want OTP.ID to generate the transaction, or call POST /v3/send with channel: "misscall" when your application starts the same channel flow from the client-supplied endpoint.
2

OTP.ID places and disconnects the call

OTP.ID triggers the Missed Call and disconnects it so the user can inspect the caller ID in their phone call log.
3

The user checks the call log

Instruct the user to open the phone call log and find the OTP.ID number that just called. There is no SMS fallback and no message content to read.
4

Show the prefix and trailing slots

Render verification.prefix and display verification.otp_length empty input slots after it. This UI tells the user how many trailing digits they must enter.
5

Collect the trailing digits

The user reads the end of the caller ID from the call log and enters only those trailing digits into your form.
6

Verify the collected digits

Submit the collected digits to POST /v3/verify as otp together with the transaction ID.

Response mapping for Missed Call

The Missed Call response gives you only the verification hint your UI needs:
  • The telephony vendor determines the code from the caller ID.
  • When otp_length is 4, the user enters the last four digits of the number that called them.
  • otp_length and a supplied otp do not change the vendor-derived caller-ID code for this channel.
  • Use the response prefix only to orient the user in your UI; do not treat it as a way to reconstruct or expose the full number.
  • Request, send, replay, and status details remain defined by the canonical POST /v3/request reference and POST /v3/send reference.

UI reference

Do not ask the user to wait for an SMS or search for a message body. Missed Call verification comes from the caller ID only.

Request and verify examples

Use the canonical endpoint pages for shared fields and response schemas:

Example: create a Missed Call transaction

You can omit otp_length for Missed Call requests. OTP.ID accepts the field for compatibility, but the telephony vendor still determines the caller-ID digits, so the value has no effect for this channel.

Example: verify the collected trailing digits

If the user sees a number that ends with 4829, submit only 4829 as the otp value.

Delivery, retry, and verification guidance

  • Failed delivery: if the Missed Call never appears in the user’s log, ask them to confirm signal coverage and request a new transaction instead of reusing the current one.
  • Expiry: if verification returns an expired response, start a new Missed Call flow and show that the previous caller ID can no longer be used.
  • Retry: when the user taps Try again, create a fresh request so the next call is tied to a new active transaction.
  • Verification limits: if the user reaches the maximum attempt response, stop the current flow and require a new request before they can verify again.
  • Invalid code: if the trailing digits do not match, tell the user to re-check the last digits from the call log and submit again while attempts remain.