Reconciliation
Learn about how Stripe reconciles the customer balance to payments and invoices.
Stripe offers the automatic
or manual
reconciliation behavior for funds in the cash balance.
By default, Stripe applies the automatic reconciliation mode to the cash balance of all of your customers. You can use the Bank Transfers reconciliation settings to change the reconciliation behavior for everyone.
Bank Transfer reconciliation settings
Override reconciliation behavior
You can use the Dashboard or API to override, for a specific customer, the Bank Transfers reconciliation settings.
To override a customer’s reconciliation behavior in the Dashboard:
- Select the customer, then find Cash Balance in the Payment methods section.
- Expand the overflow menu () next to the cash balance details.
- From the expanded options, select Change reconciliation mode. This displays a modal that allows you to change the reconciliation behavior for the customer.
The Cash Balance section on the Customer page
To override a customer’s reconciliation behavior using the API, set the customer’s reconciliation mode to manual
.
To point the reconciliation mode for an overridden customer back to the user’s default, you can do so in the Dashboard. You can also use the API to set the reconciliation mode on the customer to merchant_
.
Automatic cash balance reconciliation
Manual cash balance reconciliation
When manual reconciliation is enabled on a customer, Stripe does not automatically apply any funds from the customer balance.
You can apply funds from the customer balance manually using either the API or the Dashboard.
For both the API and the Dashboard, you can apply funds to an incomplete or partially funded PaymentIntent, or an open Invoice. You can also fund Invoices that are still open but marked overdue with this method.
In the Dashboard, you can apply funds to a PaymentIntent on the Payments page or on the page for the individual payment.
To fund a PaymentIntent from the Payments page, find the payment you want to fund, select the overflow menu (), then click Fund from cash balance.
To fund a PaymentIntent from the page for the individual payment, click the Fund from cash balance button.
In both cases, selecting the Fund from cash balance button prompts you to confirm the payment. This button doesn’t appear on either page if the customer doesn’t have any funds available on their cash balance.
In order to apply funds to an invoice, navigate to the Invoice page, click the Charge customer button, and then select Cash Balance as the payment method.
You can partially or fully fund an invoice using the Dashboard. This option allows you to pay a portion of the invoice, if the customer doesn’t have sufficient funds on their cash balance to fully pay the invoice.
In order to apply funds using the API:
The amount is optional. When omitted, the amount defaults to the remaining amount requested on the PaymentIntent.
The following code is an example of a full pass of manual reconciliation. You receive the cash_
webhook, find PaymentIntents that are awaiting funding, and use the funds available to reconcile the open PaymentIntents.
The object sent in the cash_
message always contains a representation of the customer’s full cash balance, regardless of the event triggering the webhook. This means that the cash balance might contain funds that were previously added to the customer’s cash balance, not just those added immediately before the triggering event.
Unreconciled cash balance funds
Sometimes funds in the customer balance remain unreconciled—for example, when a customer sends too much money and you haven’t created any more PaymentIntents or Invoices for that customer.
To reconcile outstanding funds in the customer cash balance, you can either create a new PaymentIntent or invoice to accept a payment, or return the funds to the customer.
Caution
You’re responsible for making sure that you reconcile customer cash balances promptly and accurately. Reconcile outstanding customer balances quickly, rather than leaving them in your account for an extended period.
Stripe periodically sends a reminder email when you have unreconciled balances in your account to make sure that you can review these unreconciled funds. If a customer balance remains unreconciled for 75 days, Stripe automatically attempts to return the funds to the customer’s bank account. When Stripe doesn’t have the customer’s account information, Stripe might reach out to the customer directly to initiate a refund of unreconciled funds. If Stripe is unable to determine the customer’s account information by the 90 day mark, we sweep the unreconciled funds to your Stripe account balance. Coordinate directly with the customer to make sure they receive the returned funds.
You can see the full list of customers who have unreconciled cash balances and the date that we’ll return them to the customer in your Dashboard.
Credit balance
Credit balance is handled differently from cash balance. Customer credit balance is an Invoices-only feature which represents liability between you and the customer. When an invoice is finalized, the customer’s credit balance is applied to the invoice, decreasing the amount due.
For more information on credit balances, see Customer Credit Balance.