API v1
API REST pour Factuur.software. Partie de l'abonnement Pro. JSON en entrée et sortie, authentification Bearer.
Authentification
Envoie ta clé API dans l'en-tête Authorization :
Authorization: Bearer JOUW_SLEUTEL
Génère ta clé via Profil, sous Accès API. La clé est visible une seule fois - ensuite nous ne conservons qu'un hash. Perdu ? Révoque-la et génère une nouvelle.
Limite de taux
1000 requêtes par heure par utilisateur. Au-delà, HTTP 429.
Endpoints
| Méthode | Chemin | Description |
|---|---|---|
| GET | /api/v1/me | profil, abonnement, fonctionnalités et consommation |
| GET | /api/v1/invoices | factures (non archivées) ; requête : from, to (YYYY-MM-DD), limit (max 1000), offset |
| GET | /api/v1/invoices/{id} | une facture avec lignes et client |
| POST | /api/v1/invoices | créer facture ; invoice_number vide = numérotation automatique, lignes optionnelles |
| PUT | /api/v1/invoices/{id} | modifier statut, invoice_number, issue_date, due_date, notes ou customer_id |
| DELETE | /api/v1/invoices/{id} | archive la facture (obligation de conservation fiscale, pas de suppression définitive) |
| GET | /api/v1/customers | clients; requête: limite, décalage |
| GET | /api/v1/customers/{id} | un client |
| POST | /api/v1/customers | créer un client; le nom est obligatoire |
| PUT | /api/v1/customers/{id} | modifier les champs du client |
| DELETE | /api/v1/customers/{id} | supprimer le client; 409 tant qu'il y a encore des factures associées |
| GET | /api/v1/expenses | dépenses; requête: de, à (AAAA-MM-JJ), limite, décalage |
| GET | /api/v1/expenses/{id} | une dépense |
| POST | /api/v1/expenses | créer une dépense |
| PUT | /api/v1/expenses/{id} | modifier la dépense; montants et TVA seront recalculés |
| DELETE | /api/v1/expenses/{id} | supprimer la dépense |
Codes d'état
200/201réussi401Le token Bearer est manquant ou invalide403l'abonnement ne donne pas accès à l'API404non trouvé409conflit, par exemple supprimer un client avec des factures422charge utile invalide429limite de taux dépassée
Exemples
curl -H "Authorization: Bearer JOUW_SLEUTEL" https://factuur.software/api/v1/me
curl "https://factuur.software/api/v1/invoices?from=2026-01-01&limit=50" -H "Authorization: Bearer JOUW_SLEUTEL"
curl -X POST -H "Authorization: Bearer JOUW_SLEUTEL" -H "Content-Type: application/json" -d '{"customer_id":1,"lines":[{"description":"Consultancy","quantity":8,"unit_price":95,"tax_rate":21}]}' https://factuur.software/api/v1/invoices
curl -X PUT -H "Authorization: Bearer JOUW_SLEUTEL" -H "Content-Type: application/json" -d '{"status":"betaald"}' https://factuur.software/api/v1/invoices/123