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

# Send money to a bank account

> Send money from a Fluz account to anyone's US bank account over ACH. Add their bank account, then send. The recipient doesn't need a Fluz account.

**Send money from a Fluz account to someone else's US bank account**, such as a contractor, a vendor or a friend.

* The recipient **does not need a Fluz account**. You only need their routing and account number.
* The money is sent over **standard ACH**.
* The money comes from a **cash balance** (spend account) on the sender's Fluz account.

This is one of three ways to send money. See the [Send money overview](https://docs.fluz.app/features/send-money-overview) to compare them.

***

## How it works

It takes two steps: add the recipient's bank account, then send the money.

**1. Add a new bank account**

Call `createExternalPayee` with the routing number, account number, holder name, holder type (`INDIVIDUAL` or `BUSINESS`) and the holder's email. Fluz checks the routing number and returns an `externalPayeeId`. Store it. You never send the bank details again.

```graphql theme={null}
mutation {
  createExternalPayee(
    input: {
      routingNumber: "021000021"
      accountNumber: "123456789"
      holderName: "Jane Doe"
      holderType: INDIVIDUAL
      emailAddress: "jane@example.com"
    }
  ) {
    externalPayeeId
    status
    destinationAccountNumberLastFour
  }
}
```

Full reference: [Add a new bank account](https://docs.fluz.app/features/add-a-bank-account)

**2. Send the money**

Call `createExternalPayout` with the `externalPayeeId`, the cash balance to debit and the amount.

```graphql theme={null}
mutation {
  createExternalPayout(
    input: {
      idempotencyKey: "550e8400-e29b-41d4-a716-446655440020"
      externalPayeeId: "3f1c2b7e-8d4a-4c1e-9f2a-6b5d4e3c2a10"
      sourceCashBalanceId: "aaaaaaaa-bbbb-4ccc-8ddd-eeeeeeeeeeee"
      amount: 100.00
    }
  ) {
    transferId
    amount
    fee
    totalDebited
    status
  }
}
```

Fluz debits `totalDebited` (the amount plus the fee) from the cash balance right away and returns the payout as `PENDING`. The money goes out in the next standard ACH file. The recipient receives the full `amount`.

Full reference: [Send money](https://docs.fluz.app/features/send-to-a-bank-account)

You add a bank account once and can pay it again any time. Saved bank accounts belong to the Fluz account, so every authorized user on it sees the same list. List them with `externalPayees`.

***

## Which balance pays

| Balance | Can fund it? |
| :- | :- |
| Cash balance (spend account) | Yes. Pass it as `sourceCashBalanceId`. |
| Rewards balance | No |
| Prepayment / gift card balance | No |

***

## Good to know

* **Fee on top.** The fee is added to the amount, not taken out of it. Use the `fee` and `totalDebited` values in the response.
* **Standard ACH only.** Same-day and expedited ACH are not available. Arrival time depends on the recipient's bank.
* **Limits.** Daily, weekly, monthly and yearly limits apply per account, plus a minimum and maximum per payment. A request over a limit fails with a `PT-` error code.
* **Bank accounts under review.** If a bank returned an earlier payment, that bank account may show `status: REVIEW`. A payment to it is refused with `PT-0009` until you confirm with the user and resend with `acknowledgeReview: true`.
* **Returned payments.** If the recipient's bank rejects the payment, for example because the account is closed, the money goes back to the source cash balance.
* **Not your own account.** You can't add a bank account that belongs to the sender's own Fluz account. To move money to the user's own bank, use a [withdrawal](https://docs.fluz.app/features/withdraw-to-external-account.md).

***

## Or: pay them as a Fluz user

If the recipient is, or is willing to become, a Fluz user, you can pay them inside Fluz instead. They then withdraw to their own bank account, debit card or PayPal. This is the better fit for people you pay again and again, because they choose where the money goes and can get it faster.

> [!TIP]
>
> **The fastest way: send to their email or phone.** Call [`sendMoney`](https://docs.fluz.app/features/send-money) with the recipient's email address or phone number. If they're already on Fluz with that contact verified, the money lands right away. If not, Fluz holds it and sends them a link, and they create their Fluz account, pass KYC and claim it. You don't build any onboarding. Holding money for someone not yet on Fluz must be turned on for the sending account. Ask your account team.

To onboard the recipient as your own user instead, build it from the same operations you use for any customer:

**1. Create the user**

Create a Fluz account for the recipient with `registerUser`, then have them authorize your application so you can act for them. Authorization comes before verification. → [Register customers](https://docs.fluz.app/user-registration.md)

**2. Verify their identity (KYC)**

Run KYC with `verifyUserInformation`, send a document verification link, or let the widget do it. → [Verify customers](https://docs.fluz.app/user-kyc-verification.md)

**3. Add a funding source**

Link where the recipient wants to receive money. These are also their withdrawal destinations.

* **Bank account:** through Plaid with `createPlaidLinkToken` and `completePlaidLink`. → [Linking bank account via Plaid](https://docs.fluz.app/features/link-via-plaid.md)
* **Debit card:** with `addBankCard`, or the [secure card input](https://docs.fluz.app/build-a-platform/secure-card-input.md) so the card number never touches your servers. → [Add bank card](https://docs.fluz.app/features/add-bank-card.md)
* **PayPal:** through the `FUNDING_SOURCE` step of the [Enrollment widget](https://docs.fluz.app/developers/enrollment-widget.md).

**4. Send the money and withdraw**

Send the money to the user with [`createTransfer`](https://docs.fluz.app/features/send-to-a-fluz-account). The user then withdraws it with `withdrawCashBalance`: `BANK_ACH` to their bank, `BANK_CARD` to push to their debit card, or `PAYPAL`. → [Withdraw to external account](https://docs.fluz.app/features/withdraw-to-external-account.md)

To do both in one call from your application, use [`createPayout`](https://docs.fluz.app/api-reference/mutations/create-payout) with `payoutType: WITHDRAW`.

> [!TIP]
>
> The [Enrollment widget](https://docs.fluz.app/developers/enrollment-widget.md) can run the KYC and funding source steps for you in one hosted flow, right after the user authorizes your application.

### Which path to use

| | Send money to a bank account | Send to their email or phone | Onboard them as your user |
| :- | :- | :- | :- |
| Recipient signs up | No | Yes, on the Fluz claim page, unless already on Fluz | Yes, through your registration flow |
| What you need | Routing and account number | Email address or phone number | Their details to register them, or a widget link |
| Who runs KYC | Nobody | Fluz, at claim | You, through the API or widget |
| Where the money can go | Their US bank account | Their Fluz balance, then out by bank, debit card, PayPal or Venmo | Their Fluz balance, then out by bank, debit card, PayPal or Venmo |
| Speed to their bank | Standard ACH | Push to card can be instant | Push to card can be instant |
| Best for | One-off or occasional recipients | Paying someone new with the least work | Recipients you manage inside your product |

***

## Requirements at a glance

| Operation | Auth | Scope |
| :- | :- | :- |
| `createExternalPayee`, `externalPayees` | Bearer token | `MAKE_PAYOUT_TRANSFER_SEND` |
| `createExternalPayout` | Bearer token | `MAKE_PAYOUT_TRANSFER_SEND` |

> [!NOTE]
>
> **Not the same as a withdrawal or a transfer to a Fluz account.**
>
> To move money to the user's own bank account, use [withdrawals](https://docs.fluz.app/features/withdraw-to-external-account.md). To send money to someone who already has a Fluz account, see [Send money to a Fluz account](https://docs.fluz.app/features/send-money-overview#1-send-money-to-a-fluz-account). To pay someone by email or phone, use [`sendMoney`](https://docs.fluz.app/features/send-money).


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