Billing and usage
Live verifications are paid from your organization's **prepaid wallet**, in Kenyan shillings (KES). **Bundles and prices** Your organization is on a bundle. The bundle sets which verification APIs you can call, the price of each, and optionally a monthly call quota. You can see your bundle and prices in the dashboard under **Billing**. **How a call is charged** 1. When a live call starts, its price is reserved from your wallet. If the balance is too low, the call is rejected with `402 INSUFFICIENT_FUNDS` and no lookup is made. 2. If the source answers, whether "found" or "not found", the charge stands. The amount is in the verification's `cost` field. 3. If the source fails (`502`), **the charge is refunded automatically** before the response is sent. 4. A retry with the same `Idempotency-Key` is never charged twice. Test-key calls cost nothing (`cost: "0"`). **Topping up** Top up from the dashboard's billing page, using M-Pesa (STK push to your phone). The wallet is credited as soon as the payment is confirmed. Wallet statements, payment receipts and CSV exports are also in the dashboard. **Checking from code** An API key can read your balance and this month's usage with the two endpoints below. Use them to alert your team before the balance runs out.
Your organization's prepaid balance. Top-ups are made in the dashboard.
ApiKeyAuthorizationBearer <token>Your API key. sk_test_… keys use the sandbox (sample data, free); sk_live_… keys query the real sources and are charged.
The wallet.
application/json- response
id?stringorganizationId?stringbalance?stringAvailable balance, as a decimal string.
currency?stringcreatedAt?stringdate-timeupdatedAt?stringdate-timecurl -X GET 'https://restapi.nilinde.com/v1/wallet'{ "id": "cmh8w1a2b0000s60hwallet01", "organizationId": "cmh8w0z9y0000s60horg00001", "balance": "12450", "currency": "KES", "createdAt": "2026-09-02T07:30:00.000Z", "updatedAt": "2026-10-30T09:15:02.530Z"}Verifications made this calendar month against your bundle's monthly quota.
ApiKeyAuthorizationBearer <token>Your API key. sk_test_… keys use the sandbox (sample data, free); sk_live_… keys query the real sources and are charged.
This month's usage.
application/json- response
period?stringThe calendar month, YYYY-MM.
calls?integerVerifications made this month.
quota?|Your bundle's monthly limit; null when unlimited.
curl -X GET 'https://restapi.nilinde.com/v1/usage/quota'{ "period": "2026-10", "calls": 128, "quota": 1000}