1
Get a sandbox key
Sign in to the dashboard, finish onboarding, and open Applications. A sandbox key (
tk_test_...) is issued the moment onboarding completes, before your application is reviewed. Copy it once: keys are shown a single time.A sandbox key sends real messages, but only to numbers you have proven you own in the dashboard, and only 10 times per application. The Sandbox page has the details.
2
Start a verification
Send a code to the destination. Any accepted Saudi mobile format works; The answer is
lang picks the message language (Arabic unless it is exactly en).201 with the id you will check against and when the code expires:3
Check the code
Post the id and the code the person typed. The code is compared exactly as sent: never trimmed, never normalised.Every outcome is a
200. Read verified first, then status for the reason:status is one of verified, invalid_code, too_many_attempts, failed, expired or canceled. An unknown id is the one exception: 404 { "error": "not_found" }. A verified request stays verified and ignores later codes.4
Go live
Once your application is approved, create a live key (
tk_live_...) on the same Keys page and swap it in. The endpoints and shapes are identical; the [TEST] stamp disappears and the sandbox caps no longer apply.Defaults you can tune
Each application sets its own verification settings in the dashboard. The defaults, and their bounds:What next
Authentication
Key modes, scopes, expiry and IP allowlists.
Reliability
Idempotency keys, rate limits and the protection guard.
Webhooks
Get told when a verification is verified, fails or expires.
Resend and cancel
A new code on the same id, or a clean cancel.