# Create Withdrawal Request a new withdrawal. On successful request, the withdrawal must be accepted before it is queued for execution. Withdrawals accepted before Endpoint: POST /v1/withdrawals Version: 1.1.2 Security: OAuth2Flow ## Header parameters: - `Authorization` (string) OAuth bearer token (see authentication flows) - `x-l2f-request-id` (string) Optional Unique ID per request, useful for fault resolution/diagnosis and audit. - `x-l2f-idempotency-id` (string) Unique ID used to safely retry an operation. See idempotency section for more details. ## Request fields (application/json): - `withdrawal_rail` (string, required) The rail to be used for the withdrawal. The destination counterparty must have the appropriate rail configuration. Enum: "ACH", "FEDWIRE", "SEPA_CT", "SWIFT", "CRYPTO", "EFT" - `description` (string) Description of the transaction - `source_account_id` (string, required) Source account ID from which funds will be withdrawn. - `purpose` (string, required) Purpose of the withdrawal. (Note: The purpose "PERSONAL_ACCOUNT" is only valid with counterparties that have profile.relationship_to_customer set as "SELF".) Enum: "PERSONAL_ACCOUNT", "FAMILY", "INSURANCE", "INVESTMENT", "REAL_ESTATE", "TUITION", "MEDICAL", "TRAVEL", "TRADE_TRANSACTIONS", "UTILITY", "TAX", "LOAN", "BILLS", "PAYROLL", "TELECOM", "INTELLECTUAL_PROPERTY", "CHARITABLE_DONATIONS", "MORTGAGE", "EXPENSES_REIMBURSEMENT", "PROFESSIONAL_SERVICES", "MARKETING", "RENTAL_PROPERTY" - `amount` (number, required) Amount to be withdrawn (uses the source account currency) - `destination_counterparty_id` (string, required) Destination counterparty where funds will be sent. This counterparty must be configured with the required rail information. ## Response 200 fields (application/json): - `data` (object, required) - `data.id` (string) Unique Identifier for the withdrawal request - `data.status` (string) Status of the withdrawal. * REQUESTED - Withdrawal request is created and has passed validation. It must be accepted at which point it will be executed. * ACCEPTED - Withdrawal request has been accepted and is waiting execution. At this point it cannot be cancelled. * EXPIRED - Occurs when a withdrawal request was not accepted within a reasonable time frame. The request cannot be replayed from this state. * CANCELLED - Withdrawal request was cancelled. Only available prior to acceptance. The request cannot be replayed from this state. * CANCELLING - Withdrawal request is being cancelled. * EXECUTED - Withdrawal request has been executed, it is completed with all ledger entries performed. * REJECTED - Withdrawal request was rejected and cannot be executed. Enum: "REQUESTED", "REJECTED", "EXPIRED", "ACCEPTED", "EXECUTED", "CANCELLED", "CANCELLING" ## Response 400 fields (application/json): - `errors` (array) Error List - `errors.code` (string) Layer2 Standard Error Code - `errors.description` (string) Error Description ## Response 401 fields (application/json): - `errors` (array) Error List - `errors.code` (string) Layer2 Standard Error Code - `errors.description` (string) Error Description ## Response 404 fields (application/json): - `errors` (array) Error List - `errors.code` (string) Layer2 Standard Error Code - `errors.description` (string) Error Description ## Response 500 fields (application/json): - `errors` (array) Error List - `errors.code` (string) Layer2 Standard Error Code - `errors.description` (string) Error Description