---
title: "Withdrawal Created"
method: POST
path: "withdrawal.created"
tags: ["Payouts"]
---

# Withdrawal Created

`POST withdrawal.created` (webhook)

Sent when a withdrawal is created

Required permissions:
 - `payout:withdrawal:read`
 - `payout:destination:read`
 - `webhook_receive:withdrawals`

## Headers

- `webhook-id` string, required — A unique identifier for this webhook request
- `webhook-signature` string, required — The signature of the webhook request with the webhook version prepended
- `webhook-timestamp` string, required — The timestamp in seconds since the Unix epoch that the webhook was sent at on the server

## Payload

- object
  - `api_version` 'v1', required — The API version for this webhook
  - `api_version_date` string, nullable, required — The dated API version (Api-Version-Date) the payload is serialized to
  - `company_id` string, nullable — The account ID that this webhook event is associated with
  - `data` object, required
    - `amount` number, float, required — The payout amount in whole currency units.
    - `created_at` string, date-time, required — When the payout was created.
    - `currency` string, required — Payout currency.
    - `destination_amount` number, float, nullable, required — The amount delivered in the destination currency, in whole currency units. Assigned when the payout is processed, so it is `null` before then and on payouts without a recorded conversion.
    - `destination_currency` string, nullable, required — Currency the funds are delivered in, taken from the payout method when the payout is created. `null` on payouts with no recorded destination currency, such as stablecoin payout requests.
    - `estimated_arrival` string, date-time, nullable, required — Estimated time the funds become available in the destination account.
    - `exchange_rate` number, float, nullable, required — Exchange rate from the payout currency to the destination currency. Assigned when the payout is processed, so it is `null` before then and on payouts without a recorded rate.
    - `fee_amount` number, float, required — The fee charged for the payout, in the payout currency.
    - `id` string, required — Payout ID, prefixed `wdrl_`.
    - `notes` string, nullable, required — Free-form notes attached by the payout creator, or `null` when none were provided. Maximum 255 characters.
    - `object` 'payout', required
    - `payer_name` string, nullable, required — Name of the entity processing the payout.
    - `payout_method` object, nullable, required — The saved payout method used. Requires payout:destination:read; null without it.
      - `nickname` string, nullable, required — Saved payout method nickname.
      - `supported_payout_method` object, nullable, required — Supported payout method display details.
        - `delivery_type` 'cash_pickup' | 'bank_deposit' | 'home_delivery' | 'mobile_wallet' | 'masspay_card' | 'paper_check' | 'bill' | 'cryptocurrency' | 'unknown', required — How the funds are delivered to the recipient.
        - `icon_url` string, nullable, required — Supported payout method icon URL.
        - `payer_name` string, nullable, required — Supported payout method display name.
    - `payout_request_id` string, nullable, required — Payout request ID, prefixed `cofr_`, returned by `POST /payouts`. Match it to the settled payout in `GET /payouts`. Returns `null` for payouts not created by `POST /payouts`.
    - `speed` 'standard' | 'instant', required — Payout delivery speed.
    - `status` 'requested' | 'awaiting_payment' | 'in_transit' | 'completed' | 'failed' | 'canceled' | 'denied', required — Current payout status.
    - `trace_code` string, nullable, required — ACH trace number the recipient's bank can use to locate this payout. Assigned when the payout is submitted to the bank, so it is `null` before then and on payouts not sent over ACH.
  - `id` string, required — A unique ID for every single webhook request
  - `previous_attributes` object — For some `.updated` events, the old values of the payload fields that changed, keyed by field name. Omitted when no capture is available for the event
  - `timestamp` string, date-time, required — The timestamp in ISO 8601 format that the webhook was sent at on the server
  - `type` 'withdrawal.created', required — The webhook event type

## Acknowledgement `200`

Return a 200 status to indicate that the data was received successfully

---

[API](https://skmtc.net/whop/apis/whop-api.md) · [All operations](https://skmtc.net/whop/apis/whop-api/llms.txt) · [OpenAPI document](https://skmtc-service-staging.skmtc.workers.dev/v1/apis/whop/whop-api/revisions/23dfbe1a0d1f/schema)
