Signup Phone Verifications
Two-step phone verification for signup. - Send code: provide phoneNumber (and optionally recaptchaToken, language). Provider (Firebase or Twilio) is determined by tenant configuration. - Verify code: provide sessionId and verificationCode from the previous step. Mobile clients using the Firebase SDK directly can provide verificationId + phoneNumber + verificationCode instead of a sessionId.
Phone number in E.164 format (e.g., +12025551234)
+12025551234reCAPTCHA token from Firebase. Required when the tenant is configured to use Firebase phone verification.
Preferred language for SMS message
en-USFirebase verification ID from the native mobile SDK. Used only for the verify step — mobile clients that use Firebase SDK directly provide this instead of a sessionId.
Session ID returned from the initial request. Required when submitting a verification code.
pv_123e4567-e89b-12d3-a456-4266141740006-digit verification code. When present, the endpoint verifies the code instead of sending a new one.
123456Returns the verification session
Session ID for tracking verification
pv_123e4567-e89b-12d3-a456-426614174000Phone number preview (last 4 digits)
1234Session status
Session expiration timestamp
Remaining verification attempts
Validation error (invalid phone, denied number, reCAPTCHA error, invalid/expired session, invalid code, max attempts exceeded, etc.)
Too many requests
POST /apis/v2/signup/phone-verifications HTTP/1.1
Content-Type: application/json
Accept: */*
Content-Length: 179
{
"phoneNumber": "+12025551234",
"recaptchaToken": "text",
"language": "en-US",
"verificationId": "text",
"sessionId": "pv_123e4567-e89b-12d3-a456-426614174000",
"verificationCode": "123456"
}{
"sessionId": "pv_123e4567-e89b-12d3-a456-426614174000",
"phonePreview": "1234",
"status": "pending",
"expiresAt": "2026-01-01T00:00:00.000Z",
"remainingAttempts": 1,
"errors": [
{
"code": "text",
"message": "text",
"details": {}
}
]
}Last updated
Was this helpful?

