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

# Money & currencies

> String amounts, zero-decimal currencies, balances, FX, and how rates are locked.

## Amounts are strings

Every amount the API *returns* is a decimal string — `"150.00"`, `"85000"`, `"8.888289"`. Never `parseFloat` for arithmetic; use a decimal library. Amounts you *send* may be numbers or numeric strings; they're validated as positive decimals.

## Currencies

| Currency   | Country  | Decimals | Notes                        |
| ---------- | -------- | -------- | ---------------------------- |
| GHS        | Ghana    | 2        |                              |
| NGN        | Nigeria  | 2        |                              |
| KES        | Kenya    | 2        |                              |
| UGX        | Uganda   | 0        | whole units only             |
| TZS        | Tanzania | 0        | whole units only             |
| RWF        | Rwanda   | 0        | whole units only             |
| ZMW        | Zambia   | 2        |                              |
| USD        | —        | 2        | balance and pricing currency |
| USDC, USDT | on-chain | 6        | stablecoins                  |

Zero-decimal currencies reject fractional amounts. Crypto amounts carry up to six decimals and are always rounded **up** when we quote what a payer must send, so the payment covers the fiat amount.

## Balances

Your organization holds one **account per currency**, created automatically the first time that currency is touched. `GET /v1/accounts` shows each with:

* `available` — what you can spend now
* `total` — including money that's been received but is still settling
* `pending` = `total − available`

Payouts debit `available`; collections, virtual-account deposits, and crypto deposits credit it; conversions move between two of your own accounts.

## FX

Any cross-currency operation — a USD balance paying a GHS payout, a USDC deposit landing in an NGN balance, a conversion — is priced at Chipper's live rate **with your organization's spread already applied**. `GET /v1/rates/{origin}/{destination}` returns that all-in rate; the same number is used at execution.

Rates are expressed as *destination units per one origin unit*: `GET /v1/rates/USDC/GHS → 11.31` means 1 USDC buys GH₵ 11.31.

**Rate locks.** Quotes and checkout sessions lock a rate for their lifetime — 15 minutes for volatile assets, 90 minutes for stablecoin checkout sessions — so the payer sends a known amount. If the window passes, the session expires and a fresh rate is quoted.

## Fees

Fees are set per organization and per rail; the applied fee is returned on each payout as `fee: { amount, currency }`. For your organization's schedule, see the dashboard or contact [api-support@chippercash.com](mailto:api-support@chippercash.com).
