# Set up credit for connected accounts Learn how to configure credit terms for your connected accounts and fund their spend from your platform. ## How connected accounts work Connected accounts are separate Stripe accounts that belong to your users (merchants, businesses, or individuals) but are managed through your platform. Think of them as sub-accounts under your main Stripe account. **Key concepts:** - **Your platform account**: Your main Stripe account that manages everything - **Connected accounts**: Individual accounts for your users (for example, a gym owner, restaurant owner, freelancer) - **Credit extension**: You can extend credit to your connected accounts, allowing them to spend money they don’t have yet and pay you back later **Example scenario:** - You run a platform that provides business tools to gym owners - Each gym owner gets their own connected account - You can extend them a 5,000 USD credit line to buy equipment - They spend the credit, then pay you back at the end of the month ## How credit works with connected accounts The Credit APIs are used to manage the credit terms for your connected accounts. Subject to your credit policy with your bank partner, you can select the connected accounts that are eligible to receive credit, set their credit limit and period, and enable them to spend and repay their expenses at the end of their credit period. ## Prerequisites 1. [Register your platform](https://dashboard.stripe.com/connect). 1. Add business details to [activate your account](https://dashboard.stripe.com/account/onboarding). 1. Complete your [platform profile](https://dashboard.stripe.com/connect/settings/profile). 1. [Customize brand settings](https://dashboard.stripe.com/settings/connect/stripe-dashboard/branding). Adding a business name, icon, and brand color is required for *Connect* (Connect is Stripe's solution for multi-party businesses, such as marketplace or software platforms, to route payments between sellers, customers, and other recipients) Onboarding. 1. The Issuing Credit beta is enabled for your account. Contact your Stripe account representative for more details. See the [Custom Connect account creation guide](https://docs.stripe.com/connect/custom-accounts.md) to get set up. ## Request the Charge Card capability for your connected accounts In addition to the `transfers` capability required for issuing cards, you must enable and activate the `card_issuing_charge_card` capability for each connected account whose spend you want to support using your platform’s available funds (this includes your platform’s resources if you’re prefunding). The `card_issuing_charge_card` capability enables a connected account to issue cards on their account and make charges up to their credit limit, provided that your platform Issuing account has sufficient available funds to support the charges. If you’re creating a new connected account on your platform, you can add the `card_issuing_charge_card` capability in the same way you request other capabilities. For existing connected accounts, you can request the `card_issuing_charge_card` capability through an [update account](https://docs.stripe.com/api.md#update_account) API call. #### New connected account ```curl curl https://api.stripe.com/v1/accounts \ -u "<>:" \ -d country=US \ -d type=custom \ -d "capabilities[card_payments][requested]=true" \ -d "capabilities[transfers][requested]=true" \ -d "capabilities[card_issuing_charge_card][requested]=true" ``` #### Existing connected account ```curl curl https://api.stripe.com/v1/accounts/{{CONNECTED_STRIPE_ACCOUNT_ID}} \ -u "<>:" \ -d "capabilities[card_issuing_charge_card][requested]=true" ``` ## Record the user’s application details and approved credit limit Each time a user completes and submits an application for credit to your platform, record their application details and the decision to approve or reject with the [Credit Underwriting Record](https://docs.stripe.com/api/issuing/credit_underwriting_record.md) API. First, use the [create_from_application](https://docs.stripe.com/api/issuing/credit_underwriting_record_api/create_from_application.md) endpoint to record the time the application was submitted, the [purpose](https://docs.stripe.com/api/issuing/credit_underwriting_record_api/create_from_application.md#create_from_application-application-purpose) (`credit_line_opening` for new users), and the applicant’s `name` and `email` in the [credit_user](https://docs.stripe.com/api/issuing/credit_underwriting_record_api/create_from_application.md#create_from_application-credit_user) hash. You can specify how you received the application with [application_method](https://docs.stripe.com/api/issuing/credit_underwriting_record_api/create_from_application.md#create_from_application-application-application_method), but if you don’t provide a value it defaults to `online`. ```curl curl https://api.stripe.com/v1/issuing/credit_underwriting_records/create_from_application \ -u "<>:" \ -H "Stripe-Account: {{CONNECTEDACCOUNT_ID}}" \ -d "credit_user[name]=Barbell Gym" \ --data-urlencode "credit_user[email]=barbell-gym@gmail.com" \ -d "application[purpose]=credit_line_opening" \ -d "application[submitted_at]=1681138952" ``` ### Example response ```json { "object": "issuing.credit_underwriting_record", "id": "cur_1NiHAD2eZvKYlo2CmWGpt5OX", "credit_user": { "name": "Barbell Gym", "email": "barbell-gym@gmail.com" }, "created_from": "application", "application": { "purpose": "credit_line_opening", "submitted_at": 1681138952, "application_method": "online" }, "decision_deadline": 1683601352 // 30 days after submission } ``` To approve the application, use the [report_decision](https://docs.stripe.com/api/issuing/credit_underwriting_record_api/report_decision.md) endpoint with the [ID](https://docs.stripe.com/api/issuing/credit_underwriting_record/object.md#credit_underwriting_record_object-id) from the response, and set the decision type to `credit_limit_approved`, and provide the approved amount. ```curl curl https://api.stripe.com/v1/issuing/credit_underwriting_records/{{CREDITUNDERWRITINGRECORD_ID}}/report_decision \ -u "<>:" \ -H "Stripe-Account: {{CONNECTEDACCOUNT_ID}}" \ -d "decided_at={{DECISIONTIMESTAMP_ID}}" \ -d "decision[type]=credit_limit_approved" \ -d "decision[credit_limit_approved][amount]=100000" \ -d "decision[credit_limit_approved][currency]=usd" ``` All received applications must be recorded. See [Report other credit decisions](https://docs.stripe.com/issuing/credit/report-credit-decisions-and-manage-aans.md) for details on how to report applications that are rejected, incomplete, or withdrawn by the applicant. ## Accept Charge Card terms to activate the capability After requesting the `card_issuing_charge_card` capability for a connected account, activate the capability by completing the `card_issuing_charge_card` [requirements](https://docs.stripe.com/issuing/connect.md#required-verification-information) and accepting the [connected account agreements](https://docs.stripe.com/issuing/compliance-us.md) including (but not limited to) [Cross River Bank’s Charge Card Terms of Service](https://stripe.com/legal/issuing/crb-charge-card). ```curl curl https://api.stripe.com/v1/accounts/{{CONNECTED_STRIPE_ACCOUNT_ID}} \ -u "<>:" \ -d "settings[card_issuing_charge_card][cross_river_bank][tos_acceptance][ip]=8.8.8.8" \ -d "settings[card_issuing_charge_card][cross_river_bank][tos_acceptance][date]=1611171056" ``` These terms of service establish the credit relationship between the bank partner originating the credit and the connected account. You must include these terms during your onboarding flow and receive explicit acceptance from your user. Also include additional charge card terms of service between you and the connected account. Include the important terms set out in your credit policy with the bank partner, such as fees, repayment period, rewards, and rules around how a connected account’s credit limit is set. Only record acceptance in the API after the account has agreed to the terms in your onboarding flow. ## Determine the credit period and activate the credit line *Before taking any actions described in this section, consult your bank partner’s credit policy.* The `CreditPolicy` stores the credit limit and credit period for your connected account. When the `card_issuing_charge_card` capability becomes `active`, Stripe creates an empty, inactive `CreditPolicy` for the connected account, triggering the `issuing_credit_policy.created` webhook event. To set the `credit_limit_amount` you must use the same amount you approved in the application decision, or `CreditPolicy` will return an error. In our example of Gymbox, let’s say Gymbox wants to extend Barbell (a gym) a 1,000 USD credit limit to be repaid on the 15th of each month. Gymbox makes the following call to configure Barbell’s connected account: ```curl curl https://api.stripe.com/v1/issuing/credit_policy \ -u "<>:" \ -H "Stripe-Version: 2026-02-25.preview; issuing_credit_beta=v1; issuing_underwritten_credit_beta=v1" \ -H "Stripe-Account: {{CONNECTEDACCOUNT_ID}}" \ -d credit_limit_amount=100000 \ -d credit_limit_currency=usd \ -d credit_period_interval=month \ -d credit_period_interval_count=1 \ -d "credit_period_ends_on_days[]=15" \ -d days_until_due=0 \ -d status=active ``` You can set the `credit_period_ends_on_days` property to end the month on any day (1 through 28), or use 31 to set the last day of the month regardless of how many days are in the month. ### Example response ```json { "livemode": true, "credit_limit_amount": 100000, "credit_limit_currency": "usd", "status": "active", "credit_period_interval": "month", "credit_period_interval_count": 1, "credit_period_ends_on_days": [15], "days_until_due": 0, "last_effective_attributes": { "effective_until": "time_of_update", "credit_limit_amount": null, "credit_period_interval": null, "credit_period_interval_count": null, "credit_period_ends_on_days": null, "days_until_due": null, "status": "inactive", }, "upcoming_attributes": null } ``` You can both update and activate the `CreditPolicy` at the same time, as pictured above. You can also separately activate the policy after setting the fields. ```curl curl https://api.stripe.com/v1/issuing/credit_policy \ -u "<>:" \ -H "Stripe-Version: 2026-02-25.preview; issuing_credit_beta=v1; issuing_underwritten_credit_beta=v1" \ -H "Stripe-Account: {{CONNECTEDACCOUNT_ID}}" \ -d status=active ``` ### Example response ```json { "livemode": true, "credit_limit_amount": 100000, "credit_limit_currency": "usd", "status": "active", "credit_period_interval": "month", "credit_period_interval_count": 1, "days_until_due": 1, "last_effective_attributes": { "effective_until": "time_of_update_to_active", "credit_limit_amount": 100000, "credit_period_interval": "month", "credit_period_interval_count": 1, "days_until_due": 1, "status": "inactive", }, "upcoming_attributes": null } ``` Each of these actions trigger separate instances of the `issuing_credit_policy.updated` webhook event. After you activate the `CreditPolicy`, your platform’s available spend applies toward the spend of all of the connected account’s cards, up to the credit limit you set for the connected account. These cards only draw on your platform’s available spend when there are insufficient funds on the connected account’s Issuing balance. After there are no available funds on the connected account’s Issuing balance and the connected account has reached its credit limit, Stripe automatically declines authorizations. Stripe creates a `FundingObligation` to help you manage and monitor the amount owed by the account throughout the credit period. You can future date when the credit period of a credit policy comes into effect using the [upcoming_attributes](https://docs.stripe.com/api/issuing/credit_policy/update.md#update_issuing_credit_policy-upcoming_attributes) hash and the `effective_at` timestamp. See [Managing account obligations](https://docs.stripe.com/issuing/credit/manage-account-obligations.md) for information on using the `FundingObligation` to keep track of your connected accounts’ spend and outstanding balance. ## Create cards and cardholders After you set up your connected account for credit by activating the [CreditPolicy](https://docs.stripe.com/api/issuing/credit_policy.md), you can [generate virtual](https://docs.stripe.com/issuing/cards/virtual.md) or [physical cards](https://docs.stripe.com/issuing/cards/physical.md) for your connected account to use against their credit limit.