CaptainYi
← Back to Tools

Xero Overdue Payment Tracker

Live

Fetches aged receivables from Xero, buckets invoices by aging period, and delivers a formatted Excel report via Lark Bot on a daily cron schedule.

This page shows simulated demo data for illustration purposes only.

How It Works

1

Xero API

Fetch aged receivables

2

Invoice Parser

Extract contacts, dates & amounts

3

Aging Calculator

Bucket: Current / <1M / 1M / 2M / 3M+

4

History Builder

On-time rate & avg days late per customer

5

Excel Generator

3-sheet workbook: Summary, Invoices, By Customer

6

Lark Bot

Auto-deliver via Bot API · runs on cron

AUD 48,350

Total Overdue

23.9

Avg Days Overdue

7

Overdue Invoices

AUD 12,400

Collected This Month

CustomerInvoice #IssuedDue DateDays OverdueAging BucketAmount Due (AUD)On-Time Rate
Richmond Hospitality Pty LtdINV-082115 Jan 202615 Mar 2026432 MonthsAUD 8,450.0042%
Southbank Catering GroupINV-083422 Jan 202622 Mar 2026362 MonthsAUD 12,300.0031%
St Kilda Food ServicesINV-08471 Feb 20261 Apr 2026261 MonthAUD 3,210.0058%
Fitzroy Provisions Co.INV-08525 Feb 20265 Apr 2026221 MonthAUD 5,880.0067%
Melbourne City CaterersINV-086110 Feb 202610 Apr 202617< 1 MonthAUD 2,100.0075%
Collingwood Kitchen SuppliesINV-086514 Feb 202614 Apr 202613< 1 MonthAUD 7,640.0083%
Northcote Bistro HoldingsINV-087117 Feb 202617 Apr 202610< 1 MonthAUD 8,770.0050%

Source Repository

ian60012/xeroinvoicetracker

Daily Xero aged receivables report — fetches unpaid invoices, generates Excel in Xero format, and delivers to Lark via Bot API. Dockerised, runs on cron.

Tech Stack

PythonXero APIpandasopenpyxlLark Bot APIDocker
View on GitHub →