# Spendin API > Cross-border payouts for African corridors ## Docs - [Introduction](https://docs.spendin.app/introduction.md): Cross-border payouts to mobile money and bank accounts across Africa, settled in stablecoin or naira. - [Get access](https://docs.spendin.app/get-access.md): How to get onboarded, approved, and issued an API key. - [Quickstart](https://docs.spendin.app/quickstart.md): From zero to a funded payout, including the two prerequisites people miss. - [Authentication](https://docs.spendin.app/guides/authentication.md): API keys, scopes, and what happens when either is wrong. - [Idempotency](https://docs.spendin.app/guides/idempotency.md): Retry any write safely without creating it twice. - [Pagination](https://docs.spendin.app/guides/pagination.md): Cursor-based paging over every list endpoint. - [Errors](https://docs.spendin.app/guides/errors.md): One envelope, machine-readable codes, and a request ID for every failure. - [Corridors](https://docs.spendin.app/guides/corridors.md): What you can settle in, where money can land, and the minimums on each pair. - [Beneficiary lookup](https://docs.spendin.app/guides/beneficiaries.md): Find the institution code you must route on, and confirm who holds the account. - [Rates and quotes](https://docs.spendin.app/guides/quotes.md): Indicative pricing to show a user, executable quotes to hold a rate. - [Payout lifecycle](https://docs.spendin.app/guides/payout-lifecycle.md): The seven statuses a payout moves through, and what drives each transition. - [Settlement](https://docs.spendin.app/guides/settlement.md): Paying us: payment instructions, matching, confirmations, and what happens when the amount is wrong. - [Refunds](https://docs.spendin.app/guides/refunds.md): What happens to your money when a payout fails, and the destination you must register first. - [Webhooks](https://docs.spendin.app/guides/webhooks.md): Receive every payout and refund transition, signed and verifiable. - [Webhook events](https://docs.spendin.app/reference/events.md): Every event type, when it fires, and what the payload carries. - [Going live](https://docs.spendin.app/guides/go-live.md): What to have in place before you point real volume at the API. - [API Reference](https://docs.spendin.app/api-reference/introduction.md): Base URL, headers, and every endpoint available today. - [List institutions](https://docs.spendin.app/api-reference/banks/list-institutions.md): Returns every bank (or mobile money provider) that can receive a payout in the given country and currency, each with the `provider_code` to pass as `destination_provider_code` when creating a payout. The processor routes on that code — a display name is never accepted in its place. - [Resolve an account name](https://docs.spendin.app/api-reference/banks/resolve-an-account-name.md): Name enquiry against the destination institution. Use the returned name as `destination_account_name` on the payout — it is the institution-confirmed name, not a merchant guess. Results are cached briefly per account. - [Get an indicative rate](https://docs.spendin.app/api-reference/rates/get-an-indicative-rate.md): Live, non-binding mid-market-derived rate for a corridor. Carries no commitment and excludes fees — create a quote for the amount actually payable. - [Create a quote](https://docs.spendin.app/api-reference/rates/create-a-quote.md): Freezes the rate, spread and every fee for a strict TTL (default 30s), and returns the exact settlement amount payable. - [Get a quote](https://docs.spendin.app/api-reference/rates/get-a-quote.md): Expiry is evaluated on read, so a lapsed quote reports EXPIRED here. - [Accept a quote](https://docs.spendin.app/api-reference/rates/accept-a-quote.md): Optional. Payout creation locks its own rate at instruction generation, so a quote never has to be accepted to be useful. - [List payouts](https://docs.spendin.app/api-reference/payouts/list-payouts.md): Cursor-paginated, newest first. - [Create a payout request](https://docs.spendin.app/api-reference/payouts/create-a-payout-request.md) - [Get a payout](https://docs.spendin.app/api-reference/payouts/get-a-payout.md): Includes the nested active payment instruction and the full status timeline — every transition with its reason code. - [Get the webhook config](https://docs.spendin.app/api-reference/webhooks/get-the-webhook-config.md): Reports the URL and whether a secret is set. The secret itself is never returned. - [Set the webhook URL](https://docs.spendin.app/api-reference/webhooks/set-the-webhook-url.md): Registers the default delivery target and returns a new signing secret. The secret is shown exactly once and is never retrievable afterwards. - [Rotate the signing secret](https://docs.spendin.app/api-reference/webhooks/rotate-the-signing-secret.md): Returns the new secret once. It takes effect immediately — there is no grace window during which the previous secret still verifies. - [List webhook deliveries](https://docs.spendin.app/api-reference/webhooks/list-webhook-deliveries.md): Every attempt, with its response status and failure reason. Cursor-paginated. - [List refund destinations](https://docs.spendin.app/api-reference/refunds/list-refund-destinations.md): Account numbers and addresses are always masked. - [Set a refund destination](https://docs.spendin.app/api-reference/refunds/set-a-refund-destination.md): NGN routes to a Nigerian bank account (verified by name enquiry before saving); USDT routes to a crypto address on TRON or BSC. One destination per currency — setting it again replaces it. Required before payouts can be created. - [List refunds](https://docs.spendin.app/api-reference/refunds/list-refunds.md): Cursor-paginated refund history, filterable by status. - [Get a refund](https://docs.spendin.app/api-reference/refunds/get-a-refund.md) - [List refunds for a payout](https://docs.spendin.app/api-reference/refunds/list-refunds-for-a-payout.md): Refunds raised against one payout. At most one exists per payout. - [Get a payment instruction](https://docs.spendin.app/api-reference/payment-instructions/get-a-payment-instruction.md): The current active instruction for a payout: where to settle, the exact amount, and the expiry. Returns 404 until the generation job has run. - [List inflows](https://docs.spendin.app/api-reference/inflows/list-inflows.md): Your settlements, matched and unmatched. Cursor-paginated. Payer identity is never returned — it is the payer’s PII. - [Get an inflow](https://docs.spendin.app/api-reference/inflows/get-an-inflow.md) - [List outflows for a payout](https://docs.spendin.app/api-reference/outflows/list-outflows-for-a-payout.md): Every dispatch attempt, oldest first. Rows are immutable — a retry adds a new row rather than overwriting a failed one. - [Get an outflow](https://docs.spendin.app/api-reference/outflows/get-an-outflow.md) ## OpenAPI Specs - [openapi](https://docs.spendin.app/openapi.json)