# Astrada Documentation > Documentation for Astrada ## Guides - [Home](https://docs.astrada.co/docs/home.md) - [Product Coverage](https://docs.astrada.co/docs/product-coverage.md) - [Geographic Coverage ](https://docs.astrada.co/docs/geographic-coverage.md) - [Getting Started](https://docs.astrada.co/docs/getting-started-1.md) - [Core Resources](https://docs.astrada.co/docs/core-resources.md) - [Subaccounts](https://docs.astrada.co/docs/sub-accounts.md) - [Account & Subaccount Configuration](https://docs.astrada.co/docs/account-and-subaccount-configuration.md) - [Cards, Subscriptions, and Verifications](https://docs.astrada.co/docs/cards.md) - [Transaction Message](https://docs.astrada.co/docs/transaction-message.md) - [Authorization Expiry](https://docs.astrada.co/docs/authorization-expiry.md) - [Transaction](https://docs.astrada.co/docs/transaction.md) - [Real-World Transaction Scenarios](https://docs.astrada.co/docs/real-world-transaction-scenario.md) - [Authentication](https://docs.astrada.co/docs/authentication.md) - [Enrolling Cards](https://docs.astrada.co/docs/card-enrollment.md) - [Quick Start: Card Enrollment](https://docs.astrada.co/docs/quick-start-card-enrollment.md) - [Cardholder Enrollment SDK](https://docs.astrada.co/docs/card-enrollment-sdk.md) - [Cardholder individual enrollment walkthrough](https://docs.astrada.co/docs/single-card-enrollment-walkthrough.md) - [Installation](https://docs.astrada.co/docs/web-sdk.md) - [Troubleshooting Guide](https://docs.astrada.co/docs/error-scenarios-and-troubleshooting-guide.md): In this guide, we cover some known errors when integrating with our SDK and the potential causes for each. - [Unhappy Paths](https://docs.astrada.co/docs/unhappy-paths.md): List of unhappy paths during the enrollment journey through our SDK. - [Error Page](https://docs.astrada.co/docs/error-page.md): List of errors returned by our SDK. - [Visual Customization](https://docs.astrada.co/docs/sdk-customization.md) - [Verification Risk Tiers](https://docs.astrada.co/docs/verification-risk-tiers.md) - [Card Enrollment Controls](https://docs.astrada.co/docs/card-enrollment-controls.md): Configure card enrollment controls to enforce card acceptance policies at the subaccount level, including card type, funding source, and country restrictions. - [Test Cards & Sandbox Testing](https://docs.astrada.co/docs/sandbox-testing.md) - [Error States & Remediation](https://docs.astrada.co/docs/error-states-and-remediation.md) - [Data Sharing Consent](https://docs.astrada.co/docs/data-sharing-consent.md) - [Single Card Enrollment: API Reference](https://docs.astrada.co/docs/single-card-enrollment.md) - [Network Bulk Enrollment](https://docs.astrada.co/docs/network-bulk-enrollment.md) - [Mastercard Bulk Enrollment Setup Guide for Corporates](https://docs.astrada.co/docs/setup-guide-for-corporates.md) - [Visa Bulk Enrollment Setup Guide for Corporates](https://docs.astrada.co/docs/visa-data-platform-setup-guide-for-corporates.md) - [Amex Bulk Enrollment Setup Guide for Corporates](https://docs.astrada.co/docs/amex-bulk-enrollment-setup-guide-for-corporate.md) - [HIGHEST Verification (Two-Hold)](https://docs.astrada.co/docs/highest-verification.md) - [Verification Attempt Lockout](https://docs.astrada.co/docs/verification-attempt-lockout.md) - [Bank Linking](https://docs.astrada.co/docs/bank-linking.md) - [Quick Start: Bank Linking](https://docs.astrada.co/docs/quick-start-bank-linking.md) - [Linking Cards to Bank Accounts](https://docs.astrada.co/docs/linking-cards-to-bank-accounts.md) - [Bank Linking Webhooks & Events](https://docs.astrada.co/docs/bank-linking-webhooks-and-events.md) - [Unified Card & Bank Feeds](https://docs.astrada.co/docs/unified-card-and-bank-feeds.md) - [Webhooks](https://docs.astrada.co/docs/webhooks-1.md) - [FAQ](https://docs.astrada.co/docs/faq.md): This document covers the most common questions we receive from Astrada integration partners and end users. If your issue is not addressed below, please start by visiting docs.astrada.co for full technical documentation, then post in your dedicated Slack channel if needed, or reach out to our support team at support@astrada.co if your issue remains unresolved. ## API Reference - [Introduction](https://docs.astrada.co/reference/api-basics.md) - [Authentication](https://docs.astrada.co/reference/authentication.md) - [API Responses](https://docs.astrada.co/reference/base-api-responses.md) - [Pagination](https://docs.astrada.co/reference/pagination.md) - [Update a network bulk feed](https://docs.astrada.co/reference/updatenetworkbulkfeed.md): Updates a network bulk feed. Supports setting `transactionStartDate` (currently for `SMARTDATA` feeds only — other feed types are rejected with a 422) and `expectedCardCount`. At least one field must be provided; `transactionStartDate` cannot be unset (`null` is rejected). Setting `transactionStartDate` widens the feed's ingestion window: transactions posted on or after the date are ingested for the feed's deliveries, replacing the default 15-day window. - [Retrieve subaccount](https://docs.astrada.co/reference/getsubaccount.md): Returns detailed information about a specific subaccount by its identifier, including configuration details and associated data. - [Update subaccount configurations](https://docs.astrada.co/reference/updatesubaccount.md): Update a subaccount name and configurations. All updated configurations are validated against the capabilities of the main account to ensure compliance. It is possible to add new networks and/or regions but it is not possible to remove any configurations that were previously set. Each network's `countries` can be set to either an array of specific ISO 3166 alpha-3 country codes, or the string `"*"` to inherit all countries from the parent account's capabilities for that network. When using `"*"`, the subaccount will automatically reflect the parent account's current country list. If the parent account's capabilities change, subaccounts configured with `"*"` will inherit the updated countries. The single and bulk enrollment configurations are not required when creating a subaccount, but if not provided they will default to the same country list as the main countries property for that network. The supported card types for single and bulk enrollment is CONSUMER, while the supported funding card types is DEBIT. If not provided, the block rules for both card types will default to the parent account's default block rule for that network and enrollment level. To set the default rule on the parent account, please reach out to your account manager or support. - [List subaccounts](https://docs.astrada.co/reference/getsubaccounts.md): Returns a list of all subaccounts associated with the account. This endpoint supports [cursor-based pagination](https://docs.astrada.co/reference/pagination). - [Create subaccount](https://docs.astrada.co/reference/createsubaccount.md): Creates a new subaccount, allowing you to set network and regional configurations. Each network's `countries` can be set to either an array of specific ISO 3166 alpha-3 country codes, or the string `"*"` to inherit all countries from the parent account's capabilities for that network. When using `"*"`, the subaccount will automatically reflect the parent account's current country list. If the parent account's capabilities change, subaccounts configured with `"*"` will inherit the updated countries. The single and bulk enrollment configurations are not required when creating a subaccount, but if not provided they will default to the same country list as the main `countries` property for that network. The supported card types for single and bulk enrollment is CONSUMER, while the supported funding card types is DEBIT. If not provided, the block rules for both card types will default to the parent account's default block rule for that network and enrollment level. To set the default rule on the parent account, please reach out to your account manager or support. - [List cards](https://docs.astrada.co/reference/listcards.md): Returns a list of all cards linked to the account. By default, `GET /cards` returns cards ordered by the latest updatedAt. You can combine the different filters as documented. This endpoint supports [offset-based pagination](https://docs.astrada.co/reference/pagination). - [Retrieve card](https://docs.astrada.co/reference/getcard.md): Returns detailed information about a specific card by its identifier. - [Retrieve cardholder information](https://docs.astrada.co/reference/getcardholder.md): Returns cardholder information, related to a specific cardId, when it's available. - [Update cardholder information](https://docs.astrada.co/reference/updatecardholder.md): Updates cardholder information for a specific card. Use this endpoint to simulate cardholder data that would typically be received through a Network Bulk Feed. This is useful for testing your integration against bulk-enrolled cards without waiting for actual network feed data. **Note:** This endpoint requires the `cardholder:write` scope and must be directly enabled by Astrada. - [Lookup card information by BIN](https://docs.astrada.co/reference/binlookup.md): Retrieve card information such as network, type, and issuing bank by providing the card's BIN (Bank Identification Number). - [List the available enrollment methods given a card BIN (BETA)](https://docs.astrada.co/reference/enrollmentmethods.md): 🚧 **Beta** — This endpoint is in beta. Its results may not be accurate, so don't rely on it as a fully-supported endpoint yet. List the available enrollment methods given a card BIN. - [List card subscriptions](https://docs.astrada.co/reference/listcardsubscriptions.md): Returns all card subscriptions under the account, ordered by `createdAt` descending (most recently created first). The `subaccountId`, `cardId`, `state` and `networkBulkFeedId` filters are independent and combine additively — supplying more than one narrows the result set to subscriptions matching **all** of them. Filtering by `state` accepts any of the states a card subscription reports in its response payload: - `pending` — enrolled from a network roster while the card is still inactive at the network. The subscription is fully enrolled and billable, but has not yet transacted. - `active` — also returns subscriptions still completing activation, which already report their own `state` as `active`. - `deactivated`, `expired`, `reqSCA`, `failed-to-create` — matched exactly. This endpoint supports [offset-based pagination](https://docs.astrada.co/reference/pagination). Pagination links preserve any filters applied to the original request. - [Retrieve card subscription](https://docs.astrada.co/reference/getcardsubscription.md): Returns detailed information about a specific card subscription by its identifier, including its data-sharing state. - [Update card subscription](https://docs.astrada.co/reference/updatecardsubscription.md): Updates an existing card subscription, allowing changes to its data-sharing state. Subscriptions that were enrolled in bulk, and where `enrollmentType = 'network-bulk'` cannot be updated. **Note:** setting a card subscription to a `deactivated` state is a final action that cannot be undone. - [Unlock a card's verification attempt lockout](https://docs.astrada.co/reference/cardverificationattemptlockoutunlock.md): Clear the cross-network verification **attempt lockout** for a card, identified by its `cardId`. This re-enables verification attempts for the card after it has been throttled by too many recent hard failures — the account-scoped, cross-network throttle that protects the non-HIGHEST tiers (Visa/Stripe, Mastercard/TNS). Idempotent: unlocking a card that has no active lock succeeds and clears nothing. The HIGHEST per-fingerprint lockout is **not** affected by this endpoint. - [Retrieve 3DS verification](https://docs.astrada.co/reference/getcardverification.md): Returns the current status and detailed information of a specific 3DS verification by its identifier. - [List a card's 3DS verifications](https://docs.astrada.co/reference/cardverificationlist.md): List the 3DS verifications for a card, most recent first. Use the optional `state` filter (e.g. `state=failed`) to retrieve only failed verifications — each failed verification carries a `failureReason` explaining why it failed. This includes cards declined synchronously at creation (the `POST` returned `400`): those attempts are persisted as failed verifications with `currentStepId: null`. - [Retrieve the raw transaction message](https://docs.astrada.co/reference/getrawtransactionmessagebyid.md): Return a raw transaction message by the transaction message unique identifier. - [Retrieve transaction message](https://docs.astrada.co/reference/gettransactionmessagebyid.md): Return a transaction message by its unique identifier, including details about the transaction's type and relevant transactional data. Transaction messages are also delivered embedded in the transaction payload: `transaction.created` and `transaction.updated` webhook payloads include a projection of every correlated message under `_embedded.messages[]`, each entry carrying its financial fields plus a per-message `superseded` marker. See [Event Types](https://docs.astrada.co/reference/event-types) for the full payload structure. - [List transactions](https://docs.astrada.co/reference/gettransactions.md): Returns a list of all transactions under the account. By default, `GET /transactions` returns transactions ordered by the latest `createdAt`. You can combine the different filters as documented. This endpoint supports [cursor-based pagination](https://docs.astrada.co/reference/pagination). - [Retrieve transaction](https://docs.astrada.co/reference/gettransactionbyid.md): Returns a transaction by its unique identifier, including details about the transaction's state and relevant transactional data. - [Event Types](https://docs.astrada.co/reference/event-types.md) - [Create webhook](https://docs.astrada.co/reference/createwebhook.md): Registers a new webhook for capturing event notifications. - [List webhooks](https://docs.astrada.co/reference/listwebhooks.md): Returns all webhooks configured under the account, optionally filtered by subaccount, including details on the events each webhook is subscribed to. This endpoint supports [cursor-based pagination](https://docs.astrada.co/reference/pagination). - [Retrieve webhook](https://docs.astrada.co/reference/getwebhook.md): Returns detailed information about a specific webhook by its identifier, including its configuration and event subscription details. - [Update webhook](https://docs.astrada.co/reference/updatewebhook.md): Updates the configuration of an existing webhook, allowing changes to the event subscriptions or notification URL. - [Delete webhook](https://docs.astrada.co/reference/deletewebhook.md): Remove a configured webhook by its identifier. Results in the resource being deleted and no longer available. - [Create network bulk feed](https://docs.astrada.co/reference/createnetworkbulkfeed.md): Registers a new feed for network bulk - [List network bulk feed](https://docs.astrada.co/reference/listnetworkbulkfeeds.md): Returns all network bulk feeds under the account. By default, `GET /network-bulk-feeds` returns network bulk feeds ordered by the latest `createdAt`. This endpoint supports [offset-based pagination](https://docs.astrada.co/reference/pagination). - [Retrieve a network bulk feed](https://docs.astrada.co/reference/getnetworkbulkfeed.md): Returns detailed information about a specific network bulk feed by its identifier. - [Card must be network-bulk enrolled by the Issuer](https://docs.astrada.co/reference/errors-card_must_be_network_bulk_enrolled.md) - [The account does not support the card funding type](https://docs.astrada.co/reference/errors-account_blocking_card_funding_type.md) - [The subaccount does not support the card funding type](https://docs.astrada.co/reference/errors-subaccount_blocking_card_funding_type.md) - [The account does not support the card type](https://docs.astrada.co/reference/errors-account_blocking_card_type.md) - [The subaccount does not support the card type](https://docs.astrada.co/reference/errors-subaccount_blocking_card_type.md) - [The subaccount does not support the card's country of issuance](https://docs.astrada.co/reference/errors-subaccount_blocking_card_country.md) - [List bank links](https://docs.astrada.co/reference/listbanklinks.md): Returns a list of bank links under the account. By default, `GET /bank-links` returns bank links ordered by the latest `createdAt`. This endpoint supports cursor-based pagination. - [Create bank link](https://docs.astrada.co/reference/createbanklink.md): Creates a new bank link to initiate a bank enrollment. The response includes a `hostedLink` URL where the user can connect their bank account via Plaid. The hosted link expires after 4 hours. If the link expires before the user completes enrollment, retrieve the bank link via `GET /bank-links/{bankLinkId}` to get a refreshed URL. Creating a bank link with an ID that already exists for the account will return a `409 Conflict` error, unless the existing link has expired. - [Retrieve bank link](https://docs.astrada.co/reference/getbanklink.md): Returns detailed information about a specific bank link by its identifier. If the bank link is in `pending` state and the hosted link URL has expired, this endpoint will automatically refresh the URL and return the updated link. - [Complete bank link](https://docs.astrada.co/reference/patchbanklink.md): Completes a bank link enrollment, transitioning it from `pending` to `completed` state. The request body must contain `state: "completed"`. When a bank link is completed, the system exchanges the enrollment credentials with the provider, creates a bank subscription (connection), and discovers the associated bank accounts. This endpoint is idempotent: completing an already-completed bank link succeeds without change. The PATCH response echoes the bank link record only. The discovered `bankAccounts` (with each account's `cardIds` and any minted `cards`) are returned by `GET /bank-links/{bankLinkId}`, not by this PATCH. - [Delete bank link](https://docs.astrada.co/reference/deletebanklink.md): Deletes a bank link and all associated resources, including the bank subscription, bank accounts, and bank transactions. Cards are not among them: cards created at completion and their `bank-feed` subscriptions remain on the cards platform — deactivate them via the cards API if they should stop. **Note:** This action is irreversible and will revoke access to the connected financial institution. - [Update bank link webhook](https://docs.astrada.co/reference/updatebanklinkwebhook.md): Updates the webhook URL for a bank link. Webhook events related to this bank link and its associated resources will be delivered to the specified URL. After updating, the webhook status will be set to `pending` until the provider acknowledges the new URL, at which point it transitions to `confirmed`. - [Sync bank link](https://docs.astrada.co/reference/syncbanklink.md): Triggers a manual sync of transactions for the bank link's associated subscription. This fetches the latest transactions from the financial institution. Transaction syncs also occur automatically via provider webhooks and scheduled jobs. Use this endpoint to force an immediate sync when needed. - [List bank accounts](https://docs.astrada.co/reference/listbankaccounts.md): Returns a list of bank accounts under the account. Bank accounts are created automatically when a bank link enrollment is completed. By default, `GET /bank-accounts` returns bank accounts ordered by the latest `createdAt`. This endpoint supports cursor-based pagination. - [Retrieve bank account](https://docs.astrada.co/reference/getbankaccount.md): Returns detailed information about a specific bank account by its identifier. - [Update bank account](https://docs.astrada.co/reference/updatebankaccount.md): 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. - [Delete bank account](https://docs.astrada.co/reference/deletebankaccount.md): Deletes a bank account and all associated bank transactions, transaction matches, and card links. Cards themselves are not deleted: a card created from this account and its `bank-feed` subscription remain on the cards platform — deactivate them via the cards API if they should stop. **Note:** This action is irreversible. - [Refresh bank account](https://docs.astrada.co/reference/refreshbankaccount.md): Triggers a refresh of bank account data from the financial institution. If the account requires re-authentication, the response will include a new hosted link URL for the user to complete re-authentication. - [Link enrolled cards to bank accounts (admin backfill)](https://docs.astrada.co/reference/linkenrolledcards.md): Admin backfill/retry for immediate mask-linking: matches the subaccount's ENROLLED cards against its credit bank accounts by mask (an enrolled card's last 4 digits) and links each exact match. The same exactly-one-or-skip rules as completion-time linking apply: a mask matching multiple cards, or multiple accounts claiming a mask, links nothing (the scheduled mask sweep retries this every few hours). Idempotent: already-linked pairs are skipped. Intended for onboarding backfills (cards enrolled before the bank link) and recovery after a transient directory failure at completion. Emits no webhook — linked cardIds appear on subsequent bank-account reads. - [Backfill bank account history](https://docs.astrada.co/reference/backfillbankaccount.md): Imports historical bank transactions for this account from the provider over a date range, then runs matching against the account's full current card set. Unlike the `backfill` object on `PATCH /bank-accounts/{bankAccountId}` — which imports history for cards being added in that same request — this endpoint recovers a date window without touching card links. Requires a backing connection. Starting a backfill while another sync already holds the account's connection returns `409 Conflict`; retry shortly. For Mastercard-provider accounts, `loadHistoric: true` additionally asks the provider to generate deep history (up to 2 years) for this account before the import runs. This is a billable provider operation and generation is asynchronous on the provider side: if the immediate import returns few rows, re-run the same window without the flag once generation completes (typically within minutes). Providers without a deep-history operation reject the flag with `400 Bad Request`. - [List bank subscriptions](https://docs.astrada.co/reference/listbanksubscriptions.md): Returns a list of bank subscriptions (active connections to financial institutions) under the account. Bank subscriptions are created automatically when a bank link enrollment is completed. Each subscription represents a connection to a single financial institution. By default, `GET /bank-subscriptions` returns subscriptions ordered by the latest `createdAt`. This endpoint supports cursor-based pagination. - [Retrieve bank subscription](https://docs.astrada.co/reference/getbanksubscription.md): Returns detailed information about a specific bank subscription by its identifier, including the connection state and webhook configuration. - [Retrieve bank subscription by connection](https://docs.astrada.co/reference/getbanksubscriptionbyconnection.md): Returns a bank subscription by its provider connection identifier (e.g. Plaid item ID). This is useful when you have the provider's connection ID and need to look up the corresponding subscription. - [Update bank subscription webhook](https://docs.astrada.co/reference/updatebanksubscriptionwebhook.md): Updates the webhook URL for a bank subscription. Webhook events for transactions and matches associated with this subscription will be delivered to the specified URL. After updating, the webhook status will be set to `pending` until the provider acknowledges the new URL, at which point it transitions to `confirmed`. - [List bank transactions](https://docs.astrada.co/reference/listbanktransactions.md): Returns a list of bank transactions for a subaccount. Bank transactions are synced from connected financial institutions. A movement may briefly appear as its pending posting until the posted transaction replaces it (the pending row is then removed from the feed). By default, `GET /bank-transactions/{subaccountId}` returns transactions ordered by the latest `date`. This endpoint supports cursor-based pagination and various filters including date range, amount range, and match status. - [Retrieve bank transaction](https://docs.astrada.co/reference/getbanktransaction.md): Returns detailed information about a specific bank transaction by its identifier, including match status and transaction metadata. - [Trigger bank transaction webhooks](https://docs.astrada.co/reference/triggerbanktransactionwebhooks.md): Manually triggers webhook delivery for specified bank transactions. This can be used to re-emit webhooks that may have been missed or to force re-matching of transactions. You can specify which webhook event types to emit: `banktransaction.created` for transaction data or `transaction.match.created` for match results. - [List transaction matches](https://docs.astrada.co/reference/listtransactionmatches.md): Returns a list of transaction matches for a subaccount. Each match represents a link between a bank transaction and a card transaction, along with a confidence score and the reasoning behind the match. By default, matches are filtered to `MEDIUM` confidence and above. Use the `minConfidence` parameter to adjust the threshold. By default, `GET /transaction-matches/{subaccountId}` returns matches ordered by the latest `createdAt`. This endpoint supports cursor-based pagination. - [Retrieve transaction match](https://docs.astrada.co/reference/gettransactionmatch.md): Returns detailed information about a specific transaction match, including the confidence level, numeric score, and a breakdown of the scoring factors. ## Changelog - [Week Ending 2026-07-31](https://docs.astrada.co/changelog/week-ending-2026-07-31.md) - [Week Ending 2026-07-24](https://docs.astrada.co/changelog/week-ending-2026-07-24.md) - [Week Ending 2026-07-17](https://docs.astrada.co/changelog/week-ending-2026-07-17.md) - [Week Ending 2026-07-10](https://docs.astrada.co/changelog/week-ending-2026-07-10.md) - [Week Ending 2026-07-03](https://docs.astrada.co/changelog/week-ending-2026-07-03.md) - [New header in Webhook delivery](https://docs.astrada.co/changelog/new-header-in-webhook-invocation.md) - [New field enrollmentGuidance returned by the SDK](https://docs.astrada.co/changelog/new-field-enrollmentguidance-returned-by-the-sdk.md) - [New link on Card Subscription resource](https://docs.astrada.co/changelog/new-link-on-card-subscription-resource.md) - [New field on Cardholder resource](https://docs.astrada.co/changelog/corporateid-new-field-on-cardholder-resource.md) - [Network bulk feed resource](https://docs.astrada.co/changelog/network-bulk-feed-resource.md)