Pay
Payment Method Types

Payment Method Types

Payment methods are the tokenized instruments — cards, bank accounts, and synthetic accounts — you use to accept payments, send payouts, and fund both through deposits and withdrawals.


A payment method is a secure, tokenized representation of a source or destination for funds — a credit or debit card, a bank account, or an internal synthetic balance. It can belong to an account or exist independently. Once created, Payload can store it so you can charge it, pay out to it, and reuse it across transactions without handling or re-collecting sensitive details. Payment methods can be created on their own or inline with a transaction.

Every payment method in Payload is a single polymorphic object. They share the same shape, the same endpoints, and the same core fields. The type field (card, bank_account, or synthetic) determines which type-specific details apply and how the method can be used.

This means you create, update, store, and verify every payment method the same way. Only the type-specific block and a few type-dependent fields change between them.

The Types

Card

Store credit and debit cards for instant checkout and digital wallet payments.

Bank Account

Use checking and savings accounts for payments, digital wires, payouts, and transfers.

Synthetic

Enable embedded banking with internal balances and instant fund transfers.

One Object, Many Types

The type field is the discriminator. Each type populates a nested block of the same name — a card payment method carries a card block — while sharing the common fields listed below.

typeTypical use
cardCredit and debit cards for payments, autopay
bank_accountPayments, payouts, and transfers
syntheticInternal balances and embedded banking

Whatever the type, every payment method shares the same core fields. Because the object and its endpoints are identical across types, the same creation, storage, and verification flows apply to all of them.

Core Fields

FieldTypeDescription
idstringUnique identifier for the payment method.
typestringDiscriminator: card, bank_account, or synthetic.
account_idstringThe account that owns this payment method.
keep_activebooleanWhether the method stays stored for reuse (true) or is single-use (false).
statusstringCurrent operational status of the payment method.
verification_statusstringLevel of verification the payment method has completed.
billing_addressobjectBilling address used for address verification and records.
descriptionstringHuman-readable label for the payment method.

Using Payment Methods

Once created, a payment method is referenced by its id — the same tokenized method can be used across many transactions without re-collecting sensitive details. Common uses:

Use caseWhat it does
Accept paymentsCharge a payment method — stored or inline — for one-time or on-demand payments.
Authorize, then captureHold funds first and capture the payment later, in two steps.
Recurring billing & autopayReuse a stored method for subscriptions and automatic payments.
Send payoutsDisburse funds to a method that can receive them (receive_only/two_way).
Fund accountsMove funds into or out of your accounts with deposits and withdrawals.

The mechanics are the same for every type — a method's type and transfer_type determine which of these it supports.

Lifecycle & Status

Every payment method follows the same lifecycle regardless of type: it is created, optionally stored for reuse and verified, used in transactions, and eventually deactivated. A few shared fields describe where a method sits in that lifecycle.

FieldValuesMeaning
statusactive, inactive, decliningWhether the method can currently be used.
keep_activetrue (default), falseWhether the method is stored for reuse or single-use.
usedtrue, falseWhether the method has been used in at least one transaction.

A declining status means recent transaction attempts are failing and the method needs attention. Setting keep_active to false deactivates a method after a single use.

Transfer Direction

The immutable transfer_type field sets which directions a method supports — accepting payments, sending payouts, or both. Which directions apply depends on the type.

transfer_typeAllowed useCommon for
send_onlyAccept payments from this method onlyCards (default)
receive_onlySend payouts to this method onlyBank accounts used as payout recipients
two_wayAccept payments and send payoutsBank and synthetic accounts (default)

Funding

Payments and payouts are funded through funding transactions. A deposit moves funds into an account to fund a payment, and a withdraw pulls funds out to fund a payout. A payment method's default funding role is set with account_defaults.funding:

account_defaults.fundingRole
depositsFunds deposit transactions — receives funds to back payments
withdrawsFunds withdraw transactions — pulls funds to back payouts
allFunds both

The matching deposit and withdraw webhook events fire when these funding transactions are created.

Verification

Every type shares a verification_status field (not_verified, verified, or owner_verified), but how a method is verified differs by type — AVS and CVV for cards, Plaid or Payload's built-in verification for bank accounts, and no external verification for synthetic accounts.


Related Topics