Met deze endpoints maak je uitgegeven aankoopborderellen aan, in het Belgische btw-jargon self-billed invoices. Dat is een document dat jouw bedrijf opstelt namens een leverancier (bv. een melkgeldafrekening die een zuivelbedrijf opstelt voor een melkveehouder).
Typische gebruikers: producenten en coöperaties die periodiek afrekeningen opstellen voor hun leveranciers, of externe systemen die afrekeningen genereren en in Sage Cloud Demat Invoicing willen aanleveren met behoud van hun eigen PDF-layout.
ℹ️ Authenticatie (persoonlijke API-token +
X-Company-Id), limieten en algemene foutcodes staan in het API-overzicht voor ontwikkelaars. De headers en klant-matching zijn identiek aan de Facturen-API.
POST https://www.clouddematinvoicing.be/api/v1/webhooks/create-purchase-borderelle
POST https://www.clouddematinvoicing.be/api/v1/webhooks/create-purchase-borderelle-creditnote
Een JSON-array van borderellen (atomair verwerkt). De structuur lijkt op de Facturen-API, met enkele verschillen.
| Veld | Type | Verplicht | Beschrijving |
|---|---|---|---|
language |
string | Ja | nl, fr, en of de |
purchase_borderelle_date |
string | Ja | Documentdatum JJJJ-MM-DD |
expire_days |
integer | Ja | Vervaldagen na de documentdatum (0–365) |
reference |
string | Nee | Eigen referentie (bv. periode), max 255 |
intro |
string | Nee | Tekst boven de regels, max 255 |
remarks |
string | Nee | Tekst onder de regels, max 255 |
private_notes |
string | Nee | Interne notitie (niet zichtbaar voor de leverancier), max 255 |
payment_info |
string | Nee | yes (standaard), no of paid |
vat_shifted |
integer | Nee | Zie de vat_shifted-tabel |
attachment_pdf |
string | Nee | Base64-gecodeerde PDF (eigen layout, zie hieronder) |
attachment_pdf_filename |
string | Nee | Bestandsnaam voor de bijlage; standaard <borderel-nr>.pdf |
client |
object | Ja | De leverancier namens wie je opstelt (zelfde structuur als klant in de Facturen-API) |
lines |
array | Ja | Minstens 1 regel (let op: lines, niet invoice_lines) |
lines)"lines": [
{ "description": "Melklevering 1–15 mei (liter)", "unit_price": 0.45, "amount": 12500, "vat_percentage": 6 }
]
Zelfde velden als een factuurlijn: description, unit_price, amount, vat_percentage. amount mag decimaal zijn (bv. liter/kg). Totalen worden server-side berekend.
attachment_pdf)Wil je je eigen PDF-layout behouden? Stuur een base64-gecodeerde PDF mee. Die wordt als bijlage bewaard bij het document en meegenomen bij Peppol-verzending. Sage Cloud Demat Invoicing genereert daarnaast nog steeds een standaard-PDF op basis van de documentdata.
attachment_pdf_filename, dan wordt <borderel-nr>.pdf gebruikt.application/pdf.// Node.js
const fs = require('fs')
const pdfBase64 = fs.readFileSync('./melkgeld-mei-2026.pdf').toString('base64')
Vrijwel identiek aan een borderel, met deze verschillen:
| Veld | Beschrijving |
|---|---|
purchase_borderelle_creditnote_date |
Documentdatum (in plaats van purchase_borderelle_date) |
purchase_borderelle_uuid |
Optioneel. UUID van een bestaand aankoopborderel binnen hetzelfde bedrijf; wordt als bron gekoppeld. Een UUID van een ander bedrijf geeft 404 |
expire_days, payment_info |
Niet van toepassing op creditnota’s |
Alle andere velden gedragen zich identiek. Gebruik negatieve of corrigerende bedragen naargelang je correctie.
curl -X POST https://www.clouddematinvoicing.be/api/v1/webhooks/create-purchase-borderelle \
-H "Authorization: Bearer <jouw-api-token>" \
-H "X-Company-Id: 12345" \
-H "Content-Type: application/json" \
-H "Accept: application/json" \
-d '[
{
"language": "nl",
"purchase_borderelle_date": "2026-05-20",
"expire_days": 30,
"reference": "Melkgeld mei 2026",
"payment_info": "no",
"client": {
"company_type": "company",
"type": "onbekend",
"email": "boer@example.be",
"first_name": "Jan",
"last_name": "De Boer",
"vat_country_code": "BE",
"vat_id": "0123456789",
"address": "Boerderijstraat 1",
"address_zip": "9800",
"address_city": "Deinze",
"address_country": "BE"
},
"lines": [
{ "description": "Melklevering 1–15 mei (liter)", "unit_price": 0.45, "amount": 12500, "vat_percentage": 6 },
{ "description": "Melklevering 16–31 mei (liter)", "unit_price": 0.46, "amount": 13200, "vat_percentage": 6 }
]
}
]'
curl -X POST https://www.clouddematinvoicing.be/api/v1/webhooks/create-purchase-borderelle-creditnote \
-H "Authorization: Bearer <jouw-api-token>" \
-H "X-Company-Id: 12345" \
-H "Content-Type: application/json" \
-d '[
{
"language": "nl",
"purchase_borderelle_creditnote_date": "2026-05-21",
"purchase_borderelle_uuid": "9c1a2b3d-4e5f-6a7b-8c9d-0e1f2a3b4c5d",
"reference": "Correctie melkgeld mei",
"client": { "company_type": "company", "type": "onbekend", "email": "boer@example.be", "first_name": "Jan", "last_name": "De Boer", "vat_country_code": "BE", "vat_id": "0123456789", "address": "Boerderijstraat 1", "address_zip": "9800", "address_city": "Deinze", "address_country": "BE" },
"lines": [
{ "description": "Correctie kwaliteitspremie", "unit_price": -50.00, "amount": 1, "vat_percentage": 6 }
]
}
]'
Aankoopborderel:
{ "purchase_borderelles": [1234, 1235] }
Creditnota:
{ "purchase_borderelle_creditnotes": [987] }
De array bevat de interne database-ID’s in dezelfde volgorde als de input.
Zie de foutentabel in het API-overzicht. Validatiefouten volgen hetzelfde invalid_body-formaat als de Facturen-API, geïndexeerd per positie (0.client.email, 1.lines.0.unit_price, …). Een purchase_borderelle_uuid van een ander bedrijf geeft 404.
| Onderwerp | Facturen-API | Aankoopborderel-API |
|---|---|---|
| Documenttype | Verkoopfactuur (uitgaand) | Uitgegeven aankoopborderel (namens leverancier) |
| Klant in payload | Klant aan wie je factureert | Leverancier namens wie je opstelt |
| Datumveld | invoice_date |
purchase_borderelle_date |
| Regelveld | invoice_lines |
lines |
| Eigen PDF-bijlage | ❌ | ✅ via attachment_pdf |
| Peppol InvoiceTypeCode | 380 (factuur) | 389 (self-billed) |
AB-prefix). Je kan geen eigen nummer meesturen.