Updates a bank account. Card links are detected automatically: a scheduled sweep re-checks each cardless credit account every few hours and links an enrolled card whose last 4 digits match the account's mask, without any API call. This endpoint is the manual override: use it to pre-link a card immediately, correct an assignment, or import history.
Each card in cardIds must belong to the same subaccount as the bank account. A card can only be linked to one bank account at a time — attempting to link a card that is already associated with another bank account will return a 409 Conflict error.
A card that cannot take a bank-account link is also rejected with 409 Conflict (CARD_NOT_LINKABLE) before any change is applied: one whose only enrollment is a bulk feed, or whose subscriptions are all in a dead, non-attachable state. If the cards directory cannot be consulted, this screen is skipped (fail-open) rather than blocking the update.
cardIds is a full replacement. Send cardIds: [] to clear explicit links (the scheduled mask sweep can re-link a matching card on its next run).
Optionally include a backfill object with startDate and/or endDate to trigger a backfill of historical bank transactions for the specified date range. An automatically detected link re-matches the account's already-synced unmatched transactions around the new card's activity on its own; IMPORTING bank history from before the link (pulling older transactions from the provider) still happens only through this endpoint's backfill.
The current card set is always readable at GET /bank-accounts/{bankAccountId} (cardIds), and GET /bank-accounts?cardId= finds the account a card is linked to.
| Time | Status | User Agent | |
|---|---|---|---|
Retrieving recent requests… | |||