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

# Cancel Withdrawal

> Cancel a pending withdrawal and refund the locked amount to your wallet

Cancels a withdrawal that is still `pending` admin review. The original amount is refunded to your wallet immediately.

Once an admin has approved or rejected the withdrawal, it can no longer be cancelled.

<ParamField header="Authorization" type="string" required>
  Bearer token. Example: `Bearer sk_staging_your_api_key`
</ParamField>

<ParamField path="id" type="string" required>
  Withdrawal id.
</ParamField>

<RequestExample>
  ```bash cURL theme={null}
  curl -X DELETE https://services-staging.getplu.com/api/v1/partner/withdrawal/65f0d9f4c8a3b21e9d4a6c01 \
    -H "Authorization: Bearer sk_staging_your_api_key"
  ```
</RequestExample>

<ResponseExample>
  ```json 200 theme={null}
  {
    "status": "success",
    "message": "Withdrawal cancelled",
    "data": {
      "id": "65f0d9f4c8a3b21e9d4a6c01",
      "partnerId": "service-partner-PdhFKbfvYr",
      "amount": 100,
      "fee": 0.5,
      "netAmount": 99.5,
      "toAddress": "0xa40aCe28a2d66f81D396c7F0ACd46Ae2e4407089",
      "chain": "base",
      "token": "usdc",
      "status": "cancelled",
      "createdAt": "2026-04-20T11:42:18.221Z",
      "cancelledAt": "2026-04-20T11:43:02.108Z"
    }
  }
  ```

  ```json 400 Not cancellable theme={null}
  {
    "status": "error",
    "message": "WITHDRAWAL_NOT_CANCELLABLE",
    "data": { "error": "Cannot cancel withdrawal in status 'completed'" }
  }
  ```
</ResponseExample>

<Info>
  Cancellation triggers the [`wallet.withdrawal.crypto`](/webhooks#wallet-events) webhook with `data.status: "cancelled"`.
</Info>
