> ## Documentation Index
> Fetch the complete documentation index at: https://docs.bachs.io/llms.txt
> Use this file to discover all available pages before exploring further.

> ## Agent Instructions
> Money is always a decimal string at the currency's precision (for example "29.00"), paired with an ISO 4217 currency field. Never use minor units.
> Build against the sandbox first: base URL https://sandbox-api.bachs.io with sk_sandbox_ keys. Production is https://api.bachs.io with sk_live_ keys; going live is a key swap.
> Treat webhooks (for example collection.succeeded) as the source of truth for fulfilment, never client-side events or redirects.
> Subscriptions are created by completing a checkout for a recurring product. There is no direct create-subscription endpoint.
> IDs carry resource prefixes (cust_, prod_, sub_, chk_, inv_, ref_) and timestamps are ISO 8601 UTC.

# Multi-currency withdrawals

> Withdraw your Bachs balance to your own accounts in supported currencies. Learn the funding requirements, bank details and API flow.

Multi-currency withdrawals let you move money from your Bachs balance to your own bank accounts and mobile money wallets in additional currencies. You can save multiple bank accounts and choose which one to withdraw to. Multi-currency withdrawals are available to all Bachs users. This page explains the supported options and what you need to make a withdrawal.

## Where you can withdraw

You can withdraw to your own bank accounts in NGN, GHS, KES, TZS, UGX, GBP, USD, CAD and EUR, and to your mobile money wallets in GHS, KES and TZS. Supported stablecoin withdrawals are also available. See [Supported currencies](/for-you/supported-currencies#withdrawals) for the currency and method table.

GBP bank withdrawals use Faster Payments. EUR withdrawals use SEPA. USD destinations offer ACH, Wire and RTP. CAD destinations offer EFT and Interac to an email address or bank account. The method depends on the destination; a currency does not support every method.

EUR bank destinations currently cover Austria, Belgium, Cyprus, Germany, Estonia, Spain, Finland, France, Greece, Croatia, Ireland, Italy, Lithuania, Luxembourg, Latvia, Malta, the Netherlands, Portugal, Slovenia and Slovakia.

SWIFT withdrawals are not currently offered. A BIC collected for a SEPA destination identifies your bank.

## Prepare your balance and account

* International bank and mobile money withdrawals use your available USD balance. An NGN balance cannot fund these international routes.
* Keep enough available funds to cover the payout and its fee. Review the conversion rate and total debit before confirming.
* Complete the account's identity information, including its name, contact email and address. Missing details can prevent an international payout.
* Meet the withdrawal requirements for the account whose balance will be debited, including any required identity checks and destination approval.

You continue to hold funds in the [supported balance currencies](/for-you/supported-currencies#balance-currencies). For example, a GBP payout converts funds from your USD balance so the destination receives GBP.

<span id="prepare-the-recipient-details" />

## Prepare your destination details

Collect the details for the destination currency and payout method. For mobile money, collect the supported provider and phone number. For stablecoins, confirm the asset and network your wallet supports.

| Destination | Details to prepare |
| - | - |
| Local bank in Nigeria, Ghana, Kenya, Uganda or Tanzania | Bank from the supported bank list, account number and account holder information |
| GBP bank / Faster Payments | Account holder name, bank name, six-digit sort code and account number |
| EUR bank / SEPA | Account holder name, bank name, IBAN and BIC |
| USD bank / ACH, Wire or RTP | Selected scheme, account holder name, bank name, routing number, account number and bank address |
| CAD bank / EFT or Interac to an account | Selected scheme, account holder name, bank name, institution number, transit number and account number |
| CAD / Interac to an email | Selected scheme, account holder name and your Interac email |
| GHS, KES or TZS mobile money | Supported mobile money provider and your wallet phone number |

For a US bank address, prepare the street address, city, state, postal code and country. Confirm your account details before registering a destination.

## Prepare your integration

The API calls withdrawals **payouts**. Keep the documented `payouts` endpoint, capability and webhook names in your integration.

Register each destination once, then reuse its ID for future payouts. State `type` explicitly when choosing between a bank account and a mobile money wallet. Select `scheme` for USD and CAD bank destinations.

A destination can need review before it becomes usable. Read `is_usable` instead of assuming that creating a destination means it can receive a payout immediately.

For a cross-currency payout, request a quote shortly before sending. The quote request's `amount` is the source amount to convert, and fees are charged on top. Send the returned `quote_id` and destination ID without an `amount` in the payout request. For USD-to-USD, send the amount your bank should receive without a conversion quote.

Track the payout until `completed` or `failed`. A successful create response means the payout was accepted; it does not establish delivery to your bank or wallet. See [Payouts](/guides/payouts/overview) for the shared flow, status tracking and retry handling.

### Connected accounts

Use the account's own balance and destination when acting through `X-Account-Id`. The account needs an active `payouts` capability and a usable destination belonging to the account holder.

The inline onboarding `payout_destination` requirement field does not accept banks that need international routing schemes. Add GBP, EUR, USD and CAD bank destinations through `POST /v1/payouts/destinations`. See the [payout destination reference](/api-reference/payout-destinations/object) and continue to complete the account's other [onboarding requirements](/connect/requirements).

## Check currencies and withdrawal requirements

`GET /v1/currencies/payout-supported` lists supported withdrawal currencies. Choose the destination type and method supported for that currency; a listed currency does not support every method.

Availability does not replace account verification, destination approval or sufficient available funds. If a supported route unexpectedly returns `PAYOUT_CURRENCY_NOT_ENABLED`, contact [support](mailto:hello@bachs.io) with the error details.

## Next steps

* [Supported currencies](/for-you/supported-currencies#withdrawals)
* [Withdraw to your bank abroad](/guides/payouts/withdraw-to-bank-abroad): bank details, API examples and completion tracking.
* [Withdrawals](/guides/payouts/overview)
* [Fees](/for-you/fees#withdrawal-fees)
* [Connected account payouts](/connect/payouts)


This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.