[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)

# Chase unpaid Holded invoices with a reminder

> List overdue Holded invoices every week, group them by client and send one reminder per client with the invoice numbers, after your OK.

Source: https://cotlet.dev/integrations/holded-api-mcp-server/chase-unpaid-invoices

Every Monday someone opens the invoice list, works out which clients are late and writes to them one by one.

Cotlet does it in your own Holded account with list\_invoices, get\_contact and send\_invoice, called by your AI agent, an n8n workflow or a script.

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

Hosted · nothing to install or maintain

## Can Holded do this on its own?

Holded has built-in invoice reminders through a free Gem, with conditions and a schedule relative to the due date (checked 14 Oct 2026). Each message is sent once, and reminders are not sent for invoices with multiple due dates. Zapier has no action to list unpaid invoices, and Holded has no official MCP server.

## How you do it in Holded today

1. In Holded you open Sales > Invoices and scan the list for invoices that are pending or overdue.
2. For each late invoice you open the contact to find the email address that should get a reminder.
3. You open the invoice, click Submit, check the recipient, edit the message and click Send, or you set up reminders in the Sales menu.
4. Holded's own reminders need the free Gem from the Holded store, then Sales > three-dot menu > Reminders > Create your first reminder.
5. Reminders are set by conditions such as amount, tags and language, and each message goes out once.
6. Anything that needs a personal tone, or a second reminder, is written by hand.

## How to chase unpaid Holded invoices with a reminder

Prompt

```
Every Monday, list the Holded invoices that are overdue, group them by client and email each client one polite reminder that names the invoices. Skip clients I tagged as paying by transfer on the 30th.
```

1. 01  
### Read what is overdue  
list\_invoices runs with status unpaid and due\_before set to today, so only invoices past their due date are in the batch, oldest first.
2. 02  
### Group by client  
The agent groups invoices per contact, so a client with three late invoices gets one message, with a table of numbers, amounts and due dates, not three emails.
3. 03  
### Check who to leave alone  
get\_contact gives the email and the tags. Clients you excluded in the prompt are skipped, and a client without an email address is listed for you.
4. 04  
### Check the invoice again before sending  
Right before sending, the agent reads the invoice and skips it if a payment was recorded in the meantime, so nobody gets a reminder for something just paid.
5. 05  
### Send one reminder per client  
send\_invoice emails the oldest late invoice with your reminder text, which carries the link to the customer portal where the client sees the others. Each send asks for your OK by default.

### What you get back

Example data

```
Overdue invoices: 6 from 4 clients
Reminders sent: 3
- Northwind Studio: 2 invoices, 1,210.00 total, oldest due 2026-09-30
- Lumen Dental: 1 invoice, 580.80, due 2026-10-05
Skipped: Riverside Cafe (tagged transfer on the 30th)
Needs you: Kappa Works has no email on the contact
```

### Other ways to ask

- Every Monday, send only the clients whose oldest invoice is more than 14 days overdue.
- List overdue invoices by total amount and send nothing.
- Send a firmer second reminder to clients I already emailed last week and who still have not paid.
- Tell me which clients have invoices due in the next 7 days, without emailing anyone.

## What Holded allows, and what to know first

- Holded reminders need the free Gem from the Holded store before the Reminders option works.
- Holded reminders go out once per message, and they are not sent for invoices with multiple due dates.
- Holded reminders can be sent for invoices that are pending or overdue, and contacts set to get CC emails receive them too.
- A Holded invoice email contains a link to the invoice on the customer portal, which you can copy and share another way.
- Holded can send a document by email or by post, and the email uses the mailing template linked to the document unless you pick another.

send\_invoice asks for your OK by default. To run it weekly without you, switch confirmation off for that tool in your dashboard.

Sources: [Holded Help: How invoice reminders work](https://help.holded.com/en/articles/6984213-how-invoice-reminders-work) · [Holded Help: Send your invoices by email](https://help.holded.com/en/articles/6836216-send-your-invoices-by-email) · [Holded Help: Add payments to your invoices](https://help.holded.com/en/articles/6877350-add-payments-to-your-invoices)

## Call send\_invoice from a script

curl

```
curl -X POST https://cotlet.dev/api/v1/holded/invoices/inv_7d31 \
  -H "Authorization: Bearer $COTLET_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{"to":"accounts@northwind.example","method":"email","message":"Hello, invoice INV-0045 for 968.00 was due on 2026-10-14. You can open it in the customer portal using the link below. Please let us know when it is paid."}'
```

Example response

```
{
"invoice_id": "inv_7d31",
"number": "INV-0045",
"status": "sent",
"method": "email",
"to": "accounts@northwind.example",
"sent_at": "2026-10-14T09:15:00+02:00"
}
```

MCP: add https://cotlet.dev/mcp/v1 with the same key; the call is holded\_write → send\_invoice. Example data.

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

## Holded tools this automation uses

__Cotlet Holded tools used to chase unpaid Holded invoices with a reminder__
| Tool | Parameters |
| -------------- | -------------------------------------------------------------- |
| list\_invoices | status, contact\_id, issued\_since, due\_before, limit, cursor |
| get\_contact | contact\_id |
| send\_invoice | invoice\_id, to, method, message |

[All 12 Holded tools with descriptions](https://cotlet.dev/integrations/holded-api-mcp-server.md#tools)

## Frequently asked questions

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

Yes. You sign in to Holded yourself, in your own Cloud Browser in the EU, and we never save your password. Your agents only get Holded 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 Holded automations

- [Draft and send Holded invoices from a job list](https://cotlet.dev/integrations/holded-api-mcp-server/draft-and-send-invoices.md)
- [Record supplier bills in Holded as purchases](https://cotlet.dev/integrations/holded-api-mcp-server/record-supplier-bills.md)
- [Holded API and MCP server: every tool](https://cotlet.dev/integrations/holded-api-mcp-server.md)
- [All use cases](https://cotlet.dev/use-cases.md)

## Give your agent access to Holded.

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

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

---

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.
