Ontwikkelaars
Eén sleutel, één header, uw eigen cijfers.
U maakt de sleutel zelf in KRONENWERK en kiest daarbij wat hij mag. Daarmee leest u uw klanten, uw facturen, uw dossiers en uw openstaande posten — en maakt u klanten, dossiers en factuurconcepten aan. Gebeurtenissen uit het dagelijks werk gaan naar een adres dat u opgeeft: ondertekend en met herhaling.
Toegang
Twee regels, en u bent verbonden.
De sleutel wordt precies één keer getoond; alleen de hash ervan wordt bewaard. Een testsleutel en een live sleutel zijn twee aparte sleutels met twee aparte voorvoegsels, en een sleutel kan nooit meer dan de persoon die hem uitgaf mocht.
| Basisadres | Header |
|---|---|
| https://kronenwerk.org/api/extern/v1 | Authorization: Bearer greif_live_… |
Wat u leest
Elk adres vereist zijn eigen bereik.
Een sleutel heeft alleen de rechten die u hem geeft. Ontbreekt er een, dan antwoordt het pad met 403 in plaats van met gegevens — ook voor uw eigen sleutel.
| Pad | Bereik | Wat er terugkomt |
|---|---|---|
| GET /api/extern/v1/me | De sleutel zelf: bedrijf, omgeving, bereiken, laatste gebruik. De eerste aanroep die men schrijft. |
|
| GET /api/extern/v1/customers | customers:read | Eén pagina met klanten en leveranciers, nieuwste eerst. |
| GET /api/extern/v1/customers/{id} | customers:read | Eén klant met alle stamgegevens. |
| POST /api/extern/v1/customers | customers:write | Maakt een klant aan. KRONENWERK trekt het klantnummer uit de eigen reeks van het bedrijf. |
| GET /api/extern/v1/invoices | invoices:read | Uitgegeven facturen, te filteren op betaalstatus en factuurdatum. |
| GET /api/extern/v1/invoices/{number} | invoices:read | Eén uitgegeven factuur, zoals het archief die heeft vastgelegd. |
| POST /api/extern/v1/invoices/drafts | invoices:write customers:read companies:read | Start een factuurconcept voor een klant. Daarmee is die niet uitgegeven. |
| GET /api/extern/v1/transactions | transactions:read | Dossiers — orders, projecten, productieruns — met fase en vervaldatum, nieuwste eerst. Beperk tot een periode met period, from en to; het venster gaat op de startdatum. |
| POST /api/extern/v1/transactions | transactions:write transactions:read | Maakt een dossier aan. Nummer, fase en tijdlijn ontstaan als op het scherm van het product. |
| PATCH /api/extern/v1/transactions/{id} | transactions:write transactions:read | Wijzigt een bestaand dossier. Een weggelaten veld blijft zoals het is; "none" als klant verwijdert de klant. |
| GET /api/extern/v1/reports/outstanding | reports:read | Openstaande vorderingen en schulden van vandaag, gescheiden per richting. |
| GET /api/extern/v1/webhooks | webhooks:write | De webhook-eindpunten van dit bedrijf. |
| GET /api/extern/v1/webhooks/events | webhooks:write | De gebeurtenissen waarop een eindpunt zich kan abonneren. |
| POST /api/extern/v1/webhooks | webhooks:write | Een eindpunt registreren; het ondertekeningsgeheim staat één keer in het antwoord. |
| DELETE /api/extern/v1/webhooks/{id} | webhooks:write | Een eindpunt uitschakelen; het afleverlogboek blijft bewaard. |
Een voorbeeld
Eén aanroep, één antwoord.
Elk bedrag is een geheel getal in de kleinste eenheid van zijn valuta, nooit opgemaakte tekst. Een datum is een kalenderdag zonder tijdzone. Zo kan geen scheidingsteken verkeerd gelezen worden en verschuift geen dag met één.
| Verzoek | Antwoord |
|---|---|
| GET https://kronenwerk.org/api/extern/v1/invoices?status=OPEN&size=1 | {"data":[{"number":"R-2026-0001","issuedOn":"2026-04-02","buyer":"Kellermann GmbH","currency":"EUR","gross":{"minor":105910,"currency":"EUR"},"outstanding":{"minor":105910,"currency":"EUR"},"paymentState":"OPEN","overdue":false}],"page":0,"size":1,"total":1,"more":false} |
Webhooks
Zes gebeurtenissen, veroorzaakt door echt werk.
U registreert een adres en kiest waarover het bericht moet krijgen. Elke aflevering draagt een vaste gebeurteniskenmerk dat over alle herhalingen gelijk blijft — zo mag een ontvanger die het eenmaal verwerkte elke latere kopie weggooien.
| Gebeurtenis | Wanneer het verstuurd wordt |
|---|---|
| invoice.issued | Een factuur is uitgegeven: het nummer is verbruikt, het document is gearchiveerd en onveranderlijk. |
| invoice.paid | Een factuur is volledig voldaan — door een betaling, hoe die ook is vastgelegd. |
| invoice.cancelled | Een factuur is geannuleerd: er bestaat een creditdocument dat haar volledig opheft. Er wordt niets verwijderd. |
| purchase.recorded | Een inkoopfactuur of een uitgave is vastgelegd, met leverancier, datum en bedragen. |
| payment.recorded | Een betaling is vastgelegd, met richting, bedrag, dag en het document dat ermee voldaan wordt. |
| bank.transaction.imported | Een banktransactie is ingelezen en staat klaar om gekoppeld te worden. |
Handtekening
Elke aflevering is ondertekend, en de handtekening draagt een tijdstip.
Bij het registreren van het adres krijgt u een geheim — één keer. Controleer daarmee het tijdstempel en de body samen, niet de body alleen: een handtekening zonder tijdstip blijft eeuwig geldig en kan u later opnieuw voorgeschoteld worden.
| Header | Zo controleert u hem |
|---|---|
| KRONENWERK-Signature: t=1775462400,v1=… | Bereken HMAC met SHA-256 over het tijdstempel, een punt en de onveranderde body, met het geheim als sleutel, en vergelijk het resultaat met v1. Wijs een aflevering af waarvan het tijdstempel meer dan vijf minuten van uw klok afwijkt. |
De grens
Een concept mag. Versturen niet.
Het verschil tussen iets voorbereiden en iets in gang zetten is de kern van deze hele onderneming, en het zal in de diensten staan en niet in een interface — wat een scherm verbiedt, is alleen op dat scherm verboden. Een AI-systeem mag nooit een weg om de financiële controles heen zijn.
| Mag voorbereiden | Mag niet in gang zetten |
|---|---|
| Een conceptofferte aanmaken | De offerte versturen |
| Een conceptfactuur aanmaken | De factuur uitgeven |
| Een betalingskoppeling voorstellen | De betaling boeken |
| Een terugbetaling voorstellen | Het geld terugstorten |