> ## 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.

# Pay with rewards

> Pass useRewardsBalance on createTransfer or requestAccountTransfer to send money to a Fluz account from the sender's rewards, alone or with their cash balance.

Set `useRewardsBalance: true` to let the sender pay with their **rewards balance** when sending money to a Fluz account. Fluz takes the sender's cash first and uses rewards for the rest. If the sender has no cash available, the whole amount comes from rewards.

It works on two operations:

| Operation | Input | Scope | Auth |
| :- | :- | :- | :- |
| [`createTransfer`](https://docs.fluz.app/features/send-to-a-fluz-account) | `CreateTransferInput` | `MAKE_PAYOUT_TRANSFER_SEND` | Bearer token, or Basic Auth on an `ACTIVE` public application |
| [`requestAccountTransfer`](https://docs.fluz.app/features/request-account-transfer-approval) | `RequestAccountTransferInput` | `REQUEST_ACCOUNT_TRANSFER` | Same as `createTransfer` |

Everything else about the send, such as the destination, auth and idempotency, works as described in [Send money](https://docs.fluz.app/features/send-to-a-fluz-account).

> [!NOTE]
>
> **Rewards can pay only for sends to a Fluz account.**
>
> * `sendMoney` and `createExternalPayout` take a cash balance only.
> * To move rewards to the user's own bank account, use [`withdrawCashBalance`](https://docs.fluz.app/features/withdraw-to-external-account) with `source: REWARDS_BALANCE`. A withdrawal takes one source per request, cash or rewards, not both.
> * Prepayment / gift card balance can't fund any send.

***

## useRewardsBalance

`useRewardsBalance: Boolean` is optional on both inputs.

| Value | Where the money comes from |
| :- | :- |
| Left out or `false` | The sender's spend account only. This is the default. |
| `true` | The sender's spend account first, up to the amount. Rewards cover the rest. If the spend account has no available cash, the whole amount comes from rewards. |

The recipient always receives the money in a spend account. You can't send into someone's rewards balance.

***

## createTransfer

```graphql theme={null}
mutation {
  createTransfer(input: {
    idempotencyKey: "550e8400-e29b-41d4-a716-446655440010"
    amount: 25.00
    useRewardsBalance: true
    destination: {
      accountId: "b2c3d4e5-f6a7-8901-bcde-f23456789012"
    }
  }) {
    success
    message
    transferId
  }
}
```

```text theme={null}
Authorization: Bearer <user-access-token>
```

This is the same as a cash-only send, with `useRewardsBalance: true` added.

### With a linked funding source

`bankCardId`, `bankAccountId` and `paypalVaultId` still work with a Bearer token, one per request. Fluz deposits from that source into the sender's spend account first, and `useRewardsBalance` still applies to the send.

***

## requestAccountTransfer

`requestAccountTransfer` sends the transfer for approval instead of sending it right away. Pass `useRewardsBalance` on the request, and it is used when the approver approves.

```graphql theme={null}
mutation {
  requestAccountTransfer(input: {
    idempotencyKey: "550e8400-e29b-41d4-a716-446655440011"
    amount: 25.00
    useRewardsBalance: true
    destination: {
      accountId: "b2c3d4e5-f6a7-8901-bcde-f23456789012"
    }
  }) {
    success
    messageId
    error {
      code
      message
    }
  }
}
```

Approve or decline with `approveApprovalRequest` or `declineApprovalRequest`, which need `MANAGE_APPROVALS`. See [Request account transfer approval](https://docs.fluz.app/features/request-account-transfer-approval.md).

***

## Errors

Errors come back in the standard GraphQL format. `createTransfer` returns `null` when the send can't complete.

```json theme={null}
{
  "data": {
    "createTransfer": null
  },
  "errors": [
    {
      "message": "Insufficient funds",
      "extensions": {
        "code": "WDR-0001",
        "name": "InsufficientBalanceError",
        "status_code": 400
      }
    }
  ]
}
```

| Code | When |
| :- | :- |
| `WDR-0001` | Cash plus rewards, or rewards alone, can't cover the amount. No transfer is made. |
| Other `createTransfer` errors | The usual destination, auth, idempotency and funding source rules still apply. See [Send money](https://docs.fluz.app/features/send-to-a-fluz-account#errors). |

See [`createTransfer`](https://docs.fluz.app/api-reference/mutations/create-transfer) and [`CreateTransferInput`](https://docs.fluz.app/api-reference/types/create-transfer-input) in the API reference.


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