Private preview
Set up an Issuing and Connect integration Private preview
Learn how to issue cards on connected accounts.
Stripe Connect provides Stripe Issuing platforms with foundational infrastructure to manage funds flows and compliance requirements. In a Connect integration, the platform account makes API calls on behalf of the connected accounts.
When to use Connect
If you need to issue cards for users that aren’t directly employed by your business, set up Stripe Connect for your Issuing integration. For example, a business building a new expense management product for small businesses can integrate with Connect. Each small business that uses the expense management product is set up as a connected account.
After you set up and onboard connected accounts, your customers can support their card spend by funding their Issuing balance from their external bank account (or, in certain cases, your customers’ spend can be supported by your platform Issuing balance). Alternatively, they can create a financial account that they can fund and support their card spend. Your customers can also create cardholders and cards and set up spending controls.
Create multiple types of cards on the same connected account
Platforms can enable connected accounts to create different types of cards with the programs API.
Create connected accounts with Issuing capabilities
To issue cards, each business entity must use a connected account. Issuing only supports connected accounts that don’t use a Stripe-hosted Dashboard, and where your platform is responsible for requirements collection and loss liability, also known as a Custom connected account. Learn how to create connected accounts with the Accounts v2 APIs that work with Issuing. Connected accounts require specific capabilities enabled on the account to use features of Issuing. The capabilities requested for a connected account might require additional information about your connected account owners.
Stripe Issuing works with Account v2 objects. An Account v2 object represents a company, individual, or other entity that interacts with a platform on Stripe. It contains identifying information and properties that control its behavior and functionality. An account can have one or more configurations that enable sets of related features, such as allowing it to act as a business, a customer, a recipient, a storer or a card creator.
Usage of the card_creator configuration allows accounts to control functionality on Issuing. All accounts that require Issuing functionality must also request the recipient configuration with the stripe_balance.stripe_transfers capability requested. As the platform, you can create connected accounts with required capabilities for Issuing. You can onboard the connected account by providing all necessary details.
Create an account
Create a new connected account through the Dashboard or using the API with create Account.
Start with test accounts
In testing environments, connected accounts can’t receive or spend real money and can’t be used in live mode, but they’re identical in configuration and functionality.
Use POST /the relevant part of the product to create a new connected account. Use the include parameter to specify properties returned in the response. You can also request the card_creator config, the merchant config and the recipient config with the stripe_balance.stripe_transfers capability. You can request from the following card_creator capabilities for the account, which enable different functionalities for Issuing UK:
| Capability | Description | Persona |
|---|---|---|
configuration.card_creator.capabilities.commercial.stripe.charge_card | Allows the connected account to create charge cards with Stripe as the BIN sponsor. | card_creator |
configuration.card_creator.capabilities.commercial.prepaid_card.stripe | Allows the connected account to create prepaid cards with Stripe as the BIN sponsor. | card_creator |
GB company structure requirement
A GB account can activate the commercial.stripe.charge_card capability only if its company.structure is private_corporation, public_corporation, or incorporated_non_profit. This capability doesn’t support partnership structures such as incorporated_partnership (LLP) and unincorporated_partnership, even though they’re valid for other GB capabilities.
Command Line
cURL
If successful, the response you receive confirms the connected account and requested storer configuration:
{
"id": "acct_123",
"object": "v2.core.account",
"applied_configurations": [
"card_creator", "recipient", "merchant"
],
"configuration": {
"customer": null,
"merchant": null,
"recipient": {
"capabilities": {
"stripe_balance": {
"stripe_transfers": {
"requested": true,
"status": "restricted",
"status_details": [
{
"code": "requirements_past_due",
"resolution": "provide_info"
}
]
}
}
}
},
"card_creator": {
"capabilities": {
"commercial": {
"stripe": {
"charge_card": {
"requested": true,
"status": "restricted",
"status_details": [
{
"code": "requirements_past_due",
"resolution": "provide_info"
}
]
}
}
}
}
}
},
"contact_email": "test@example.com",
"created": "2025-06-18T00:48:16.000Z",
"dashboard": "none",
"identity": null,
"defaults": null,
"display_name": "John Smith",
"metadata": {},
"requirements": null,
"livemode": false
}
Learn more about how account calls return data.
Enable Issuing on the connected accounts
Create the program with the appropriate platform_program value. You can list your programs using the programs API with the issuing_program_beta=v2 header.
Command Line
cURL
Stripe automatically requests the necessary capability. If you request the capability directly, Stripe won’t create the program for you, and you need a program to create cards.
Issuing and Treasury for platforms
If your platform already has connected accounts, make sure they have a supported configuration for Issuing or Treasury for platforms. Issuing only supports connected accounts that don’t use a Stripe-hosted Dashboard, and where your platform is responsible for requirements collection and loss liability, also known as a Custom connected account. If this isn’t the case, you must create new accounts to use Issuing or Treasury for platforms. You can see your existing account’s configuration on the Connected accounts page in your Dashboard.
Retrieve the connected account
You can also use the API to retrieve the account information and verify that the capabilities property has the relevant Issuing capability requested. The capability won’t be active until all the requirements are fulfilled.
Command Line
cURL
Update a connected account to request a new capability
If you already have a connected account, you can request to add card_creator capabilities for a connected account with the following request:
Command Line
cURL
Start the identity verification process
After you create a connected account, you need to provide more information about the account holder. The Account object that represents the connected account has a requirements hash that contains awaiting_action_from identity verification requirements. The user on your platform must provide the details in the requirements hash to enable capabilities on their connected account.
If you create a test Account object and want to bypass onboarding requirements to test functionality, use the Accounts update API to provide test values that fulfill all the requirements.
Depending on the business type, the user provides details about the individual, company, non-profit organization, or government entity (Treasury for platforms doesn’t support government entities).
GB company structure requirement
A GB account can activate the commercial.stripe.charge_card capability only if its company.structure is private_corporation, public_corporation, or incorporated_non_profit. This capability doesn’t support partnership structures such as incorporated_partnership (LLP) and unincorporated_partnership, even though they’re valid for other GB capabilities.
Choose one of the following onboarding options:
Stripe-hosted onboarding is a web form hosted by Stripe with your brand’s name, color, and icon. Stripe-hosted onboarding uses the Accounts API to read the requirements and generate an onboarding form with robust data validation and is localized for all Stripe-supported countries.
Before using Connect Onboarding, you must provide the name, color, and icon of your brand in the Branding section of your Connect settings page.
You can use hosted onboarding to allow connected accounts to link an external_account (which is required for payouts) by enabling it through your Connect Onboarding settings.
To create an onboarding link for the connected account, use the Account Links API.
Command Line
Select a language
cURL
Stripe CLI
Ruby
Python
PHP
Java
Node.js
Go
.NET
No results
Caution
For security reasons, don’t email, text, or send account link URLs directly to your connected account. We recommend that you distribute the account link URL from within your platform’s application, where their account is authenticated.
The response you receive includes the url parameter containing the link for your connected account to onboard to your platform.
Collect and verify required information
To activate a capability, you must first request it by setting its requested property to true. This triggers collection of the capability’s requirements, which is handled by your platform. Requirements can involve identity and compliance documentation, and risk data. When Stripe verifies that a capability’s requirements are fulfilled, it becomes active.
Requirements
Requirements, which describe the information that Stripe requires to enable capabilities for the account, can include:
- The type of information
- Why Stripe needs the information
- Whether the requirement is overdue (the deadline can be a date or some other type of threshold, such as a certain volume of payments)
- Consequences that Stripe imposes at the deadline if we can’t verify the information with acceptable documentation, such as suspending certain functionality or stopping payouts from the Stripe balance for the account
- Who must take action
In addition to any capability-specific consequences, if a capability has overdue requirements, its status becomes restricted, with a status_details.code of requirements_past_due.
To see all the requirements for the requested capabilities for an Account, retrieve the Account and specify the requirements and the assigned configuration types in the include parameter.
The following example returns the status and requirements for capabilities that belong to the card_creator configuration.
Command Line
cURL
In the example response, the card_creator.commercial.stripe.charge_card capability has been requested, but its requirements are past due:
Capability activation response showing requirements
{
"id": "{{CONNECTED_ACCOUNT}}",
"object": "v2.core.account",
"applied_configurations": [
"card_creator"
],
"configuration": {
"customer": null,
"merchant": null,
"recipient": null,
"storer": null,
"card_creator": {
"capabilities": {
"commercial": {
"stripe": {
"charge_card": {
"requested": true,
"status": "restricted",
"status_details": [
{
"code": "requirements_past_due",
"resolution": "provide_info"
}
]
}
}
}
}
}
},
"contact_email": "test@example.com",
"created": "2025-06-18T00:48:16.000Z",
"dashboard": "none",
"identity": null,
"defaults": null,
"display_name": "Test Account",
"metadata": {},
"requirements": {
"collector": "application",
"entries": [
{
"awaiting_action_from": "user",
"description": "identity.attestations.persons_provided.executives",
"errors": [],
"impact": {
"restricts_capabilities": [
{
"capability": "commercial.stripe.charge_card",
"configuration": "card_creator",
"deadline": {
"status": "past_due"
}
}
]
},
"minimum_deadline": {
"status": "past_due"
},
"reference": null,
"requested_reasons": [
{
"code": "routine_onboarding"
}
]
}
]
},
"livemode": false
}
If the capability is already active and the account doesn’t satisfy new requirements due on that capability before the deadline, the capability becomes inactive until the requirements are satisfied.
Document uploads
If an account’s information can’t be verified, Stripe might require a document to verify the identity of a person (for example, a Passport) or to verify information about the legal entity (for example, a letter from the tax authority). To satisfy document requirements, platforms can send the user to Connect Onboarding (where they’ll be prompted to upload the document), or collect the document from the account in another interface and upload it through the API.
Failure to verify identity within 29 days of the initial application
After an account submits all the required information for Issuing and accepts the Issuing terms of service, Stripe considers the application complete. If we can’t verify an account’s information, the capability remains inactive until the account provides additional information or uploads a document.
If the account remains inactive 29 days after completing the application, you must send an email notice to the account informing them that we couldn’t verify their identity ( see the template).
Stripe monitors for completed applications with unverified identities, and takes the following action after 29 days in live mode and after 1 hour in testing environments:
- Generates an account notice
- Clears the terms of service acceptance hash so terms acceptance becomes a requirement that is awaiting action.
You can submit a new application at any time by updating the business information and recording a new acceptance of Issuing’s terms.
Stripe recommends that you present the terms of service as the last step of onboarding, which allows you to track the timing of application completion by referring to the term’s acceptance date.
Terms of service violations
If Stripe identifies a connect account that has violated Stripe’s terms of service, Stripe sets the Issuing capability on the account to inactive, deactivates any cards, and notifies the account (see the email template). This might happen when an account’s cards are used in relation to prohibited or restricted businesses, such as illegal activities, gambling, firearms, adult content, or cryptocurrencies, or in relation to prohibited, abusive, or noncompliant Issuing activities, such as consumer spending, lending, or primarily international use.
Accounts inactive for more than 395 days
Stripe disables issuing on accounts that haven’t completed any card transactions in the past 13 months (395 days). For accounts with additional capabilities, Stripe only disables Issuing if there have also been no payments or Treasury for platforms transactions in the prior 395 days, and the financial account balance is 9.99 USD or less.
When Issuing is disabled for inactivity, the Connect account’s card_creator capability status changes to restricted.
Learn more about managing inactive accounts with Issuing.
Webhooks
When the status of requested capabilities change for a connected account, you receive a v2.core.account[configuration.<configuration_name>].capability_status_updated webhook confirming the change:
Create cardholders and cards
A Cardholder object represents an individual or business entity that you can issue cards to. Each cardholder needs to be associated with a connected account to be issued a virtual or physical card. One connected account can have many cardholders.
Learn more about Cardholders and cards.
Add funds
The card can use funds from the Issuing balance or the financial account balance based on how it’s configured.
Use the Issuing balance
The Issuing balance is separate from the connected account’s main balance. When issued cards are used for transactions, they draw from the Issuing balance.
Before an issued card can be used for transactions, you must first allocate funds to the connected account’s Issuing balance associated with the card. An Issuing Balance holds funds reserved for the card and is safely separated from earnings, payouts, and funds from other Stripe products. Learn how to fund connected accounts for Issuing.
Use the Dashboard for Issuing with Connect
View the connected accounts on your platform and create new accounts from the Connected accounts page in the Dashboard. An account might appear as restricted in the Dashboard if requirements are past_due for any of the requested capabilities.
You can also do the following from the dashboard:
- View account activity for a selected account.
- Edit business and personal details for a selected account.
- Create cardholders, cards, or test authorizations on the account. To do so, view your connected account details, then go to Card issuing .
- View program details for a selected account. Follow the above steps to View Dashboard as (account name) , then go to Settings , the Issuing section, and click Card programs .
You can also access the Issuing page for a connected account directly by navigating to this URL and replacing {{the related setting}} with the appropriate value: https://dashboard.stripe.com/connect/accounts/{{CONNECT_ACCOUNT_ID}}/issuing/cards
As the platform, only you can view the Dashboard on behalf of your connected accounts. Your connected accounts won’t have a Stripe username or password, or access to the Dashboard.
