Ga naar de inhoud
CijfrAPI
cijfr.com

Resources

Facturen

GET en POST /api/v1/invoices. Maak een concept of verstuur direct: versturen nummert en vergrendelt.

Als Markdown

Facturen ophalen

GET /api/v1/invoices vraagt invoices:read en geeft de vijftig nieuwste facturen, nieuwste eerst. Een sleutel met profielbeperking ziet alleen facturen van dat profiel.

Antwoord
{
  "data": [
    {
      "id": "7f2b…",
      "number": "2026-0012",
      "status": "sent",
      "total_incl": 12100,
      "issue_date": "2026-03-01",
      "customer_id": "c0a8…",
      "public_token": "pt_…"
    }
  ]
}

Met public_token maak je de publieke pagina van de factuur: https://invoice.cijfr.com/p/<token>. Daar staat de pdf, iDEAL en de SEPA-QR.

Factuur aanmaken

POST /api/v1/invoices vraagt invoices:write en accepteert Idempotency-Key. Zonder send is het resultaat een concept dat je in de app verder bewerkt. Met send: true geeft Cijfr de factuur meteen uit: gatloos nummer, vergrendeld, en de e-mail naar de klant wordt verstuurd.

VeldTypeVerplichtToelichting
customerIduuidjaKlant uit POST /customers of de app
linesarrayja1 tot 500 regels, zie hieronder
issueDatedateneeStandaard vandaag
dueDatedateneeStandaard issueDate + 14 dagen
sendbooleanneetrue = uitgeven en e-mailen, standaard false
profileIduuidneeCijfr-profiel voor huisstijl en reeks
RegelveldTypeVerplichtToelichting
descriptionstringneeRegeltekst, standaard Regel
quantitynumberneeAantal, standaard 1
unitPriceCentsintegerneePrijs per eenheid in centen
vatTreatmentenumneestandard_21, reduced_9, zero, exempt, reverse_charge, intra_community
productIduuidneeKoppelt de regel aan een product
Voorbeeld
curl https://app.cijfr.com/api/v1/invoices \
  -H "Authorization: Bearer $CIJFR_API_KEY" \
  -H "Content-Type: application/json" \
  -H "Idempotency-Key: invoice-order-1042" \
  -d '{
    "customerId": "c0a8…",
    "send": true,
    "lines": [
      {
        "description": "Websiteonderhoud maart",
        "quantity": 4,
        "unitPriceCents": 7500,
        "vatTreatment": "standard_21"
      }
    ]
  }'
201
{
  "data": {
    "id": "7f2b…",
    "number": "2026-0012",
    "public_token": "pt_…",
    "emailed": true,
    "emailError": null
  }
}

Wat je moet weten

  • send: true vergrendelt de factuur meteen. Daarna is hij onveranderbaar; een correctie is een creditnota in de app.
  • emailed is false met een emailError als de mail niet weg kon, bijvoorbeeld zonder gekoppelde maildienst. De factuur is dan wél uitgegeven.
  • Klant-, product- en profiel-id's moeten bij jouw organisatie horen, anders 400 validation.
  • Kan je organisatie niet versturen (betaling achter), dan 402 billing_readonly. Concepten aanmaken kan nog wel.
  • Totaalbedragen rekent de server uit; je hoeft zelf geen totalen mee te sturen.
Facturen · Cijfr