Private preview
Consumer prepaid debit cards Private preview
Learn how to issue prepaid debit cards.
Issue prepaid debit cards to give your users a way to instantly receive and spend money. Offer rewards, disburse earnings, or launch a branded card program. With consumer prepaid cards, you can:
- Create consumer accounts and attach cards while outsourcing KYC obligations and compliance capabilities to Stripe
- Manage the consumer ledger with your own financial accounts or allow Stripe to manage it on your behalf.
- Offer virtual cards with push provisioning to digital wallets, or physical cards with production and shipping managed by Stripe.
- Outsource disputes, complaints, and other specialised customer support inquiries to Stripe.
For eligible platforms, Stripe offers revenue share on prepaid debit card interchange.
Use cases
| Use case | Description |
|---|---|
| Rewards | Send customers prepaid rewards cards, customised with your company’s logo. |
| Disbursements | Instantly send money for insurance claims, rebates, or earnings. |
| Branded cards | Launch a branded wallet and card. |
| Multi-Wallets | Launch a card on top of your existing consumer wallets while maintaining and managing the ledger. |
Get started
To establish your Consumer Issuing program, you need to:
- Create and fund a financial account for your platform.
- Create connected accounts and cardholders to represent your consumers.
- Create cards that are attached to your cardholder’s financial account.
- Fund your cardholder’s financial account from your platform’s financial account.
If you’re interested in getting early access to consumer prepaid debit cards, contact our sales team.
Create and fund your v2 Financial Account
Use your v2 Financial Account to disburse funds to your consumer’s balance. A v2 Financial Account is separate from your payments balance. If you have access to consumer prepaid, we automatically create a v2 Financial Account for you.
To fund the v2 Financial Account, follow the steps below.
Retrieve your Financial Account ID
Retrieve your v2 FinancialAccount to get its ID for use in later API requests.
Command Line
Create a v2 FinancialAddress
To create funding credentials, create a v2 FinancialAddress.
Command Line
Retrieve funding credentials
This request returns a routing number and an account number. Use the routing and account number to initiate funding from your external bank account.
Command Line
Retrieve your financial account balance
Depending on the source you use to fund your financial account, it might take 1 business day for funds to become available. Use the Financial Accounts API to view your available balance.
Command Line
Example response:
{
"id": "fa_65NvTFNdpXXUx1kx1rB16NoTesLDSQ1IgNPigisRKq09iq",
"object": "v2.money_management.financial_account",
"balance": {
"available": {
"usd": {
"value": 0,
"currency": "usd"
}
},
"inbound_pending": {
"usd": {
"value": 0,
"currency": "usd"
}
},
"outbound_pending": {
"usd": {
"value": 0,
"currency": "usd"
}
}
}
}
Consumer onboarding
Onboard each consumer by creating a connected account for them. Create an account for each consumer who wants a prepaid debit card on your platform, which we refer to as a connected account. The connected account stores know your customer (KYC) information about the consumer and enables features on the account. Request the storage, card_creator, and recipient capabilities for each consumer.
Note
The onboarding flow uses the Stripe Accounts v2 API. Some Docs reference v1 objects for backward compatibility, but for existing v1 accounts, Stripe provides projections to create consumer account configurations.
Create an Account
Create an Account object for your consumer. Use the resulting account ID in future API calls.
Command Line
Record terms of service
Present the consumer with the terms of service. Collect acceptance, then record it using the attestations parameter on the v2 Accounts API.
Command Line
Attach the Issuing Program ID to the account
Retrieve the Issuing Program ID that the connected account uses.
Command Line
Attach the Issuing Program ID to the connected account.
Command Line
Create a consumer v2 FinancialAccount
Create a v2 FinancialAccount for the connected account to hold the balance for their card. Set funds_usage_type to consumer and pass the connected account ID in the Stripe-Context header.
Command Line
Close the account
Close the account to remove access to the account and its associated resources. Pass all configurations on the account for this request to succeed.
Command Line
Handle onboarding exceptions
If a consumer can’t complete onboarding, we notify you through webhook events. Use these events to resolve requirements and inform your customer support team.
- Error enum
- Document verification issues
- Testing exceptions
Card issuing
After you create an account and grant a reward to the consumer, issue a card.
KYC verification happens asynchronously and might take a few minutes to complete.
When you create a connected account, Stripe performs Know Your Customer (KYC) verification in the background. The required capabilities (for example, card_creator) don’t activate immediately. Calling the cardholder creation ( POST /the relevant part of the product) or card issuing ( POST /the relevant part of the product) APIs before the relevant capabilities are fully activated on the connected account can result in an error.
To know when a capability is active, listen for the v2.core.account[configuration.card_creator].capability_status_updated webhook event before proceeding.
Warning
If you need to retry after the capability is active, you must use a new idempotency key. The Stripe v1 API caches error responses against the original idempotency key for at least 24 hours. Retrying with the same key within that window returns the same cached error, even if the capability has activated. Learn more about advanced error handling.
Create a cardholder
First, create a cardholder. The Cardholder object lets you attach multiple cardholders to a single account (for example, a primary cardholder and a secondary cardholder).
Command Line
Issue a card
Issue the card and specify the currency. Attach the consumer’s v2 FinancialAccount to the card.
Command Line
Activate the card
Cards are inactive by default when Stripe creates them. To activate the card:
Command Line
Card funding
Fund your platform with Inbound Transfers
Pull ACH debit funds from your external bank account into your platform financial account by creating an Inbound Transfer.
Command Line
Fund connected accounts with Outbound Payments
Use v2 Outbound Payments to transfer funds from the platform financial account to the connected account financial account. Funds in the connected account financial account fund card activity. If the connected account financial account has insufficient funds, authorisations decline.
You can fund this account at any time, including before you create the card.
Command Line
Digital wallets
Stripe offers tokenisation services for major wallet providers and can help you enable manual provisioning or in-app push provisioning. Use the following guides to get started:
- Manual provisioning
- In-app provisioning
Stripe Elements
You can display card information for a virtual card using Stripe Issuing Elements. This JavaScript and iframe-based implementation lets you display sensitive card information in your existing user interface with a Copy button.
- Card number, also known as PAN ( virtual cards only)
- CVC (virtual cards only)
- Expiry date
- PIN
Check the consumer’s balance
You can check the consumer’s balance using their Financial Account ID.
Command Line
Additionally, you can list the consumer’s transactions:
Command Line
Submit dispute evidence
Stripe offers a guided Dashboard process and an API to submit disputes and monitor them through to resolution. Learn how to use Issuing to dispute transactions.
Regulated customer notices
Stripe automatically sends Reg E-required emails to your consumers at each stage of the dispute lifecycle, branded with your platform name and logo. For platform branding configuration and information about sending your own regulated emails, see Issuing regulated customer notices.
Consumer dispute email templates
Dispute received
Confirm your dispute in writing (managed support)
Provisional credit applied
No error found — resolution notice
Error found — provisional credit finalized
No error found — written explanation and provisional credit reversal
Dispute resolution findings
Emails that include a {{the related setting}} field are populated by Stripe based on the dispute type and review outcome. The following findings apply when no error is found:
Unauthorized use or fraud
Processing errors
ATM cash not received
Canceled recurring transaction
Enriched merchant data
You can improve your users’ transaction history by including enriched merchant data, such as human-readable business names and standardised logos. You can also use enriched merchant data to improve spending controls by using consistent counterparty IDs across channels and storefronts.