Read your organisation's current $kic balance — to decide whether you can afford more reward grants, or to reconcile against your own records.
Every request needs a bearer token in the Authorization header, and this endpoint only works for clients owned by an organisation. Exchange your client_key/client_secret at POST /auth/token; tokens last 24 hours.
| Field | Type | Required | Description |
|---|---|---|---|
| Authorization | string | required | Bearer token obtained from POST /api/third-party/v1/auth/token, e.g. "Bearer eyJhbGci...". |
$kic carries eight decimal places, and a real balance exceeds what a JSON number can hold exactly, so balance is a string: "125000", "20.5", "0.00000001". Parse it with a decimal library, never Number, if you do arithmetic on it.
curl -X GET https://kicbak.co/api/third-party/v1/kicbak/wallet \
-H "Authorization: Bearer YOUR_TOKEN"Every response is JSON with a status field (1 success, 0 failure). Failures also carry a code your error handler can branch on — it never changes if we reword message.
{
"status": 1,
"data": {
"balance": "125000",
"currency": "KIC"
}
}| Status | Code | Meaning |
|---|---|---|
| 400 | — | Organisation has no wallet configured. |
| 401 | UNAUTHORIZED | No readable credential, or a token that doesn't decode/validate. |
| 401 | TOKEN_EXPIRED | Token aged out. Re-exchange the same client_key/client_secret and retry. |
| 401 | CREDENTIAL_ROTATED | This token was minted under a secret that has since been rotated. Exchange your new secret. |
| 401 | CREDENTIAL_EXPIRED | The credential itself is past its own expiry — re-exchanging will not help; request a new credential. |
| 401 | CLIENT_INACTIVE | The client has been deactivated. |
| 403 | NOT_ORGANIZATION | Client is not organisation-owned — only organisation clients can call this endpoint. |
| 503 | SANDBOX_UNAVAILABLE | You are using a sandbox credential and the sandbox environment is temporarily unavailable on our side. Retry shortly; production credentials are unaffected. |
| 429 | — | More than the configured hourly limit (default 600) from this client. |
| 500 | INTERNAL_ERROR | Unexpected server error, or the org's configured wallet does not resolve to its own wallet. Safe to retry. |
Limited to a configurable number of requests per hour per client (default 600) — high enough for routine polling, still capped against abuse.