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.
who owns the money
GET /bank/v1/accounts — List accounts (requires Bearer auth)GET /bank/v1/accounts/{id} — Get one account (requires Bearer auth)POST /bank/v1/accounts — Open a new account (requires Bearer auth)POST /bank/v1/accounts/{id}/freeze — Freeze an account (admin only) (requires Bearer auth)GET /bank/v1/exchange-rates — Exchange rates (cacheable, ETag + If-None-Match → 304)cursor-based pagination
GET /bank/v1/accounts/{id}/transactions — List transactions (cursor pagination) (requires Bearer auth)idempotent money movement
POST /bank/v1/transfers — Transfer money between accounts (requires Bearer auth)GET /bank/v1/transfers/{id} — Look up a transfer (requires Bearer auth)pay up — 402 on demand
GET /bank/v1/premium/statements — Premium statements — always 402