Skip to main content
POST
/
payment-accounts
Create payment account
curl --request POST \
  --url https://api.fernhq.com/payment-accounts \
  --header 'Authorization: Bearer <token>' \
  --header 'Content-Type: application/json' \
  --data '{
  "paymentAccountType": "EXTERNAL_BANK_ACCOUNT",
  "customerId": "072a8b7b-38c7-429a-a6cf-35dae7f2fb77",
  "nickname": "Savings Account",
  "organizationId": "24ab9fdd-5042-4d96-a616-4bef2877dd01",
  "externalBankAccount": {
    "accountNumber": "00123456789",
    "bankName": "Chase Bank",
    "bankAccountCurrency": "USD",
    "bankAddress": {
      "country": "US",
      "addressLine1": "350 5th Avenue",
      "addressLine2": "Floor 21",
      "city": "New York",
      "state": "New York",
      "stateCode": "NY",
      "postalCode": "10016",
      "locale": "en-US"
    },
    "bankAccountType": "CHECKING",
    "bankAccountPaymentMethod": "ACH",
    "bankAccountOwner": {
      "email": "john@example.com",
      "firstName": "John",
      "lastName": "Doe",
      "businessName": "Fern LLC",
      "address": {
        "country": "US",
        "addressLine1": "350 5th Avenue",
        "addressLine2": "Floor 21",
        "city": "New York",
        "state": "New York",
        "stateCode": "NY",
        "postalCode": "10016",
        "locale": "en-US"
      },
      "type": "INDIVIDUAL"
    },
    "routingNumber": "11110000",
    "sortCode": "123456",
    "iban": "GB29NWBK60161331926819",
    "bicSwift": "SMCOGB2LXXX",
    "transitNumber": "12345",
    "institutionNumber": "111",
    "bsbNumber": "123-456",
    "ifscCode": "IFSC0001234",
    "clabeNumber": "123456789012345678",
    "bankCode": "123456",
    "branchCode": "12345",
    "cnapsCode": "123456789",
    "nubanNumber": "123456789012",
    "pixCode": "123456789",
    "clearingCode": "123456",
    "taxNumber": "123456789"
  },
  "fernAutoFiatAccount": {
    "bankAccountCurrency": "USD",
    "destinationPaymentAccountId": "03b7030f-6da1-4d76-9352-cdebd82112c8",
    "destinationCurrency": "USDC",
    "destinationPaymentMethod": "BASE",
    "developerFeePercent": "0.1"
  },
  "externalCryptoWallet": {
    "cryptoWalletType": "EVM",
    "chain": "BASE",
    "address": "0x1234567890123456789012345678901234567890"
  },
  "fernCryptoWallet": {
    "cryptoWalletType": "EVM"
  },
  "isThirdParty": false
}'
{
"paymentAccountId": "11111111-2222-3333-4444-555555555555",
"paymentAccountType": "EXTERNAL_BANK_ACCOUNT",
"nickname": "Operating Account",
"createdAt": "2025-10-30T12:00:00Z",
"customerId": "aaaaaaaa-bbbb-cccc-dddd-eeeeeeeeeeee",
"paymentAccountStatus": "ACTIVE",
"externalBankAccount": {
"bankAccountType": "CHECKING",
"bankAccountOwnerName": "Acme Corp",
"bankAccountOwnerEmail": "finance@acme.com",
"bankName": "Chase Bank",
"bankAccountCurrency": {
"label": "USD"
},
"bankAccountMask": "***6789",
"bankAccountPaymentMethod": "ACH"
},
"isThirdParty": false
}

Authorizations

Authorization
string
header
required

To authenticate server-side requests

Body

application/json

Schema for creating a new payment account

paymentAccountType
enum<string>
required

Type of payment account to create

Available options:
FERN_CRYPTO_WALLET,
EXTERNAL_CRYPTO_WALLET,
EXTERNAL_BANK_ACCOUNT,
FERN_AUTO_FIAT_ACCOUNT,
FERN_FIAT_ACCOUNT
Example:

"EXTERNAL_BANK_ACCOUNT"

customerId
string<uuid>
required

Customer to create payment account

Example:

"072a8b7b-38c7-429a-a6cf-35dae7f2fb77"

nickname
string

Nickname for customer to use for the payment account

Example:

"Savings Account"

organizationId
string<uuid>

Organization to create payment account

Example:

"24ab9fdd-5042-4d96-a616-4bef2877dd01"

externalBankAccount
object

Request schema for external bank accounts

fernAutoFiatAccount
object

Request schema for Fern auto fiat accounts

externalCryptoWallet
object

Response schema for external crypto wallets

fernCryptoWallet
object

Request schema for Fern crypto wallets

isThirdParty
boolean
default:false

Whether the payment account is a third-party account. Defaults to false.

Example:

false

Response

Create Payment Account Response

Response schema for creating a payment account

paymentAccountId
string<uuid>
required

The id of the payment account

Examples:

"03b7030f-6da1-4d76-9352-cdebd82112c8"

paymentAccountType
enum<string>
required

Type of payment account to create

Available options:
FERN_CRYPTO_WALLET,
EXTERNAL_CRYPTO_WALLET,
EXTERNAL_BANK_ACCOUNT,
FERN_AUTO_FIAT_ACCOUNT,
FERN_FIAT_ACCOUNT
Examples:

"EXTERNAL_BANK_ACCOUNT"

paymentAccountStatus
enum<string>
required

The status of the payment account

Available options:
PENDING,
ACTIVE,
DEACTIVATED
Examples:

"ACTIVE"

"PENDING"

"DEACTIVATED"

nickname
string

Nickname for customer to use for the payment account

Examples:

"Savings Account"

createdAt
string<date-time>

ISO timestamp when this transaction was created

customerId
string<uuid>

The id of the customer this payment account belongs to

Examples:

"03b7030f-6da1-4d76-9352-cdebd82112c8"

externalBankAccount
object

Response schema for external bank accounts

fernAutoFiatAccount
object

Response schema for Fern auto fiat accounts

fernFiatAccount
object

Response schema for Fern fiat accounts

externalCryptoWallet
object

Response schema for external crypto wallets

fernCryptoWallet
object

Response schema for Fern crypto wallets

isThirdParty
boolean
default:false

Whether the payment account is a third-party account. Defaults to false.

Examples:

false

A link to a hosted form to create a bank account

Examples:

"https://forms.fernhq.com/bank_account/abc"