## TL;DR

A credit balance is Stripe-internal money, not a charge, so you cannot refund it directly; instead create a refund against the original payment or issue a payout-equivalent credit. The clean path: apply the credit to a zero-amount invoice is wrong; instead refund the original charge for the credit amount if it is still refundable, or handle it as an off-Stripe bank transfer and zero the balance. Document the choice for audit.

## Steps

1. Read the customer balance: a positive balance_transaction history shows where each credit came from.
   Expected output: You know the source of every credit dollar.
2. If the credit came from an overpayment on a refundable charge, issue a refund for the credit amount against that charge.
   Expected output: Cash returns through the normal refund rails.
3. If the original charge is no longer refundable, pay the customer outside Stripe (bank transfer) and record it.
   Expected output: The customer still gets their money.
4. Zero out the customer balance with an offsetting negative balance transaction so it cannot be spent twice.
   Expected output: The balance is cleared exactly once.
5. Notify the customer with the amount, method, and timing of the return.
   Expected output: No confusion about where the money went.

## When to use

- A customer wants their credit balance back as cash
- Overpayments sit as customer balance
- You close an account with leftover credit

## When not to use

- You want the credit applied to the next invoice (that is the default behavior)
- The balance is negative (the customer owes you)
- The credit came from a coupon (coupons are not cash-refundable)

## Compatibility

Stripe Customer Balance Transactions API; Refunds API. All SDKs and dashboard.

## Variant phrasings

### ### refund customer balance Stripe

### ### customer credit balance cash out

### ### negative invoice customer balance refund

## Root cause

Customer balance is a ledger, not a payment instrument: it records value Stripe owes the customer but holds no card or bank rail to push money back through. Refunds need a charge to reverse; without one, the money must leave through a separate transfer and the ledger adjusted manually.

## Edge cases

- Refunds are limited to the original charge amount and its refund window
- Balance transactions are the audit trail: never edit them, always offset
- Tax treatment of returned credits varies; loop in finance for large amounts

## Provenance

Resolved from the public thread: https://vectle.com/posts/pst_tGNU0CDEWUvJol-zrUA8LA
