---
title: "Register a bank payout destination"
method: POST
path: "/api/account/bank"
tags: ["Accounts"]
---

# Register a bank payout destination

`POST /api/account/bank`

Creates a bank account as a payout destination. Request body must be nested (`bank`, `owner`, `address`) — not flat. Use `GET /api/account/bank-form` for fields and `includeExample=true` for a sample body. Use `X-On-Behalf-Of` to target a sub-merchant.

## Request body

- union
  - BridgeBankAccountDto
    - `bank` BankDto, required
      - `iban` string
      - `bic` string
      - `name` string
      - `accountNumber` string
      - `routingNumber` string
    - `owner` OwnerDto, required
      - `businessType` 'INDIVIDUAL' | 'BUSINESS', required
      - `firstName` string
      - `lastName` string
      - `businessName` string
    - `address` BridgeAddressDto
      - `line1` string, required
      - `city` string, required
      - `postalCode` string, required
      - `country` string, required
    - `country` string, required
  - WalapayBankAccountDto
    - `bank` BankDto, required
      - `iban` string
      - `bic` string
      - `name` string
      - `accountNumber` string
      - `routingNumber` string
    - `owner` OwnerDto, required
      - `businessType` 'INDIVIDUAL' | 'BUSINESS', required
      - `firstName` string
      - `lastName` string
      - `businessName` string
    - `address` AddressDto, required
      - `line1` string
      - `city` string
      - `postalCode` string
      - `country` string, required
    - `country` 'PK' | 'PH' | 'ID' | 'IN' | 'HK' | 'CN' | 'AE' | 'MU' | 'MA' | 'CA' | 'GB' | 'JP' | 'TR' | 'BR', required
  - PartnaBankAccountDto
    - `bank` BankDto, required
      - `iban` string
      - `bic` string
      - `name` string
      - `accountNumber` string
      - `routingNumber` string
    - `country` 'NG', required

## Response `201`

Register a bank payout destination successful

- AccountDto
  - `id` string, required — Unique identifier of the payout destination
  - `object` 'bank-account' | 'wallet', required — Destination type
  - `accountOwnerName` string, nullable, required — Account owner name
  - `bankInfo` string, nullable, required — Masked IBAN or account number (last 4 digits only)
  - `iban` string, nullable, required — Full IBAN (bank destinations only)
  - `accountNumber` string, nullable, required — Full account number (bank destinations only)
  - `bic` string, nullable, required — Bank BIC / SWIFT code (bank destinations only)
  - `routingNumber` string, nullable, required — Bank routing number (bank destinations only)
  - `businessName` string, nullable, required — Business name (business bank destinations only)
  - `address` string, nullable, required — Wallet address (wallet destinations only)
  - `country` string, nullable, required — ISO-3166 alpha-2 country code (bank destinations only)
  - `network` string, nullable, required — On-chain network (wallet destinations only)
  - `label` string, nullable, required — Custom label
  - `isArchived` boolean, required — Whether the destination has been archived
  - `createdAt` string, date-time, required — Creation timestamp
  - `updatedAt` string, date-time, required — Last update timestamp
  - `isAvailable` boolean, nullable, required — Whether this destination is available for the current currency filter
  - `withdrawals` string[], nullable, required — List of withdrawal ids that used this destination
  - `needsFileToWithdraw` boolean, required — True for bank accounts that require a file upload before withdrawal
  - `payoutPaused` boolean, required — True when payouts to this bank account are temporarily paused

## Other responses

- `400` — Invalid bank account payload
- `401` — Unauthorized - Invalid API key

---

[API](https://skmtc.net/inflowpay/apis/inflow-api.md) · [All operations](https://skmtc.net/inflowpay/apis/inflow-api/llms.txt) · [OpenAPI document](https://skmtc-service-staging.skmtc.workers.dev/v1/apis/inflowpay/inflow-api/versions/3012dd3dd14a/schema)
