Kardlane
Webhook event

billing.balance_low / suspended / restored

Your prepaid Kardlane balance crossed a threshold. While suspended, new trades go straight to review instead of being handled.

Amounts are in minor units (kobo for NGN).

Delivery#

Sent as a signed POST to your project’s webhook URL — see the Webhooks guide to verify the signature. Delivery is at-least-once: dedupe on the X-Kardlane-Delivery header (or data.idempotencyKey).

Payload
{
  "id": "0f3c9a52-8d6e-4f0e-9b7a-2c1d5e8f4a10",
  "apiVersion": "2026-09-01",
  "type": "billing.balance_low",
  "createdAt": "2026-10-03T09:21:07.512Z",
  "tenantId": "b1e2c3d4-5f60-4a7b-8c9d-0e1f2a3b4c5d",
  "data": {
    "tradeId": "",
    "externalRef": "",
    "settlementMode": "verdict_only",
    "evidence": {},
    "balance": {
      "available": 1850000,
      "balance": 1920000,
      "held": 70000,
      "currency": "NGN",
      "unit": "minor",
      "lowThreshold": 2500000,
      "stopThreshold": 500000
    },
    "idempotencyKey": "billing:low:…"
  }
}