Money in the Reevit API is always an integer in the currency’s minor unit — the smallest indivisible unit of that currency. There are no decimal points anywhere in the API, which makes floating-point rounding bugs structurally impossible.
CurrencyMinor unit45000 means
GHSpesewa (1/100)GHS 450.00
NGNkobo (1/100)NGN 450.00
KEScent (1/100)KES 450.00
USDcent (1/100)USD 450.00
{
  "amount": 45000,
  "currency": "GHS"
}

Rules

  1. Send integers. 45000, never 450.00. A request with a fractional amount is rejected.
  2. Convert at the edge. Multiply by 100 exactly once — when the amount enters your system (e.g. from a form) — and divide by 100 exactly once, when you display it. Everywhere in between, keep the integer.
  3. Every money field follows the same rule. amount, fee_amount, net_amount, refund amounts, payout amounts, and settlement amounts are all minor-unit integers in their stated currency field.
  4. Don’t do float math on display values. 45000 / 100 is safe to render; summing display values is not. Sum the integers, then format.

Formatting for display

const formatted = new Intl.NumberFormat("en-GH", {
  style: "currency",
  currency: "GHS",
}).format(amount / 100); // "GH₵450.00"
The SDKs keep you honest: their typed payment-intent builders take minor-unit integers, and the docs’ code samples annotate them — e.g. amount: 45000, // GHS 450.00, in pesewas.