Amount units¶
All public APIs accept amounts in major currency units.
| You pass | Meaning |
|---|---|
100.00 |
One hundred Naira / Dollars / etc. |
50.5 |
Fifty and a half (where the currency allows fractions) |
Drivers convert to provider minor units (kobo, cents, paise) only when that provider’s API requires it. Callers should not multiply by 100 themselves unless a gateway-specific note says otherwise.
Payment::initializePayment([
'email' => 'customer@example.com',
'amount' => 5000.00, // ₦5,000.00 — not 500000 kobo
]);
Internally, subunit gateways use a helper such as toProviderMinorUnits() / convertAmount() on the abstract driver. That is an implementation detail; keep application code in major units.
Switching gateways
Because the public contract is major units everywhere, switching from Paystack to Flutterwave (or similar) should not require changing how you express amount in your app — only gateway-specific payload fields.