> ## Documentation Index
> Fetch the complete documentation index at: https://docs.sakawave.com/llms.txt
> Use this file to discover all available pages before exploring further.

# Money and currencies

> Represent Sakawave monetary values without rounding or precision loss.

Never use binary floating-point numbers for money. Keep API values as strings and use integer or decimal libraries for arithmetic.

## Request amounts

Transfer and FX request amounts are positive integer strings in minor units.

| Currency | Decimal places | Request value for 25,000 major units |
| - | -: | - |
| NGN, USD, GBP, EUR, GHS, ZAR, CAD, MXN, AED | 2 | `"2500000"` |
| UGX | 0 | `"25000"` |

Supported fiat currency codes in the current validation contract are `NGN`, `USD`, `GBP`, `EUR`, `GHS`, `ZAR`, `UGX`, `CAD`, `MXN`, and `AED`. Account creation also accepts `BTC`, `ETH`, `USDT`, and `USDC`; crypto balances use eight decimal places.

<Warning>
  Validation support does not guarantee that every currency, country, account type, or transfer route is commercially available. Confirm enabled corridors before launch.
</Warning>

## Response amounts

The current API has two representations:

* Accounts and transactions expose raw minor-unit strings such as `"2500000"` and a separate display field such as `"25000.00"`.
* Transfers, previews, and FX quotes return decimal amount strings such as `"25000.00"`.

Use raw account and transaction values for calculations. For transfer responses, parse the decimal string using a decimal library and the accompanying currency. Do not remove the decimal point and assume two places because UGX has no minor unit.

## IDs and timestamps

Resource IDs are 26-character ULIDs. Treat them as opaque, case-sensitive strings. Timestamps are ISO 8601 UTC values such as `2026-08-14T09:00:00.000Z`.


This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.