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.00 is ₦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 are amountMinor on payment.refunded and platformFeeMinor on payment.initiated. 100000 there 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, vatLabel and total. Show these; don't recompute them.

Dates and timestamps#

KindFieldsFormat
Dates you senddueDate, periodStart, periodEnd, nextDueDateYYYY-MM-DD, such as 2026-11-15
Dates you receiveThe same, plus enrolledFrom, enrolledTo, nextBillingDate, cycleDateYYYY-MM-DDT00:00:00. Use the date part.
Timestamps on customers, invoices, receipts and paymentscreatedAt, updatedAt, approvedAt, paidAt, attemptedAt2026-11-01T10:20:00, with no offset. Server time: the server time zone for timestamps (container default: UTC)
Timestamps on webhook endpoints and deliveriescreatedAt, lastAttemptAt, deliveredAt, nextAttemptAtNo offset, but always UTC.
UTC timestampsexpiresAt on signed links, created on webhook eventsISO 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.