Three numbers that always reconcile.
Request
GET/v1/balances/currentAuthorization: Bearer ak_live_7Q4…
Response200 OK
{
"accountRef": "acc_8xK2",
"endpointRef": "ep_7Q4",
"holdingBalances": [
{
"holdingRef": "hld_USD",
"settledMinorUnits": "480000",
"availableMinorUnits": "240000",
"activeReservedMinorUnits": "240000"
}
],
"projectionState": "Projected"
}Request
POST/v1/sandbox/inbound-creditsAuthorization: Bearer ak_test_7Q4…
Idempotency-Key: a01-credit
{
"accountRef": "acc_8xK2",
"amountMinorUnits": "480000",
"valueUnit": { "kind": "fiat", "currency": "USD" }
}Response202 Accepted
{
"status": "credited",
"settledMinorUnits": "480000"
}Operations
GET/v1/balances/currentRead a balance: settled, available, reserved.
POST/v1/sandbox/inbound-creditsSimulate money arriving (sandbox only).idempotent
GET/v1/environmentRead environment status.
Settled, available, reserved
settledMinorUnits is value that has cleared; availableMinorUnits is what you can move now; activeReservedMinorUnits is held against transfers still in flight. Available equals settled minus reserved: the three are one identity, returned per holding.
Projected, honestly
Each snapshot carries a projectionState (Projected, PartiallyProjected, or NotProjected), so you know whether the figure is fully caught up before you act on it.
Fund it in the sandbox
There is no real money in the sandbox, so POST /v1/sandbox/inbound-credits to simulate value arriving and give a holding a settled balance to move. The same call does nothing in live, where money arrives over the rail.
See balances elsewhere
