---
title: "Get withdrawal by ID"
url: https://docs.truemarkets.co/api/gateway/get-withdrawal
description: "Returns the current state of a withdrawal."
---

Docs index: https://docs.truemarkets.co/llms.txt

# Get withdrawal by ID

```
GET https://api.truemarkets.co/v1/gateway/withdrawals/{id}
```

Returns the current state of a withdrawal.

## Authentication

Bearer token in `Authorization`

## Parameters

| Name | In | Type | Required | Description |
| --- | --- | --- | --- | --- |
| `TM-On-Behalf-Of` | header | string (uuid) | no | Act as one of your organization's users. The value is the `user_id` returned when the user was created; the request then reads and writes that user's account. Requires an organization token and a user your organization created: `400` for a personal token, a repeated header or a non-UUID, `403` for a user outside your organization. Not accepted on organization-scoped routes. |
| `id` | path | string (uuid) | yes | Withdrawal ID (UUID) |

## Responses

Every error status returns the same body, described in [Errors](https://docs.truemarkets.co/developer-resources/errors.md).

### 200

Withdrawal retrieved successfully

| Field | Type | Required | Description |
| --- | --- | --- | --- |
| `id` | string (uuid) | yes | Withdrawal identifier |
| `status` | string, one of `debiting`, `completed`, `rejected`, `stranded` | yes | Where the withdrawal stands. * **debiting** — The exchange has been asked to withdraw the amount. * **completed** — The exchange released the allocation and debited the amount. * **rejected** — The exchange refused the withdrawal; the amount stays committed. * **stranded** — The outcome is unknown and an operator has to resolve it. |
| `asset_id` | string (uuid) | yes | DeFi listing identifier (UUID) |
| `asset_symbol` | string | yes | Symbol of the listing |
| `amount` | string | yes | Amount taken out by this withdrawal, as a decimal string |
| `transfer` | object | no | The CeFi transfer a deposit or withdrawal started, under the exchange's id |
| `transfer.id` | string | yes | Exchange transfer identifier |
| `transfer.status` | string, one of `INITIALIZED`, `PENDING`, `PROCESSING`, `COMPLETED`, `REJECTED`, `FAILED` | yes | Status as last seen from the exchange |
| `failure_reason` | string | no | Why the withdrawal was refused or stranded |
| `created_at` | string (date-time) | yes |  |
| `updated_at` | string (date-time) | yes |  |

### 400

Bad request

### 401

Unauthorized

### 403

Forbidden. On order creation this also covers an asset that is not available to trade from the country the request came from.

### 404

Not found

### 500

Internal server error
