Otp

Send a One-Time Passcode (OTP) to a User's WhatsApp. If you'd like to create a user and send them a passcode with one request, use our log in or create endpoint.

Note that sending another OTP code before the first has expired will invalidate the first code.

Cost to send SMS OTP

Before configuring SMS or WhatsApp OTPs, please review how Stytch bills the costs of international OTPs and understand how to protect your app against toll fraud.

Add a phone number to an existing user

This endpoint also allows you to add a new phone number to an existing Stytch User. Including a user_id, session_token, or session_jwt in your Send one-time passcode by WhatsApp request will add the new, unverified phone number to the existing Stytch User. If the user successfully authenticates within 5 minutes, the new phone number will be marked as verified and remain permanently on the existing Stytch User. Otherwise, it will be removed from the User object, and any subsequent login requests using that phone number will create a new User.

Next steps

Collect the OTP which was delivered to the user. Call Authenticate OTP using the OTP code along with the phone_id found in the response as the method_id.

post/v1/otps/whatsapp/send

Request

  • Base URL
    https://api.stytch.com
  • Auth
    HTTP basic

Request body

phone_numberstring required

The phone number to use for one-time passcodes. The phone number should be in E.164 format (i.e. +1XXXXXXXXXX). You may use +10000000000 to test this endpoint, see Testing for more detail.

expiration_minutesinteger

Set the expiration for the one-time passcode, in minutes. The minimum expiration is 1 minute and the maximum is 10 minutes. The default expiration is 2 minutes.

locale'en' | 'es' | 'pt-br' | 'fr' | 'it' | 'de-DE' | 'zh-Hans' | 'ca-ES' | 'ja' | 'ru' | 'nl' | 'pl' | 'tr' | 'fa' | 'vi' | 'cs'
user_idstring

The unique ID of a specific User. You may use an external_id here if one is set for the user.

session_tokenstring

The session_token associated with a User's existing Session.

session_jwtstring

The session_jwt associated with a User's existing Session.

Response

Successful response

request_idstring required

Globally unique UUID that is returned with every API call. This value is important to log for debugging purposes; we may ask for this value to help identify a specific API call when helping you debug an issue.

user_idstring required

The unique ID of the affected User.

phone_idstring required

The unique ID for the phone number.

status_codeinteger required

The HTTP status code of the response. Stytch follows standard HTTP response status code patterns, e.g. 2XX values equate to success, 3XX values are redirects, 4XX are client errors, and 5XX are server errors.

Changes

    • info

      added the new ca-ES enum value to the request property

    • info

      added the new cs enum value to the request property

    • info

      added the new de-DE enum value to the request property

    • info

      added the new fa enum value to the request property

    • info

      added the new it enum value to the request property

    • info

      added the new ja enum value to the request property

    • info

      added the new nl enum value to the request property

    • info

      added the new pl enum value to the request property

    • info

      added the new ru enum value to the request property

    • info

      added the new tr enum value to the request property

    • info

      added the new vi enum value to the request property

    • info

      added the new zh-Hans enum value to the request property

    • info

      endpoint added