Bridge Cards API
The Cards API from Bridge — 18 operation(s) for cards.
The Cards API from Bridge — 18 operation(s) for cards.
Every API here is available over the APIs.io API and to AI agents over MCP.
One button, every client — Claude, Cursor, VS Code and the rest.
https://apis.io/mcp
find_apisBrowse and filter every API in the catalog.get_api_artifactsOne API's artifacts, grouped by type.get_openapiThe primary OpenAPI for this API.find_similar_apisAPIs that look like this one.apis_io_searchSTART HERE — APIs, providers and tags for one query, each with its total.resolveTurn a domain, URL or GitHub org into the provider it belongs to.find_cohortsEvery scored population of providers in the catalog.curl "https://apis.io/api/v1/apis/bridge-cards-api"
curl "https://apis.io/api/v1/apis?limit=25"
Discovery needs no key. Ratings and market analysis are Pro.
Free tier, no form to fill in. Signing in shares your email address with us — we store it to create your key and to recognise you if you sign in with another provider. See our Privacy Policy and Terms.
A second provider on the same verified email joins the account you already have.
openapi: 3.2.0
info:
title: Bridge API Keys Cards API
description: APIs to move into, out of, and between any form of a dollar
version: '1'
servers:
- url: https://api.bridge.xyz/v0
description: The base path for all resources
security:
- ApiKey: []
tags:
- name: Cards
paths:
/customers/{customerID}/card_accounts/{cardAccountID}/pin:
post:
summary: Create Card PIN Update URL
description: Generates a URL that can be used to render a secure frame to update the PIN for a card account. The URL is single-use and time-limited.
tags:
- Cards
parameters:
- $ref: '#/components/parameters/CustomerIDParameter'
- $ref: '#/components/parameters/IdempotencyKeyParameter'
- name: cardAccountID
in: path
required: true
description: The ID of the card account
schema:
type: string
format: uuid
responses:
'200':
description: URL to update the card PIN
content:
application/json:
schema:
$ref: '#/components/schemas/CardPinUpdateResponse'
'401':
$ref: '#/components/responses/AuthenticationError'
'400':
$ref: '#/components/responses/BadRequestError'
'500':
$ref: '#/components/responses/UnexpectedError'
/customers/{customerID}/card_accounts/{cardAccountID}/ephemeral_keys:
post:
summary: Generate an Ephemeral Key to Reveal Card Details
description: Generates a one-time ephemeral key that can be used to reveal card details. Please see the integration guide on [safely revealing card details](https://apidocs.bridge.xyz/docs/safely-reveal-card-details-to-customers) for more information.
tags:
- Cards
parameters:
- $ref: '#/components/parameters/CustomerIDParameter'
- $ref: '#/components/parameters/IdempotencyKeyParameter'
- name: cardAccountID
in: path
required: true
description: The ID of the card account
schema:
type: string
format: uuid
requestBody:
description: The client-side nonce that will be associated with the ephemeral key
content:
application/json:
schema:
$ref: '#/components/schemas/PostCardAccountEphemeralKeyInput'
responses:
'200':
description: Ephemeral key to reveal card details
content:
application/json:
schema:
$ref: '#/components/schemas/CardAccountEphemeralKeyResponse'
'401':
$ref: '#/components/responses/AuthenticationError'
'400':
$ref: '#/components/responses/BadRequestError'
'500':
$ref: '#/components/responses/UnexpectedError'
/developer/cards/summary:
get:
summary: Get a summary of your card program
description: Get a summary of your card program, optionally for a specific period.
tags:
- Cards
parameters:
- $ref: '#/components/parameters/CardProgramSummaryPeriodParameter'
- $ref: '#/components/parameters/CardProgramSummaryPeriodKeyParameter'
responses:
'200':
description: The summary of a card program
content:
application/json:
schema:
$ref: '#/components/schemas/CardProgramSummary'
'401':
$ref: '#/components/responses/AuthenticationError'
'400':
$ref: '#/components/responses/BadRequestError'
'500':
$ref: '#/components/responses/UnexpectedError'
/developer/cards/designs:
get:
summary: Get a listing of your card program's card designs
description: Get a listing of the designs that you can use to issue a card with.
tags:
- Cards
responses:
'200':
description: A listing of the designs that you can use to issue a card with.
content:
application/json:
schema:
$ref: '#/components/schemas/CardDesigns'
'401':
$ref: '#/components/responses/AuthenticationError'
'400':
$ref: '#/components/responses/BadRequestError'
'500':
$ref: '#/components/responses/UnexpectedError'
/customers/{customerID}/card_accounts/{cardAccountID}:
parameters:
- $ref: '#/components/parameters/CustomerIDParameter'
- $ref: '#/components/parameters/CardAccountIDParameter'
get:
summary: Retrieve a card account
tags:
- Cards
description: Retrieve the card account with the specified ID
responses:
'200':
description: The retrieved card account
content:
application/json:
schema:
$ref: '#/components/schemas/CardAccount'
'401':
$ref: '#/components/responses/AuthenticationError'
'500':
$ref: '#/components/responses/UnexpectedError'
put:
summary: Update a card account
description: Update a card account. Supports changing the settlement currency or closing a card account by setting the status to "inactive". Closing permanently cancels all associated cards and is irreversible.
tags:
- Cards
requestBody:
description: The card account update
required: true
content:
application/json:
schema:
type: object
properties:
currency:
type: string
description: The new settlement currency for the card account.
status:
type: string
enum:
- inactive
description: The desired status for the card account. Currently only "inactive" is supported.
responses:
'200':
description: The updated card account
content:
application/json:
schema:
$ref: '#/components/schemas/CardAccount'
'401':
$ref: '#/components/responses/AuthenticationError'
'400':
$ref: '#/components/responses/BadRequestError'
'500':
$ref: '#/components/responses/UnexpectedError'
/customers/{customerID}/card_accounts:
get:
summary: Get all card accounts
tags:
- Cards
description: Retrieve all card accounts for a customer. Currently, only one account is supported. An empty array will be returned if no card has been provisioned
parameters:
- $ref: '#/components/parameters/CustomerIDParameter'
responses:
'200':
description: List of all card accounts owned by the customer
content:
application/json:
schema:
title: Array of all card accounts
type: object
required:
- count
- data
properties:
count:
type: integer
description: The number of card accounts returned
data:
type: array
minItems: 0
items:
$ref: '#/components/schemas/CardAccount'
'401':
$ref: '#/components/responses/AuthenticationError'
'500':
$ref: '#/components/responses/UnexpectedError'
post:
summary: Provision a card account
description: 'Provision a card account. NOTE: the legacy Bridge Cards API is deprecated, and stablecoin card issuing capabilities are now natively integrated into Stripe Issuing. Please see [this guide](https://apidocs.bridge.xyz/platform/cards/overview/stripe-issuing) for more details on how to enable your account for Stripe Issuing.'
deprecated: true
tags:
- Cards
parameters:
- $ref: '#/components/parameters/IdempotencyKeyParameter'
- $ref: '#/components/parameters/CustomerIDParameter'
requestBody:
description: The card account to be provisioned
required: true
content:
application/json:
schema:
$ref: '#/components/schemas/PostCardAccountsInput'
responses:
'201':
description: The successfully created card account
content:
application/json:
schema:
$ref: '#/components/schemas/CardAccount'
'401':
$ref: '#/components/responses/AuthenticationError'
'400':
$ref: '#/components/responses/BadRequestError'
'500':
$ref: '#/components/responses/UnexpectedError'
/customers/{customerID}/card_accounts/{cardAccountID}/freeze:
post:
summary: Place a freeze on the card account
description: Place a freeze on the card account
tags:
- Cards
parameters:
- $ref: '#/components/parameters/IdempotencyKeyParameter'
- $ref: '#/components/parameters/CustomerIDParameter'
- $ref: '#/components/parameters/CardAccountIDParameter'
requestBody:
description: The freeze to be placed on the card account
content:
application/json:
schema:
$ref: '#/components/schemas/PostCardFreezeInput'
responses:
'200':
description: The successfully placed freeze
content:
application/json:
schema:
allOf:
- $ref: '#/components/schemas/CardFreeze'
properties:
status:
type: string
description: The processing status of the freeze request
readOnly: true
enum:
- freeze_created
- freeze_replaced
'401':
$ref: '#/components/responses/AuthenticationError'
'400':
$ref: '#/components/responses/BadRequestError'
'500':
$ref: '#/components/responses/UnexpectedError'
/customers/{customerID}/card_accounts/{cardAccountID}/unfreeze:
post:
summary: Unfreeze the card account
description: Remove the freeze on the card account placed by the specified initiator
tags:
- Cards
parameters:
- $ref: '#/components/parameters/IdempotencyKeyParameter'
- $ref: '#/components/parameters/CustomerIDParameter'
- $ref: '#/components/parameters/CardAccountIDParameter'
requestBody:
description: A request to unfreeze the card account
content:
application/json:
schema:
$ref: '#/components/schemas/PostCardUnfreezeInput'
responses:
'200':
description: The successfully removed freeze
content:
application/json:
schema:
$ref: '#/components/schemas/CardUnfreezeResponse'
'401':
$ref: '#/components/responses/AuthenticationError'
'400':
$ref: '#/components/responses/BadRequestError'
'500':
$ref: '#/components/responses/UnexpectedError'
/customers/{customerID}/card_accounts/{cardAccountID}/create_mobile_wallet_provisioning_request:
post:
summary: Create a mobile wallet push provisioning request
description: Create a request to push-provision a virtual card to a mobile wallet. This endpoint is part of a multiple-step integration that must be completed with each mobile wallet partner
tags:
- Cards
parameters:
- $ref: '#/components/parameters/IdempotencyKeyParameter'
- $ref: '#/components/parameters/CustomerIDParameter'
- $ref: '#/components/parameters/CardAccountIDParameter'
requestBody:
description: A mobile wallet push provisioning request
content:
application/json:
schema:
$ref: '#/components/schemas/PostCardPushProvisioningInput'
responses:
'200':
description: A successful push provisioning response
content:
application/json:
schema:
$ref: '#/components/schemas/CardPushProvisioningResponse'
'401':
$ref: '#/components/responses/AuthenticationError'
'400':
$ref: '#/components/responses/BadRequestError'
'500':
$ref: '#/components/responses/UnexpectedError'
/customers/{customerID}/card_accounts/{cardAccountID}/authorizations:
get:
summary: Retrieve pending card authorizations
description: 'Retrieve pending card authorizations.
Note: this endpoint is not paginated'
tags:
- Cards
parameters:
- $ref: '#/components/parameters/CustomerIDParameter'
- $ref: '#/components/parameters/CardAccountIDParameter'
- $ref: '#/components/parameters/CardAuthorizationLimitParameter'
- $ref: '#/components/parameters/StartingTimeParameter'
- $ref: '#/components/parameters/EndingTimeParameter'
- $ref: '#/components/parameters/CardAuthorizationStatusParameter'
responses:
'200':
description: Pending card authorizations
content:
application/json:
schema:
title: List of pending card authorizations
type: object
required:
- count
- data
properties:
count:
type: integer
description: The number of card authorizations returned
data:
type: array
minItems: 0
items:
$ref: '#/components/schemas/CardAuthorization'
'401':
$ref: '#/components/responses/AuthenticationError'
'500':
$ref: '#/components/responses/UnexpectedError'
/customers/{customerID}/card_accounts/{cardAccountID}/transactions:
get:
summary: Retrieve card transactions
description: Retrieve completed card transactions and card-related crypto transaction activities
tags:
- Cards
parameters:
- $ref: '#/components/parameters/CustomerIDParameter'
- $ref: '#/components/parameters/CardAccountIDParameter'
- $ref: '#/components/parameters/CardTransactionLimitParameter'
- $ref: '#/components/parameters/StartingTimeParameter'
- $ref: '#/components/parameters/EndingTimeParameter'
- $ref: '#/components/parameters/PageSizeParameter'
- $ref: '#/components/parameters/PageNumberParameter'
- $ref: '#/components/parameters/CardTransactionStatusParameter'
- $ref: '#/components/parameters/CardTransactionPaginationTokenParameter'
- $ref: '#/components/parameters/CardTransactionCategoryFamilyParameter'
responses:
'200':
description: Card transactions
content:
application/json:
schema:
title: List of card transactions
type: object
required:
- page
- count
- total_pages
- total_count
- data
properties:
page:
type: integer
description: The current page number, starting at 1. Note that this will be returned only for navigating posted transactions.
pagination_token:
type: string
description: The pagination token to be used to retrieve the next page of transactions. If not provided, use the `page` parameter to navigate by page number.
count:
type: integer
description: The number of transactions returned
total_pages:
type: integer
description: The total number of pages
total_count:
type: integer
description: The total number of transactions
data:
type: array
minItems: 0
items:
$ref: '#/components/schemas/CardTransaction'
'401':
$ref: '#/components/responses/AuthenticationError'
'500':
$ref: '#/components/responses/UnexpectedError'
/customers/{customerID}/card_accounts/{cardAccountID}/transactions/{transactionID}:
get:
summary: Retrieve a card transaction
description: Retrieve a card transaction with the specified ID
tags:
- Cards
parameters:
- $ref: '#/components/parameters/CustomerIDParameter'
- $ref: '#/components/parameters/CardAccountIDParameter'
- $ref: '#/components/parameters/CardTransactionIDParameter'
responses:
'200':
description: Card transactions
content:
application/json:
schema:
$ref: '#/components/schemas/CardTransaction'
'401':
$ref: '#/components/responses/AuthenticationError'
'500':
$ref: '#/components/responses/UnexpectedError'
/customers/{customerID}/card_accounts/{cardAccountID}/auth_controls:
get:
summary: Retrieve authorization controls
description: Retrieve the applicable spend limits for the given card account
tags:
- Cards
parameters:
- $ref: '#/components/parameters/CustomerIDParameter'
- $ref: '#/components/parameters/CardAccountIDParameter'
responses:
'200':
description: The authorization controls
content:
application/json:
schema:
title: Authorization controls
type: object
required:
- customer_id
- card_account_id
- spending_limits
properties:
customer_id:
type: string
description: The ID of the customer
card_account_id:
type: string
description: The ID of the card account
spending_limits:
type: array
description: The various spending limits for the card account for the current time period
items:
$ref: '#/components/schemas/CardSpendingLimit'
'401':
$ref: '#/components/responses/AuthenticationError'
'500':
$ref: '#/components/responses/UnexpectedError'
/customers/{customerID}/card_accounts/{cardAccountID}/deposit_addresses:
post:
summary: Provision an additional top-up deposit address for the card account
description: Provision an additional deposit address for the card account, to allow topping up the card from multiple chains. This is only applicable to Bridge-custodied top-up card accounts. These additional deposit addresses will also be shown in the `additional_funding_instructions` field when fetching the card account details afterwards.
tags:
- Cards
parameters:
- $ref: '#/components/parameters/IdempotencyKeyParameter'
- $ref: '#/components/parameters/CustomerIDParameter'
- $ref: '#/components/parameters/CardAccountIDParameter'
requestBody:
description: The chain to provision the new deposit address on.
required: true
content:
application/json:
schema:
$ref: '#/components/schemas/PostCardAccountDepositAddressInput'
responses:
'200':
description: Details of the successfully created deposit address
content:
application/json:
schema:
$ref: '#/components/schemas/CardAccountFundingInstructions'
'401':
$ref: '#/components/responses/AuthenticationError'
'400':
$ref: '#/components/responses/BadRequestError'
'500':
$ref: '#/components/responses/UnexpectedError'
/customers/{customerID}/card_accounts/{cardAccountID}/withdrawals:
post:
summary: Create a funds withdrawal request
description: Request a funds withdrawal from the card account, applicable to top-up accounts only. For Bridge wallets, create a [transfer](/api-reference/transfers/create-a-transfer) from the Bridge wallet.
tags:
- Cards
parameters:
- $ref: '#/components/parameters/IdempotencyKeyParameter'
- $ref: '#/components/parameters/CustomerIDParameter'
- $ref: '#/components/parameters/CardAccountIDParameter'
requestBody:
description: The withdrawal request
required: true
content:
application/json:
schema:
$ref: '#/components/schemas/CardWithdrawal'
responses:
'201':
description: The successfully created card funds withdrawal
content:
application/json:
schema:
$ref: '#/components/schemas/CardWithdrawal'
'401':
$ref: '#/components/responses/AuthenticationError'
'400':
$ref: '#/components/responses/BadRequestError'
'500':
$ref: '#/components/responses/UnexpectedError'
get:
summary: Retrieve the withdrawal history of funds
description: Retrieve the withdrawal history of funds, applicable to top-up accounts only
tags:
- Cards
parameters:
- $ref: '#/components/parameters/CustomerIDParameter'
- $ref: '#/components/parameters/CardAccountIDParameter'
- $ref: '#/components/parameters/LimitParameter'
- $ref: '#/components/parameters/WithdrawalStartingAfterParameter'
- $ref: '#/components/parameters/WithdrawalEndingBeforeParameter'
responses:
'200':
description: The withdrawal history
content:
application/json:
schema:
title: List of withdrawals
type: object
required:
- count
- data
properties:
count:
type: integer
description: The number of withdrawals returned
data:
type: array
minItems: 0
items:
$ref: '#/components/schemas/CardWithdrawal'
'401':
$ref: '#/components/responses/AuthenticationError'
'500':
$ref: '#/components/responses/UnexpectedError'
/customers/{customerID}/card_accounts/{cardAccountID}/withdrawals/{cardWithdrawalID}:
get:
summary: Retrieve a card withdrawal
description: Retrieve a card withdrawal with the specified ID, applicable to top-up accounts only
tags:
- Cards
parameters:
- $ref: '#/components/parameters/CustomerIDParameter'
- $ref: '#/components/parameters/CardAccountIDParameter'
- $ref: '#/components/parameters/CardWithdrawalIDParameter'
responses:
'200':
description: The retrieved withdrawal
content:
application/json:
schema:
$ref: '#/components/schemas/CardWithdrawal'
'401':
$ref: '#/components/responses/AuthenticationError'
'500':
$ref: '#/components/responses/UnexpectedError'
/customers/{customerID}/card_accounts/{cardAccountID}/statements/{period}.pdf:
post:
summary: Generate a card account statement
description: Generate a card account statement for the specified period
tags:
- Cards
parameters:
- $ref: '#/components/parameters/CustomerIDParameter'
- $ref: '#/components/parameters/CardAccountIDParameter'
- $ref: '#/components/parameters/CardStatementPeriodParameter'
responses:
'200':
description: The HTTP response that includes a PDF file as an attachment, with the `Content-Type` set to `application/pdf` and the `Content-Disposition` header configured to indicate it is a statement PDF attachment
content:
application/pdf:
schema:
type: string
format: binary
headers:
Content-Disposition:
description: Indicates the content is an attachment with a statement PDF file
schema:
type: string
example: inline; filename="statement_202412.pdf"; filename*=UTF-8''statement_202412.pdf
'401':
$ref: '#/components/responses/AuthenticationError'
'400':
$ref: '#/components/responses/BadRequestError'
'500':
$ref: '#/components/responses/UnexpectedError'
/cardholders/{cardholderID}/cards/{cardID}/statements/{period}.pdf:
post:
summary: Generate a card statement using Stripe IDs
description: Generate a card account statement for the specified period, using Stripe cardholder and card IDs instead of Bridge internal IDs
tags:
- Cards
parameters:
- name: cardholderID
in: path
required: true
schema:
type: string
description: The Stripe cardholder ID (e.g. `ich_...`)
- name: cardID
in: path
required: true
schema:
type: string
description: The Stripe card ID (e.g. `ic_...`)
- $ref: '#/components/parameters/CardStatementPeriodParameter'
responses:
'200':
description: The HTTP response that includes a PDF file as an attachment, with the `Content-Type` set to `application/pdf` and the `Content-Disposition` header configured to indicate it is a statement PDF attachment
content:
application/pdf:
schema:
type: string
format: binary
headers:
Content-Disposition:
description: Indicates the content is an attachment with a statement PDF file
schema:
type: string
example: inline; filename="statement_202412.pdf"; filename*=UTF-8''statement_202412.pdf
'401':
$ref: '#/components/responses/AuthenticationError'
'400':
$ref: '#/components/responses/BadRequestError'
'500':
$ref: '#/components/responses/UnexpectedError'
components:
schemas:
CardPinUpdateResponse:
description: Response containing a secure URL to update a card's PIN
type: object
required:
- url
properties:
url:
type: string
format: uri
description: Single-use, time-limited URL that can be used to securely update the card PIN in an iframe
example: https://secure.example.com/update-pin?token=xyz789
PostCardAccountsInput:
required:
- currency
- chain
properties:
client_reference_id:
type: string
description: An optional client-provided reference ID that uniquely identifies the card account in the client's system
currency:
$ref: '#/components/schemas/CardsCryptoCurrency'
description: Crypto currency used by the card account being created
chain:
$ref: '#/components/schemas/OfframpChainForCards'
description: Chain used by the card account being created
crypto_account:
$ref: '#/components/schemas/CardCryptoAccount'
card_design_shortname:
type: string
description: The shortname of the card design to use for the card account. If not specified, the default card design will be used.
PostCardAccountDepositAddressInput:
description: The details of the new deposit address to be provisioned.
required:
- chain
properties:
chain:
type: string
description: The chain to provision the new deposit address on.
$ref: '#/components/schemas/OfframpChainForCards'
CardAccount:
type: object
required:
- id
- customer_id
- status
- balances
- freezes
properties:
id:
$ref: '#/components/schemas/Id'
description: ID of the card account
client_reference_id:
type: string
description: The client-provided reference ID
customer_id:
$ref: '#/components/schemas/Id'
description: ID of the customer
cardholder_name:
type: object
$ref: '#/components/schemas/CardholderName'
card_image_url:
type: string
deprecated: true
description: An expiring URL used to render the card image, with a validity period of 5 minutes. _Note:_ This field will be deprecated in favor of the more secure and scalable card details API. Please see the integration guide on [safely revealing card details](https://apidocs.bridge.xyz/docs/safely-reveal-card-details-to-customers) for more information.
status:
type: string
description: Status of the card account
enum:
- active
- pending
- inactive
- frozen
status_reason:
type: string
description: An optional detailed explanation for the card account status
card_details:
type: object
$ref: '#/components/schemas/CardDetails'
balances:
type: object
$ref: '#/components/schemas/CardBalances'
freezes:
type: array
minItems: 0
items:
allOf:
- $ref: '#/components/schemas/CardFreeze'
properties:
initiator:
description: The party that initiated the freeze. A freeze can be initiated by the customer, the developer, or Bridge. Only one freeze per initiator can be active at a time. If a new freeze is initiated by the same party, it overwrites any existing freeze
enum:
- bridge
stripe_card_id:
type:
- string
- 'null'
description: The [Stripe Issuing card ID](https://docs.stripe.com/api/issuing/cards/object?issuing_card_object-id), if the card account is backed by Stripe Issuing
crypto_account:
type: object
$ref: '#/components/schemas/CardCryptoAccount'
funding_instructions:
$ref: '#/components/schemas/CardAccountFundingInstructions'
additional_funding_instructions:
type: array
minItems: 0
items:
$ref: '#/components/schemas/CardAccountFundingInstructions'
CardsCryptoCurrency:
type: string
enum:
- usdc
CardBalances:
description: Balances of the card account
type: object
required:
- available
- hold
properties:
available:
description: The available balance of the card account
type: object
$ref: '#/components/schemas/CardBalance'
hold:
description: The balance tha is placed on hold for pending authorizations
type: object
$ref: '#/components/schemas/CardBalance'
GasFee:
description: The gas fee for a crypto transaction
required:
- amount
- currency
properties:
amount:
type: string
description: The amount of the gas fee represented as a decimal string
readOnly: true
currency:
type: string
description: The currency of the gas fee.
readOnly: true
CardAccountFundingInstructions:
description: Funding instructions applicable only to the top-up card funding strategy, which is configured at the developer level
required:
- currency
- chain
- address
properties:
currency:
$ref: '#/components/schemas/CardsCryptoCurrency'
description: The crypto currency used by the card account
chain:
$ref: '#/components/schemas/OfframpChainForCards'
description: The chain used by the card account
address:
type: string
description: The deposit address provided by Bridge to fund the card account
memo:
type: string
description: If present, this is the message that the customer MUST include in their on-chain funding transfers. It is only applicable to memo-based blockchains such as Stellar and Tron
CardCryptoAccount:
description: The crypto account for a self-custodial card account. This field is not supported for a Bridge-custodial card funding setup (note
# --- truncated at 32 KB (66 KB total) ---
# Full source: https://raw.githubusercontent.com/api-evangelist/bridge/refs/heads/main/openapi/bridge-cards-api-openapi.yml