nummo

API entreprises

API Nummo

Récupérez les données des entreprises belges dans votre propre logiciel : données BCE, chiffres clés des comptes annuels et statut Peppol, via une API REST simple en JSON.

Aperçu

Ce que vous obtenez

  • Les données de la Banque-Carrefour des Entreprises (BCE) pour chaque entreprise belge.
  • Les chiffres clés et ratios des comptes annuels déposés à la Banque nationale.
  • Le statut Peppol, directement depuis le réseau Peppol.
  • Recherche par nom, numéro, rue ou commune.

Toutes les réponses sont en JSON, avec des noms de champs en anglais. L'API est en lecture seule. Nummo n'est pas une source officielle : en cas de doute, la source elle-même fait toujours foi.

Vous préférez utiliser Nummo dans Claude ou ChatGPT, sans programmer vous-même ? Connectez Nummo à votre assistant IA.

Pour commencer

S'authentifier avec une clé

L'API fait partie du plan API. Avec celui-ci, vous créez jusqu'à 5 clés sur votre profil ; elles fonctionnent tant que le plan est en cours. Vous ne voyez une clé qu'une seule fois : copiez-la immédiatement et conservez-la comme un mot de passe. Nous ne conservons qu'une empreinte illisible de la clé.

Envoyez la clé dans l'en-tête Authorization (ou dans X-Api-Key) :

curl -H "Authorization: Bearer $NUMMO_KEY" \
  https://www.nummo.be/api/v1/companies/0999001020

Utilisez la clé uniquement sur votre propre serveur, pas dans du code qui tourne dans le navigateur de vos visiteurs. Si une clé fuite malgré tout, révoquez-la sur votre profil et créez-en une nouvelle.

API REST en JSON

Endpoints

Adresse de base : https://www.nummo.be/api/v1

AppelCe que vous obtenez
GET /companies/{number}Données de la BCE : nom, forme juridique, statut, siège, activités (NACE), nombre d'établissements et coordonnées. Avec ?lang=nl, fr ou en, vous choisissez la langue des libellés.
GET /companies/{number}/financialsChiffres clés des comptes annuels déposés : chiffre d'affaires, marge brute, bénéfice, fonds propres, personnel, dettes et ratios. Avec ?years=1 à 10 (5 par défaut).
GET /companies/{number}/peppolL'entreprise est-elle sur Peppol, sous le numéro d'entreprise (0208) et le numéro de TVA (9925) ?
GET /search?q=...Recherche par nom, numéro, rue ou commune. Avec ?limit=1 à 50 (20 par défaut).
GET /openapi.jsonLa description complète de l'API en OpenAPI 3.1. Sans clé.

Le numéro d'entreprise peut s'écrire avec ou sans points et avec ou sans BE : 0999001020, 0999.001.020 et BE0999001020 fonctionnent tous.

curl

Exemples

# Une entreprise
curl -H "Authorization: Bearer $NUMMO_KEY" "https://www.nummo.be/api/v1/companies/0999001020?lang=fr"

# Chiffres clés des 3 derniers exercices
curl -H "Authorization: Bearer $NUMMO_KEY" "https://www.nummo.be/api/v1/companies/0999001020/financials?years=3"

# Statut Peppol
curl -H "X-Api-Key: $NUMMO_KEY" "https://www.nummo.be/api/v1/companies/0999001020/peppol"

# Rechercher
curl -H "Authorization: Bearer $NUMMO_KEY" "https://www.nummo.be/api/v1/search?q=bakkerij%20gent&limit=5"

Réponse pour une entreprise

{
  "enterprise_number": "0999001020",
  "formatted": "0999.001.020",
  "vat_number": "BE0999001020",
  "type": "legal_entity",
  "name": "Bakkerij De Zoete Korst BV",
  "abbreviation": null,
  "other_names": [
    { "name": "Zoete Korst", "type": "commercial_name", "language": "nl" }
  ],
  "status": "active",
  "legal_form": { "code": "015", "description": "Besloten vennootschap" },
  "legal_situation": "Normale toestand",
  "start_date": "1985-01-01",
  "stop_date": null,
  "registered_office": {
    "street": "Veldstraat", "house_number": "10", "box": "2",
    "postal_code": "9000", "municipality": "Gent", "country": "België"
  },
  "activities": [
    { "nace_code": "10.710", "version": "2025", "description": "Vervaardiging van brood en van vers banketbakkerswerk", "main": true }
  ],
  "branches_count": 3,
  "contact": { "website": "www.bakkerijdezoetekorst.example", "email": null, "phone": null },
  "nummo_url": "https://www.nummo.be/bakkerij-de-zoete-korst-bv-0999001020"
}

Réponse pour une entreprise individuelle

{
  "enterprise_number": "0999008047",
  "formatted": "0999.008.047",
  "type": "natural_person",
  "status": "active",
  "legal_form": null,
  "start_date": "2005-06-15",
  "stop_date": null,
  "registered_office": { "postal_code": "9070", "municipality": "Destelbergen" },
  "activities": [ ... ]
}

Limites

Limites

  • Avec le plan API, 25 000 appels par mois civil pour toutes vos clés ensemble, et au maximum 2 500 par jour. Les appels à /search ne comptent que pour la limite journalière, pas pour le quota mensuel. Le compteur journalier revient à zéro à minuit (heure belge), le compteur mensuel le premier du mois.
  • Au maximum 60 appels par minute et par clé.
  • Chaque réponse contient les en-têtes X-RateLimit-Limit et X-RateLimit-Remaining (quota mensuel) et X-RateLimit-Daily-Limit et X-RateLimit-Daily-Remaining (limite journalière).
  • Si vous dépassez une limite, vous recevez 429 avec un en-tête Retry-After.

Besoin de plus de 25 000 appels par mois ? Faites-le-nous savoir via l'aide, nous vous ferons une offre sur mesure. Vers l'aide

HTTP

Messages d'erreur

En cas d'erreur, vous recevez un statut HTTP et un objet JSON avec un code fixe et une explication en anglais :

{
  "error": {
    "code": "invalid_number",
    "message": "Not a valid Belgian enterprise number. ..."
  }
}
StatutCodeSignification
400invalid_number, invalid_parameterNuméro d'entreprise non valable, ou paramètre hors limites.
401missing_key, invalid_keyAucune clé envoyée, ou une clé que nous ne connaissons pas.
403key_revoked, api_plan_requiredLa clé a été révoquée, ou le compte n'a pas de plan API en cours.
404not_found, not_available, no_financialsNuméro inconnu ou masqué, pas de comptes annuels pour une personne physique, ou aucun compte annuel trouvé.
429rate_limited, daily_limit_reached, monthly_quota_exceededTrop d'appels : par minute, par jour ou par mois. L'en-tête Retry-After indique combien de secondes attendre.
503service_unavailableL'API est temporairement indisponible.
504upstream_timeoutLe réseau Peppol n'a pas répondu à temps.

GDPR

Vie privée

La BCE contient aussi des entreprises individuelles de personnes physiques. Nous les traitons avec soin, y compris dans l'API.

  • Entreprises individuelles (personnes physiques) : pas de nom, pas de rue, pas de coordonnées et pas d'établissements. Vous recevez uniquement le numéro, le statut, la forme juridique, les dates, le code postal et la commune, et les activités. Une recherche par nom ne les trouve pas, et il n'y a pas de comptes annuels.
  • Entreprises qui ont demandé à masquer leurs données : le nom oui, mais de l'adresse uniquement le code postal et la commune, et pas de coordonnées.
  • Entreprises qui ont demandé à ne pas être affichées : elles n'existent pas pour l'API (404).

Si vous utilisez les données pour du marketing direct ou du profilage, c'est à vous de respecter le RGPD. Politique de confidentialité

CORS

Depuis le navigateur

L'API autorise CORS pour les appels GET depuis n'importe quel domaine, pratique pour des outils internes et des prototypes. Ne mettez jamais une clé dans un site public : tout le monde peut l'y lire. Les réponses ne sont pas mises en cache (Cache-Control: private, no-store).

Tarifs

Plan API

999 € par an, hors TVA

  • 25 000 appels par mois par compte, au maximum 2 500 par jour
  • Les recherches ne comptent pas dans le quota mensuel
  • Jusqu'à 5 clés, par exemple pour le test et la production
  • Nummo Pro inclus, pour qui travaille aussi sur le site web
  • Facture avec TVA, aussi via Peppol

Essayer

Les exemples ci-dessus montrent chaque appel et chaque réponse, et la description OpenAPI est consultable sans clé. Les clés se créent avec le plan API : sans plan, l'API ne fonctionne pas.

Créer une clé APIDescription OpenAPI