# Withdrawal Interactions

The DEFY Travel Rule system ensures secure and compliant handling of withdrawal transactions between Virtual Asset Service Providers (VASPs). The process begins when the customer initiates a transaction, which is sent to the Beneficiary VASP Backend. From there, DEFY Backend processes the request, performing necessary AML and security checks.

DEFY communicates with the Originator VASP to verify the transaction. If the transaction is approved, the Beneficiary VASP provides the transaction hash to DEFY, which is then forwarded to the Originator VASP for completion. In case of rejection, the transaction is logged, and the Beneficiary VASP is notified. This seamless and secure flow ensures compliance with travel rule regulations.

<figure><img src="/files/xnR58dSzNaYs4LmMzyCh" alt=""><figcaption><p>Defy Travel Rule Withdrawal Schema</p></figcaption></figure>

### Travel Rule Step-by-step

1. **Customer initiates a withdrawal transaction**
   * The customer sends withdrawal transaction information to Beneficiary VASP Backend via the [`create_tx`](/travel-rule/api-reference.md#create-transaction) service.
2. **Backend sent to Frontend**
   * It appears as a pending operation on the interface. In the meantime, AML and security inquiries were carried out by us.
3. **Action** **at Dashboard**
   * If the transaction is **rejected**, nothing happens, it just appears in the history.&#x20;
   * If the transaction is accepted, it is sent to the other party in accordance with the TRP protocol. If the other party does not use a protocol, communication is established via e-mail.
4. **Originator VASP Backend Reponses**
   * The other party sends its response regarding the transaction.
5. **Decision by the Originator VASP Backend**
   * If the transaction is **rejected**:
     * DEFY notifies the Beneficiary VASP Backend via webhook.
     * The rejection appears in the transaction history, and no further action is taken.
   * If the transaction is **approved**:
     * DEFY notifies the Beneficiary VASP Backend via webhook.
     * DEFY requests the `transaction_hash` data from the Beneficiary VASP Backend.
6. **Beneficiary VASP Backend provides transaction hash**
   * The "Beneficiary VASP Backend" sends the `transaction_hash` data to DEFY using the [`send_transaction`](/travel-rule/api-reference.md#send-transaction-hash) service.
7. **Transaction completion**
   * DEFY forwards the `transaction_hash` to the Originator VASP Backend along with the approval service.
   * If the Originator VASP Backend lacks a protocol, communication is established via [e-mail](/travel-rule/e-mail-notification.md).

> ### 📘 Do I have everything?
>
> Once all the information about the originator and beneficiary has been pulled from the databases and orchestrated into the IVMS101 format, you can send it to [`create_tx`](/travel-rule/api-reference.md#create-transaction) to confirm that everything is present.

You could also leverage [`create_tx`](/travel-rule/api-reference.md#create-transaction) when building the address book database so that everything gets collected from the start.


---

# 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.getdefy.co/travel-rule/withdrawal-interactions.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.
