- Create a Link token - Generate a Plaid Link token via the API using your configured settings
- Render Plaid Link - Display the Plaid Link interface to the customer so they can securely connect their bank account
- Create a transaction - Submit the public token received from Plaid Link to process the payment
Looking for a complete working example? Check out this sample standalone
Plaid app on GitHub
that demonstrates the full integration flow.
Step 1: Create a Plaid Link token
Use the payment service session API with thecreate-link-token action to generate a Plaid Link token. This endpoint applies your dashboard settings (identity, signal, balance checks, etc.) to the token request. You can also override any settings by passing custom Plaid Link parameters such as products, additional_consented_products, and optional_products to customize the experience for specific transactions.
Refer to the Plaid Link token API documentation for a complete list of available parameters.
Step 2: Render Plaid Link
Display Plaid Link using thelink_token from the previous step. Plaid Link securely handles bank authentication and account linking for the customer. When the customer successfully links their account, the onSuccess callback receives a publicToken and metadata containing account information.
For detailed implementation guides, see the Plaid Link documentation.
Step 3: Create a transaction
On your server, use thepublicToken from Step 2 to create a transaction. The publicToken is automatically exchanged for a secure connection to the customer’s bank account.
Key parameters (API field names):
payment_service_id(paymentServiceIdin SDKs) - The UUID of yourbankpayment processor connection (for example, Plaid Transfer or Adyen) to process the payment through.payment_method.payment_service_id(paymentMethod.paymentServiceIdin SDKs) - Optional. The UUID of the Plaid connection (found in the dashboard under Settings -> Connections -> Plaid). If omitted, the system fails the transaction if multipleplaid-bankconnectors have been configured.payment_method.account_id(accountIdon the payment method in SDKs) - Required if theidentityproduct is not enabled on the Link token and/or merchant account. Ifidentityis enabled, the account ID is fetched automatically. When provided, specifies which account to charge if the customer linked multiple accounts (available in the Plaid metadata).buyer- The buyer’s first and last name are required for transaction processing and identity matching, unless theidentityproduct is enabled and used to fetch this information automatically from Plaid.
If Plaid is still fetching identity data and the call times out, the API returns
unavailable_payment_method. This means Plaid did not finish in time; retry the transaction to allow identity to complete.