Bank Linking
Introduction
Bank linking connects a cardholder's bank account through an open-banking provider (Plaid or Mastercard Open Finance) so their bank activity flows into the same transaction stream as their card spend. It gives you three things: net-new bank-only events (fees, transfers, payroll, loan payments, foreign-exchange markup), earlier settlement of card transactions, and card enrollment over the bank rail. The transaction stream rides the transactionmessage.created, transaction.created, and transaction.updated webhooks you already operate, with no new event types required, and created cards announce themselves on cardsubscription.created. Bank linking also emits a few dedicated events (banklink.completed, bankaccount.state_changed, and the bank-record events) covered in Bank Linking Webhooks & Events.
What you get
| Requires | What it delivers | |
|---|---|---|
| Bank-only events | Bank connected | Net-new SETTLED transactions for fees, transfers in/out, loan payments, income, and FX markup. Activity with no card-side counterpart. |
| Earlier settlement | Bank connected and card linked | Card authorizations flip PENDING→SETTLED on bank evidence, typically within hours of the swipe instead of days. |
| Card enrollment (bank rail) | Bank connected | A real card and an active bank-feed subscription created for each credit account with a usable last 4 that does not resolve cleanly to a single already-enrolled card; cardsubscription.created announces each. |
Bank linking is bank-first: connecting the bank enables bank-only events on its own, and linking cards is an optional second step that adds earlier settlement for card spend.
Two ways to use it
- Alongside a card program: link a bank and cards to get bank-only events plus earlier settlement of card transactions.
- Bank-only: link a bank without enrolling any card numbers and use it as a standalone bank-data source in place of card enrollment. Every bank transaction still surfaces (via
banktransaction.createdand a SETTLEDtransaction.created), and you receive no card authorizations or match events. Completing the link still creates a card (announced bycardsubscription.createdwithenrollmentType: "bank-feed") for each credit account with a usable last 4, and that account's activity is attributed to that card. See Bank-only mode.
Providers
Each bank link runs through one open-banking provider, which handles the cardholder's bank sign-in and supplies the bank data. What Astrada returns is the same for every provider: the same bank link and bank account resources, the same account states, and the same webhooks.
| Provider | provider | Bank countries (countryCode) |
|---|---|---|
| Plaid | plaid | USA, CAN |
| Mastercard Open Finance US | mastercard | USA |
| Mastercard Open Finance Europe | mastercard | European countries, such as DEU, FRA, NLD, ESP, BEL, PRT |
You pick the provider for a link with provider and countryCode on POST /bank-links, or with the bankLink option of the Unified Enrollment SDK. A link that names no provider uses your subaccount's default when Astrada has set one, and otherwise Plaid in the USA. Which providers you can use is part of your account setup, so talk to your Astrada contact before using Mastercard Open Finance in production. For Mastercard Open Finance US, Astrada first sets your account up with Mastercard.
In this section
- Quick Start: Bank Linking is the full on-ramp: create a link, the cardholder signs in to their bank, discover accounts, link cards, and receive events. Start here.
- Linking Cards to Bank Accounts covers automatic detection and manual card linking, historical backfill, and the multi-card rules and constraints.
- Bank Linking Webhooks & Events details every event the flow emits, the bank-only vs earlier-settlement behaviors, and where each payload lives.
- Error States & Remediation lists the bank connection states (
active,auth_required,disconnected), what to do in each, and how to reconnect. - Unified Card & Bank Feeds explains the card model shared across card-number enrollment, bulk feeds, and bank connections: cards created at completion, the two card lists on a bank account, and enrollment convergence.
- Embed it instead: the Unified Enrollment SDK covers the same connect step inside one embedded flow, alongside card enrollment.
Next steps
- Quick Start: Bank Linking: begin the integration.
- Testing Bank Linking: walk the whole flow in the sandbox environment.
- Webhook Event Types: the canonical event catalog.
Updated 18 days ago
