All credit is per currency. Credit in naira only pays naira invoices. Card verification charges and payment-link checkouts never spend credit.
Read what a customer has
Refresh it when you get
credit_grant.created, credit_grant.updated or invoice.updated.
Customer balance
The balance is money that belongs to the customer. Invoices spend it after tax, and the invoice shows it asbalanceApplied. Voiding an invoice gives its balanceApplied back.
It grows when you issue a credit note with destination: balance, or when a downgrade with prorationBehavior: always credits unused time.
Small amounts carried forward
Card gateways have a smallest amount they will charge. Bouclay never sends a charge below it (or below a higher minimum you set per currency under Billing settings → Currencies). Instead the invoice is marked paid from the balance and the amount is carried to the customer’s next invoice in that currency, where it reads “Carried from INV-0003”. While it waits,balance is negative and available is 0.
Promotional credit
Give credit withPOST /credit-grants:
cg_…) with its own expiry. It is spent before tax, so it lowers the VAT like a discount: ₦12,000 of usage with ₦2,000 of credit is ₦10,000 + ₦750 VAT = ₦10,750. The invoice shows it as grantApplied.
- Lots are spent soonest expiry first, then oldest. At the same expiry, promotional credit goes before prepaid.
- When a lot expires, what was left is gone:
remainingreads 0 andcredit_grant.updatedfollows within the hour. - Voiding an invoice gives back what it spent. A credit note can’t give promotional credit back.
GET /credit-grants/{id} lists every movement on a lot (the grant, each invoice that spent part of it, voids and expiry), so you can answer “where did my credit go?”. Customers can see their credit in the portal too.