UsefulBox guide · diagnose a non-zero payout residual

Stripe Payout Does Not Match Xero: What to Check

Investigate a Stripe payout that does not match Xero by separating missing rows, date movement, fees, refunds, disputes, duplicates, and currency differences.

Treat the residual as a classification problem

A mismatch is not automatically an accounting error. It may be a missing export row, a transaction assigned to another payout, a date-period difference, a refund or dispute, a fee recorded separately, a duplicate identifier, or a genuine unexplained residual.

Start by proving that both sides cover the same currency, date range, and settlement population before changing entries in Xero.

Check the common mismatch classes

Work through the residual in a fixed order so one issue is not hidden by another.

  • Missing payout ID: group by available date and currency, then confirm whether the export spans the full settlement window.
  • Cross-period movement: compare transaction created date with available or payout date.
  • Fees: confirm whether the Stripe export provides a fee column, separate fee transactions, or both.
  • Refunds and disputes: check sign direction and whether they settled in the current or later payout.
  • Duplicates: inspect repeated transaction, payout, or order identifiers before summing values.
  • Currency: keep currencies separate; do not create a converted combined residual without an approved exchange-rate method.

What a review pack should show

A useful pack keeps the normalized ledger, payout bridge, unmatched items, cross-period transactions, data-quality warnings, and residuals together. That lets the reviewer trace every number back to a source row without the tool inventing missing data.

Build the review pack in your browser

Upload CSV or XLSX exports, confirm the field mappings, and export a normalized ledger, payout bridge, unmatched list, cross-period movements, and warnings.

Build a reconciliation pack