---
title: "Provision a card account"
method: POST
path: "/customers/{customerID}/card_accounts"
tags: ["Cards"]
deprecated: true
---

# Provision a card account

`POST /customers/{customerID}/card_accounts`

> **Deprecated.**

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.

## Path parameters

- `customerID` string, required — A UUID that uniquely identifies a resource

## Headers

- `Idempotency-Key` string, required

## Request body

- PostCardAccountsInput
  - `client_reference_id` string — An optional client-provided reference ID that uniquely identifies the card account in the client's system
  - `currency` 'usdc', required
  - `chain` 'arbitrum' | 'avalanche_c_chain' | 'base' | 'ethereum' | 'optimism' | 'polygon' | 'solana' | 'stellar', required
  - `crypto_account` CardCryptoAccount — The crypto account for a self-custodial card account. This field is not supported for a Bridge-custodial card funding setup (note that if you are on cards trial, you are automatically on a custodial funding setup).
    - `type` 'standard' | 'bridge_wallet' | 'noncustodial_ata', required — The type of the crypto account
    - `address` string, required — The public address of the crypto account
  - `card_design_shortname` string — The shortname of the card design to use for the card account. If not specified, the default card design will be used.

## Response `201`

The successfully created card account

- CardAccount
  - `id` string, required — A UUID that uniquely identifies a resource
  - `client_reference_id` string — The client-provided reference ID
  - `customer_id` string, required — A UUID that uniquely identifies a resource
  - `cardholder_name` CardholderName — The name of the cardholder associated to the card. By default, this will be the name of the associated customer. To override the cardholder name, you can contact Bridge support.
    - `first_name` string, required
    - `middle_name` string
    - `last_name` string, required
  - `card_image_url` string — 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` 'active' | 'pending' | 'inactive' | 'frozen', required — Status of the card account
  - `status_reason` string — An optional detailed explanation for the card account status
  - `card_details` CardDetails — Details of the issued card. This object contains enough payment card details to identify the issued card, but only provides the last four digits of the card number to maintain security.
    - `last_4` string, required — The last four digits of the card number
    - `expiry` string, required — The expiration date of the card, in MM/YY format
    - `bin` string, required — The BIN of the card, including the first 8 digits
    - `pin_status` 'not_set' | 'ok' — The current status of the card PIN
  - `balances` CardBalances, required — Balances of the card account
    - `available` CardBalance, required
      - `amount` string, required
      - `currency` 'usdc', required
    - `hold` CardBalance, required
      - `amount` string, required
      - `currency` 'usdc', required
  - `freezes` CardFreeze[], required
    - `card_account_id` string, required — A UUID that uniquely identifies a resource
    - `initiator` 'developer' | 'customer', required — The party that initiated the freeze. A freeze can be initiated by either the customer or developer. 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
    - `reason` 'lost_or_stolen' | 'suspicious_activity' | 'planned_inactivity' | 'suspected_fraud' | 'other', required — The reason of the freeze
    - `reason_detail` string — A more detailed reason for the freeze
    - `starting_at` string — The start time of the freeze, in ISO8601 format
    - `ending_at` string — The end time of the freeze, in ISO8601 format
    - `created_at` string, required — The creation time of the freeze, in ISO8601 format
  - `stripe_card_id` string, nullable — 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` CardCryptoAccount — The crypto account for a self-custodial card account. This field is not supported for a Bridge-custodial card funding setup (note that if you are on cards trial, you are automatically on a custodial funding setup).
    - `type` 'standard' | 'bridge_wallet' | 'noncustodial_ata', required — The type of the crypto account
    - `address` string, required — The public address of the crypto account
  - `funding_instructions` CardAccountFundingInstructions — Funding instructions applicable only to the top-up card funding strategy, which is configured at the developer level
    - `currency` 'usdc', required
    - `chain` 'arbitrum' | 'avalanche_c_chain' | 'base' | 'ethereum' | 'optimism' | 'polygon' | 'solana' | 'stellar', required
    - `address` string, required — The deposit address provided by Bridge to fund the card account
    - `memo` string — 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
  - `additional_funding_instructions` CardAccountFundingInstructions[]
    - `currency` 'usdc', required
    - `chain` 'arbitrum' | 'avalanche_c_chain' | 'base' | 'ethereum' | 'optimism' | 'polygon' | 'solana' | 'stellar', required
    - `address` string, required — The deposit address provided by Bridge to fund the card account
    - `memo` string — 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

## Other responses

- `400` — Request containing missing or invalid parameters.
- `401` — Missing or invalid API key
- `500` — Unexpected error. User may try and send the request again.

---

[API](https://skmtc.net/bridge/apis/bridge-api.md) · [All operations](https://skmtc.net/bridge/apis/bridge-api/llms.txt) · [OpenAPI document](https://skmtc-service-staging.skmtc.workers.dev/v1/apis/bridge/bridge-api/revisions/570998bde3b5/schema)
