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

# POST /merchants/{merchantID}/withdrawals — Create

> Create a withdrawal order to send funds from your merchant balance to an external on-chain address. Specify destination address, amount, and payment method.

Use this endpoint to initiate a withdrawal from your merchant balance to an on-chain address. You must specify the destination address, the amount to withdraw, and the payment method to use for the transfer.

<Info>
  Both Bearer token and API key authentication are accepted for this endpoint. API keys are scoped to a specific merchant — ensure the key matches the `merchantID` in the path.
</Info>

## Path parameters

<ParamField path="merchantID" type="string" required>
  The UUID of the merchant initiating the withdrawal.
</ParamField>

## Request body

<ParamField body="address" type="string" required>
  The destination wallet address for the withdrawal. Ensure the address is valid for the selected payment method's network.
</ParamField>

<ParamField body="amount" type="string" required>
  The amount to withdraw as a decimal string (e.g., `"50.00"`). Must not exceed your available balance.
</ParamField>

<ParamField body="paymentMethodID" type="number" required>
  The ID of the payment method (network/currency) to use for the transfer.
</ParamField>

## Response

Returns a `201 Created` with the new withdrawal object on success.

<ResponseField name="id" type="string">
  The UUID of the newly created withdrawal order.
</ResponseField>

<ResponseField name="address" type="string">
  The destination wallet address.
</ResponseField>

<ResponseField name="amount" type="string">
  The withdrawal amount as a decimal string.
</ResponseField>

<ResponseField name="paymentMethodID" type="number">
  The ID of the payment method used for the transfer.
</ResponseField>

<ResponseField name="state" type="string">
  The current state of the withdrawal. Initial value is typically `pending`.
</ResponseField>

<ResponseField name="createdAt" type="string">
  ISO 8601 timestamp of when the withdrawal was created.
</ResponseField>

<ResponseField name="txHash" type="string">
  The on-chain transaction hash. This field is populated once the withdrawal is broadcast to the network; it may be `null` immediately after creation.
</ResponseField>

<RequestExample>
  ```bash cURL theme={null}
  curl --request POST \
    --url https://api.iterapay.com/merchants/b0fcc813-a7ce-4bbc-932f-dbef6f59ca7f/withdrawals \
    --header 'Authorization: Bearer <token>' \
    --header 'Content-Type: application/json' \
    --data '{
      "address": "TRR8WbHdkLBqNJAXmjS5jT4xEtd7X9bWb",
      "amount": "50.00",
      "paymentMethodID": 1
    }'
  ```
</RequestExample>

<ResponseExample>
  ```json 201 theme={null}
  {
    "id": "e3a1c2d4-f5b6-7890-abcd-ef1234567890",
    "address": "TRR8WbHdkLBqNJAXmjS5jT4xEtd7X9bWb",
    "amount": "50.00",
    "paymentMethodID": 1,
    "state": "pending",
    "createdAt": "2024-01-15T10:30:00Z",
    "txHash": null
  }
  ```
</ResponseExample>
