Prepaid balance and estimated talk time remaining
Everything is prepaid and in paise. The estimate divides the balance by your per-minute rate, so it is a guide, not a quota. Subscribe to wallet.balance.low rather than polling this.
Requires the read scope. A key with less gets 403 insufficient_scope.
Authorization: Bearer tone_live_… or tone_test_…. The prefix IS the environment: a test key reaches only the sandbox, and no request field bridges the two.
In: header
Response Body
application/json
application/json
application/json
application/json
application/json
curl -X GET "https://example.com/v1/wallet"{ "data": { "balancePaise": 0, "currency": "INR", "estimatedMinutesRemaining": 0, "lowBalanceThresholdPaise": 0, "ratePaisePerMinute": 0 }}Update a webhook endpoint
Change the URL, the subscribed events, or disable it. Disabling stops delivery without losing the endpoint, its secret or its history. A live key or the dashboard only: a test key gets 403, because an endpoint receives live events too.
Wallet transactions, newest first
The ledger behind the balance, and the source of truth for it: every top-up, call, number purchase, monthly rental and compliance verdict. Append-only — a correction is a new compensating row, never an edit.