---
title: "Voorbeelden · EenFactuurMaken.nl"
description: "Complete curl-voorbeelden voor de EenFactuurMaken.nl REST API. Een factuur maken, controleren, definitief maken, mailen, als betaald markeren, crediteren, herinneren en btw-cijfers ophalen."
url: "https://eenfactuurmaken.nl/docs/api/guides"
markdown_url: "https://eenfactuurmaken.nl/docs/api/guides.md"
language: "nl-NL"
---

# Voorbeelden

Complete curl-voorbeelden voor de EenFactuurMaken.nl REST API. Een factuur maken, controleren, definitief maken, mailen, als betaald markeren, crediteren, herinneren en btw-cijfers ophalen.

Alle voorbeelden gebruiken curl en [jq](https://jqlang.org). Zet eerst je sleutel in een variabele:

```bash
export EENFACTUURMAKEN_API_KEY=efm_jouw_sleutel
export API=https://eenfactuurmaken.nl/api/v1
```

## Factuur maken en versturen

### 1\. Een concept maken

Met een nieuwe klant erin (die wordt dan meteen aangemaakt). Gebruik `customerId` voor een bestaande klant.

```bash
INVOICE=$(curl -s -X POST "$API/invoices" \
  -H "Authorization: Bearer $EENFACTUURMAKEN_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "customer": {
      "type": "business",
      "name": "Bakkerij De Gouden Korst",
      "email": "administratie@goudenkorst.nl",
      "addressLine1": "Dorpsstraat 1",
      "postalCode": "1234 AB",
      "city": "Utrecht",
      "country": "NL",
      "kvkNumber": "12345678"
    },
    "reference": "Website 2026",
    "lines": [
      { "description": "Webdesign", "quantity": "12", "unit": "HUR", "unitPriceCents": 8500, "vatRate": "21" },
      { "description": "Hosting (jaar)", "quantity": "1", "unitPriceCents": 12000, "vatRate": "21" }
    ]
  }' | jq -r .id)
echo $INVOICE
```

Datums, betaaltermijn, taal en btw-behandeling komen van de klant en je instellingen. Het antwoord is het complete factuurobject, met `totalCents` (hier 137940) en `compliance`.

### 2\. Controleren

```bash
curl -s "$API/invoices/$INVOICE/compliance" \
  -H "Authorization: Bearer $EENFACTUURMAKEN_API_KEY" | jq '.[] | select(.level=="error")'
```

Geen uitvoer betekent: geen fouten. Zie [Factuurcontrole](https://eenfactuurmaken.nl/docs/invoices/checks) voor alle codes.

### 3\. Definitief maken

```bash
curl -s -X POST "$API/invoices/$INVOICE/issue" \
  -H "Authorization: Bearer $EENFACTUURMAKEN_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{}' | jq '{number, status, publicUrl}'
```

Je kunt `"number"` meegeven voor een eigen nummer, of `"issueDate"` voor een andere factuurdatum. Dit is onomkeerbaar.

### 4\. Mailen

```bash
curl -s -X POST "$API/invoices/$INVOICE/send" \
  -H "Authorization: Bearer $EENFACTUURMAKEN_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{ "attachUbl": true }' | jq .status
```

Zonder `to` gaat de mail naar het e-mailadres (en cc) van de klant. Je kunt `to`, `cc`, `subject` en `message` meegeven (placeholders zoals `{number}` werken). Zie [Versturen per e-mail](https://eenfactuurmaken.nl/docs/invoices/sending).

### 5\. PDF en UBL downloaden

```bash
curl -s "$API/invoices/$INVOICE/pdf?download=1" \
  -H "Authorization: Bearer $EENFACTUURMAKEN_API_KEY" -o factuur.pdf
curl -s "$API/invoices/$INVOICE/ubl" \
  -H "Authorization: Bearer $EENFACTUURMAKEN_API_KEY" -o factuur.xml
```

## Als betaald markeren

Koppel je eigen betaaldienst of bank: zodra een betaling binnen is, markeer je de factuur.

```bash
curl -s -X POST "$API/invoices/$INVOICE/mark-paid" \
  -H "Authorization: Bearer $EENFACTUURMAKEN_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{ "paidAt": "2026-10-20" }' | jq .status
```

Een factuur zoeken op nummer, bijvoorbeeld uit de omschrijving van een bankbetaling:

```bash
curl -s "$API/invoices?q=2026-0042&kind=invoice" \
  -H "Authorization: Bearer $EENFACTUURMAKEN_API_KEY" | jq '.data[] | {id, number, totalCents, displayStatus}'
```

Vergist? `POST /invoices/{id}/mark-unpaid` zet hem terug.

## Btw verlegd en EU-klanten

Geef `vatTreatment` mee (en bij EU- en buitenlandse klanten `supplyType`). De klant heeft dan een btw-nummer nodig.

```bash
curl -s -X POST "$API/invoices" \
  -H "Authorization: Bearer $EENFACTUURMAKEN_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "customer": { "name": "Muster GmbH", "country": "DE", "vatNumber": "DE123456789",
                  "addressLine1": "Hauptstraße 5", "postalCode": "10115", "city": "Berlin" },
    "vatTreatment": "intra_eu",
    "supplyType": "services",
    "locale": "de",
    "lines": [ { "description": "Beratung", "quantity": "8", "unit": "HUR", "unitPriceCents": 9500 } ]
  }' | jq '{id, vatTreatment, vatTotalCents, totalCents}'
```

Waarden voor `vatTreatment`: `standard`, `reverse_charge`, `intra_eu`, `export`, `kor`, `exempt` (met `vatExemptionReason`). Zie [Btw-behandeling kiezen](https://eenfactuurmaken.nl/docs/vat/treatments).

## Crediteren

Volledig crediteren, als concept:

```bash
CREDIT=$(curl -s -X POST "$API/invoices/$INVOICE/credit-note" \
  -H "Authorization: Bearer $EENFACTUURMAKEN_API_KEY" | jq -r .id)
```

Gedeeltelijk: vervang de regels (positieve bedragen) en maak hem definitief:

```bash
curl -s -X PATCH "$API/invoices/$CREDIT" \
  -H "Authorization: Bearer $EENFACTUURMAKEN_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{ "lines": [ { "description": "Korting webdesign", "quantity": "1", "unitPriceCents": 20000, "vatRate": "21" } ] }'

curl -s -X POST "$API/invoices/$CREDIT/issue" \
  -H "Authorization: Bearer $EENFACTUURMAKEN_API_KEY" \
  -H "Content-Type: application/json" -d '{}' | jq .number
```

Een factuur van buiten EenFactuurMaken.nl crediteren: `POST /invoices` met `"kind": "credit_note"`, `"creditedInvoiceNumber"` en `"creditedInvoiceDate"`.

## Herinneringen voor te late facturen

```bash
for id in $(curl -s "$API/invoices?status=overdue&pageSize=100" \
  -H "Authorization: Bearer $EENFACTUURMAKEN_API_KEY" | jq -r '.data[].id'); do
  curl -s -X POST "$API/invoices/$id/remind" \
    -H "Authorization: Bearer $EENFACTUURMAKEN_API_KEY" | jq -r '"\(.number): \(.reminderCount) herinnering(en)"'
done
```

Met Pro kan EenFactuurMaken.nl dit ook [automatisch](https://eenfactuurmaken.nl/docs/reminders#automatic) doen.

## Btw-cijfers voor je aangifte

```bash
curl -s "$API/stats?year=2026&quarter=3" \
  -H "Authorization: Bearer $EENFACTUURMAKEN_API_KEY" | jq .vat.selected
```

Je krijgt de omzet en btw per rubriek (1a, 1b, 1c, 1e, 3a, 3b) plus vrijgestelde en KOR-omzet. Zie [Btw-aangifte](https://eenfactuurmaken.nl/docs/vat/vat-return).

## Wijzigingen bijhouden

EenFactuurMaken.nl heeft (nog) geen webhooks. Wil je weten welke facturen nieuw of betaald zijn, vraag dan periodiek de lijst op, gesorteerd op het nieuwste:

```bash
curl -s "$API/invoices?sort=-createdAt&pageSize=50" \
  -H "Authorization: Bearer $EENFACTUURMAKEN_API_KEY"
```

Houd je aan de [rate limits](https://eenfactuurmaken.nl/docs/api/errors#rate-limits): eens per paar minuten is ruim genoeg.

Laatst bijgewerkt op 13 oktober 2026
