Link a cardholder's card account and receive the activity the issuer maintains there — payments, credits and refunds, foreign transaction and FX fees, interest, annual and late charges, and post-hoc adjustments. Delivered on the same API and webhooks as your network feed. A bank account can be linked the same way.
Account activity arrives on banktransaction.created, in the same envelope as your network transactions. Below, an annual membership fee — posted by the issuer against the card, with no purchase behind it.
{
"id": "7b3e8f2a-1c4d-4e5f-9a6b-8c7d0e1f2a3b",
"bankAccountId": "a1b2c3d4-5e6f-7a8b-9c0d-1e2f3a4b5c6d",
"cardId": "884820d4-1b11-4dfd-ab83-988f754712da",
"date": "2026-02-01",
"amount": -395.00,
"currency": "USD",
"description": "ANNUAL MEMBERSHIP FEE",
"merchantName": null,
"category": ["Fees & Adjustments"],
"transactionType": "debit",
"status": "settled",
"settlement": {
"state": "settled",
"emittedAt": "2026-01-15T04:12:00Z"
}
}
Account activity falls into three groups, each arriving as a finalized record on the same event stream as your network transactions.
Payments against the balance, merchant returns posting as credits, and the annual statement credits a card carries — travel, dining, and card-linked merchant offers, each landing as its own adjustment.
Annual membership and late fees, interest on purchases and on instalment balances, foreign transaction and cash-advance charges — applied by the issuer against the account rather than at a terminal.
A late fee charged and then reversed, a credit adjustment against it, a dispute resolved. The issuer writes both sides, and the feed carries settlement state so a correction lands as a correction rather than a duplicate row.
Delivered on the same API and the same webhook infrastructure as your network feed — one integration, one set of credentials, one event stream.
Every finalized line on the account with date, amount, currency, description, merchant name, category and direction — streamed as banktransaction.created, with a pull endpoint as a safety net if your endpoint was down.
Purchases post to the account as well, so a purchase already in your network feed arrives a second time with the issuer's own date, description and final amount.
A hosted link your users complete themselves to connect the card account. No enrollment UI to build, no OAuth redirects to manage, and an expired link refreshes itself when you fetch it.
Bank connections expire and break. Astrada surfaces the state, fires an event when re-authentication is needed, and returns a re-auth link on request — so a dead connection is something you handle, not something you discover from a gap in the data.
Bank records get restated after they first appear. Transactions carry a status through posted, matched, settled and superseded, with settlement timestamps — so a corrected record supersedes cleanly instead of silently duplicating.
The same enrollment connects a checking or depository account when a platform needs one — same endpoints, same webhooks, same contract.
Sync is forward-only by default. When you link an account you can request a backfill window, so a ledger does not start mid-cycle with a hole in it.
Same credentials, same webhooks, same contract as your network feed. Pair it with Auto-Reconciliation to match account records to network transactions.