# HTTP — `GET /v1/funding`

Returns the 20 most recent deposit requests and the 20 most recent withdrawal
requests for the Para-authenticated wallet. Requests are created through
[`POST /v1/exchange`](/api/exchange).

```http
GET /v1/funding
Authorization: Bearer <para-jwt>
X-Tessera-Wallet: 0x... # required when the JWT has multiple EVM wallets
```

An API key is not accepted.

```jsonc
{
  "status": "ok",
  "data": {
    "safeBlock": 123456789,
    "deposits": [
      {
        "id": "...",
        "amount": "50",
        "status": "pending",
        "statusDetail": "waiting_transfer",
        "walletAddress": "0x...",
        "chain": "arbitrum",
        "txHash": null,
        "blockNumber": null,
        "safeBlock": 123456789,
        "blocksUntilSafe": null,
        "createdAtMs": 1780000000100,
        "expiresAtMs": 1780003600100,
        "completedAtMs": null,
        "rejectedReason": null
      }
    ],
    "withdrawals": [
      {
        "id": "...",
        "amount": "100",
        "status": "completed",
        "walletAddress": "0x...",
        "chain": "arbitrum",
        "payoutTxHash": "0x...",
        "createdAtMs": 1780000000100,
        "completedAtMs": 1780007200100,
        "rejectedReason": null
      }
    ]
  },
  "server_time_ms": 1780000000200
}
```

## Deposits

`status` is `pending`, `completed`, `rejected`, or `review_required`.
`statusDetail` refines it:

| `statusDetail` | Meaning |
| --- | --- |
| `waiting_transfer` | No matching transfer observed yet. |
| `transfer_detected_waiting_safe` | Transfer observed, waiting for the safe block. The watcher only scans blocks up to Arbitrum's safe block and credits in the same pass, so this value is not produced today. |
| `credited` | Credited to the account. |
| `review_required` | Needs operator review (sender, amount, or expiry mismatch, or above the auto-credit cap). |
| `rejected` | Rejected; see `rejectedReason`. |

`safeBlock` is the latest Arbitrum block processed by Mosaiq. `safeBlock`,
`txHash`, `blockNumber`, and `blocksUntilSafe` are `null` until known. A
`review_required` request also carries the reason in `rejectedReason`.

## Withdrawals

`status` is `pending`, `completed`, or `rejected`. A completed request carries
`payoutTxHash` when the operator recorded payout evidence. A rejected request
carries `rejectedReason`.
