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

# Add money to the balance

> POST /v1/balance/deposits pulls money from the linked bank into the Cleo Pay balance. Not available through the API yet: it answers feature_unavailable.

<Note>
  **Not available through the API yet.** This route answers `403 feature_unavailable` until Cleo turns partner bank funding on. Your user can add money in the Cleo web app. The contract below is what the route accepts once it is on.
</Note>

```
POST /v1/balance/deposits
```

**Scope:** `balance:transfer`  ·  **Idempotency-Key:** required

<ParamField body="amountCents" type="integer" required>$1 to $50,000 (`100` to `5000000`).</ParamField>

<ParamField body="achAuthorizationAccepted" type="boolean" required>
  Must be `true`: your user accepted the ACH debit authorization for this pull from the linked bank. Cleo records your API key and IP address with it.
</ParamField>

```bash theme={null}
curl -X POST https://api.stg.cleo-pay.com/v1/balance/deposits \
  --header "Authorization: Bearer $CLEO_API_KEY" \
  --header "Content-Type: application/json" \
  --header "Idempotency-Key: a1b2c3d4-e5f6-4a7b-8c9d-0e1f2a3b4c5d" \
  --data '{ "amountCents": 1000000, "achAuthorizationAccepted": true }'
```

## Response

`201`:

<ResponseField name="id" type="string">The deposit. It appears as a pending deposit in `GET /v1/balance/transactions`.</ResponseField>

<ResponseField name="amountCents" type="integer" />

<ResponseField name="status" type="string">`processing`, `succeeded`, `failed`, `canceled` or `returned`.</ResponseField>
<ResponseField name="speed" type="string | null">`same_day` or `standard`, chosen by Cleo. You cannot ask for same-day.</ResponseField>
<ResponseField name="expectedAvailabilityDate" type="string | null">When the money should be in the balance.</ResponseField>

## Errors

| Code | When |
| - | - |
| `feature_unavailable` | Partner bank funding is not on, or the business has no Cleo Pay balance. |
| `validation_error` | `achAuthorizationAccepted` is not `true`, or the amount is out of range. |
| `setup_required` | No Cleo Pay account, or no bank linked to it. |
| `payments_locked`, `setup_incomplete` | The business cannot move money yet. |
| `payment_unconfirmed` | The deposit may have started. Check `GET /v1/balance/transactions` before you use a new key. |


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