> For the complete documentation index, see [llms.txt](https://docs.ospree.io/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://docs.ospree.io/developers/travel-rule/transfer-status.md).

# Transfer Status

The status of a Travel Rule transfer evolves as it moves through different stages of processing. Each status reflects a specific point in the transfer lifecycle. These status updates help track progress, identify bottlenecks.

### Sample Flow

1\.  User →  Originator VASP A: Initiates Withdrawal Request\
2\.  Originator VASP A →  Ospree: Create Travel Rule Transfer\
3\.  Ospree →  Beneficiary VASP B: Send Travel Rule Message\
4\.  Beneficiary VASP B →  Ospree: Respond. Action "accept" or "reject"\
5\.  Ospree →  Originator VASP A: Pass Beneficiary Response\
\
**If "Accepted"**\
6a. Originator VASP A →  Initiate Blockchain Transaction\
6b. Originator VASP A →  Ospree: Update Transfer respond action "complete"\
\
**If “Rejected”**\
6c. Originator VASP A →  Customer: Notify Customer of Rejection\
6d. Originator VASP A →  End: Cancel Withdrawal

<details open>

<summary>Expand Diagram</summary>

{% code expandable="true" %}

```mermaid
sequenceDiagram
    participant U as User
    participant A as Originator VASP
    participant O as Ospree
    participant B as Beneficiary VASP
    participant W as Beneficiary Wallet

    U->>A: 1. Submit withdrawal request

    A->>O: 2. Create Transfer
    Note over A,O: Status: INITIATED

    O->>B: 3. Send Travel Rule information
    Note over O,B: Status: REVIEW

    alt Beneficiary VASP accepts
        B->>O: 4a. Action Transfer: accept
        Note over O,B: Status: ACCEPTED

        O->>A: 5a. Return accepted response
        A->>W: 6a. Initiate blockchain transaction
        A->>O: 7a. Action Transfer: complete<br/>Include transaction hash
        Note over A,O: Status: COMPLETED

    else Beneficiary VASP rejects
        B->>O: 4b. Action Transfer: reject
        Note over O,B: Status: REJECTED

        O->>A: 5b. Return rejected response
        A->>U: 6b. Notify user of rejection
        A->>A: 7b. Cancel withdrawal locally<br/>Do not initiate blockchain transaction

    end
```

{% endcode %}

</details>

<table><thead><tr><th width="153.62109375">Status</th><th>Description</th></tr></thead><tbody><tr><td>INITIATED</td><td>The transfer request is sent to the beneficiary VASP using the Create Transfer endpoint.</td></tr><tr><td>REVIEW</td><td>The transfer request is being reviewed by the beneficiary VASP.</td></tr><tr><td>CANCELED</td><td>The originator VASP canceled the transfer request using the Action Transfer endpoint.</td></tr><tr><td>REJECTED</td><td>The beneficiary VASP rejected the originator VASP’s request, providing a reason and indicating whether a retry is allowed, using the Action Transfer endpoint.</td></tr><tr><td>ACCEPTED</td><td>The beneficiary VASP accepted the transfer request, allowing the originator VASP to proceed with executing the crypto transaction using the Action Transfer endpoint.</td></tr><tr><td>COMPLETED</td><td>The originator VASP has completed the execution of the crypto transaction using the Action Transfer endpoint.</td></tr></tbody></table>
