L’API de NumNum vous permet de créer des documents par programmation dans votre propre environnement NumNum. Une fois créés, vous pouvez envoyer ces documents par e-mail, Peppol ou courrier, exactement comme les documents que vous créez manuellement.
L’API est conçue pour des intégrations serveur à serveur, par exemple :
L’API est en écriture seule : elle sert à créer des documents. Il existe trois endpoints :
| Quoi | Endpoint | Documentation |
|---|---|---|
| Créer des factures de vente | POST /api/v1/webhooks/create-invoice |
Créer des factures |
| Créer un bordereau d’achat émis (autofacturation) | POST /api/v1/webhooks/create-purchase-borderelle |
Autofacturation / bordereau d’achat |
| Créer une note de crédit sur un bordereau d’achat | POST /api/v1/webhooks/create-purchase-borderelle-creditnote |
Autofacturation / bordereau d’achat |
Pour bien cadrer les attentes :
reference ou les identifiants renvoyés).ℹ️ L’envoi via Peppol ou e-mail ne fait pas partie de cette API ; il se fait ensuite dans l’application ou votre flux d’envoi habituel.
Vous générez vous-même votre jeton API sur la page Mes API dans les paramètres de votre entreprise (voir Authentification). Vous ne voyez pas cette page ? Contactez le support (help@numnum.be).
Chaque requête API nécessite deux en-têtes : votre jeton API personnel et l’entreprise pour laquelle vous travaillez.
https://app.numnum.be/company/connection/myapi)Quelques propriétés importantes :
X-Company-Id.Votre X-Company-Id détermine dans quelle entreprise le document est créé. Vous le trouvez :
https://app.numnum.be/company/12345/... → Company ID = 12345).https://app.numnum.be/api/v1
| En-tête | Requis | Exemple |
|---|---|---|
Authorization |
Oui | Bearer <votre-jeton-api> |
X-Company-Id |
Oui | 12345 |
Content-Type |
Oui | application/json |
Accept |
Recommandé | application/json |
Attention à l’espace entre Bearer et le jeton.
Considérez seulement HTTP 201 comme un succès. Tout autre code signifie que le document n’a pas été créé ; mettez la requête en file d’attente et réessayez plus tard (avec un back-off exponentiel pour 429 et 5xx).
| Statut | Signification | Corps de la réponse |
|---|---|---|
201 Created |
Document(s) créé(s) | { "invoices": [1234] } (selon l’endpoint) |
400 Bad Request |
En-têtes manquants | { "error": "Required headers are missing." } |
400 Bad Request |
Format Authorization incorrect |
{ "error": "Authorization header format is invalid." } |
400 Bad Request |
Erreur de validation dans la charge utile | { "error": "invalid_body", "errors": { "0.client.email": ["..."] } } |
401 Unauthorized |
Jeton API invalide | { "error": "Invalid API token." } |
403 Forbidden |
Votre utilisateur n’a pas accès à cette entreprise | { "error": "Access to this company is forbidden." } |
404 Not Found |
Company ID inconnu | { "error": "Invalid company ID." } |
429 Too Many Requests |
Limite de débit ou limite mensuelle atteinte | { "error": "Monthly API document limit reached." } |
500 |
Erreur serveur inattendue | Contactez help@numnum.be |
Pour les erreurs de validation (400 invalid_body), la clé pointe vers la position dans le tableau et le champ, p. ex. 0.client.email = premier document, champ client.email.
429.Un ancien endpoint, POST /webhooks/create-invoice (sans /api/v1), existe encore pour les intégrations existantes. Il utilise le même jeton mais renvoie une liste brute ([10232, 10233]) et d’autres codes d’erreur (406, 401). Cet endpoint est obsolète ; pour les nouvelles intégrations, utilisez toujours POST /api/v1/webhooks/create-invoice.
Des questions ? Contactez help@numnum.be.