Skip to main content
Bridge stablecoin-backed cards for commercial use integrate Stripe Issuing with Stripe Connect and Bridge’s stablecoin infrastructure. This lets you build a global commercial card program where each business customer gets their own Stripe connected account, and authorized users within that business can be issued cards that spend from a stablecoin wallet.

Entity model

Each business customer is represented across two systems:
ObjectSystemDescription
CustomerBridgeHolds the business’s identity, KYC status, and cards endorsement. You create and manage this via the Bridge API.
Connected AccountStripeCreated automatically by Bridge once the cards endorsement is approved. Represents the business within your Stripe Connect platform.
The Bridge Customer and Stripe Connected Account are linked 1:1. Within each Connected Account, you create Cardholders and Cards via the Stripe API using the Stripe-Account header. All cardholders and cards for a business are scoped to that Connected Account and appear under it in the Stripe Dashboard.

How it differs from consumer issuing

ConsumerCommercial
Customer typeIndividualBusiness
Stripe object created by BridgeCardholderConnected Account
Who creates the CardholderBridgeYou, via Stripe API
Stripe setupStripe IssuingStripe Connect Platform
Real-time auth webhookNot supportedSupported
Primary funding strategyNoncustodial or Bridge WalletBridge Wallet

Technical integration APIs

StepAPI
Onboard business customersBridge API
Create cardholdersStripe API
Create and manage cardsStripe API
Card spend APIs and webhooksStripe API
Additional card featuresStripe API
KYC and cards endorsement managementBridge Dashboard
Cards managementStripe Dashboard

Step 1: Set up Bridge developer and Stripe account

Work with Bridge to get a developer account set up on Bridge. Separately, set up a new Stripe account as a Connect Platform. Bridge will send you a URL (Stripe App Install Link) to associate your Bridge developer account to the Stripe platform account and activate Stripe Issuing. This flow connects Bridge to your Stripe platform.

Step 2: Create customer

Each business you onboard is represented on Bridge as a business-typed Customer and on Stripe as a connected Account. Bridge manages creating the Stripe connected account within your platform—you only need to create the customer on the Bridge API or Dashboard and request the cards endorsement. Once the cards endorsement is approved, Bridge creates the Stripe connected account automatically. The account ID is returned in the customer object:
{
    "id": "edf01834-552b-41c9-8506-1bebc7a9741d",
    "type": "business",
    "status": "pending",
    "stripe_account_id": "acct_...",
    "endorsements": [
        {
            "name": "cards",
            "status": "complete",
            "requirements": {
                "complete": [
                    "business_name",
                    "email_address",
                    "minimal_source_of_funds_data",
                    "proof_of_source_of_funds_document",
                    "adverse_media_screen",
                    "sanctions_screen",
                    "fincen_special_measures_screen",
                    "pre_onboarding_check"
                ],
                "issues": []
            }
        }
    ]
}
Use the stripe_account_id as the Stripe-Account header in all subsequent Stripe API calls for this business.

Step 3: Create cardholder

Unlike consumer issuing, you create the Cardholder yourself via the Stripe API. Include the business’s stripe_account_id in the Stripe-Account header. For production, you must surface the authorized user terms, record the IP and date the user accepted them, and submit that in the request:
curl -X POST https://api.stripe.com/v1/issuing/cardholders \
  -u sk_live_…: \
  -H "Stripe-Account: acct_CONNECTED_ACCOUNT_ID" \
  -d "name=Jenny Rosen" \
  -d "email=jenny.rosen@example.com" \
  -d "phone_number=+18008675309" \
  -d "status=active" \
  -d "type=individual" \
  -d "individual[first_name]=Jenny" \
  -d "individual[last_name]=Rosen" \
  -d "individual[dob][day]=1" \
  -d "individual[dob][month]=11" \
  -d "individual[dob][year]=1981" \
  -d "individual[user_terms_acceptance][lead][ip]=..." \
  -d "individual[user_terms_acceptance][lead][date]=..." \
  -d "billing[address][line1]=510 Townsend Street" \
  -d "billing[address][city]=San Francisco" \
  -d "billing[address][state]=CA" \
  -d "billing[address][postal_code]=94111" \
  -d "billing[address][country]=US"
Multiple cardholders within the same business can share the same Bridge Wallet.

Step 4: Create card

Use the cardholder ID from the previous step to create a card via the Stripe API. Include the Stripe-Account header and specify the wallet using the crypto_wallet parameter. Bridge Wallet is the primary funding strategy for commercial cards:
curl -X POST https://api.stripe.com/v1/issuing/cards \
  -u sk_live_…: \
  -H "Stripe-Account: acct_CONNECTED_ACCOUNT_ID" \
  -d cardholder=ich_1234 \
  -d currency=usd \
  -d type=virtual \
  -d status=active \
  -d "crypto_wallet[chain]=solana" \
  -d "crypto_wallet[currency]=usdb" \
  -d "crypto_wallet[type]=bridge_wallet" \
  -d "crypto_wallet[address]=8gN8ioFOObaraWxRcb5p9QHxBSQG8fgHhE95LoAGZXCK"
A card and its Bridge Wallet must belong to the same business. Multiple cards within the same business can share a single Bridge Wallet. See Funding strategies for the full crypto_wallet parameter reference. Noncustodial wallets (type=standard) are also supported for commercial cards.

Step 5: Test card spend

Once your card is activated, you can begin testing card spend immediately. View card details in the Stripe Dashboard or embed a Stripe Issuing Element to expose them to cardholders without bringing your backend into PCI scope.

Real-time authorization

Commercial issuing supports the issuing_authorization.request webhook, which gives you control over individual authorization decisions. Configure the webhook endpoint in the Stripe Dashboard—your endpoint must respond within 2 seconds with an approval or denial.
Bridge may also independently reject an authorization even if your endpoint approves it—for example, due to insufficient wallet balance, onchain transaction screening, or velocity limits. Always rely on issuing_authorization.created and issuing_authorization.updated events for the final authorization outcome.

Webhooks

Use Stripe Issuing webhooks to receive notifications about authorizations and transactions. The lifecycle is the same as consumer issuing—see the Webhooks guide for the full event reference.

Additional card features

All Stripe Issuing features are available. See the additional card features guide for details on physical cards, mobile wallets, spending limits, disputes, and fraud management. Cardholder support: Phone support is optional for commercial programs but recommended. Stripe’s support agents can handle this on your behalf in English or Spanish. Contact your account manager for details. Fraud liability: As the platform developer, you are ultimately liable for fraud on your platform. Bridge recommends enabling 3DS and advanced fraud models for commercial programs.

Developer support

For support inquiries, use your dedicated Bridge Slack cards channel. A Bridge representative will help resolve issues across both the Stripe and Bridge APIs.