Figo Docs
USD-faced B2B API for collections (pay-ins) and payouts (pay-outs) across supported corridors. Authenticate with an API key via the x-api-key header (or Authorization: Bearer sk_...).
Repeating a request safely
Send an Idempotency-Key header on any request that moves money. The first request runs and its response is kept; every repeat of that key returns the same response instead of doing the work again. So if a payout times out, retry it with the same key — you will either get the original result or the payout will be made once.
Reusing a key with a different body is refused, because that is a bug we should not hide from you.
Errors
Errors carry a message written for a person, which we reword as we find better wording. When a refusal is one you can act on, it also carries an error_code that does not change — branch on that:
error_code |
what happened |
|---|---|
settlement_account_not_ready |
The account cannot be paid yet; its settlement account is still coming up. |
corridor_unavailable |
We do not collect or pay out on this corridor right now. |
corridor_not_link_payable |
Payable through the API, but not through a payment link. |
amount_below_minimum |
Below the smallest amount the corridor will carry. |
insufficient_balance |
Not enough available balance. |
link_not_payable |
The link is expired, used up, or switched off. |
idempotency_key_reused |
The same Idempotency-Key was sent for different work. |
idempotency_in_progress |
A request with that key is still running. |
Testing
On the sandbox no money moves for real, so nothing arrives until you say so. Open a collection, then settle it with POST /v1/sandbox/collections/{reference}/settle — including { "outcome": "failed" }, because an integration that has only ever seen money arrive has not been tested.