Sign in
An image of the Stripe logo
Create account
Sign in
Home
Payments
Business operations
Financial services
Developer tools
No-code
All products
Home
Payments
Business operations
Home
Payments
Business operations
Financial services
Developer tools
Overview
Online payments
Products and prices
Invoicing
Subscriptions
Quotes
In-person payments
Multiparty payments
    Overview
    Get started
    Collect payments then pay out
    Enable other businesses to accept payments directly
    Pay out money
    Explore Connect
    Onboard your accounts
    Choose your account type
    Standard
    Express
    Custom
    Service agreement types
    Payment methods
    Account capabilities
    Additional Verifications
    Update verified info
    Connect embedded UIs
    Quickstart
    Get started with Connect embedded UIs
    Accept payments
    Create a charge
    Create a payments page
    Create payment links with Connect
    Connect integration guide
    Automatic payment methods
    Set statement descriptors
    Connect platforms using the Payment Methods API
    Create subscriptions
    Create invoices
    Debit Express and Custom connected accounts
    Pay out
    Set bank and debit card payouts
    Bank accounts
    Manage payout schedule
    Manual payouts
    Payout reversals
    Instant Payouts
    Cross-border payouts
    Crypto payouts
    Manage funds
    Add money to your platform balance
    Account balance
    Handle multiple currencies
    Manage accounts
    Best practices
    Listen for updates
    Dashboard account management
    Understanding risk offerings
    Platform controls for Standard accounts
    Make API calls for connected accounts
    Set MCCs
    Testing
    Manage tax forms
    Overview
    Get started with tax reporting
    1099 Tax Support and Communication Guide
    Tax form settings
    Calculation methods
    File tax forms
    File tax forms with states
    Identify forms with missing information
    Update tax forms
    Deliver tax forms
    E-delivery for 1099 tax forms
    Correct tax forms
    Split tax forms
    Tax year changeover
    What's new for tax year 2022
After the payment
Add payment methods
Payment Links
Stripe Checkout
Stripe Elements
About the APIs
Regulation support
Implementation guides
Testing
Connect
·
HomePaymentsMultiparty payments

Create invoices with Connect

With Connect, you can create invoices for connected accounts, optionally taking fees in the process.

Learn more about Connect

Don’t know much about Connect? Check out our Overview article.

You can create invoices for connected accounts, which support several approaches for collecting payments. You can use direct charges to create them directly on the connected account. Alternatively, you can create invoices on the platform with transfers to the connected account by using destination charges. You can also take an application fee on these invoices.

Invoice transactions are based on Invoicing pricing.

Create an invoice using direct charges

To create an invoice that directly charges on a connected account, create an invoice while authenticated as the connected account. For this to work, the customer must be defined on the connected account.

Command Line
curl https://api.stripe.com/v1/invoices \ -u
sk_test_4eC39HqLyjWDarjtT1zdp7dc
: \ -d customer=
{{CUSTOMER_ID}}
\ -H "Stripe-Account:
{{CONNECTED_ACCOUNT_ID}}
"

As with creating a direct charge on a connected account, you can create a customer on a connected account by using either the platform’s publishable key or the connected account’s publishable key. You can also create a token by using shared customers. When you use direct charges, the connected account is responsible for the cost of the Stripe fees, refunds, and chargebacks.

Create an invoice using destination charges

To create an invoice that charges on the platform and creates automatic transfers to a connected account, create an invoice while providing the connected account ID as the transfer_data[destination] value.

Command Line
curl https://api.stripe.com/v1/invoices \ -u
sk_test_4eC39HqLyjWDarjtT1zdp7dc
: \ -d customer=
{{CUSTOMER_ID}}
\ -d "transfer_data[destination]"=
{{CONNECTED_ACCOUNT_ID}}

For this to work, the customer must be defined on the platform account, and you must create the connected account token by using the platform’s publishable key. If charging a customer, the customer must exist within the platform account. When using automatic transfers, the platform is the business of record.

Collect application fees

On the invoice, you can optionally withhold an application fee. The following example shows an application_fee_amount for an invoice with a direct charge on the connected account:

Command Line
curl https://api.stripe.com/v1/invoices \ -u
sk_test_4eC39HqLyjWDarjtT1zdp7dc
: \ -d customer=
{{CUSTOMER_ID}}
\ -d application_fee_amount="10" \ -H "Stripe-Account:
{{CONNECTED_ACCOUNT_ID}}
"

This example shows an application_fee_amount for an invoice with a destination charge:

Command Line
curl https://api.stripe.com/v1/invoices \ -u
sk_test_4eC39HqLyjWDarjtT1zdp7dc
: \ -d customer=
{{CUSTOMER_ID}}
\ -d application_fee_amount="10" \ -d "transfer_data[destination]"=
{{CONNECTED_ACCOUNT_ID}}

Make the connected account the settlement merchant

To make the connected account the settlement merchant, charge the customer using the on_behalf_of parameter when you create or update the invoice. You must set on_behalf_of in the API before finalizing an invoice—the Dashboard doesn’t have an interface for invoices you send on behalf of connected accounts.

Setting the on_behalf_of parameter applies the branding and contact information of the connected account to the invoice email, invoice PDF, Hosted invoice page, and invoice receipt. When you use on_behalf_of, emails aren’t sent in test mode—just like standard invoices that you send with the API. However, you can verify that Stripe created the invoice by checking the Invoices page of the Dashboard.

To collect payments on behalf of the connected account, the connected account also needs to have account capabilities enabled for the relevant payment methods. You can automatically transfer payments for invoices created on behalf of the connected account by using destination charges. For more information about the on_behalf_of​ parameter, refer to the relevant Connect documentation:

  • For automatic transfers to the connected account, refer to the on_behalf_of parameter details in the Create a charge guide.
  • For information on how to transfer payments manually, refer to Transfer availability.
  • For a list of account capabilities that are required to collect payments on behalf of the connected account, refer to Payment method capabilities.

The following example shows how to use the on_behalf_of parameter for a new invoice by using separate charges and transfers:

Command Line
curl https://api.stripe.com/v1/invoices \ -u
sk_test_4eC39HqLyjWDarjtT1zdp7dc
: \ -d on_behalf_of=
{{CONNECTED_ACCOUNT_ID}}
\ -d customer=
{{CUSTOMER_ID}}

As with standard destination charges, ​​you can set an application_fee_amount on invoices. This example shows how to use on_behalf_of with a destination charge and application fee.

Command Line
curl https://api.stripe.com/v1/invoices \ -u
sk_test_4eC39HqLyjWDarjtT1zdp7dc
: \ -d on_behalf_of=
{{CONNECTED_ACCOUNT_ID}}
\ -d application_fee_amount=10 \ -d "transfer_data[destination]"=
{{CONNECTED_ACCOUNT_ID}}
\ -d customer=
{{CUSTOMER_ID}}

Invoices created on behalf of a connected account ​​don’t support:

  • Account tax IDs.
  • Bank transfers payment methods, such as ACH Credit Transfer and paper checks.

See also

  • Create charges
  • Share customers across accounts
  • Multiple currencies
Was this page helpful?
Need help? Contact Support.
Watch our developer tutorials.
Check out our product changelog.
Questions? Contact Sales.
Powered by Markdoc
You can unsubscribe at any time. Read our privacy policy.
On this page
Create an invoice using direct charges
Create an invoice using destination charges
Collect application fees
Make the connected account the settlement merchant
See also
Stripe Shell
Test mode
Welcome to the Stripe Shell! Stripe Shell is a browser-based shell with the Stripe CLI pre-installed. Login to your Stripe account and press Control + Backtick on your keyboard to start managing your Stripe resources in test mode. - View supported Stripe commands: - Find webhook events: - Listen for webhook events: - Call Stripe APIs: stripe [api resource] [operation] (e.g. )
The Stripe Shell is best experienced on desktop.
$