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

# Create Bank Withdrawal

> API reference for creating withdrawal payouts to bank accounts

Creates a withdrawal payout to a bank account. Supports both customer and merchant withdrawals.

### Key Features:

* Supports multiple currencies and banks
* Handles both customer and merchant payouts
* Includes recipient verification details

### Request Body:

**Bank Withdrawal**:

```json theme={null}
{
  "customer_id": "85b148ab-3f6b-4d55-917f-3c8de668a48e", //optional
  "currency": "USDC",
  "account_number": "1234567890",
  "bank_name": "United Bank for Africa",
  "bank_code": "000004",
  "amount": "100",
  "recipient_name": "John Doe",
  "recipient_currency": "NGN",
  "recipient_country": "Nigeria"
}
```


## OpenAPI

````yaml POST /payouts/banks
openapi: 3.0.0
info:
  title: 'StableStack: API Service'
  description: "# Overview\n\n##  Introduction\n\nStableStack offers an API first, last mile payment orchestration + liquidity router built with stablecoins. Stablecoin layer integrated into your existing payment flow, with smart accounts and blockchain abstraction. Go between digital and fiat currencies in minutes.\n\n## Getting Help\n\nWe're excited to have you build with us! If you're integrating, we will set up a communication channel. This will enable our teams to easily collaborate and ensure you launch as quickly as possible.\n\nPlease reach out to us at\_[hello@stablestack.xyz](https://mailto:hello@stablestack.xyz)\_for any questions or concerns."
  version: 1.0.0
servers:
  - url: https://api-staging.stablestack.com/api
    description: StableStack API
security: []
tags:
  - name: customers
  - name: customers > kyc
  - name: payouts
  - name: banks
  - name: transactions
  - name: wallets
  - name: assets
  - name: swap
paths:
  /payouts/banks:
    post:
      tags:
        - payouts
      summary: Create bank withdrawal
      description: Creates a withdrawal payout to a bank account
      parameters:
        - name: x-api-key
          in: header
          schema:
            type: string
          required: true
          example: merchant_api_key_12345
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: object
              required:
                - currency
                - account_number
                - bank_name
                - bank_code
                - amount
                - payment_purpose
                - recipient_name
                - recipient_currency
                - recipient_country
              properties:
                customer_id:
                  type: string
                  format: uuid
                  nullable: true
                  description: Required for customer withdrawals
                  example: 85b148ab-3f6b-4d55-917f-3c8de668a48e
                currency:
                  type: string
                  enum:
                    - USDC
                  example: USDC
                account_number:
                  type: string
                  example: '1234567890'
                bank_name:
                  type: string
                  example: United Bank for Africa
                bank_code:
                  type: string
                  example: '000004'
                amount:
                  type: string
                  example: '100'
                recipient_name:
                  type: string
                  example: John Doe
                recipient_currency:
                  type: string
                  enum:
                    - NGN
                    - ZAR
                  example: NGN
                recipient_country:
                  type: string
                  enum:
                    - Nigeria
                    - South Africa
                  example: Nigeria
                payment_purpose:
                  type: string
                  enum:
                    - CAPITAL_CONTRIBUTIONS
                    - CHARITABLE_CONTRIBUTIONS
                    - CONSULTING_FEES
                    - CORPORATE_TAX_PAYMENTS
                    - DOWN_PAYMENTS_FOR_REAL_ESTATE
                    - EDUCATION_FEES
                    - EMPLOYEE_SALARIES_OR_WAGES
                    - EXPENSES_REIMBURSEMENT
                    - GIFTS
                    - GOVERNMENT_GRANTS
                    - INCOME_TAX_PAYMENTS
                    - INHERITANCE_PAYMENTS
                    - INSURANCE_CLAIM_PAYOUTS
                    - INSURANCE_PREMIUM_PAYMENTS
                    - INVESTMENTS
                    - LOAN_ADVANCES
                    - MORTGAGE_PAYMENTS
                    - OTHER
                    - PAYMENT_FOR_GOODS_AND_SERVICES
                    - PERSONAL_TRANSFERS
                    - REAL_ESTATE_PURCHASES
                    - REMITTANCES
                    - RENT
                    - REPAYMENT_OF_LOANS
                    - ROYALTIES
                    - TRUST_FUND_DISTRIBUTIONS
                    - UTILITY_BILLS
                    - WELFARE_OR_BENEFITS
                    - WINNINGS_AND_PRIZES
                  example: Salary payment
                narration:
                  type: string
                  nullable: true
                  description: Optional note or reference for the transaction
                  example: Salary payment - May 2026
                transfer_type:
                  type: string
                  nullable: true
                  description: Required for USD payouts. Transfer rail to use.
                  enum:
                    - ach
                    - fed_wire
                    - swift
                  example: ach
            examples:
              customerWithdrawalNGN:
                summary: Customer NGN withdrawal
                value:
                  customer_id: 85b148ab-3f6b-4d55-917f-3c8de668a48e
                  currency: USDC
                  account_number: '1234567890'
                  bank_name: United Bank for Africa
                  bank_code: '000004'
                  amount: '100'
                  recipient_name: John Doe
                  recipient_currency: NGN
                  recipient_country: Nigeria
                  narration: Salary payment - May 2026
              customerWithdrawalUSD:
                summary: Customer USD withdrawal (ACH)
                value:
                  customer_id: 85b148ab-3f6b-4d55-917f-3c8de668a48e
                  currency: USDC
                  account_number: '000123456789'
                  bank_name: Chase
                  bank_code: '021000021'
                  amount: '20000'
                  recipient_name: Jane Smith
                  recipient_currency: USD
                  recipient_country: United States
                  transfer_type: ach
                  narration: Vendor payment
              merchantWithdrawal:
                summary: Merchant NGN withdrawal
                value:
                  currency: USDC
                  account_number: '1234567890'
                  bank_name: United Bank for Africa
                  bank_code: '000004'
                  amount: '100'
                  recipient_name: John Doe
                  recipient_currency: NGN
                  recipient_country: Nigeria
                  narration: Salary payment - May 2026
      responses:
        '200':
          description: Withdrawal created successfully
          content:
            application/json:
              schema:
                type: object
                properties:
                  status:
                    type: string
                    example: success
                  data:
                    type: object
                    properties:
                      id:
                        type: string
                        format: uuid
                        example: f3394f78-682b-4d28-9cf6-53858fb8216f
                      sender_wallet_id:
                        type: string
                        format: uuid
                        nullable: true
                        example: null
                      receiver_wallet_id:
                        type: string
                        format: uuid
                        nullable: true
                        example: null
                      transaction_id:
                        type: string
                        example: EF40X2S02U
                      asset_code:
                        type: string
                        example: USDC
                      amount:
                        type: string
                        example: '100.00000000'
                      reference_id:
                        type: string
                        format: uuid
                        example: 6b522909-45c9-406d-ac11-b645b79a0202
                      status:
                        type: string
                        example: PROCESSING
                      created_at:
                        type: string
                        format: date-time
                        example: '2025-05-27T11:27:29.061Z'
                      updated_at:
                        type: string
                        format: date-time
                        example: '2025-05-27T11:27:29.061Z'
                      crypto_transaction_id:
                        type: string
                        nullable: true
                        example: null
                      network:
                        type: string
                        nullable: true
                        example: null
                      transaction_type:
                        type: string
                        example: PAYOUT
                      transaction_mode:
                        type: string
                        example: DEBIT
                      exchange_rate:
                        type: string
                        nullable: true
                        example: null
                      withdrawal_recipient_name:
                        type: string
                        example: John
                      fee:
                        type: string
                        nullable: true
                        example: null
                      balance:
                        type: string
                        example: '0.00000000'
                      reason:
                        type: string
                        example: Withdraw to 1234567890/000004
                      customer_id:
                        type: string
                        format: uuid
                        nullable: true
                        example: 85b148ab-3f6b-4d55-917f-3c8de668a48e
                      recipient_currency:
                        type: string
                        example: NGN
                      recipient_country:
                        type: string
                        example: Nigeria
                      bank_name:
                        type: string
                        example: United Bank for Africa
                      bank_code:
                        type: string
                        example: '000004'
                      address:
                        type: string
                        nullable: true
                        example: null
                      bank_account:
                        type: string
                        example: '1234567890'
                      amount_fiat:
                        type: string
                        example: '0.00000000'
                      fiat_reference_id:
                        type: string
                        nullable: true
                        example: null
                      narration:
                        type: string
                        nullable: true
                        example: Salary payment - May 2026
                      transfer_type:
                        type: string
                        nullable: true
                        example: ach
                      walapay_transfer_type:
                        type: string
                        nullable: true
                        example: LOCAL
        '400':
          description: Invalid request
          content:
            application/json:
              schema:
                type: object
                properties:
                  status:
                    type: string
                    example: error
                  message:
                    type: string
                    example: Error message
                  code:
                    type: string
                    example: ERROR_CODE

````