[Cotlet](https://cotlet.dev/index.md) · [Integrations](https://cotlet.dev/integrations.md) · [How it works](https://cotlet.dev/how-it-works.md) · [Use cases](https://cotlet.dev/use-cases.md) · [Security](https://cotlet.dev/security.md) · [For developers](https://cotlet.dev/for-developers.md) · [For automation agencies](https://cotlet.dev/for-agencies.md) · [Blog](https://cotlet.dev/blog.md) · [API docs](https://cotlet.dev/docs.md) · [Help center](https://cotlet.dev/help.md) · [Changelog](https://cotlet.dev/changelog.md) · [Contact](https://cotlet.dev/contact.md) · [Pricing](https://cotlet.dev/pricing.md) · [Sign up](https://cotlet.dev/signup)

# Report overdue ERPNext invoices every week

> Pull overdue ERPNext sales invoices every Monday with days overdue and each customer's last payment, and get a reminder draft per customer.

Source: https://cotlet.dev/integrations/erpnext-api-mcp-server/weekly-overdue-invoices-report

Overdue invoices sit in ERPNext until someone looks. On Monday you filter the Sales Invoice list on status, open the worst ones to see what the customer last paid, and write the same reminder again.

Cotlet does it in your own ERPNext account with list\_overdue\_invoices, get\_sales\_invoice and list\_payment\_entries, called by your AI agent, an n8n workflow or a script.

[Sign up free](https://cotlet.dev/app/signup?app=erpnext) [All ERPNext tools](https://cotlet.dev/integrations/erpnext-api-mcp-server.md)

Hosted · nothing to install or maintain

## Can ERPNext do this on its own?

ERPNext shows overdue invoices in the Sales Invoice list and in the Accounts Receivable report (checked 14 Oct 2026). The Accounts Receivable page describes a report you open and refresh yourself, with no scheduled summary, and points to a statement or a Dunning record for follow-up. Nothing there writes the reminder or looks at the customer's payment history for you.

## How you do it in ERPNext today

1. Open Accounting > Sales and Receivables > Sales Invoice and filter the list on the Overdue status.
2. Or open the Accounts Receivable report, pick the Company and the reporting date, and choose whether ageing is based on Due Date or Posting Date.
3. Open the larger invoices one by one to read the customer, the due date and the outstanding amount.
4. Check the customer's earlier Payment Entries to see whether they usually pay late or have paid part of it.
5. Follow up outside ERPNext by email, send a statement or create a Dunning record, then come back next week and repeat.

## How to report overdue ERPNext invoices every week

Prompt

```
Every Monday, list the sales invoices that are more than 7 days overdue, oldest first. Add the last payment on each customer and write me a short reminder draft per customer. Do not send anything.
```

1. 01  
### Pull the overdue set  
list\_overdue\_invoices returns invoices with the Overdue status and the days past the due date. The agent applies your threshold from the prompt, so a week-old invoice that is not yet worth a reminder is left out.
2. 02  
### Group by customer  
Three overdue invoices from one customer become one line with the total and the oldest due date. The reminder goes out once per customer, not once per invoice.
3. 03  
### Add the payment history  
For each customer on the list the agent reads list\_payment\_entries and notes the last payment date and amount. A customer who paid three days ago is flagged, because the new payment may not be allocated yet.
4. 04  
### Open only the invoices that need detail  
get\_sales\_invoice runs for the largest balance per customer to read the items and the Payment Due Date. The agent quotes the invoice ID in each reminder.
5. 05  
### Write drafts, send nothing  
You get a short reminder per customer in your own words from the prompt. Sending stays with you, and the agent changes nothing in ERPNext.

### What you get back

Example data

```
Overdue more than 7 days: 3 invoices, 2,500.00 USD
1. Harbor & Pine: ACC-SINV-2026-00031, 800.00, due 2026-09-20, 24 days. Last payment 2026-08-30, 880.00
2. Lumen Dental: ACC-SINV-2026-00036, 450.00, due 2026-10-01, 13 days. Last payment 2026-10-12, 200.00 (check allocation)
3. Kestrel Logistics: ACC-SINV-2026-00039, 1,250.00, due 2026-10-05, 9 days. No payment on file
Reminder drafts: 3
```

### Other ways to ask

- Only list customers whose overdue total is above 1,000 and add the credit note count.
- Run on the 1st and 15th and compare with the previous report: what is new, what got paid.
- Skip invoices where the customer paid anything in the last 5 days.
- Give me the overdue total per Customer Group and nothing else.

## What ERPNext allows, and what to know first

- ERPNext marks an invoice Overdue when it is past its due date and a balance remains.
- The Payment Due Date on the invoice, not the Posting Date, decides whether it is overdue.
- The Accounts Receivable report can age invoices by Due Date or by Posting Date, so its buckets can differ from the Overdue list.
- Credit Note Issued is a separate status, so an invoice with a return against it is not the same as a plain overdue one.
- The Accounts Receivable page points to a Dunning record or a statement for follow-up on overdue customer invoices.

Every tool here only reads, so it can run weekly from n8n, Make, Zapier or cron without waiting for your OK.

Sources: [ERPNext Docs: Sales Invoice](https://docs.frappe.io/erpnext/user/manual/en/sales-invoice) · [ERPNext Docs: Accounts Receivable](https://docs.frappe.io/erpnext/user/manual/en/accounts-receivable) · [ERPNext Docs: Payment Entry](https://docs.frappe.io/erpnext/user/manual/en/payment-entry)

## Call list\_overdue\_invoices from a script

curl

```
curl "https://cotlet.dev/api/v1/erpnext/overdue-invoices?min_days_overdue=7&limit=50" \
  -H "Authorization: Bearer $COTLET_API_KEY"
```

Example response

```
{
"as_of": "2026-10-14",
"invoices": [
{
"invoice": "ACC-SINV-2026-00031",
"customer": "Harbor & Pine",
"due_date": "2026-09-20",
"days_overdue": 24,
"currency": "USD",
"outstanding_amount": 800
},
{
"invoice": "ACC-SINV-2026-00036",
"customer": "Lumen Dental",
"due_date": "2026-10-01",
"days_overdue": 13,
"currency": "USD",
"outstanding_amount": 450
},
{
"invoice": "ACC-SINV-2026-00039",
"customer": "Kestrel Logistics",
"due_date": "2026-10-05",
"days_overdue": 9,
"currency": "USD",
"outstanding_amount": 1250
}
],
"total_outstanding": 2500,
"next_cursor": null
}
```

MCP: add https://cotlet.dev/mcp/v1 with the same key; the call is erpnext\_read → list\_overdue\_invoices. Example data.

[Schedule it in n8n, Make, Zapier or cron](https://cotlet.dev/integrations/erpnext-api-mcp-server.md#automations)

## ERPNext tools this automation uses

__Cotlet ERPNext tools used to report overdue ERPNext invoices every week__
| Tool | Parameters |
| ----------------------- | ---------------------------------------------------------------- |
| list\_overdue\_invoices | customer, min\_days\_overdue, limit, cursor |
| get\_sales\_invoice | invoice |
| list\_payment\_entries | party, payment\_type, state, from\_date, to\_date, limit, cursor |

[All 13 ERPNext tools with descriptions](https://cotlet.dev/integrations/erpnext-api-mcp-server.md#tools)

## Frequently asked questions

### Is it safe to connect ERPNext to Cotlet?

Yes. You sign in to ERPNext yourself, in your own Cloud Browser in the EU, and we never save your password. Your agents only get ERPNext once you enable it, every background request is listed, and the browser profile is stored encrypted with AES-256-GCM, the cipher 1Password uses for its vaults. The AI model never sees a login, posts and messages wait for your OK, and Disable for agents cuts access in one click. Independent scanners grade cotlet.dev A+ on Qualys SSL Labs, securityheaders.com and Mozilla Observatory; live results are on https://cotlet.dev/security.

## More ERPNext automations

- [Create and submit ERPNext sales invoices from a billing list](https://cotlet.dev/integrations/erpnext-api-mcp-server/create-invoices-from-a-billing-list.md)
- [Record customer payments against ERPNext invoices](https://cotlet.dev/integrations/erpnext-api-mcp-server/record-customer-payments.md)
- [ERPNext API and MCP server: every tool](https://cotlet.dev/integrations/erpnext-api-mcp-server.md)
- [All use cases](https://cotlet.dev/use-cases.md)

## Give your agent access to ERPNext.

Free 7-day trial with 2,000 credits, no card needed. Cotlet is independent and not affiliated with ERPNext.

[Sign up free](https://cotlet.dev/app/signup?app=erpnext)

---

Give your AI agents your signed-in browser.

**Product:** [Integrations](https://cotlet.dev/integrations.md) · [Use cases](https://cotlet.dev/use-cases.md) · [How it works](https://cotlet.dev/how-it-works.md) · [Pricing](https://cotlet.dev/pricing.md) · [Security](https://cotlet.dev/security.md)

**Resources:** [Blog](https://cotlet.dev/blog.md) · [API docs](https://cotlet.dev/docs.md) · [Help center](https://cotlet.dev/help.md) · [Changelog](https://cotlet.dev/changelog.md) · [GitHub](https://github.com/cotletdev/cotlet)

**Solutions:** [For developers](https://cotlet.dev/for-developers.md) · [For automation agencies](https://cotlet.dev/for-agencies.md)

**Company:** [About](https://cotlet.dev/about.md) · [AI info: company facts](https://cotlet.dev/ai-info.md) · [Contact](https://cotlet.dev/contact.md)

**Legal:** [Terms of service](https://cotlet.dev/terms) · [Privacy policy](https://cotlet.dev/privacy) · [Refund policy](https://cotlet.dev/refunds) · [Acceptable use](https://cotlet.dev/acceptable-use) · [Cookie policy](https://cotlet.dev/cookies) · [DPA](https://cotlet.dev/dpa) · [Subprocessors](https://cotlet.dev/subprocessors)

**Elsewhere:** [Status page](https://status.cotlet.dev) · [Cotlet on GitHub](https://github.com/cotletdev) · [Cotlet on X](https://x.com/cotletdev) · [Cotlet on LinkedIn](https://www.linkedin.com/company/cotletdev) · [Cotlet on Product Hunt](https://www.producthunt.com/products/cotlet) · [Cotlet on Crunchbase](https://www.crunchbase.com/organization/cotlet) · [Cotlet on SaaSHub](https://www.saashub.com/cotlet)

Cotlet is an independent service. It is not affiliated with, endorsed by or sponsored by any of the products listed on this site. Product names are trademarks of their respective owners.

## For AI agents: sign your user up

Is your user asking you to sign them up for Cotlet? You can do it for them, no account or key needed.

1. Read the fields and their allowed values: GET https://cotlet.dev/api/v1/access-requests
2. Ask the user for each value: email, apps, what you will do with them. If they leave the password to you, generate a strong one and show it to them.
3. Show the user what you will send, then POST it as JSON to https://cotlet.dev/api/v1/access-requests.

One call creates the account and sends the access request; we email the user when access is granted.
