Overzicht
Alle paden beginnen met /accounting en vereisen recht administration.view. De boekhouding moet eerst in de webapp zijn ingericht; anders geeft elk endpoint 409. Rapportages gebruiken alleen definitieve journaalregels.
Bedragen zijn gehele eurocenten. Een UUID uit een andere organisatie wordt nooit geaccepteerd en geeft 404 of 422.
Van bankafschrift tot boeking
- 1Upload een afschrift (CSV, CAMT.053 of MT940) met
POST /accounting/bank-imports. Er wordt nog niets geboekt. - 2Factora stelt per transactie een match voor met een verkoop- of inkoopfactuur.
- 3Bevestig een voorstel met
POST /accounting/bank-transactions/{id}/confirm; pas dan ontstaat een definitieve bankboeking. - 4Of wijs het voorstel af met
…/reject; er wordt niets geboekt. - 5Een deelbetaling verhoogt
paid_amount; pas bij het volledige bedrag wordt de verkoopfactuurpaid.
Endpoints
- GET
/accounting/overview - GET
/accounting/accounts - GET
/accounting/journal-entries - GET
/accounting/journal-entries/{id} - POST
/accounting/journal-entries - GET
/accounting/suppliers - POST
/accounting/suppliers - GET
/accounting/purchase-invoices - POST
/accounting/purchase-invoices - GET
/accounting/health - GET
/accounting/bank-accounts - GET
/accounting/bank-transactions - POST
/accounting/bank-imports - POST
/accounting/bank-transactions/{id}/confirm - POST
/accounting/bank-transactions/{id}/reject - GET
/accounting/documents - GET
/accounting/documents/{id} - POST
/accounting/documents - GET
/accounting/vat/{period}
/accounting/overviewFinancieel overzicht
Financiële KPI’s en maandreeksen uit het grootboek.
- Recht (app-login)
- bookkeeping.view
curl "https://factora.one/api/v1/accounting/overview" \
-H "Authorization: Bearer $FACTORA_API_KEY" \
-H "Accept: application/json"/accounting/accountsRekeningschema
Alle grootboekrekeningen, gesorteerd op code (niet gepagineerd).
- Recht (app-login)
- bookkeeping.view
curl "https://factora.one/api/v1/accounting/accounts" \
-H "Authorization: Bearer $FACTORA_API_KEY" \
-H "Accept: application/json"200 Voorbeeldantwoord
{
"data": [
{
"id": "9d3d0101-…",
"code": "1100",
"name": "Bank",
"type": "asset"
},
{
"id": "9d3d0201-…",
"code": "8000",
"name": "Omzet hoog tarief",
"type": "revenue"
}
]
}/accounting/journal-entriesJournaalposten
Gepagineerd met regels, nieuwste boekdatum eerst.
- Recht (app-login)
- bookkeeping.view
Queryparameters
per_pageinteger1–100, standaard 25
curl "https://factora.one/api/v1/accounting/journal-entries" \
-H "Authorization: Bearer $FACTORA_API_KEY" \
-H "Accept: application/json"200 Voorbeeldantwoord
{
"current_page": 1,
"data": [
{
"id": "9d3d13b5-c428-47b9-250c-d81936807b4c",
"entry_number": "MEM-2026-0012",
"entry_date": "2026-11-10",
"description": "Correctie beginsaldo",
"journal": {
"id": "9d3d0001-…",
"code": "MEM",
"name": "Memoriaal",
"type": "general"
},
"lines": [
{
"account_id": "9d3d0101-…",
"debit": 10000,
"credit": 0,
"account": {
"code": "1100",
"name": "Bank"
}
},
{
"account_id": "9d3d0102-…",
"debit": 0,
"credit": 10000,
"account": {
"code": "0900",
"name": "Eigen vermogen"
}
}
]
}
],
"last_page": 1,
"next_page_url": null,
"per_page": 25,
"prev_page_url": null,
"total": 1
}/accounting/journal-entries/{id}Journaalpost tonen
Met dagboek, boekjaar, periode, regels, rekeningen en btw-codes.
- Recht (app-login)
- bookkeeping.view
curl "https://factora.one/api/v1/accounting/journal-entries/<id>" \
-H "Authorization: Bearer $FACTORA_API_KEY" \
-H "Accept: application/json"200 Voorbeeldantwoord
{
"data": {
"id": "9d3d13b5-c428-47b9-250c-d81936807b4c",
"entry_number": "MEM-2026-0012",
"entry_date": "2026-11-10",
"description": "Correctie beginsaldo",
"journal": {
"id": "9d3d0001-…",
"code": "MEM",
"name": "Memoriaal",
"type": "general"
},
"lines": [
{
"account_id": "9d3d0101-…",
"debit": 10000,
"credit": 0,
"account": {
"code": "1100",
"name": "Bank"
}
},
{
"account_id": "9d3d0102-…",
"debit": 0,
"credit": 10000,
"account": {
"code": "0900",
"name": "Eigen vermogen"
}
}
]
}
}/accounting/journal-entriesMemoriaalboeking maken
Minimaal twee regels; elke regel heeft precies één positief debit of credit, en de sommen zijn exact gelijk. Met idempotency_key kun je veilig herhalen.
- Recht (app-login)
- bookkeeping.create
Body
journalstringverplichtDagboek, bijv.
generalentry_datedateverplichtBoekdatum
descriptionstringverplichtMax. 255
idempotency_keystringMax. 120; dezelfde sleutel maakt geen tweede boeking
linesarrayverplichtMinimaal 2 regels
lines[].account_iduuidverplichtGrootboekrekening
lines[].debit / lines[].creditintegerverplichtPrecies één van beide, in centen
lines[].descriptionstringMax. 255
lines[].vat_code_id, customer_id, supplier_id, cost_center_iduuidOptionele koppelingen
curl -X POST "https://factora.one/api/v1/accounting/journal-entries" \
-H "Authorization: Bearer $FACTORA_API_KEY" \
-H "Accept: application/json" \
-H "Content-Type: application/json" \
-d '{
"journal": "general",
"entry_date": "2026-11-10",
"description": "Correctie beginsaldo",
"idempotency_key": "external-correction-1042",
"lines": [
{
"account_id": "9d3d0101-…",
"debit": 10000
},
{
"account_id": "9d3d0102-…",
"credit": 10000
}
]
}'201 Voorbeeldantwoord
{
"data": {
"id": "9d3d13b5-c428-47b9-250c-d81936807b4c",
"entry_number": "MEM-2026-0012",
"entry_date": "2026-11-10",
"description": "Correctie beginsaldo",
"journal": {
"id": "9d3d0001-…",
"code": "MEM",
"name": "Memoriaal",
"type": "general"
},
"lines": [
{
"account_id": "9d3d0101-…",
"debit": 10000,
"credit": 0,
"account": {
"code": "1100",
"name": "Bank"
}
},
{
"account_id": "9d3d0102-…",
"debit": 0,
"credit": 10000,
"account": {
"code": "0900",
"name": "Eigen vermogen"
}
}
]
}
}/accounting/suppliersCrediteuren
Gepagineerde lijst van leveranciers.
- Recht (app-login)
- bookkeeping.view
curl "https://factora.one/api/v1/accounting/suppliers" \
-H "Authorization: Bearer $FACTORA_API_KEY" \
-H "Accept: application/json"200 Voorbeeldantwoord
{
"current_page": 1,
"data": [
{
"id": "9d3d24c6-…",
"name": "Hosting BV",
"email": "facturen@hosting.nl",
"iban": "NL02RABO0123456789",
"payment_terms_days": 30
}
],
"last_page": 1,
"next_page_url": null,
"per_page": 25,
"prev_page_url": null,
"total": 1
}/accounting/suppliersCrediteur aanmaken
Naam is uniek binnen de organisatie.
- Recht (app-login)
- bookkeeping.create
Body
namestringverplichtMax. 255, uniek
emailstringE-mailadres
phone, address, zipcode, citystringContactgegevens
countrystringLandcode van 2 letters
coc_numberstringMax. 32
vat_numberstringMax. 40
ibanstringMax. 50
payment_terms_daysinteger0–365
default_account_id, default_vat_code_iduuidStandaard rekening en btw-code
curl -X POST "https://factora.one/api/v1/accounting/suppliers" \
-H "Authorization: Bearer $FACTORA_API_KEY" \
-H "Accept: application/json" \
-H "Content-Type: application/json" \
-d '{
"name": "Hosting BV",
"email": "facturen@hosting.nl",
"country": "NL",
"iban": "NL02RABO0123456789",
"payment_terms_days": 30
}'Antwoord: 201 Created met het nieuwe object onder data.
/accounting/purchase-invoicesInkoopfacturen
Gepagineerde lijst.
- Recht (app-login)
- bookkeeping.view
curl "https://factora.one/api/v1/accounting/purchase-invoices" \
-H "Authorization: Bearer $FACTORA_API_KEY" \
-H "Accept: application/json"/accounting/purchase-invoicesInkoopfactuur aanmaken
Factora berekent regel-, btw- en totaalbedragen opnieuw. Met post: true wordt de factuur direct geboekt; anders blijft hij concept.
- Recht (app-login)
- bookkeeping.create
Body
supplier_iduuidverplichtCrediteur
invoice_numberstringverplichtFactuurnummer van de leverancier, max. 100
invoice_datedateverplichtFactuurdatum
due_datedateOp of na
invoice_datecurrencystring3 letters, bijv.
EURdescriptionstringMax. 255
postbooleanDirect definitief boeken
lines[].account_iduuidverplichtKostenrekening
lines[].descriptionstringverplichtMax. 255
lines[].quantitynumberverplichtAantal
lines[].unit_priceintegerverplichtCenten
lines[].vat_code_iduuidBtw-code
lines[].tax_ratenumber0–100
curl -X POST "https://factora.one/api/v1/accounting/purchase-invoices" \
-H "Authorization: Bearer $FACTORA_API_KEY" \
-H "Accept: application/json" \
-H "Content-Type: application/json" \
-d '{
"supplier_id": "9d3d24c6-…",
"invoice_number": "INK-2026-88",
"invoice_date": "2026-11-05",
"post": true,
"lines": [
{
"account_id": "9d3d0301-…",
"vat_code_id": "9d3d0401-…",
"description": "Software-abonnement",
"quantity": "1",
"unit_price": 10000,
"tax_rate": 21
}
]
}'Antwoord: 201 Created met het nieuwe object onder data.
/accounting/healthControles op de administratie
Signalen die aandacht vragen, zoals onverwerkte documenten of onbevestigde transacties.
- Recht (app-login)
- bookkeeping.view
curl "https://factora.one/api/v1/accounting/health" \
-H "Authorization: Bearer $FACTORA_API_KEY" \
-H "Accept: application/json"/accounting/bank-accountsBankrekeningen
Alle bankrekeningen met het aantal transacties (niet gepagineerd).
- Recht (app-login)
- bank.view
curl "https://factora.one/api/v1/accounting/bank-accounts" \
-H "Authorization: Bearer $FACTORA_API_KEY" \
-H "Accept: application/json"/accounting/bank-transactionsBanktransacties
Gepagineerd, nieuwste transactiedatum eerst.
- Recht (app-login)
- bank.view
Queryparameters
per_pageinteger1–100, standaard 25
curl "https://factora.one/api/v1/accounting/bank-transactions" \
-H "Authorization: Bearer $FACTORA_API_KEY" \
-H "Accept: application/json"/accounting/bank-importsBankafschrift importeren
Upload als multipart/form-data. Toegestane extensies: csv, txt, xml, camt, sta, mt940; max. 20 MB. Maakt matchvoorstellen, boekt nog niets.
- Recht (app-login)
- bank.manage
Formuliervelden
bank_account_iduuidverplichtBankrekening van de organisatie
statementfileverplichtCSV-, CAMT.053- of MT940-bestand
curl -X POST "https://factora.one/api/v1/accounting/bank-imports" \
-H "Authorization: Bearer $FACTORA_API_KEY" \
-H "Accept: application/json" \
-F "bank_account_id=9d3d3501-…" \
-F "statement=@./bankmutaties.camt053.xml"Antwoord: 201 Created met het nieuwe object onder data.
/accounting/bank-transactions/{id}/confirmMatch bevestigen
Bevestigt de voorgestelde match en maakt de bankboeking. Antwoord bevat transaction en journal_entry.
- Recht (app-login)
- bank.manage
Mogelijke fouten
422Geen geldige match om te bevestigen
curl -X POST "https://factora.one/api/v1/accounting/bank-transactions/<id>/confirm" \
-H "Authorization: Bearer $FACTORA_API_KEY" \
-H "Accept: application/json"/accounting/bank-transactions/{id}/rejectMatch afwijzen
Wijst het voorstel af zonder boeking.
- Recht (app-login)
- bank.manage
curl -X POST "https://factora.one/api/v1/accounting/bank-transactions/<id>/reject" \
-H "Authorization: Bearer $FACTORA_API_KEY" \
-H "Accept: application/json"/accounting/documentsDocumenten
Gepagineerde inbox van bonnen en facturen, nieuwste eerst.
- Recht (app-login)
- bookkeeping.view | documents.upload | documents.process
Queryparameters
statusstringFilter op verwerkingsstatus
per_pageinteger1–100, standaard 25
curl "https://factora.one/api/v1/accounting/documents" \
-H "Authorization: Bearer $FACTORA_API_KEY" \
-H "Accept: application/json"/accounting/documents/{id}Document tonen
Eén document met herkende gegevens.
- Recht (app-login)
- bookkeeping.view | documents.upload | documents.process
curl "https://factora.one/api/v1/accounting/documents/<id>" \
-H "Authorization: Bearer $FACTORA_API_KEY" \
-H "Accept: application/json"200 Voorbeeldantwoord
{
"data": {
"id": "9d3d46e8-…",
"name": "bon-tankstation.jpg",
"type": "receipt",
"source": "api",
"status": "open",
"recognition_status": "completed",
"supplier": "Tankstation De Brug",
"supplier_id": null,
"document_number": null,
"document_date": "2026-11-11",
"due_date": null,
"subtotal": 6198,
"tax_amount": 1302,
"total_amount": 7500,
"currency": "EUR",
"payment_status": "paid",
"purchase_invoice_id": null,
"journal_entry_id": null,
"warnings": [],
"created_at": "2026-11-12T09:40:00+01:00",
"processed_at": null
}
}/accounting/documentsDocument uploaden
Upload een bon of factuur (pdf, jpg, jpeg, png, webp, heic, heif; max. 20 MB). Maximaal 30 uploads per minuut.
- Recht (app-login)
- documents.upload
Formuliervelden
filefileverplichtHet document
typestringpurchase_invoice(standaard),receipt,credit_invoice,declaration,bank_documentofother
curl -X POST "https://factora.one/api/v1/accounting/documents" \
-H "Authorization: Bearer $FACTORA_API_KEY" \
-H "Accept: application/json" \
-F "file=@./bon.jpg" \
-F "type=receipt"Antwoord: 201 Created met het nieuwe object onder data.
/accounting/vat/{period}Btw-aangifte per periode
Rubrieken, te betalen en terug te vragen btw en controles voor één aangifteperiode. De periodesleutel hangt af van de aangiftefrequentie: 2026-Q3 (kwartaal), 2026-09 (maand) of 2026 (jaar).
- Recht (app-login)
- vat.view
Mogelijke fouten
404Onbekende periode
curl "https://factora.one/api/v1/accounting/vat/2026-Q3" \
-H "Authorization: Bearer $FACTORA_API_KEY" \
-H "Accept: application/json"Lees ook
- Rechten en pakkettenWelke endpoints beschikbaar zijn hangt af van het pakket van de organisatie. Overzicht per onderdeel.
- RapportenKant-en-klare cijfers: omzet, openstaand, factuur- en offertestatussen, topklanten en catalogusstatistieken.
- WebhooksLaat Factora je systeem aanroepen zodra er iets gebeurt, zoals een betaalde factuur of een geaccepteerde offerte.