Skip to content
Create account
or
Sign in
The Stripe Docs logo
/
Ask AI
Create account
Sign in
Get started
Payments
Finance automation
Platforms and marketplaces
Money management
Developer tools
Get started
Payments
Finance automation
Get started
Payments
Finance automation
Platforms and marketplaces
Money management
Overview
Billing
    Overview
    About the Billing APIs
    Subscriptions
    Invoicing
    Usage-based billing
    Connect and Billing
    Tax and Billing
    Quotes
    Revenue recovery
    Automations
    Scripts
    Revenue recognition
    Customer management
      Customers
      Customer invoice balance
      Customer portal
      Set up the no-code customer portal
      Set up the customer portal with the API
      Configure the customer portal
      Deep links and flows in the customer portal
      Add a cancellation page to the customer portal
    Entitlements
    Test your integration
Tax
Reporting
Data
Startup incorporation
HomeFinance automationBillingCustomer management

Customer invoice balance

Learn how to use the customer invoice balance.

Copy page

Every customer in Stripe Billing has an invoice balance that you can issue credit and debit adjustments against. Adjustments in the invoice balance could be a credit (meaning you owe them money) or a debit (meaning they owe you money). These adjustments sum up to a balance on the customer that you can apply to future invoices.

Because the invoice balance is computed from a ledger — an immutable list of debit and credit transactions — it provides an audit trail of transactions for the customer. These Customer Balance Transactions can refer to the object related to the adjustment (such as a Credit Note or Customer), or even metadata for your own reference.

Example use cases

Some common use cases for customer invoice balances include:

  • Issuing a Credit Note to create a credit that reduces the amount due on the next invoice.
  • Prorations from downgrading a subscription can indirectly create credits to reduce the amount due on the next invoice.
  • When the amount due on an invoice is less than the minimum chargeable amount the invoice is marked as paid and the amount owed moved to the invoice balance as a debit. This functionality only occurs for customers without a cash_balance.

Customer invoice balance details

Keep the following details in mind when using customer invoice balances:

  • The invoice balance automatically applies toward the next invoice finalized to a customer.
  • You can’t choose a specific invoice to apply the invoice balance to.
  • You can’t choose to not apply the invoice balance to an invoice.
  • The invoice balance is in the customer’s currency.
  • Customers with a cash balance can’t keep a positive balance. In other words, they can’t increase the amount due on the next invoice.
  • The invoice balance doesn’t apply to invoices created by Checkout Sessions with invoice_creation enabled.
  • You can’t apply invoice balances to previously created invoices that are still open. However, editing an open invoice applies any invoice balance to the invoice revision.

Debits and credits

Negative values are treated as a credit (a reduction in the amount owed by the customer) that you can apply to the next invoice.

Positive values are treated as a debit (an increase in the amount owed by the customer to you) that you can apply to the next invoice.

Transactions

All modifications to the invoice balance are recorded as Transactions. After it’s been created, you can only update its description or metadata—you can’t edit other properties or delete a transaction.

Undo a transaction

You can only undo a transaction by creating a corresponding, reversing transaction. For example, if you credit the customer 10 USD, you must debit the customer 10 USD in a new transaction, each canceling the other out.

Transaction types

All Transactions created with the API or in the Dashboard have a type value of adjustment, representing a debit or credit manually created by you for the customer.

The type property has many more possible values to represent the creation source and reason for the transaction. The following table outlines and describes each of these type values:

TypeDescription
adjustmentAn explicitly created adjustment transaction to debit or credit the invoice balance. This is the only type of transaction that you can create using API integrations and the Dashboard.
applied_to_invoiceTraces the application of credit against a linked Invoice.
credit_noteTraces the creation of credit to a Credit Note and it’s associated Invoice.
invoice_too_smallWhen the amount due on an invoice is less than Stripe’s minimum chargeable amount and the customer does not have a cash balance, the invoice is debited to the invoice balance and added to the amount due of the next issued invoice.
invoice_too_largeWhen the amount due on an invoice is greater than Stripe’s maximum chargeable amount and the customer does not have a cash balance, the invoice is debited to the invoice balance and added to the amount due of the next issued invoice.
unapplied_from_invoiceTraces the reversal of an applied invoice balance from a linked Invoice. Paired with an earlier applied_to_invoice transaction.
unspent_receiver_creditWhen unspent funds in receiver Sources attached to a customer without a cash balance aren’t fully charged after 60 days, Stripe automatically charges them on your behalf and credits your balance. When this happens, Stripe also creates a corresponding credit transaction.
initialRepresents the starting value of the customer invoice balance when a customer is created using the API with a non-zero invoice balance.

Modify the invoice balance

You can modify a customer invoice balance in the Dashboard by creating a new Customer Balance Transaction adjustment from the customer details page.

Under Customer invoice balance, click Adjust balance to display the Credit balance adjustment modal.

You can set information about the adjustment, such as:

  • Adjustment type: Choose credit or debit
  • Currency: Available only if the customer doesn’t have a currency set
  • Amount
  • Internal note: Visible to Dashboard users, but not to the customer
How to adjust a customer's subscription balance.

API

Create adjustments using the Customer Balance API, as shown in the following code example.

Command Line
cURL
curl https://api.stripe.com/v1/customers/cus_4fdAW5ftNQow1a/balance_transactions \ -u "
sk_test_BQokikJOvBiI2HlWgH4olfQ2
:"
\ -d amount=-500 \ -d currency=usd

Invoice balance transaction history

Audit adjustments to a customer invoice balance in the Dashboard on their customer details page, under Customer invoice balance.

This section displays the current value of the invoice balance. Click View details to see the transaction history used to calculate that value. Each transaction line displays information relevant to the transaction type, such as a link to the invoice that applied the invoice balance, or the credit note that credited the balance.

Viewing the invoice balance transaction history

API

Use the Customer Balance List to retrieve a list of all transactions for a customer.

Command Line
cURL
curl https://api.stripe.com/v1/customers/cus_4fdAW5ftNQow1a/balance_transactions \ -u "
sk_test_BQokikJOvBiI2HlWgH4olfQ2
:"

Customer cash balances

Customers using the bank transfers payment method have a cash balance object with one or more currencies in the available object. You can use the funds to make payments or pay invoices. Customers with available balances have the following behavior:

  • You can’t create a negative customer cash balance since it represents money sent from the Customer.

  • You can’t finalize a too-small or too-large invoice with the cash balance (for example, creating a subscription for 0.01 USD). Learn more about minimum and maximum amounts.

  • You can delete Customers that have a cash balance, but only if their cash balance is 0.

  • You can’t remove a Customer’s available balance.

Was this page helpful?
YesNo
Need help? Contact Support.
Join our early access program.
Check out our changelog.
Questions? Contact Sales.
LLM? Read llms.txt.
Powered by Markdoc