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

# Get a wallet's deposits

> Paginated deposit history for one wallet, newest first.

Lists every deposit one wallet has received. It's the way to check yourself instead of waiting for the [`wallet.deposit.received` webhook](/wallet-api/webhooks), and how you catch up if your server was down for longer than we keep retrying.

## Endpoint

```text theme={null}
GET https://merchant.minisend.xyz/api/v1/wallets/{walletId}/deposits
```

```text theme={null}
Authorization: Bearer wsk_live_your_key_here
```

## Query parameters

<ParamField query="limit" default="20" type="number">
  How many to return at once, up to 100.
</ParamField>

<ParamField query="offset" default="0" type="number">
  How many to skip. Use it to get the next page.
</ParamField>

## Example

```bash theme={null}
curl "https://merchant.minisend.xyz/api/v1/wallets/3f6b2e1a-.../deposits?limit=50" \
  -H "Authorization: Bearer wsk_live_your_key_here"
```

## Response (200)

```json theme={null}
{
  "deposits": [
    {
      "id": "7b2e1a3f-...",
      "tenant_id": "a7c9e2d0-...",
      "wallet_id": "3f6b2e1a-...",
      "wallet_ref": "user-9214",
      "address": "0xabc1230000000000000000000000000000dead",
      "chain": "MATIC",
      "token": "USDC",
      "amount": "10.500000",
      "tx_hash": "0x55a572efe1720250e442f38741477a4fc3f7f152e5cd208cc52f8222a1c2a13b",
      "from_address": "0x9f2c...",
      "state": "complete",
      "detected_at": "2026-08-07T09:12:03.000Z",
      "created_at": "2026-08-07T09:12:03.000Z",
      "settlement": null
    }
  ],
  "total": 3,
  "limit": 50,
  "offset": 0
}
```

Each deposit has the same fields as the [`wallet.deposit.received`](/wallet-api/webhooks) webhook, plus one more:

<ResponseField name="settlement" type="object">
  Only there if you've set a [settlement network](/wallet-api/settlement) and this deposit needed moving because of it. Otherwise `null`, including when the deposit already arrived as USDC on your settlement network, so there was nothing to do.

  <Expandable title="settlement fields">
    <ResponseField name="status" type="string" required>
      `queued`, `settling`, `delayed`, `settled`, `failed`, or `skipped_below_minimum`. See [Settlement](/wallet-api/settlement) for what each one means.
    </ResponseField>

    <ResponseField name="chain" type="string" required>
      Your settlement network when this deposit arrived.
    </ResponseField>

    <ResponseField name="amount" type="string">
      What arrived on `chain`, once `settled`. Otherwise `null`.
    </ResponseField>

    <ResponseField name="tx_hash" type="string">
      The transaction ID that delivered the money on `chain`, once `settled`.
    </ResponseField>

    <ResponseField name="error" type="string">
      A plain sentence for `failed`, `delayed`, or `skipped_below_minimum`. `null` for every other status.
    </ResponseField>

    <ResponseField name="funds_location" type="string">
      Only set when `status` is `failed`. See [Settlement](/wallet-api/settlement#if-a-settlement-fails).
    </ResponseField>
  </Expandable>
</ResponseField>

## Errors

| Status | Meaning |
| - | - |
| `401` | Your API key is missing or wrong |
| `404` | We can't find this wallet, or it belongs to another account |


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