Intégration CNAM

Référence API REST CNAM

Demandez un nom d’appelant via HTTPS et traitez le résultat, les frais et les erreurs.

Choisissez le comportement de recherche

NiveauPrix public par requêteFonctionnalité
Starter0,0026 $USUtilise des informations propriétaires et mises en cache sur le nom d'appelant.
Standard0,0037 $USEffectue une recherche réseau en temps réel pour chaque requête.
Mixed0,004 $USEffectue d’abord une recherche en temps réel, puis utilise les données Starter si aucun nom n’est trouvé.

Le service sélectionné détermine le fonctionnement de la recherche ; Mixed ne consulte pas le cache en premier. Vérifiez le tarif attribué à votre compte avant toute utilisation en production. Un nom d’appelant ne constitue pas une preuve d’identité ou de propriété.

Envoyez une recherche authentifiée

Point de terminaison : GET https://api.multitel.net/v3/cnam/NUMBER. Utilisez le numéro au format international avec l’indicatif de pays, sans ponctuation ni signe plus initial. Exécutez cette requête depuis votre serveur applicatif avec des identifiants API approuvés.

curl --fail-with-body \
  --user "$MULTITEL_API_USERNAME:$MULTITEL_API_PASSWORD" \
  --header "Accept: application/json" \
  "https://api.multitel.net/v3/cnam/12025550123"

Fournissez les deux variables d’environnement dans la configuration des secrets côté serveur. Un identifiant d’authentification de type bearer spécialement configuré constitue une autre possibilité uniquement si cet accès est activé et si ses restrictions d’adresse IP source sont respectées. Ne placez jamais de secret API dans le code public du navigateur.

Guide d'authentification API et première requête

Lisez la réponse JSON

Cette réponse est un exemple. Le nom renvoyé et les frais dépendent de la recherche et du service sélectionné.

{
  "status": {
    "code": 200,
    "msg": ""
  },
  "response": {
    "number": "12025550123",
    "name": "EXAMPLE CALLER",
    "cost": "0.004",
    "balance": "24.9960"
  }
}
status.code
Code de résultat applicatif ; normalisez les valeurs textuelles ou numériques avant de les comparer à 200.
status.msg
Le résultat ou le message de rejet associé.
response.number
Le numéro interrogé.
response.name
Le nom d'appelant disponible.
response.cost
Frais signalés pour cette requête ; traitez cette valeur comme un montant décimal.
response.balance
Le solde du compte signalé, lorsqu'il est présent.

Résultats sans nom et erreurs

Une requête réussie ne garantit pas un nom d'appelant utile. Gérez un nom vide, un numéro retourné à la place d'un nom et une recherche rejetée. Le code d'application 403 peut décrire un crédit insuffisant, un achat interdit ou un numéro sans résultat ; inspectez le message.

Vérifiez à la fois le statut HTTP et le status JSON avant d'accéder à response.name. L'objet de réponse peut être absent en cas d'erreur. Un nom manquant ne doit pas empêcher l'appel normal d'être routé.

Facturation, nouvelles tentatives et différence avec la mise à jour du nom d’appelant

Une nouvelle recherche peut entraîner des frais de requête. Ces interfaces ne documentent aucune clé d’idempotence ; une nouvelle tentative peut donc constituer une deuxième requête facturable. En cas de défaillance du transport ou du service, limitez les tentatives et espacez-les progressivement. Résolvez d’abord les erreurs de compte et rapprochez les frais de requête signalés de vos enregistrements. Mettez les résultats en cache uniquement pendant une durée adaptée à votre application : les noms d’appelants peuvent changer.

Une recherche CNAM lit un nom. Elle ne change pas le nom présenté sur vos appels sortants. Une mise à jour du nom d'appelant LIDB est une opération distincte avec ses propres champs, autorisation, prix et traitement.