Customer Cash Balances & Wire Reconciliation
This is the reconciliation exception Adventive hits most often, and the reason this SOP exists. An inbound wire or ACH arrives short of the invoice total because SWIFT or intermediary-bank fees were deducted in transit. Stripe cannot match the deposited amount to any open invoice, so the funds sit unapplied in the customer’s cash balance and the invoice stays open. The standard fix is to issue a pre-payment credit note for the fee shortfall, which drops the invoice’s amount due to the deposited amount so Stripe can automatically reconcile.
What the customer cash balance is
Section titled “What the customer cash balance is”When a customer pays by bank transfer, ACH credit transfer or domestic/international wire, the funds do not attach directly to an invoice the way a card charge does. They first land in that customer’s cash balance: money Stripe is holding for the customer that has not yet been applied to a specific invoice. Stripe then attempts to reconcile the balance against the customer’s open invoices.
Stripe reconciles inbound bank transfers in a defined order:
- Reference (memo) match. If the transfer memo carries an invoice number, Stripe reconciles to that invoice: and a direct reference match bypasses the 30-day-overdue limit.
- Exact amount match. With no reference match, Stripe looks for the oldest
openinvoice whose amount exactly equals the amount received, and reconciles to it. Amount-based matching only considers invoices that are open or less than 30 days overdue. - No match → unapplied. If neither matches, the funds remain in the cash balance as unapplied, waiting for reconciliation.
With automatic reconciliation enabled on the account, Stripe performs steps 1 to 2 on its own and, on a match, applies the funds and marks the invoice paid. When it cannot match, the funds stay unapplied until an operator acts.
Why a wire lands unapplied at Adventive
Section titled “Why a wire lands unapplied at Adventive”The usual cause is fees taken in transit. On an international wire, the sending bank, one or more SWIFT / intermediary correspondent banks, and sometimes the receiving side each deduct a fee. The customer sends the full invoice amount, but Stripe receives that amount minus those fees. The deposited figure no longer equals any open invoice, so the exact-amount match in step 2 fails and the funds sit in the cash balance.
Note, This is a shortfall, not a customer underpayment The customer paid in full; the wire simply arrived light by the fee amount. The goal of the procedure below is to record the fee as a reduction of what’s collectible so the invoice reflects reality, not to chase the customer for the difference.
The reconciliation flow
Section titled “The reconciliation flow”Standard operating procedure
Section titled “Standard operating procedure”Perform this in the Dashboard, in live mode. The example figures ($10,000.00 invoice, $45.00 fee, $9,955.00 received) are illustrative; use the real numbers from the transfer.
Step 1, Confirm the funds and the shortfall. Open the customer from Customers, and view Cash balance on the customer detail. Confirm the deposited amount is present and unapplied. Note the exact amount received.
Step 2, Identify the target invoice and compute the fee.
Find the customer’s open invoice the transfer was meant to pay (match by the customer’s remittance advice or the wire memo/reference). The fee shortfall is:
fee shortfall = invoice amount due - amount receivedConfirm the shortfall equals plausible wire/SWIFT fees (typically a modest fixed amount). If the shortfall is large or does not look like a fee, stop and treat it as a genuine partial payment or misdirected wire, see Exceptions below.
Step 3, Issue a pre-payment credit note for the fee.
Open the target invoice, choose More → Issue a credit note. Add a single line item (or a custom amount) equal to the fee shortfall, in the example, $45.00. In the memo, record that this is a SWIFT / intermediary-bank wire fee and reference the wire (for example SWIFT/intermediary wire fee, ref wire 8842) so the reason is auditable later. Because the invoice is open, this pre-payment credit note reduces the invoice’s amount due; it records no payment itself.
Step 4, Let Stripe reconcile, then verify.
After the credit note posts, the invoice’s amount due equals the deposited cash balance. With automatic reconciliation enabled, Stripe applies the cash balance to the invoice and moves it to paid; the customer cash balance returns to zero. Confirm on the invoice detail that the status is paid, the credit note and the applied payment both appear, and the cash balance is cleared.
Note, If the invoice does not move to
paidIf the funds do not apply automatically within a few minutes, the account may be in manual reconciliation, or the received amount may still not match. Reconcile manually: on the invoice’s Payments section (or the customer cash balance view), apply the unapplied funds to the invoice. Verify the resulting amount due is$0.00. Do not re-issue the credit note.
Step 5, Confirm the downstream sync. Stripe emits events for the credit note and the payment; Acodei posts the corresponding entries to QuickBooks. No manual QuickBooks entry is required, but confirm the invoice reflects as paid downstream during the normal close. See Integration Overview for the sync path.
Worked example
Section titled “Worked example”| Field | Value |
|---|---|
| Invoice | INV-1042, open |
| Invoice amount due | $10,000.00 |
| Wire received (after fees) | $9,955.00 |
| Fee shortfall | $45.00 |
| Action | Pre-payment credit note on INV-1042 for $45.00, memo “SWIFT/intermediary wire fee, ref wire 8842” |
| Result | Amount due → $9,955.00 → cash balance auto-applied → INV-1042 paid, cash balance $0.00 |
Exceptions and cautions
Section titled “Exceptions and cautions”Critical, Match the credit note to the fee, nothing more The credit note amount must equal the fee shortfall exactly. Over-crediting writes off revenue the customer actually paid; under-crediting leaves a residual amount due and the invoice will not reconcile. Recompute
invoice amount due − amount receivedbefore issuing.
- The shortfall is not a fee. If the difference is large, a round number, or otherwise does not resemble bank fees, the customer likely underpaid or the wire was misapplied. Do not paper over it with a credit note: investigate the payment and, if needed, apply the partial funds and leave the balance due.
- Multiple open invoices. If the customer has several open invoices, confirm which one the wire was intended for (memo/reference or remittance advice) before crediting. Crediting the wrong invoice creates two problems to unwind.
- Invoice more than 30 days overdue with no memo reference. Stripe’s amount-based auto-match ignores invoices over 30 days overdue, so even after the credit note it may not auto-apply. Reconcile manually (apply the cash balance to the invoice): a memo reference match would have bypassed this, so encourage customers to include the invoice number on wires.
- Never void a partially funded invoice. Voiding to “clean up” a short-paid invoice orphans the cash balance and loses the audit trail. Use the credit note path so the invoice, the credit, and the applied payment all reconcile and sync downstream.
- Always work in live mode. Confirm the test-mode toggle is off before issuing any credit note.
Authoritative Stripe references
Section titled “Authoritative Stripe references”- Bank transfer reconciliation: https://docs.stripe.com/invoicing/bank-transfer
- Automatic reconciliation: https://docs.stripe.com/invoicing/automatic-reconciliation
- Customer cash balance / invoice balance: https://docs.stripe.com/billing/customer/balance
- Issue credit notes: https://docs.stripe.com/invoicing/dashboard/credit-notes
- Payment application (apply / unapply): https://docs.stripe.com/invoicing/apply-payments