Pay
Bank Account

Bank Account Payment Methods

Learn about bank account payment methods for accepting bank payments, sending payouts, and verifying account ownership


Bank account payment methods represent checking and savings accounts as tokenized payment methods within the Payload system. They can be charged once for a single payment or stored for reuse, and support electronic bank transfers for both accepting payments and sending payouts.

Bank accounts offer pricing flexibility and support use cases cards can't serve well — large-ticket charges, payouts and transfers, instant payments, and transactions that typically can't be put on credit such as tuition, auto purchases, earnest money, or business-to-business invoices. Once stored, a bank account can be reused across transactions, verified to confirm ownership, and used as a destination for disbursements.

What Are Bank Account Payment Methods?

Bank account payment methods store a customer's checking or savings account as a tokenized payment instrument for electronic bank transfers.


When you create a bank account payment method, Payload:

  • Tokenizes the account: Raw account details are exchanged for a secure token; your systems only handle the resulting payment method ID.
  • Identifies the bank: The bank name is determined automatically from the routing number.
  • Masks sensitive details: Responses include only the last few digits of the account number, never the full number.
  • Verifies the account: When linked, the account is verified through Plaid or Payload's built-in verification to confirm the account details and ownership.
  • Stores it for reuse: The payment method is stored and can be reused for payments or payouts for as long as keep_active is true (the default). Associating it with a customer account is optional.

Key Characteristics

  • Reusable: Reuse a stored account for payments and payouts across transactions
  • Two-Way: Accept payments and send payouts using the same account type
  • Pricing Flexibility: Flexible pricing, well suited to large-ticket and high-volume payments
  • Secure: Sensitive account details are tokenized and never stored on your systems

Common Use Cases


Large-Ticket and Non-Card Payments

Accept payments via bank transfer for large-ticket charges and for transactions that typically can't run on a credit card, such as tuition, auto purchases, earnest money, or business-to-business invoices — with pricing flexibility for high-value or recurring billing.

Recurring Payments and Autopay

Store a bank account once and debit it on a schedule for subscriptions, memberships, or automatic invoice payment. See Billing Schedules and Autopay.

Payouts and Disbursements

Use a stored bank account as the destination for paying vendors, contractors, or customers. See Sending Payouts and Instant Payouts.

Funding Source

Link a bank account to fund payments and payouts — the deposits and withdrawals that move money into and out of your accounts. Bank accounts can also fund synthetic account balances and wallets.

Transfer Methods

Bank account payment methods support multiple funding speeds as well as check-based capture, so you can balance speed and cost per transaction:

  • Standard: Bank transfer that follows the funding delay configured in your processing settings.
  • Rapid: Faster funding within the same business day. See Digital Wires.
  • Instant: Real-Time Payments for immediate fund delivery. See Instant Payouts.
  • Check conversion: Record in-person or mailed paper checks as electronic bank transfers. See Check Payments.
  • Check21: Accept checks remotely by uploading images of the check. See Check Payments.

Funding speed is set per transaction with funding_timing (standard, rapid, or instant).

Account Details and Security

Understanding how bank account data is collected and protected is essential for a compliant integration.


  • Account Number: The full account number is provided only at creation and never returned in full; responses show only the last few digits.
  • Routing Number: The 9-digit ABA routing number identifies the account's bank and is used to determine the bank name. For Canadian accounts, provide the EFT routing number — see Canadian Bank Payments for the format.
  • Account Type: Specifies a checking or savings account.
  • Account Class: Distinguishes personal from business accounts where applicable.

Verification

Verify bank accounts before processing to confirm ownership and reduce reject rates.


  • Plaid: Connect an account through Plaid to confirm details and ownership instantly.
  • Built-in Verification: Verify account details directly with Payload, also instantly. See Bank Account Verification for results and handling.

Testing

Use test bank accounts to exercise approvals, rejects, and verification flows before going live. See Test Bank Accounts for account and routing numbers covering common scenarios.

Schema Reference


Complete bank account payment method schema:

type
enum[string]
The type of payment method being created or referenced. This determines which additional fields are required and how the payment method can be used.
Values: card, bank_account, synthetic
bank_account
object
Bank account details for this payment method. This object contains the account number, routing number, account type (checking or savings), and other bank-specific information. This field is required when type is "bank_account".
Required if:
type=bank_account
account_class
enum[string]Immutable
The classification of the bank account ownership, indicating whether this is a personal account owned by an individual or a business account owned by a company.
Values: personal, business
account_number
stringImmutable
The bank account number associated with this payment method. When retrieved, only the last 4 digits will be visible, with the preceding digits masked for security.
Pattern: ^[0-9]+$
Max length: 32
account_type
enum[string]Immutable
The type of bank account, either a checking account used for everyday transactions or a savings account used for storing funds.
Values: checking, savings
currency
enum[string]Immutable
The currency in which the bank account is denominated. This determines the currency used for transactions with this payment method.
Values: USD, CAD
routing_number
stringImmutable
The 9-digit ABA routing number that identifies the financial institution. When retrieved, only the last 4 digits will be visible for security purposes.
Pattern: ^[0-9]+$
Max length: 9
transfer_type
enum[string]Immutable
Specifies the allowed transfer directions for this payment method. This controls whether the payment method can be used to send funds, receive funds, or both.
Values: two_way, send_only, receive_only
account_holder
stringImmutable
The name of the business or individual who owns this payment method. For cards, this is the cardholder name. For bank accounts, this is the account holder name.
Max length: 128
account_id ID of Account
string
The unique identifier of the account that owns this payment method. This determines which account has access to use this payment method for transactions and defines the ownership and permissions associated with it. (ID prefix: acct)
Pattern: ^acct_[A-Za-z0-9]+$
description
string
A human-readable description or label for the payment method. This can be used to help identify the payment method in lists or for display purposes. This is typically autogenerated but can be provided to override the default.

For complete field documentation, see:

Next Steps

Start accepting bank payments and sending payouts with stored bank accounts


Create and Store Bank Accounts

Create bank accounts via the Payment Method API, collect them securely with a Payment Form, or connect them with Plaid.

Verify and Manage Accounts

Confirm ownership with Bank Account Verification and validate integrations using Test Bank Accounts.

Accept Payments and Send Payouts

Use the Payment API to accept bank payments, and Sending Payouts or Instant Payouts to disburse funds.


Related Articles