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

# Funding your wallets

> Top up a wallet by bank transfer to your funding addresses, and track each credit as a deposit.

Your account has dedicated bank details, called **funding addresses**, for each currency and rail it can receive on. A bank transfer to a funding address is credited to your wallet and recorded as a **deposit**.

## Retrieve your funding addresses

```bash theme={null}
curl "$BASE/addresses" -H "Authorization: Bearer $INFINITY_KEY"
```

```json Response (abridged) theme={null}
{
  "data": [
    {
      "currency": "usd",
      "rail": "ach",
      "beneficiary_name": "Acme Ltd",
      "bank_name": "Example Bank",
      "bank_address": "1 Bank St, New York, NY 10001",
      "account_number": "215268129123",
      "routing_code": "021000021"
    },
    {
      "currency": "eur",
      "rail": "sepa",
      "beneficiary_name": "Acme Ltd",
      "bank_name": "Example Bank",
      "bank_address": null,
      "account_number": "IE29AIBK93115212345678",
      "routing_code": "AIBKIE2D"
    }
  ],
  "has_more": false
}
```

The response has one entry per currency and rail. Unlike payee bank accounts, funding addresses return the full account number, because you need it to send the transfer. The `rail` tells you how to send money and how to read the two numbers:

| `rail` | Transfer type | `account_number` | `routing_code` |
| - | - | - | - |
| `ach` | ACH | Account number | ABA routing number |
| `wire` | Domestic US wire (Fedwire) | Account number | ABA routing number |
| `swift` | International wire | Account number | SWIFT/BIC |
| `sepa` | SEPA credit transfer | IBAN | BIC |
| `faster_payments` | UK Faster Payments | Account number | Sort code |
| `spei` | SPEI (Mexico) | CLABE | `null` |

Enter `beneficiary_name` exactly as returned when you set up the transfer with your bank, since banks may reject or delay transfers whose beneficiary name doesn't match.

> [!NOTE]
>
> Accounts enabled for payouts to India receive deposits on a shared USD account. Our operations team credits each deposit to your wallet once it has been received and matched, so the wallet updates when the deposit is credited rather than when you send it.

## Deposits

Each credit is recorded as a deposit:

```bash theme={null}
curl "$BASE/deposits?limit=10" -H "Authorization: Bearer $INFINITY_KEY"
```

```json Response theme={null}
{
  "data": [
    {
      "id": "deposit_9hr9t3wfre5ebpk2",
      "wallet_id": "wallet_7t4m9k2qx8d3hn5r",
      "amount": "1000.00",
      "currency": "usd",
      "rail": "wire",
      "description": "Top-up October",
      "created_at": "2026-10-23T09:00:00Z"
    }
  ],
  "has_more": false
}
```

* A deposit is recorded only once it's credited, so deposits have no status: a listed deposit is already available in its wallet.
* `wallet_id` is the wallet that was credited.
* `rail` is how the funds arrived. It's `null` for a manual credit, including sandbox test deposits.
* Filter by credit time with `created[gte]` and `created[lte]`, and page with `limit` and `starting_after` (see [API conventions](https://docs.infinityapp.in/guides/ids-amounts-and-lists.md)).

Subscribe to `deposit.created` on a [webhook endpoint](https://docs.infinityapp.in/guides/webhooks.md) to be notified of each credit, with the full deposit in the event.

## In the sandbox

There are no funding transfers in the sandbox. Credit a wallet with a [test deposit](https://docs.infinityapp.in/guides/sandbox.md#fund-a-wallet):

```bash theme={null}
curl "$BASE/test/deposits" \
  -H "Authorization: Bearer $INFINITY_KEY" \
  -H "Content-Type: application/json" \
  -H "Idempotency-Key: $(uuidgen)" \
  -d '{ "wallet_id": "wallet_7t4m9k2qx8d3hn5r", "amount": "10000.00" }'
```


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