Sandbox
Safe integration environment. Keys prefixed knos_sandbox_ never call live telecom providers; wallet holds still apply.
How to use
- Use a
knos_sandbox_…key from Developers (never a production key here). - Call the same endpoints as production — fulfillment is simulated; wallet holds still apply.
- Force a failure with beneficiary/meter ending in
0000to exercise error + webhook paths before requesting production.
Behavior
| Area | Sandbox behavior |
|---|---|
| Fulfillment | Simulated completion / failure — no live provider fulfillment |
| Wallet | Holds and releases like production |
| Meter lookup | Deterministic fake meters |
| Forced fail | Beneficiary or meter ending in 0000 → SANDBOX_TEST_FAILURE |
| ECG token | Fake token on successful sandbox ECG |
| Production keys | Sandbox credentials cannot create production traffic |
Forced failure example
POST
https://confident-elephant-309.convex.site/v1/transactionsRequest
curl -sS https://confident-elephant-309.convex.site/v1/transactions \ -H "Authorization: Bearer $KEY" \ -H "Content-Type: application/json" \ -d '{ "idempotencyKey": "fail-demo-1", "product": "airtime", "productId": "airtime-mtn", "amount": 1, "beneficiary": "0240000000" }'Later GET → failed
{ "transaction": { "status": "failed", "errorCode": "SANDBOX_TEST_FAILURE", "customerMessage": "Sandbox forced failure (beneficiary/meter ends with 0000)" }}