---
title: "Get deposit/withdraw history"
method: POST
path: "/api/v4/main-account/history"
tags: ["Main Account"]
---

# Get deposit/withdraw history

`POST /api/v4/main-account/history`

The endpoint retrieves the history of deposits and withdraws.

**Deposit status codes:**
- `Successful` - 3, 7
- `Canceled` - 4, 9
- `Unconfirmed by user` - 5
- `AML frozen` - 21
- `Uncredited` - 22
- `Pending` - 15

`Successful` (3, 7) is a final state. A credited deposit does not later transition to `AML frozen` (21) or `Uncredited` (22); those checks happen before crediting.

**Travel Rule Deposit check status codes:**
- `Awaiting verification` - 27: The transaction has been frozen due to the lack of data required under the Travel Rule. The user is required to provide this data manually through the exchange interface.
- `Confirmation in progress` - 28: The Travel Rule data provided by the user is currently being verified by WhiteBIT.

⚠️ Due to regulatory requirements in Turkey and [EU](/glossary#european-economic-area-eea), the system places every inbound crypto deposit on hold (frozen) until confirming the transaction's origin. The sender must provide certain details if the transaction is from another Virtual Asset Service Provider (VASP) or verify the address if from a self-hosted wallet. The system credits deposited funds to the account only after successful verification.

**Withdraw status codes:**
- `Pending` - 1, 2, 6, 10–17 (withdrawal in progress).
- `Successful` - 3, 7
- `Canceled` - 4
- `Unconfirmed by user` - 5
- `AML frozen` - 21
- `Partially successful` - 18

<Warning>
Rate limit: 200 requests/10 sec.
</Warning>

<Warning>
Requests with `limit` values above 100 return large payloads. Use high limits only when necessary and ensure the client application can handle large response sizes.
</Warning>

<Note>
The API does not cache the response.
</Note>

<Note>
Results are sorted newest first (descending by timestamp).
</Note>

<Note>
**No date filtering:** the endpoint does not accept `startDate` / `endDate` parameters, and pagination is capped at `offset + limit ≤ 10000` (requests beyond the cap return `Offset is too big. Please use offset + limit less than 10000.`). To read more than 10,000 records, narrow the result set with the available filters (`transactionMethod`, `ticker`, `status`) and paginate within each subset; for a complete history export beyond the cap, use the Report on the History page.
</Note>

## Request body

- object
  - `transactionMethod` 1 | 2 — Method. Example: **1** to display deposits / **2** to display withdraws. Do not send this parameter in order to receive both deposits and withdraws.
  - `ticker` string — Currency's [ticker](/glossary#ticker). Example: BTC
  - `address` string — Can be used for filtering transactions by specific address.
  - `memo` string — Can be used for filtering transactions by specific [memo](/glossary#memodestination-tag)
  - `addresses` string[] — Can be used for filtering transactions by specific array of addresses.
  - `unique_id` string — Can be used for filtering transactions by specific unique id
  - `limit` integer — LIMIT is a special clause used to limit records a particular query can return. Default: 50, Min: 1, Max: 500
  - `offset` integer — Use the OFFSET clause to return entries starting from a particular line.
  - `status` integer[] — Can be used for filtering transactions by status codes. ⚠️ Caution: Use this parameter with the appropriate `transactionMethod` and valid status codes for that method. See the endpoint description above for valid codes. Example: `"status": [3,7]`
  - `request` string, required — Request signature
  - `nonce` integer, required — Unique request identifier

## Response `201`

All validations succeeded and creating transaction is started

- object
  - `limit` integer
  - `offset` integer
  - `records` TransactionHistory[]
    - `address` string — Deposit/Withdraw address
    - `unique_id` string, nullable — Unique Id of deposit/withdraw. Unique per user.
    - `createdAt` integer — Timestamp of deposit/withdraw
    - `currency` string — Deposit/Withdraw currency full name
    - `ticker` string — Deposit/Withdraw currency [ticker](/glossary#ticker)
    - `method` integer — Called method: 1 - deposit, 2 - withdraw
    - `amount` string — Amount of deposit/withdraw
    - `description` string — Deposit/Withdraw description
    - `memo` string — [Memo](/glossary#memodestination-tag) for deposit/withdraw
    - `fee` string — [Fee](/glossary#fee) for deposit/withdraw
    - `status` integer — Transaction status (see endpoint description for status codes)
    - `network` string, nullable — Network if currency is multinetwork
    - `transactionHash` string — Deposit/Withdraw transaction hash. A single hash can map to multiple records (e.g. several outputs to a WhiteBIT address in one on-chain transaction); use `transaction_id` to distinguish them.
    - `transaction_id` string — Transaction UUID. Unique across the whole system and never reused.
    - `details` object, nullable — Additional details for the transaction
    - `confirmations` object, nullable — Confirmation details for crypto transactions
      - `actual` integer — Actual number of confirmations
      - `required` integer — Required number of confirmations
  - `total` integer — Total number of transactions, use this for calculating 'limit' and 'offset'

## Other responses

- `400` — Request validation failed
- `422` — Inner validation failed

---

[API](https://skmtc.net/whitebit/apis/whitebit-private-http-api-v4.md) · [All operations](https://skmtc.net/whitebit/apis/whitebit-private-http-api-v4/llms.txt) · [OpenAPI document](https://skmtc-service-staging.skmtc.workers.dev/v1/apis/whitebit/whitebit-private-http-api-v4/revisions/76c9def9942f/schema)
