# How to top up or withdraw funds from your Custody wallet

{% hint style="warning" %}
Only users with the *Owner* role can access Custody wallets.
{% endhint %}

## Top up your Custody wallet

To top up a wallet:

{% stepper %}
{% step %}
Go to **Custody** > **Wallets**.
{% endstep %}

{% step %}
Select a wallet that you want to top up and click the **Funds** button.
{% endstep %}

{% step %}
Select **Top up funds** and click **Proceed**.
{% endstep %}

{% step %}
From the dropdown, select a wallet from which funds should be transferred.

You can select:

* Any Merchant wallet.
* An Enterprise wallet denominated in the same currency as the target Custody wallet.
  {% endstep %}

{% step %}
Enter the amount of transfer.

The amount must be greater than or equal to the minimum transfer amount set for the target Custody wallet.
{% endstep %}

{% step %}
If you transfer funds from an Enterprise wallet, select the **Fee mode**.

Refer to [How to select the optimal blockchain fee](/how-tos/manage-your-assets/how-to-select-the-optimal-blockchain-fee.md) for more information.

Click **Proceed**.
{% endstep %}

{% step %}
In the popup, check the transfer details and click **Confirm** to create the transfer.
{% endstep %}
{% endstepper %}

The newly created transfer is now available on the **Custody** > **History** page where you can monitor its status.

Transfers from Enterprise wallets are credited after receiving enough confirmations on the blockchain.

## Withdraw funds from your Custody wallet

Mind that to withdraw funds from your Custody wallet, you have to pass video verification.

The Accumulated commission will be charged from the Custody wallet along with a withdrawal.

To withdraw funds:

{% stepper %}
{% step %}
Go to **Custody** > **Wallets**.
{% endstep %}

{% step %}
Select a wallet from which you want to transfer funds and click the **Funds** button.
{% endstep %}

{% step %}
Select **Withdraw funds** and click **Proceed**.
{% endstep %}

{% step %}
To withdraw funds **to an Enterprise or Merchant wallet**:

1. Select the **Wallet** destination.
2. From the dropdown, select a wallet to which funds should be transferred. The target wallet must be denominated in the same currency as the source Custody wallet.

To withdraw funds **to an external address**:

1. Select the **External address** destination.
2. From the dropdown, select a network.
3. Enter the destination address.
   {% endstep %}

{% step %}
Enter the amount of transfer.
{% endstep %}

{% step %}
When transferring funds to **an Enterprise or Merchant wallet**, choose the blockchain fee mode. Refer to [How to select the optimal blockchain fee](/how-tos/manage-your-assets/how-to-select-the-optimal-blockchain-fee.md) to learn more about fee modes.

Activate the **Fee is included** toggle to deduct the blockchain fee from the transfer amount, the remaining part will be credited to the target wallet.

For example, if the amount is 100 and the fee is 20, then 80 will be credited (*100 – 20*).

If the toggle is inactive, the blockchain fee is additionally debited from the source wallet.

Click **Proceed**.
{% endstep %}

{% step %}
Optionally, specify the **Advanced options**.

You can set:

* **Label** — a tag or name of your payout. This label is displayed in the payout list and can be used for a quick search. It can be any name convenient for you.
* **Tracking ID** — an identifier to track the withdrawal-related transactions in external systems. It can be any combination of numbers and letters, chosen by you for ease of reference. This value must be unique within the wallet.
* **Callback URL** — a URL to send a callback. You can add parameters to the URL: they can be useful for easier parsing of the callback body in external systems. In the final callback URL, the parameters are automatically replaced with the actual values. To add, click the **templates** link under the field or type them manually. The following templates are available:
  * `#PID#` — the payment identifier
  * `#TRID#` — the tracking identifier
  * `#WID#` — the wallet identifier
  * `#TXID#` — the blockchain transaction identifier
  * `#CISO#` — the currency code, as per ISO
  * `#CUR#` — the alphabetic code of a currency `#DID#` — the payout identifier
* **Required block confirmations** — the number of confirmations needed to receive an additional callback. If this field isn’t empty, two callbacks are sent: upon receiving the number of confirmations specified here and upon receiving the number of confirmations specified in the system settings.

You can change these values anytime.

{% hint style="info" %}
When creating a payout in XRP and XLM currencies, the additional **Tag** and **Tag type** fields appear in the form.
{% endhint %}

Click **Proceed**.
{% endstep %}

{% step %}
Fill in the information about a payment receiver:

1. Select the natural or legal person.
2. Enter the name of a receiver.
3. Enter the address of a receiver, as defined by postal services.
   {% endstep %}

{% step %}
In the popup, check the withdrawal details and click **Confirm**.
{% endstep %}

{% step %}
To process a withdrawal, you have to pass video verification.

Click **Complete verification** to proceed. You can do it later on the **Custody** > **Requests** page.
{% endstep %}
{% endstepper %}

The newly created withdrawal is now available on the **Custody** > **Requests** page where you can monitor its status.

Mind that the withdrawal may take up to 48 hours to complete after submitting and passing video verification.


---

# Agent Instructions: Querying This Documentation

If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter:

```
GET https://docs.b2binpay.com/how-tos/manage-your-assets/how-to-top-up-or-withdraw-funds-from-your-custody-wallet.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
