Aller au contenu

Développeurs

Une clé, un en-tête, vos propres chiffres.

Vous créez la clé dans KRONENWERK et choisissez ce qu'elle permet. Elle lit vos clients, vos factures, vos dossiers et vos encours — et crée clients, dossiers et brouillons de facture. Les événements du travail courant partent vers une adresse que vous inscrivez: signés et réessayés.

Accès

Deux lignes, et vous êtes connecté.

La clé n'est affichée qu'une seule fois ; seule son empreinte est conservée. Une clé de test et une clé réelle sont deux clés distinctes avec deux préfixes distincts, et une clé ne peut jamais plus que la personne qui l'a émise.

Adresse de base En-tête
https://kronenwerk.org/api/extern/v1 Authorization: Bearer greif_live_…

Ce que vous lisez

Chaque adresse exige sa propre portée.

Une clé ne détient que les droits que vous lui donnez. S'il en manque un, le chemin répond 403 au lieu de données — y compris pour votre propre clé.

Chemin Portée Ce qui revient
GET /api/extern/v1/me

La clé elle-même: société, environnement, portées, dernier usage. Le premier appel qu'on écrit.

GET /api/extern/v1/customers customers:read

Une page de clients et fournisseurs, les plus récents d'abord.

GET /api/extern/v1/customers/{id} customers:read

Un client précis avec l'ensemble de ses données de base.

POST /api/extern/v1/customers customers:write

Crée un client. KRONENWERK tire le numéro de la séquence propre à l'entreprise.

GET /api/extern/v1/invoices invoices:read

Factures émises, filtrables par état de paiement et date d'émission.

GET /api/extern/v1/invoices/{number} invoices:read

Une facture émise, telle que l'archive l'a figée.

POST /api/extern/v1/invoices/drafts invoices:write customers:read companies:read

Commence un brouillon de facture pour un client. Cela ne l'émet pas.

GET /api/extern/v1/transactions transactions:read

Dossiers — commandes, projets, lots de production — avec étape et échéance, les plus récents d'abord. Restreignez la période avec period, from et to ; la fenêtre porte sur la date de début.

POST /api/extern/v1/transactions transactions:write transactions:read

Crée un dossier. Numéro, étape et historique naissent comme dans l'écran du produit.

PATCH /api/extern/v1/transactions/{id} transactions:write transactions:read

Modifie un dossier existant. Un champ omis reste tel quel ; « none » comme client retire le client.

GET /api/extern/v1/reports/outstanding reports:read

Créances et dettes ouvertes à ce jour, séparées par sens.

GET /api/extern/v1/webhooks webhooks:write

Les points de terminaison webhook de cette société.

GET /api/extern/v1/webhooks/events webhooks:write

Les événements auxquels un point de terminaison peut s'abonner.

POST /api/extern/v1/webhooks webhooks:write

Enregistrer un point de terminaison ; le secret de signature figure une fois dans la réponse.

DELETE /api/extern/v1/webhooks/{id} webhooks:write

Désactiver un point de terminaison ; le journal des envois est conservé.

Un exemple

Un appel, une réponse.

Chaque montant est un nombre entier dans la plus petite unité de sa devise, jamais un texte formaté. Une date est un jour civil sans fuseau horaire. Aucun séparateur ne peut donc être mal lu, ni aucun jour décalé d'un cran.

Requête Réponse
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

Six événements, déclenchés par du travail réel.

Vous enregistrez une adresse et choisissez ce dont elle doit être informée. Chaque livraison porte un identifiant d'événement stable, inchangé d'une relance à l'autre — un destinataire qui l'a traité une fois peut donc écarter toute copie ultérieure.

Événement Quand il est envoyé
invoice.issued

Une facture a été émise : le numéro est consommé, le document est archivé et immuable.

invoice.paid

Une facture est intégralement soldée — par un paiement, quelle qu'en soit la voie d'enregistrement.

invoice.cancelled

Une facture a été annulée : un avoir existe qui l'annule intégralement. Rien n'est supprimé.

purchase.recorded

Une facture fournisseur ou une dépense a été enregistrée, avec fournisseur, date et montants.

payment.recorded

Un paiement a été enregistré, avec sens, montant, jour et le document qu'il solde.

bank.transaction.imported

Une opération bancaire a été importée et attend d'être rapprochée.

Signature

Chaque livraison est signée, et la signature porte un instant.

Lors de l'enregistrement de l'adresse, vous recevez un secret — une seule fois. Vérifiez avec lui l'horodatage et le corps ensemble, non le corps seul : une signature sans instant reste valable indéfiniment et peut vous être rejouée plus tard.

En-tête Comment la vérifier
KRONENWERK-Signature: t=1775462400,v1=…

Calculez un HMAC avec SHA-256 sur l'horodatage, un point et le corps inchangé, avec le secret pour clé, puis comparez le résultat à v1. Rejetez une livraison dont l'horodatage s'écarte de plus de cinq minutes de votre horloge.

La limite

Un brouillon est permis. Un envoi ne l'est pas.

La différence entre préparer une chose et la déclencher est le cœur de tout ce projet, et elle vivra dans les services et non dans une interface — ce qu'un écran interdit n'est interdit que sur cet écran. Un système d'IA ne doit jamais être un contournement des contrôles financiers.

Peut préparer Ne peut pas déclencher
Créer un brouillon de devis Envoyer le devis
Créer un brouillon de facture Émettre la facture
Proposer un rapprochement Comptabiliser le paiement
Proposer un remboursement Rendre l'argent