Skip to main content
Back to Reports

Aged Receivables Report

What every customer owes you as of a chosen date, aged into Current, 1-30, 31-60, 61-90 and Over 90 day bands. Built from your Xero data the same way Xero's own Aged Receivables report is, for all customers at once.

Parameters

ParameterRequiredDescription
OrganizationYesA single Xero organization. This report can't combine several organizations.
As of DateYesThe date balances are calculated at and aged from.
ViewNoSummary (default) gives one row per customer. Detail gives one row per outstanding invoice, credit note or overpayment.
Age byNoDue date (default) or Invoice date.
Include report date in current columnNoChecked by default, matching Xero's default. Saved with the report and reused on refresh.

Output

Summary view (default)

OrgID: Organization shortcode (auto-added)
OrgName: Organization name (auto-added)
Contact: Customer name
Current: Not yet due, or due on the as-of date
1-30: 1 to 30 days overdue
31-60: 31 to 60 days overdue
61-90: 61 to 90 days overdue
Over 90: More than 90 days overdue
Total: The customer's total across all bands

Detail view

Detail view adds five columns before the bands: Document type (Invoice, Credit note or Overpayment), Document number, Reference, Document date and Due date. Each item's amount sits in its band column and repeats in Total.

How amounts are valued

Foreign-currency items are converted to your organization's base currency at Xero's own exchange rate for the as-of date, the rate Xero prints under its own aged report. The rate on the original invoice is never used. Example: 1,000 EUR at Xero's 31 August 2026 rate of 0.861418 comes to 1,000 ÷ 0.861418 = 1,160.88 USD.

Tips

  • Balances follow your Xero ledger as it is today, calculated back to the as-of date, like Xero's own aged reports. An invoice paid or voided since then shows its current state.
  • A negative row is a remaining credit note or overpayment balance, or an early payment on an invoice that isn't due yet.
  • Unallocated prepayments don't get their own row (matching Xero). They only show through the invoices they've been applied to.
  • If nothing was outstanding, you'll see a message and no table is created.
  • If XO Report can't confirm the figures against Xero, nothing is written and any existing table is left as it was.
  • Refresh and Refresh All re-run the report with its saved settings.
  • There's no contact filter. For one customer's invoices, use Aged Receivables by Contact.
  • Cash Basis is not applicable for aged reports.
  • Excel add-in only. Not currently available in the Google Sheets add-on.

Related