Aged Receivables Management in Odoo#
Collecting overdue receivables requires systematic prioritization and consistent follow-up. Odoo combines aged receivables reporting with automated payment reminders and activity scheduling to keep collections organized.
Aged Receivables Report#
Accounting → Reporting → Aged Receivable:
| Customer | Current | 1-30 days | 31-60 days | 61-90 days | 90+ days | Total |
|---|---|---|---|---|---|---|
| Customer A | $10,000 | $5,000 | - | - | - | $15,000 |
| Customer B | - | - | $3,000 | $2,000 | $8,000 | $13,000 |
Customer B has $8,000 over 90 days - highest collection priority.
Payment Follow-Up Levels#
Accounting → Configuration → Follow-Up Levels:
Define escalating follow-up actions:
- Level 1 (1 day overdue): Automatic reminder email - "Your invoice is overdue"
- Level 2 (15 days overdue): Personalized email from account manager
- Level 3 (30 days overdue): Phone call activity assigned to collections rep
- Level 4 (60 days overdue): Legal notice / collections agency referral
Running Follow-Up Activities#
Accounting → Customers → Follow-Up:
- Lists all customers with overdue amounts
- Shows next follow-up action due for each customer
- Click Process Follow-Ups → Odoo:
- Sends emails automatically for Level 1 and 2
- Creates phone call activities for Level 3
- Attaches all overdue invoice PDFs to reminder emails
Dispute Management#
When a customer disputes an invoice:
- Open the invoice → Report Dispute
- Add dispute reason: "Incorrect pricing - customer paid $200 less"
- Invoice is flagged: appears in dispute report, excluded from overdue follow-up
- Assigned to AR specialist for resolution
- On resolution: credit note issued or invoice adjusted
Payment Plans#
For customers who can't pay in full:
- Accounting → Customers → [Customer] → Payment Plan
- Schedule agreed installments:
- 2027-10-01: $2,000
- 2027-11-01: $2,000
- 2027-12-01: $2,000
- Follow-up reminders adjust to match the payment plan dates - no follow-up while customer is on track
Bad Debt Provision#
When receivables become uncollectable:
Accounting → Accounting → Journal Entries → New:
- Debit: Bad Debt Expense
- Credit: Allowance for Doubtful Accounts
When formally written off:
- Debit: Allowance for Doubtful Accounts
- Credit: Accounts Receivable (with the customer invoice as reconciliation)
DSO Tracking#
Days Sales Outstanding (DSO) = (Accounts Receivable / Revenue) × Days in Period
Track DSO monthly - rising DSO indicates deteriorating collections. Odoo doesn't calculate DSO natively, but the Aged Receivables export combined with revenue data gives the inputs.

