API referenceBill payments

Pay a bill

Pay a utility, airtime or tax bill from the business wallet. This raises a payout, so everything that governs a payout governs this: the funds are reserved, the approval thresholds apply, the per-tier and per-day limits apply, and the destination is screened. A bill above the threshold comes back `awaiting_approval` and pays nobody until it is signed.

POST
/api/b/v1/bill-payments

Pay a utility, airtime or tax bill from the business wallet.

This raises a payout, so everything that governs a payout governs this: the funds are reserved, the approval thresholds apply, the per-tier and per-day limits apply, and the destination is screened. A bill above the threshold comes back awaiting_approval and pays nobody until it is signed.

Authorization

OAuth2PasswordBearer
AuthorizationBearer <token>

In: header

admin_access_token?string|null

Request Body

application/json

TypeScript Definitions

Use the request body type in TypeScript.

Response Body

application/json

application/json

application/json

application/json

application/json

curl -X POST "https://example.com/api/b/v1/bill-payments" \  -H "Content-Type: application/json" \  -d '{    "idempotency_key": "office-power-2026-08",    "service_type": "electricity",    "provider": "REG",    "account_number": "04123456789",    "amount_minor": 5000000,    "currency": "RWF"  }'
{  "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",  "payout_id": "89e4daf5-d103-4869-b9da-3d54ecc98dfe",  "service_type": "string",  "provider": "string",  "product": "string",  "account_number": "string",  "customer_name": "string",  "amount_minor": 0,  "currency": "string",  "cashback_minor": 0,  "status": "pending",  "receipt_number": "string",  "token": "string",  "failure_reason": "string",  "created_at": "2019-08-24T14:15:22Z",  "completed_at": "2019-08-24T14:15:22Z"}