# POST: Withdrawal

#### `POST /withdrawals/requests` <a href="#post-withdrawals-requests" id="post-withdrawals-requests"></a>

```
const postWithdrawalRequest = () => {
  const body = {
    withdrawal_account_id: 123,
    participant_code: "ABCDEF",
    amount: "20",
    asset: "BTC",
    account_group: "00SCXM"
  }
  const timestamp = Math.round(Date.now() / 1000)
  const payload = timestamp + 'POST' + '/withdrawals/requests' + JSON.stringify(body)
  const decodedSecret = Buffer.from(apiSecret, 'base64')
  const hmac = crypto.createHmac('sha256', decodedSecret)
  const signedPayload = hmac.update(payload).digest('base64')

  // SET HEADERS
  const headers = {
    'X-NDAX-API-KEY': 'public_key',
    'X-NDAX-SIGNED': signedPayload,
    'X-NDAX-TIMESTAMP': timestamp,
    'X-NDAX-PASSPHRASE': 'passphrase'
  }
  const options = {
    headers,
    body,
    json: true
  }

  return request.post(`https://api.ndax.in/withdrawals/requests`, options)
}
```

> Sample Response

```
{
  "message": {
    "id": 117,
    "withdrawal_account_id": 146,
    "participant_code": "ABCDEF",
    "requestor_participant_code": "ABCDEF",
    "account_group": "00NDAX",
    "requested_amount": "20",
    "settled_amount": null,
    "status": "APPROVED",
    "asset": "BTC",
    "requested_timestamp": 1561996924964,
    "gas_price": null,
    "client_withdrawal_request_id": null,
    "on_chain_status": "PENDING",
    "fee_amount": "0.003163149641603118"
  }
}
```

Creates new withdrawal requests to be settled. Withdrawal requests created through the API go directly into an `APPROVED` state. To retrieve withdrawal account IDs use the `GET /withdrawals/digital_asset_addresses` and `GET /withdrawals/fiat_accounts` endpoints.

There are 3 ways to submit withdrawal requests:

1. The first, standard method uses a `withdrawal_account_id` to choose the location to withdrawal to, which can be for a fiat currency or a digital asset. The account must be in an `APPROVED` state before submitting withdrawal requests to it.
2. The second method allows for submitting a digital asset `address` instead of the `withdrawal_account_id`. When POSTing an `address`, NDAX will first scan to see if you already have an existing `withdrawal_account_id` for that destination, and if not, it will create one automatially and provide you the `withdrawal_account_id` in response. This is not available as standard. Please contact us if you'd like to learn more about this option.
3. The third method allows for submitting a fiat withdrawal `account{}` instead of the `withdrawal_account_id`. When POSTing an `account{}`, NDAX will first scan to see if you already have an existing `withdrawal_account_id` for that destination, and if not, it will create one automatially and provide you the `withdrawal_account_id` in response. This is not available as standard. Please contact us if you'd like to learn more about this option.

Request body:

<table><thead><tr><th>Parameter</th><th width="487.3333333333333">Description</th><th>Type</th></tr></thead><tbody><tr><td>client_withdrawal_request_id</td><td>A unique identifier for the withdrawal, generally produced by the Platform on which the trade was executed<br>Note: this must be unique, per platform, per 24 hour period</td><td>string</td></tr><tr><td>withdrawal_account_id</td><td>The whitelisted withdrawal account or address to withdraw funds to<br>Note: only one of <code>withdrawal_account_id</code>, <code>address</code> or <code>account{}</code> can be submitted per withdrawal, but NDAX will always respond with <code>withdrawal_account_id</code></td><td>string</td></tr><tr><td>address</td><td>The digital asset address to withdraw funds to, which may or may not already exist in NDAX as an approved <code>withdrawal_account_id</code><br>Note: only one of <code>withdrawal_account_id</code>, <code>address</code> or <code>account{}</code> can be submitted per withdrawal, but NDAX will always respond with <code>withdrawal_account_id</code></td><td>string</td></tr><tr><td>account{}</td><td>The fiat account to withdraw funds to, which may or may not already exist in NDAX as an approved <code>withdrawal_account_id</code><br>Note: only one of <code>withdrawal_account_id</code>, <code>address</code> or <code>account{}</code> can be submitted per withdrawal, but NDAX will always respond with <code>withdrawal_account_id</code></td><td>object</td></tr><tr><td>participant_code</td><td>The participant code against whom the withdrawal will be made</td><td>string</td></tr><tr><td>account_group</td><td>The account group to withdraw against, e.g. <code>00SCXM</code> for the Seed Digital Commodities Market account group</td><td>string</td></tr><tr><td>account_label</td><td>The account label associated with the account</td><td>string</td></tr><tr><td>amount</td><td>The amount to withdraw</td><td>string</td></tr><tr><td>asset</td><td>The asset code for the withdrawal request, e.g. <code>BTC</code></td><td>string</td></tr><tr><td>destination_tag</td><td>For tag-based assets, please provide the memo id/destination tag value in this field. For more information on when and how to populate this field, please refer here</td><td>string</td></tr><tr><td>no_destination_tag</td><td>The value should be true or false. For more information on when and how to populate this field, please refer here</td><td>boolean</td></tr><tr><td>gas_price</td><td>Applicable only for ERC-20 tokens, the transaction fee payable on the Ethereum network - refer to our FAQ on how this works</td><td>string</td></tr><tr><td>input_data</td><td>Applicable only for smart contract executions on the Ethereum blockchain. This is the ABI encoding of the function and its arguments in RLP format.</td><td>string</td></tr></tbody></table>

Account field shape:

<table><thead><tr><th width="191.33333333333331">Parameter</th><th>Description</th><th>Type</th></tr></thead><tbody><tr><td>name</td><td>The nickname given to the withdrawal account<br>Note: NDAX will append the last 4 digits of the account number to this when saving it</td><td>string</td></tr><tr><td>limit</td><td>The limit applied to the account on a per-withdrawal basis</td><td>number</td></tr><tr><td>type</td><td>The type of account: <code>REAL_TIME_FIAT</code> for 24/7 e₹ withdrawals, e₹ for International  wires or  SWIFT <code>INTERNATIONAL_FIAT</code> for international wires</td><td>string</td></tr><tr><td>beneficiary_name</td><td>The owner of the account at the withdrawal destination</td><td>string</td></tr><tr><td>account_number</td><td>The unique IBAN or account number for the final withdrawal destination</td><td>string</td></tr><tr><td>bank_name</td><td>The name of the destination financial institution</td><td>string</td></tr><tr><td>routing_number</td><td>For US wires, the ABA routing number identifies the destination financial institution</td><td>string</td></tr><tr><td>swift_code</td><td>SWIFT code, if applicable</td><td>string</td></tr><tr><td>recipient_instructions</td><td>Any additional instructions on the account</td><td>string</td></tr><tr><td>intermediary_<br>bank_name</td><td>Intermediary bank name, if applicable</td><td>string</td></tr><tr><td>intermediary_<br>bank_code_type</td><td>Intermediary bank identifier code type, if applicable<br>Options include <code>SWIFT</code></td><td>string</td></tr><tr><td>intermediary_<br>bank_code</td><td>Intermediary bank identifier that corresponds to <code>intermediary_bank_code_type</code>, if applicable</td><td>string</td></tr><tr><td>intermediary_<br>bank_account_number</td><td>Intermediary bank IBAN or account number, if applicable</td><td>string</td></tr><tr><td>correspondent_<br>bank_name</td><td>Correspondent bank name, if applicable</td><td>string</td></tr><tr><td>correspondent_<br>bank_code_type</td><td>Correspondent bank identifier code type, if applicable<br>Options include <code>SWIFT</code></td><td>string</td></tr><tr><td>correspondent_<br>bank_code</td><td>Correspondent bank identifier that corresponds to <code>correspondent_bank_code_type</code>, if applicable</td><td>string</td></tr><tr><td>correspondent_<br>bank_account_number</td><td>Correspondent bank IBAN or account number, if applicable</td><td>string</td></tr></tbody></table>
