---
title: "REST API · EenFactuurMaken.nl"
description: "Connect your own software to EenFactuurMaken.nl with REST API v1. Base URL, your first request, what you can do and where to find the full reference."
url: "https://eenfactuurmaken.nl/en/docs/api"
markdown_url: "https://eenfactuurmaken.nl/en/docs/api.md"
language: "en-GB"
---

# REST API

Connect your own software to EenFactuurMaken.nl with REST API v1. Base URL, your first request, what you can do and where to find the full reference.

With the REST API you create customers, products and invoices from your own software: your web shop, CRM, time tracking or a script. It's the same API the web app and the [MCP server](https://eenfactuurmaken.nl/en/docs/mcp) use, so almost everything you can do in the app, you can also do through the API. The API is included in every plan.

## Quick start

1. **Create an API key** under **Settings → API & AI**. See [API keys and apps](https://eenfactuurmaken.nl/en/docs/security/api-keys).
2. **Send it** in the `Authorization: Bearer efm_…` header.
3. **Make your first request**:

```bash
curl https://eenfactuurmaken.nl/api/v1/me \
  -H "Authorization: Bearer $EENFACTUURMAKEN_API_KEY"
```

You get back your account, your plan, its limits and your usage this month. If that works, you can do everything.

|  |  |
| --- | --- |
| Base URL | `https://eenfactuurmaken.nl/api/v1` |
| Format | JSON in, JSON out (PDF, UBL and ZIP as files) |
| OpenAPI 3.1 specification | `https://eenfactuurmaken.nl/api/v1/openapi.json` |
| Authentication | API key as a Bearer token or `X-API-Key` |

## What can you do with it?

| Area | Endpoints |
| --- | --- |
| Account | `GET /me` |
| Business details and logo | `GET`/`PATCH /business`, `PUT`/`GET`/`DELETE /business/logo` |
| Customers | list, create, get, update, archive; `GET /vat-check` (VIES) |
| Products | list, create, get, update, archive |
| Invoices | list, create (draft), update, delete, duplicate, issue, credit note, paid/unpaid, cancel, online link, next number, exchange rate |
| Sending | email an invoice, send a reminder, email log |
| Documents | PDF, UBL, compliance check, PDF preview |
| Reports | statistics and VAT per quarter, ZIP export |
| Layouts, recurring, email domains | templates (Pro), recurring invoices (Pro), custom sender domain (Pro) |

Every endpoint with its parameters, fields and examples is in the [endpoint reference](https://eenfactuurmaken.nl/en/docs/api/reference).

## Read on

- [Authentication](https://eenfactuurmaken.nl/en/docs/api/authentication): keys, headers and what a key can't do.
- [Formats and pagination](https://eenfactuurmaken.nl/en/docs/api/conventions): amounts in cents, dates, lists, filters and PATCH.
- [Errors and limits](https://eenfactuurmaken.nl/en/docs/api/errors): the error shape, all error codes and rate limits.
- [Examples](https://eenfactuurmaken.nl/en/docs/api/guides): complete recipes from draft to paid.
- [Endpoint reference](https://eenfactuurmaken.nl/en/docs/api/reference): every endpoint, generated from the OpenAPI specification.

Working with an AI assistant? Then the [MCP server](https://eenfactuurmaken.nl/en/docs/mcp) is often easier: you don't need any code.

> **Dutch rules in the API**
>
> The API applies the same rules as the app: [invoice checks](https://eenfactuurmaken.nl/en/docs/invoices/checks) when you issue, sequential [numbering](https://eenfactuurmaken.nl/en/docs/invoices/numbering), the right [VAT treatment](https://eenfactuurmaken.nl/en/docs/vat/treatments) and your [plan limits](https://eenfactuurmaken.nl/en/docs/billing/plans).

Last updated on 13 October 2026
