# Enable financial account-funded Issuing

Use Accounts v2 and the card_creator configuration to enable Issuing for your connected accounts.
Available in: US
You can enable Issuing and Treasury for platforms for your connected accounts and use embedded components to onboard them, create financial accounts, and create cards funded by a financial account balance.

> #### Develop in a sandbox
> 
> Begin in a [sandbox](https://docs.stripe.com/sandboxes.md) with access to Treasury for platforms and Issuing, and use that sandbox’s test API keys for all requests.

## Before you begin

- You must be a Connect platform using [Accounts v2](https://docs.stripe.com/connect/accounts-v2.md).
- You must use API version `2026-06-24.preview` or later.
- Access to [Prebuilt embedded finance](https://docs.stripe.com/treasury/connect/prebuilt-embedded-finance.md) private preview.

## Enable money_manager and card_creator capabilities

Your connected accounts must have the `money_manager` and `card_creator` configurations and active capabilities before they can use Prebuilt Embedded Finance components for financial accounts and Issuing. Request `money_manager` capabilities before or together with `card_creator`. The `issuing_cards_list` component requires `money_manager` capabilities to be active before you request `card_creator` capabilities. See [Available components](https://docs.stripe.com/treasury/connect/prebuilt-embedded-finance.md#available-components).

After you request the capabilities, Stripe returns requirements for additional information and business verification, which might include:

- Beneficial owner date of birth, address, and SSN or ITIN
- KYC/KYB reconfirmation and Issuing terms of service acceptance
- EIN verification
- Physical address
- Business details such as annual revenue and estimated worker count

You must collect those requirements from your connected accounts to activate the capabilities.

### Add configurations to the connected account

Create or update a connected account to add the [money_manager](https://docs.stripe.com/api/v2/core/accounts/create.md?api-version=preview#v2_create_accounts-configuration-money_manager-capabilities) and [card_creator](https://docs.stripe.com/api/v2/core/accounts/create.md?api-version=preview#v2_create_accounts-configuration-card_creator-capabilities) configurations and their respective capabilities. Choose the card program that Stripe has enabled for your platform.

#### Celtic Bank spend card

```curl
curl -X POST https://api.stripe.com/v2/core/accounts \
  -H "Authorization: Bearer <<YOUR_SECRET_KEY>>" \
  -H "Stripe-Version: 2026-06-24.preview" \
  --json '{
    "include": [
        "configuration.money_manager",
        "configuration.card_creator",
        "requirements"
    ],
    "contact_email": "operations@example.com",
    "display_name": "Field Services Co",
    "identity": {
        "country": "us",
        "entity_type": "company"
    },
    "configuration": {
        "merchant": {
            "mcc": "7399",
            "support": {
                "phone": "0000000000"
            },
            "capabilities": {
                "card_payments": {
                    "requested": true
                }
            }
        },
        "money_manager": {
            "capabilities": {
                "received_credits": {
                    "bank_accounts": {
                        "requested": true
                    }
                },
                "business_storage": {
                    "inbound": {
                        "usd": {
                            "requested": true
                        }
                    },
                    "outbound": {
                        "usd": {
                            "requested": true
                        }
                    }
                },
                "outbound_payments": {
                    "bank_accounts": {
                        "requested": true
                    },
                    "financial_accounts": {
                        "requested": true
                    }
                },
                "outbound_transfers": {
                    "bank_accounts": {
                        "requested": true
                    },
                    "financial_accounts": {
                        "requested": true
                    }
                },
                "inbound_transfers": {
                    "bank_accounts": {
                        "requested": true
                    }
                },
                "received_debits": {
                    "bank_accounts": {
                        "requested": true
                    }
                }
            }
        },
        "card_creator": {
            "capabilities": {
                "commercial": {
                    "celtic": {
                        "spend_card": {
                            "requested": true
                        }
                    }
                }
            }
        }
    },
    "dashboard": "none",
    "defaults": {
        "currency": "usd",
        "responsibilities": {
            "fees_collector": "application",
            "losses_collector": "application"
        }
    }
  }'
```

#### Cross River Bank prepaid card

```curl
curl -X POST https://api.stripe.com/v2/core/accounts \
  -H "Authorization: Bearer <<YOUR_SECRET_KEY>>" \
  -H "Stripe-Version: 2026-06-24.preview" \
  --json '{
    "include": [
        "configuration.money_manager",
        "configuration.card_creator",
        "requirements"
    ],
    "contact_email": "operations@example.com",
    "display_name": "Field Services Co",
    "identity": {
        "country": "us",
        "entity_type": "company"
    },
    "configuration": {
        "merchant": {
            "mcc": "7399",
            "support": {
                "phone": "0000000000"
            },
            "capabilities": {
                "card_payments": {
                    "requested": true
                }
            }
        },
        "money_manager": {
            "capabilities": {
                "received_credits": {
                    "bank_accounts": {
                        "requested": true
                    }
                },
                "business_storage": {
                    "inbound": {
                        "usd": {
                            "requested": true
                        }
                    },
                    "outbound": {
                        "usd": {
                            "requested": true
                        }
                    }
                },
                "outbound_payments": {
                    "bank_accounts": {
                        "requested": true
                    },
                    "financial_accounts": {
                        "requested": true
                    }
                },
                "outbound_transfers": {
                    "bank_accounts": {
                        "requested": true
                    },
                    "financial_accounts": {
                        "requested": true
                    }
                },
                "inbound_transfers": {
                    "bank_accounts": {
                        "requested": true
                    }
                },
                "received_debits": {
                    "bank_accounts": {
                        "requested": true
                    }
                }
            }
        },
        "card_creator": {
            "capabilities": {
                "commercial": {
                    "cross_river_bank": {
                        "prepaid_card": {
                            "requested": true
                        }
                    }
                }
            }
        }
    },
    "dashboard": "none",
    "defaults": {
        "currency": "usd",
        "responsibilities": {
            "fees_collector": "application",
            "losses_collector": "application"
        }
    }
  }'
```

The requested capabilities might require additional onboarding information to activate. Listen for `v2.core.account[configuration.card_creator].updated` and `v2.core.account[configuration.money_manager].capability_status_updated` [webhooks](https://docs.stripe.com/webhooks.md) to monitor the status.

## Collect requirements and terms of service

Collect requirements to activate `money_manager` and `card_creator` capabilities using embedded component or the API.

#### Embedded onboarding

Create an Account Session that enables the account onboarding component.

```curl
curl https://api.stripe.com/v1/account_sessions \
  -u "<<YOUR_SECRET_KEY>>:" \
  --data-urlencode "account=identifier(connectedAccount)" \
  -d "components[account_onboarding][enabled]=true" \
  -d "components[account_onboarding][features][disable_stripe_user_authentication]=true" \
  -d "components[account_onboarding][features][external_account_collection]=false"
```

Use `collectionOptions.only` to collect only the requirements returned after the capabilities request. You can use wildcard matching, such as `"beneficial_owner.*"`.

```javascript
const onboarding = connectInstance.create('account-onboarding', {
  collectionOptions: { only: ["beneficial_owner.dob", "beneficial_owner.address", "beneficial_owner.id"] }
});

onboarding.setOnExit(() => {
  // Reload dashboard or check capability status
});
```

#### Custom API

If you build a custom onboarding flow, check `requirements.entries` and provide any missing information. Common past-due fields for the spend card capability include:

| Field | Example value |
| --- | --- |
| `identity.business_details.annual_revenue.amount` | `{ "value": 1000, "currency": "usd" }` |
| `identity.business_details.annual_revenue.fiscal_year_end` | `"2025-12-31"` |
| `identity.business_details.estimated_worker_count` | `2` |

```curl
curl -X POST https://api.stripe.com/v2/core/accounts/{{CONNECTEDACCOUNT_ID}} \
  -H "Authorization: Bearer <<YOUR_SECRET_KEY>>" \
  -H "Stripe-Version: 2026-06-24.preview" \
  --json '{
    "identity": {
        "business_details": {
            "annual_revenue": {
                "amount": {
                    "value": 1000,
                    "currency": "usd"
                },
                "fiscal_year_end": "2025-12-31"
            },
            "estimated_worker_count": 2
        }
    },
    "include": [
        "configuration.card_creator",
        "requirements"
    ]
  }'
```

### Record card_creator terms of service acceptance

You must record the connected account’s acceptance of the [required Issuing agreements](https://docs.stripe.com/issuing/commercial-compliance.md#issuing-terms) by updating `identity.attestations.terms_of_service.card_creator`. See [Update the Issuing terms of service acceptance](https://docs.stripe.com/issuing/connect-v2/tos_acceptance.md) for more information.

```curl
curl -X POST https://api.stripe.com/v2/core/accounts/{{CONNECTEDACCOUNT_ID}} \
  -H "Authorization: Bearer <<YOUR_SECRET_KEY>>" \
  -H "Stripe-Version: 2026-06-24.preview" \
  --json '{
    "identity": {
        "attestations": {
            "terms_of_service": {
                "account": {
                    "date": "2026-02-20T00:00:00.000Z",
                    "ip": "192.0.2.1",
                    "user_agent": "Mozilla/5.0"
                },
                "card_creator": {
                    "commercial": {
                        "account_holder": {
                            "date": "2026-02-20T00:00:00.000Z",
                            "ip": "192.0.2.1",
                            "user_agent": "Mozilla/5.0"
                        }
                    }
                }
            }
        }
    },
    "include": [
        "configuration.card_creator",
        "requirements"
    ]
  }'
```

## Verify capabilities activation

Retrieve the connected account to confirm its capabilities activated and all requirements are current.

```curl
curl -G https://api.stripe.com/v2/core/accounts/{{CONNECTEDACCOUNT_ID}} \
  -H "Authorization: Bearer <<YOUR_SECRET_KEY>>" \
  -H "Stripe-Version: 2026-06-24.preview" \
  -d "include[0]=configuration.money_manager" \
  -d "include[1]=configuration.card_creator" \
  -d "include[2]=requirements"
```

Expected outcome:

- `configuration.money_manager.capabilities.business_storage.inbound.usd.status` is `"active"`
- `configuration.money_manager.capabilities.received_credits.bank_accounts.status` is `"active"`
- The capability status for your selected card program is `"active"`:
  - **Celtic Bank spend card**: `configuration.card_creator.capabilities.commercial.celtic.spend_card.status`
  - **Cross River Bank prepaid card**: `configuration.card_creator.capabilities.commercial.cross_river_bank.prepaid_card.status`
- `requirements.entries` is empty

## Create cards funded by the financial account

After `money_manager` and `card_creator` capabilities are active, create cards funded by the financial account balance.

#### Embedded finance

1. [Create an Account Session](https://docs.stripe.com/api/account_sessions/create.md?api-version=2026-06-24.preview) to render the `financial_accounts` or `issuing_cards_list` [component](https://docs.stripe.com/treasury/connect/prebuilt-embedded-finance.md#available-components) in your website with the `card_management` feature to provide your connected accounts with a UI interface for managing their cards.

   ```curl
   curl https://api.stripe.com/v1/account_sessions \
     -u "<<YOUR_SECRET_KEY>>:" \
     -H "Stripe-Version: 2026-06-24.preview; embedded_connect_beta=v2" \
     --data-urlencode "account=identifier(connectedAccount)" \
     -d "components[financial_accounts][enabled]=true" \
     -d "components[financial_accounts][features][card_management]=true" \
     -d "components[issuing_cards_list][enabled]=true" \
     -d "components[issuing_cards_list][features][card_management]=true" \
     -d "components[issuing_cards_list][features][cardholder_management]=true"
   ```

2. Follow embedded finance steps to [initialize ConnectJS and render the component](https://docs.stripe.com/treasury/connect/prebuilt-embedded-finance.md#initialize).

3. After the connected account creates a card, confirm it appears under their issued cards with the financial account as the funding source.

#### Custom API

### Create a card with the API

You can also create cards directly with the Issuing API. Create a cardholder, then create a virtual card and set `financial_account_v2` to the financial account ID. Use the connected account ID in the `Stripe-Context` header.

```curl
curl https://api.stripe.com/v1/issuing/cardholders \
  -u "<<YOUR_SECRET_KEY>>:" \
  -H "Stripe-Context: {{CONTEXT_ID}}" \
  -d "name=Jenny Rosen" \
  --data-urlencode "email=jenny.rosen@example.com" \
  --data-urlencode "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 "billing[address][line1]=123 Main Street" \
  -d "billing[address][city]=San Francisco" \
  -d "billing[address][state]=CA" \
  -d "billing[address][postal_code]=94111" \
  -d "billing[address][country]=US"
```

```curl
curl https://api.stripe.com/v1/issuing/cards \
  -u "<<YOUR_SECRET_KEY>>:" \
  -H "Stripe-Context: {{CONTEXT_ID}}" \
  -d "cardholder={{CARDHOLDERID_ID}}" \
  -d type=virtual \
  -d currency=usd \
  -d "financial_account_v2={{FINANCIALACCOUNTID_ID}}"
```

Card status defaults to `inactive` if not specified. [Activate the card](https://docs.stripe.com/api/issuing/cards/update.md) before the connected account can authorize spend.

```curl
curl https://api.stripe.com/v1/issuing/cards/{{CARDID_ID}} \
  -u "<<YOUR_SECRET_KEY>>:" \
  -H "Stripe-Context: {{CONTEXT_ID}}" \
  -d status=active
```
