A tiny FinTech sandbox: list accounts, page through transactions with an opaque cursor, and move money with idempotent transfers. Insufficient funds return HTTP 402 Payment Required, frozen accounts 409, and bad amounts 422.
The Bank API is the strictest surface in the catalog and the one closest to a real payments integration: accounts, balances and transfers, with cursor-based pagination instead of page numbers. It is the home of 402 Payment Required and of 422 for a transfer that is well-formed but not permissible — the distinction between "I cannot parse this" and "I understood you and the answer is no".
Base URL: https://funapi.dev/api/bank/v1 · 9 endpoints · OpenAPI 3.1 spec and Postman collection available. New here? Read the getting started guide.
GET https://funapi.dev/api/bank/v1/exchange-rates — Exchange rates (cacheable, ETag + If-None-Match → 304). No token, no signup:
curl -i https://funapi.dev/api/bank/v1/exchange-rates
answers 200 OK with:
{
"base": "USD",
"rates": {
"EUR": 0.91,
"GBP": 0.78,
"TRY": 41.2,
"JPY": 148.5,
"GALLEON": 0.02,
"CREDITS": 3800
},
"note": "Rates are frozen in time, like everything else in this sandbox."
}
who owns the money
GET /bank/v1/accounts — List accounts (requires Bearer auth) · Responds with 200 401 Link to this endpointGET /bank/v1/accounts/{id} — Get one account (requires Bearer auth) · Responds with 200 401 404 Link to this endpointPOST /bank/v1/accounts — Open a new account (requires Bearer auth) · Responds with 201 400 401 422 Link to this endpointPOST /bank/v1/accounts/{id}/freeze — Freeze an account (admin only) (requires Bearer auth) · Responds with 200 401 403 404 409 Link to this endpointGET /bank/v1/exchange-rates — Exchange rates (cacheable, ETag + If-None-Match → 304) · Responds with 200 304 Link to this endpointcursor-based pagination
GET /bank/v1/accounts/{id}/transactions — List transactions (cursor pagination) (requires Bearer auth) · Responds with 200 400 401 404 Link to this endpointidempotent money movement
POST /bank/v1/transfers — Transfer money between accounts (requires Bearer auth) · Responds with 201 400 401 402 404 409 422 Link to this endpointGET /bank/v1/transfers/{id} — Look up a transfer (requires Bearer auth) · Responds with 200 401 404 Link to this endpointpay up — 402 on demand
Last updated