Isolated kamba_test_ keys
Separate credentials that never touch your live SMS balance or real mobile carriers.
Validate both deterministic scenarios and the stateful Sandbox OTP v2 engine (with otp_id, 5-minute expiry, 5 attempts and single-use verification) at zero cost.
X-API-Key: kamba_test_...
Idempotency-Key: test-otp-001
{
"phone": "+244923000000"
}
→ 200 OK
{
"otp_id": "d4e8...91c2",
"test_code": "482916",
"expires_in": 300,
"max_attempts": 5
}Separate credentials that never touch your live SMS balance or real mobile carriers.
Validate payloads, error handling, idempotency and webhooks before buying credits.
Real 5-minute expiry, max 5 attempts, single-use consumption and HMAC domain isolation.
Legacy simulation accepts 123456 repeatedly without real expiry; Sandbox OTP v2 validates real expiry and single use.
Ideal for initial connectivity checks. Accepts fixed code 123456 repeatedly and simulates expiry with 999999 without storing state.
POST /otp/send (kamba_test_) → code: 123456Mirrors production security: requires otp_id on verify, enforces 5-minute expiry, blocks after 5 wrong attempts, invalidates after first use and tests SQL quotas (3/h per number).
POST /sandbox/v2/otp/send → POST /sandbox/v2/otp/verify