Loading...
Loading...
Verify phone numbers via SMS, Flashcall, Phone Call, Data (seamless carrier-level), or WhatsApp with Sinch Verification API. Use when implementing user phone verification, OTP, two-factor authentication, or number ownership confirmation flows.
npx skill4agent add sinch/skills sinch-verification-apihttps://verification.api.sinch.com/verification/v1/smsflashcallcalloutseamlesswhatsapp| Method | Use for |
|---|---|
| Application Signed Request | Secure authentication method for production traffic |
| Basic Auth | Simple method for prototyping and trying out API calls |
| Public Auth | Insecure environments (end user's device). Android/iOS SDK only, requires callback webhook |
| Language | Package | Install |
|---|---|---|
| Node.js | | |
| Python | | |
| Java | | Maven dependency |
| .NET | | |
applicationKeyapplicationSecret# Uses Basic Auth (-u) for simplicity. Use Application Signed Requests in production.
curl -X POST https://verification.api.sinch.com/verification/v1/verifications \
-H 'Content-Type: application/json' \
-u YOUR_APPLICATION_KEY:YOUR_APPLICATION_SECRET \
-d '{
"identity": { "type": "number", "endpoint": "+12025550134" },
"method": "sms"
}'idsms.templatesms.interceptionTimeout_links| Method | Value | Behavior |
|---|---|---|
| SMS | | Sends OTP via SMS. User enters code. |
| FlashCall | | Missed call — caller ID is the OTP. Auto-intercepted on Android; manual entry on iOS/JS. |
| Phone Call | | PSTN call dictates an OTP code. User enters the code into the app (same flow as SMS). |
| Data | | Carrier-level verification via mobile data. No user interaction. Requires account manager to enable. |
| Sends OTP via WhatsApp message. User enters code. |
{ "type": "number", "endpoint": "+E164_NUMBER" }PENDINGSUCCESSFULFAILDENIEDABORTEDERRORInvalid codeExpiredFraudBlockedDenied by callbackPOST /verification/v1/verificationsmethodsmsflashcallcalloutseamlesswhatsappreferencecustomAccept-Languageen-USsmsOptionsflashCallOptionscalloutOptionswhatsappOptionsPUT /verification/v1/verifications/number/{endpoint}PUT /verification/v1/verifications/id/{id}method{ "method": "sms", "sms": { "code": "1234" } }{ "method": "flashcall", "flashCall": { "cli": "+46000000000" } }cliGET /verification/v1/verifications/id/{id}GET /verification/v1/verifications/{method}/number/{endpoint}GET /verification/v1/verifications/reference/{reference}{method}/verifications/number/{endpoint}POST /verification/v1/verificationsidPUT /verification/v1/verifications/id/{id}GET /verification/v1/verifications/id/{id}SUCCESSFULaction: allowaction: denysmsOptions.expiry