---
title: "All tools · EenFactuurMaken.nl"
description: "Every tool of the EenFactuurMaken.nl MCP server with what it does, an example request and example arguments, plus the resources and the built-in prompts."
url: "https://eenfactuurmaken.nl/en/docs/mcp/tools"
markdown_url: "https://eenfactuurmaken.nl/en/docs/mcp/tools.md"
language: "en-GB"
---

# All tools

Every tool of the EenFactuurMaken.nl MCP server with what it does, an example request and example arguments, plus the resources and the built-in prompts.

Your assistant picks the right tool itself. You don't need to know the names, but it helps to know what's possible. Each tool shows whether it only reads, changes something or sends something; AI apps usually ask for your confirmation before changing or sending.

Give amounts in **euros** with `unitPrice` (for example `85` or `"85.50"`), or in cents with `unitPriceCents`. Prices are always **excluding VAT**.

## Account and business

| Tool | Type | What it does |
| --- | --- | --- |
| `get_account` | Read | Your plan, its limits and how many invoices you have left this month. |
| `get_business_profile` | Read | Your business details, numbering and defaults, plus what's still missing for a valid invoice. |
| `update_business_profile` | Change | Update business details, numbering, defaults and house style. Not: IBAN, BIC, account holder name, reply-to address and payment link (those only work in the web app). |

Example: _"Set my KvK number to 12345678 and my VAT ID to NL001234567B01."_

```json
{ "kvkNumber": "12345678", "vatNumber": "NL001234567B01" }
```

## Customers and products

| Tool | Type | What it does |
| --- | --- | --- |
| `list_customers` | Read | Search customers by name, email, KvK or VAT number. |
| `get_customer` | Read | One customer with all details. |
| `create_customer` | Change | Add a customer. For Dutch businesses with a KvK number, for reverse charge and EU customers with a VAT number. |
| `update_customer` | Change | Update a customer. `archived: true` archives, `false` restores. |
| `list_products` | Read | Search products and services. |
| `create_product` | Change | A product or service with a price (excl. VAT), unit and VAT rate. |

Example: _"Add Muster GmbH from Berlin, VAT number DE123456789."_

```json
{ "type": "business", "name": "Muster GmbH", "city": "Berlin", "country": "DE", "vatNumber": "DE123456789" }
```

## Invoices

| Tool | Type | What it does |
| --- | --- | --- |
| `list_invoices` | Read | Search invoices by status (including `open` and `overdue`), kind, customer, text or period. |
| `get_invoice` | Read | An invoice with lines, totals, VAT per rate and (for a draft) the checks. |
| `create_invoice` | Change | Create a **draft**, for an existing customer (`customerId`) or a new one (`customer`). Nothing is numbered or sent. |
| `update_invoice` | Change | Update a draft. `lines` replaces all lines. |
| `duplicate_invoice` | Change | Copy an invoice into a new draft dated today. Counts towards your monthly limit. |
| `issue_invoice` | Finalise | Check, number and lock it. Can't be undone. |
| `create_credit_note` | Finalise (optional) | A credit note for a finalised invoice: in full, or partially with `lines`. With `issue: true` it's finalised straight away. |
| `mark_invoice_paid` | Change | Mark an invoice as paid (today by default). |
| `check_invoice_compliance` | Read | Check whether an invoice meets the Dutch requirements. |
| `get_next_invoice_number` | Read | The number the next invoice and credit note will get. Nothing is reserved. |

Example: _"Create an invoice for Bakkerij De Gouden Korst: 12 hours of web design at €85 and hosting for €120."_

```json
{
  "customerId": "…",
  "lines": [
    { "description": "Web design", "quantity": 12, "unit": "HUR", "unitPrice": 85 },
    { "description": "Hosting (year)", "unitPrice": 120 }
  ]
}
```

Example: _"Credit €200 of invoice 2026-0012."_ (`create_credit_note`)

```json
{
  "id": "…",
  "lines": [ { "description": "Discount on invoice 2026-0012", "unitPrice": 200, "vatRate": 21 } ]
}
```

All invoice fields of the [REST API](https://eenfactuurmaken.nl/en/docs/api/conventions#invoice-object) work here too, like `vatTreatment`, `supplyType`, `supplyDate`, `currency`, `locale`, `reference`, `buyerReference`, `notes`, `paymentLink` and (Pro) `layoutId`.

## Sending

| Tool | Type | What it does |
| --- | --- | --- |
| `send_invoice` | Send | Email a finalised invoice or credit note with the PDF (and UBL). To the customer's address by default. |
| `send_payment_reminder` | Send | Send a payment reminder now for an outstanding invoice. |

On Free the same rules apply as in the app: only to your customer or yourself. See [Sending by email](https://eenfactuurmaken.nl/en/docs/invoices/sending#free-recipients).

## Documents and figures

| Tool | Type | What it does |
| --- | --- | --- |
| `get_invoice_download_links` | Read | Temporary links (15 minutes by default, `ttlMinutes` 1 to 60) for the PDF and UBL. They work without signing in. For finalised invoices it also returns the `publicUrl` of the online invoice. |
| `get_stats` | Read | Outstanding, overdue, paid, turnover this year, your monthly limit and VAT per quarter per box. With `quarter` (and `year`) for another quarter. |
| `list_recurring_invoices` | Read | Your recurring invoices (Pro). |

Example: _"How much VAT do I owe for the third quarter?"_ (`get_stats`)

```json
{ "year": 2026, "quarter": 3 }
```

## Resources

Every invoice is also available as the resource `invoice://{id}` (JSON, the same shape as the API). Apps that support resources show your latest 50 invoices and can add one to the conversation as context.

## Prompts

Ready-made tasks your app can show as shortcuts (in Claude, for example, through the `+` or `/` menu):

| Prompt | Arguments | What it does |
| --- | --- | --- |
| `create-invoice` | `customer`, `work`, `language` | Create a correct invoice step by step: check your business details, find or create the customer, lines, VAT, checks, and after your approval issue and send it. |
| `monthly-overview` | `month` (YYYY-MM), `language` | A monthly overview: invoiced, paid, outstanding and overdue, plus the VAT for the quarter. |
| `chase-overdue-invoices` | `language` | Find overdue invoices and send reminders after your approval. |

`language` is `nl` (default) or `en`. You'll find more ready-made requests in the [prompt library](https://eenfactuurmaken.nl/en/docs/prompts).

## Errors

If something goes wrong, your assistant gets a clear error with a tip, for example which details are missing for a valid invoice, or a link to your subscription for a Pro feature. The codes are the same as for the [REST API](https://eenfactuurmaken.nl/en/docs/api/errors#codes).

Last updated on 13 October 2026
