Core concepts
Dates, money and currencies
How the API writes amounts, currencies, VAT, dates and timestamps, and how to send them.
JSON#
- Requests and responses are JSON, with camelCase field names. Send
Content-Type: application/json. - Fields with no value are included as
null, not left out. - Ignore fields you don't know. New fields can appear without a new version.
Money#
- Amounts are decimal numbers in major units:
250000.00is ₦250,000.00. - Read them into a decimal type, not a binary float, so totals add up exactly.
- The exceptions are fields named
…Minor: integers in minor units (kobo or cents). They areamountMinoronpayment.refundedandplatformFeeMinoronpayment.initiated.100000there is ₦1,000.00.
Currencies#
ISO 4217 codes. Flux supports NGN, USD, CAD, EUR, GBP. Every amount is in its invoice's currency: the API never converts.
VAT#
- Flux applies VAT from the organization's VAT setting (7.5% in Nigeria by default). You send net line amounts.
- An invoice gives
subtotal,discount,taxableNet,vatAmount,vatLabelandtotal. Show these; don't recompute them.
Dates and timestamps#
| Kind | Fields | Format |
|---|---|---|
| Dates you send | dueDate, periodStart, periodEnd, nextDueDate | YYYY-MM-DD, such as 2026-11-15 |
| Dates you receive | The same, plus enrolledFrom, enrolledTo, nextBillingDate, cycleDate | YYYY-MM-DDT00:00:00. Use the date part. |
| Timestamps on customers, invoices, receipts and payments | createdAt, updatedAt, approvedAt, paidAt, attemptedAt | 2026-11-01T10:20:00, with no offset. Server time: the server time zone for timestamps (container default: UTC) |
| Timestamps on webhook endpoints and deliveries | createdAt, lastAttemptAt, deliveredAt, nextAttemptAt | No offset, but always UTC. |
| UTC timestamps | expiresAt on signed links, created on webhook events | ISO 8601 with Z, and possibly fractional seconds: 2026-12-01T10:00:00.5236411Z |
Parse timestamps with a full ISO 8601 parser: fractional seconds may appear.