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

# Create e-Boekhouden invoices from a list

> Turn a list of clients, hours and rates into e-Boekhouden invoices on your template and term. Confirm each, from Claude Code, n8n or a script.

Source: https://cotlet.dev/integrations/e-boekhouden-api-mcp-server/create-invoices-from-a-list

At month end you have a spreadsheet of clients, hours and rates, and each line becomes an invoice you type into e-Boekhouden one at a time.

Cotlet does it in your own e-Boekhouden account with list\_relations, list\_invoice\_templates and create\_invoice, called by your AI agent, an n8n workflow or a script.

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

Hosted · nothing to install or maintain

## Can e-Boekhouden do this on its own?

e-Boekhouden offers recurring invoices for subscriptions and fixed clients, and an API with POST /v1/invoice that creates and emails an invoice (checked 14 Oct 2026). The API needs your own code and a token from your account settings; there is no MCP server.

## How you do it in e-Boekhouden today

1. Open or add the relation for the client: for a business e-Boekhouden looks it up by company name or Chamber of Commerce (KvK) number and fills in the details.
2. Create the invoice for that relation, pick one of your invoice templates (logo and standard texts) and choose the payment term.
3. Add the invoice lines with description, quantity, price excluding VAT and VAT rate, then check the total.
4. Send the invoice by email, or print it, and e-Boekhouden links it to your bookkeeping automatically.
5. Repeat for every client on the list. Recurring invoices repeat a set-up invoice each period; a month with different hours per client is built invoice by invoice.

## How to create e-Boekhouden invoices from a list

Prompt

```
Create an October 2026 invoice for each client on this list with the hours and rate next to their name. Use my standard template, 14 days payment term, 21% VAT. Show me the totals before sending.
```

1. 01  
### Match every name to a relation  
Each client on your list is looked up with list\_relations by name. A name with two matches or none is put on a "needs you" list, so no invoice goes to the wrong company.
2. 02  
### Pick the template once  
list\_invoice\_templates gives the template IDs. The agent reuses the one you named in the prompt for the whole run and stops if none matches.
3. 03  
### Build lines from your numbers  
Hours times rate become one line per client with the VAT code you gave. The agent adds the lines up itself and shows the net, VAT and total per client before it creates anything.
4. 04  
### Create after your OK  
create\_invoice runs one call per client, so a failure on client 7 leaves clients 1 to 6 intact. Each call waits for your OK by default.
5. 05  
### Report the numbers  
The agent returns the invoice number and total per client, plus the clients it skipped and why, so you can compare the sum with your spreadsheet.

### What you get back

Example data

```
Clients on the list: 9
Created 8 invoices, total EUR 9,418.50 incl. VAT
- 2026-0143 Studio Noord BV: EUR 1,028.50
- 2026-0144 De Vries Advies: EUR 726.00
Skipped 1 for you: "Jansen" matches 2 relations (Jansen Installatie, Jansen Tuinen)
```

### Other ways to ask

- Create the invoices but do not email them; I will send them from e-Boekhouden.
- Use the product "Consulting hour" from my product list for every line and take the rate from there.
- Every first working day of the month, invoice last month's hours from this sheet and email me the totals.
- Invoice these five clients including VAT, at 9% on the training line and 21% on the rest.

## What e-Boekhouden allows, and what to know first

- An e-Boekhouden invoice needs a relation, a payment term, an invoice template and at least one line.
- The invoice number can be left empty and e-Boekhouden assigns the next one; a number you give must end with a digit.
- Amounts on the invoice can be given including or excluding VAT, and a line can carry a fixed discount or a percentage, not both.
- If an email is passed with the invoice, e-Boekhouden mails it to the relation straight away, so it reaches your client as soon as the call runs.
- The API has no endpoint to edit or delete an invoice, so a mistake is corrected inside e-Boekhouden.

create\_invoice asks for your OK by default. To run it on a schedule without you, switch confirmation off for that tool in your dashboard.

Sources: [e-Boekhouden: Facturatie](https://www.e-boekhouden.nl/functies/facturatie) · [e-Boekhouden: Relatiebeheer](https://www.e-boekhouden.nl/functies/relatiebeheer) · [e-Boekhouden API reference (OpenAPI)](https://api.e-boekhouden.nl/openapi/v1.json)

## Call create\_invoice from a script

curl

```
curl -X POST https://cotlet.dev/api/v1/e-boekhouden/relations/1042/invoices \
  -H "Authorization: Bearer $COTLET_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{"template_id":3,"term_of_payment":14,"in_ex_vat":"EX","items":[{"description":"Consulting October 2026","quantity":10,"price_per_unit":85,"vat_code":"HOOG_VERK_21","ledger_id":8000}]}'
```

Example response

```
{
"invoice_id": 9021,
"invoice_number": "2026-0143",
"date": "2026-10-12",
"relation_id": 1042,
"total_excl_vat": 850,
"vat": 178.5,
"total_incl_vat": 1028.5,
"emailed": false
}
```

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

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

## e-Boekhouden tools this automation uses

__Cotlet e-Boekhouden tools used to create e-Boekhouden invoices from a list__
| Tool | Parameters |
| ------------------------ | ---------------------------------------------------------------------------------------------------------------------- |
| list\_relations | name, email, code, city, type, limit, offset |
| list\_invoice\_templates | none |
| create\_invoice | relation\_id, term\_of\_payment, template\_id, items, in\_ex\_vat, date, invoice\_number, reference, text, send\_email |

[All 14 e-Boekhouden tools with descriptions](https://cotlet.dev/integrations/e-boekhouden-api-mcp-server.md#tools)

## Frequently asked questions

### Does the agent send the invoice to my client?

Only if you ask for it in the prompt. Without an email, the invoice is created in e-Boekhouden and you send it yourself. Every create\_invoice call waits for your OK by default.

### Is it safe to connect e-Boekhouden to Cotlet?

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

- [Record e-Boekhouden invoice payments from a list](https://cotlet.dev/integrations/e-boekhouden-api-mcp-server/record-invoice-payments.md)
- [e-Boekhouden API and MCP server: every tool](https://cotlet.dev/integrations/e-boekhouden-api-mcp-server.md)
- [All use cases](https://cotlet.dev/use-cases.md)

## Give your agent access to e-Boekhouden.

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

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

---

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.
