- Creating a card via Stripe Issuing
- Setting up a token approval
- Handling card transaction webhooks
Setting up a Bridge account with Privy
Set up Bridge onramp and offramp flows with Privy.
Bridge + Stripe Issuing documentation
Official Bridge documentation for Stripe Issuing card integration.
Supported chains
Bridge supports the following chains for non-custodial card funding:Create a card via Stripe Issuing
Bridge uses Stripe Issuing for card creation. Your app creates a Bridge customer with a cards endorsement, then issues the card through Stripe’s API.Request cards endorsement
After creating a Bridge customer, request thecards endorsement. The customer must complete KYC within 24 hours or the endorsement is revoked.
stripe_cardholder_id on the customer object.
Create the card
Use thestripe_cardholder_id to create a card via Stripe’s Issuing API. Set the crypto_wallet parameters to link the card to the non-custodial wallet.
- Solana
- EVM
Create the card before setting up the token approval. This ensures Bridge ties the address to the
customer before your app submits any approvals onchain.
Set up token approval
After creating the card, the wallet must approve Bridge’s smart contract to pull funds during card transactions. Bridge provides a consolidated version of the Solana delegate approval logic in a GitHub Gist.- Solana
- EVM
Set up the connection and transaction
Initialize a connection and a new transaction to contain the approval instructions.Set up the ATA
Check whether the associated token account (ATA) exists for the wallet. If it does not, add an instruction to the transaction to create it.Set up the delegate approval
Add an instruction that approves Bridge’s card program to spend from the ATA. Bridge assigns theMERCHANT_ID to your developer account during onboarding.Send the transaction
Submit the transaction using Privy. Passsponsor: true to enable
Solana gas sponsorship, which handles the fee
payer and recent blockhash automatically.Use the
The result is a delegate approval resembling this transaction.useSignAndSendTransaction hook
to sign and broadcast the transaction from the user’s embedded wallet:Handle card transaction webhooks
The card is now ready to use. When a cardholder makes a purchase, Bridge publishes webhook events for both the card network authorization and the onchain transaction.Cards created via Stripe Issuing also emit Stripe webhook events (
issuing_authorization.created,
issuing_transaction.created). See the Stripe Issuing webhooks
documentation for details on
handling these events.card_transaction.created
Bridge publishes this event when the card authorization occurs. It contains the authorization details but not yet the onchain transaction:
- Solana
- EVM
card_transaction.updated
Bridge publishes this event seconds later when the onchain transaction confirms. It includes crypto_details with the chain, amount, and transaction hash:
- Solana
- EVM
Bridge rejects an authorization if the onchain approval is inactive, the approved amount is
insufficient, or the wallet lacks funds. Incremental authorizations trigger additional onchain
transactions to cover the extra charge.

