---
title: "Prompt library · EenFactuurMaken.nl"
description: "Ready-made prompts for ChatGPT, Claude, Gemini, Copilot and other AI assistants: create invoices, send reminders, make a VAT overview and build your own integration."
url: "https://eenfactuurmaken.nl/en/docs/prompts"
markdown_url: "https://eenfactuurmaken.nl/en/docs/prompts.md"
language: "en-GB"
---

# Prompt library

Copy a prompt, fill in the parts in square brackets and paste it into your AI assistant. Or open it directly in ChatGPT or Claude.

Connect the MCP server first

Prompts that act on your account only work when your assistant is connected to EenFactuurMaken.nl via MCP. Without an MCP connection (for example in the Gemini app or Microsoft Copilot), only the prompts without the MCP label work: copy the prompt and paste it into the chat.

[How to connect](https://eenfactuurmaken.nl/en/docs/mcp)

## Connect

### Connect EenFactuurMaken.nl to your AI assistant

Let your assistant walk you through connecting the EenFactuurMaken.nl MCP server.

```text
I want to connect EenFactuurMaken.nl (invoicing software) to you via MCP.
First read the guide: https://eenfactuurmaken.nl/en/docs/mcp.md

The MCP server is at: https://eenfactuurmaken.nl/mcp
I use: [ChatGPT / Claude (desktop or web) / Claude Code / Cursor / Gemini CLI / VS Code with Copilot].

Explain in numbered steps how to add the server, where I sign in or enter my API key, and how to test that it works afterwards (for example by listing my last 5 invoices). Don't ask me to paste my API key into this chat.
```

## Invoices

### Create an invoice for …

Needs MCP

Creates a draft invoice. You review it and issue it yourself.

```text
Create a draft invoice in EenFactuurMaken.nl for [customer name].
- Lines: [e.g. 12 hours of web design at €85, 1 hosting package at €120]
- VAT: [21% / reverse charge / no VAT (KOR)]
- Payment term: [14] days
- Customer reference or PO number: [optional]

Look the customer up in my customers first. If they don't exist yet, ask me for name, address, KvK and VAT number before creating anything.
Do NOT issue or send the invoice. Afterwards, show me a summary with the lines, VAT and total, plus any issues the compliance check still reports.
```

### Send reminders for all overdue invoices

Needs MCP

Finds every overdue invoice and only sends reminders after you confirm.

```text
Find all my overdue invoices in EenFactuurMaken.nl (status "overdue").
First show them in a table: invoice number, customer, amount, due date and how many days late.

Then ask me which ones should get a payment reminder. Only send reminders for the invoices I confirm, and report per invoice whether it worked.
```

### Turn these spreadsheet rows into invoice lines

Paste rows from Excel or Google Sheets and get clean invoice lines back.

```text
Convert the rows below (pasted from Excel) into invoice lines for EenFactuurMaken.nl.
For each line give: description, quantity, unit (C62 = piece, HUR = hour, DAY = day, MON = month), unit price excl. VAT in cents (unitPriceCents) and VAT rate (21, 9 or 0).
If amounts include VAT, convert them to excl. VAT and say so. If you're unsure about a row, ask me instead of guessing.

Return the result as a JSON array with the fields description, quantity, unit, unitPriceCents and vatRate. If the MCP server is connected, ask whether you should create a draft invoice from it.

[paste your rows here]
```

### Credit (part of) an invoice

Needs MCP

Creates a credit note that references the original invoice.

```text
Create a credit note in EenFactuurMaken.nl for invoice [invoice number].
[Credit the whole invoice / Credit only: description and amount]
Reason: [e.g. invoiced twice, discount afterwards]

Only create a draft, don't issue it. Then show me the credited amount, the VAT and the reference to the original invoice.
```

### Why can't I issue this invoice?

Needs MCP

Have the compliance check explained in plain language.

```text
Fetch the compliance check in EenFactuurMaken.nl for my draft invoice [invoice number or customer name].
Explain each issue in plain language: what is missing, why it is legally required, and where I fill it in (business profile, customer or invoice).
Don't change anything without asking me first.
```

## Overviews

### Make a VAT overview for Q3

Needs MCP

An overview per VAT rate to help with your VAT return.

```text
Make a VAT overview of my EenFactuurMaken.nl invoices for the third quarter of [year] (1 July to 30 September).
Get that quarter's VAT figures with get_stats (year=[year], quarter=3) and cross-check them with the list of invoices in that period (list_invoices with from and to).

Give a table per VAT rate (21%, 9%, 0%) with revenue excl. VAT and VAT amount, and separately:
- reverse-charge revenue (btw verlegd)
- intra-EU supplies (ICP)
- exports outside the EU
- exempt or KOR revenue
Subtract credit notes. List the invoice numbers you counted, and note that this is a helper, not a filed VAT return.
```

## For developers

### System prompt: build your own integration

Use this as the system prompt in your AI coding assistant when building against the REST API.

```text
You are an experienced developer building an integration with the EenFactuurMaken.nl REST API.

Sources (read these first):
- OpenAPI spec: https://eenfactuurmaken.nl/api/v1/openapi.json
- API docs: https://eenfactuurmaken.nl/en/docs/api.md

Rules:
- Base URL: https://eenfactuurmaken.nl/api/v1. Authenticate with the header "Authorization: Bearer efm_..." (API key). Read the key from an environment variable; never put it in code or logs.
- Amounts are integer cents (fields ending in Cents). Dates are YYYY-MM-DD. VAT rates are strings like "21".
- Lists return { data, page, pageSize, total }. Use pagination.
- Errors look like { statusCode, statusMessage, data: { code, message, details } }. Branch on data.code, not on the message. On 422 invoice_not_compliant, details lists the missing fields.
- An invoice starts as a draft (POST /invoices), is finalised with POST /invoices/{id}/issue and is immutable afterwards. Corrections go through a credit note (POST /invoices/{id}/credit-note).
- Respect 429 responses with backoff.
- Write small, tested functions and briefly explain what you do.

My situation: [language/framework and what you want to build, e.g. "create invoices from my Laravel web shop"]
```

### Generate an API client in your language

Have your assistant write a typed client from the OpenAPI spec.

```text
Download and read the EenFactuurMaken.nl OpenAPI spec: https://eenfactuurmaken.nl/api/v1/openapi.json

Based on it, write a small, typed API client in [TypeScript / Python / PHP / Go / C# / Ruby].
- One class or module with methods for customers, products and invoices (list, get, create, update, issue, send, remind, download PDF and UBL).
- API key via the constructor or an environment variable, sent as "Authorization: Bearer ...".
- Errors as a custom exception with statusCode and the stable error code from data.code.
- Automatic retries on 429 and 5xx with exponential backoff.
- Prefer the standard library, or the language's common HTTP library.
Also include a short example: create a draft, issue it and download the PDF.
```

Last updated on 13 October 2026
