Dans cet article
Vue d'ensemble
configurer une URL de rappel pour un webhook
dropdown icon
Points de terminaison de l'API des partenaires
    Point de terminaison de l'API de réconciliation
    Enregistre le point final de l'API
Comprendre les codes de réponse des points de terminaison de l'API
API de rapports/modèles pour les partenaires
Historique des révisions
Webhook détaillé des enregistrements d'appels pour Webex Calling dans Partner Hub
list-menuDans cet article
list-menuUn commentaire ?

Les partenaires multilocataires (MT) Webex Calling peuvent créer un webhook pour collecter les données Webex Calling de tous vos clients. Cela permet un rapprochement des factures, des analyses et des rapports efficaces sans avoir à interroger chaque client individuellement.

Vue d'ensemble

Le webhook Detailed Call Records propose une solution sécurisée, évolutive et robuste axée sur les événements plutôt que sur les demandes. Ce webhook offre une meilleure visibilité sur les Webex Calling activités de vos clients, en prenant en charge des cas d'utilisation, de la facturation aux rapports personnalisés.

Vous pouvez utiliser ce webhook pour recueillir facilement des données pour tous les clients gérés via Partner Hub, sans demander à chaque client un par un. Ce webhook vous permet de développer des applications personnalisées de reporting, de facturation et d'analyse pour les besoins commerciaux internes et les services à valeur ajoutée.

Pour une présentation du webhook et des API qui l'accompagnent, regardez ce Vidcast : API d'historique détaillé des appels pour les Webex Calling partenaires.

Ce que propose le webhook Partner

Le webhook fournit un historique détaillé des appels toutes les 5 minutes. Chaque charge utile de webhook contient  :

  • Enregistrements d'appels qui se sont terminés entre 10 minutes et 5 minutes avant l'heure actuelle.
  • Tout enregistrement en retard traité par le Webex Calling cloud.
  • Remplit automatiquement les enregistrements d'appels en retard dans les charges utiles du Webhook suivantes afin de garantir une livraison fiable.

Pour montrer comment les enregistrements d'appels sont inclus dans chaque charge utile, prenons l'exemple suivant :

  • Une charge utile reçue à 14h05 contient des appels qui se sont terminés entre 13h55 et 14h00.
  • Les appels se terminant entre 14h00 et 14h05 sont inclus dans la charge utile de 14h10.
  • Les enregistrements terminés plus tôt (par exemple, un appel qui s'est terminé à 14h04) mais traités tardivement par le Webex Calling cloud (par exemple, à 14h11) sont inclus dans la charge utile planifiée suivante ( par exemple, 14h15).

Les webhooks fournissent des records de manière fiable. Cependant, il se peut que vous receviez des enregistrements dupliqués dans les charges utiles suivantes du Webhook lorsque le système rediffuse les enregistrements sous certaines conditions. Vous êtes responsable de la déduplication des enregistrements. Pour identifier les doublons, utilisez le champ ReportID comme clé primaire et le champ ReportTime pour déterminer quand un appel a été terminé ou traité. Utilisez ces champs pour mettre à jour ou insérer des enregistrements dans vos banques de données internes.

Webhook dans Partner Hub

En fournissant un webhook, vous permettez à la plateforme d'analyse d'envoyer les enregistrements d'appels vers votre URL de rappel dès qu'ils sont générés.

Webex Callingles enregistrements sont transmis dans le même format que les API Detailed Call Records existantes. Vous pouvez créer un webhook et choisir entre deux types de flux :

  • Analytique : inclut tous les enregistrements d'appels de toutes les organisations clientes avec lesquelles le partenaire entretient une Webex Calling relation. Cela inclut les organisations dans lesquelles :
    • Le partenaire gère l'organisation cliente avec le rôle d'administrateur à part entière.
    • L'organisation cliente possède un Webex Calling abonnement actif au sein de l'organisation partenaire.
  • Facturation : inclut les enregistrements des appels passés par les utilisateurs titulaires d'une Webex Calling licence vendue et fournie par le partenaire. Les relevés d'appels pour Workspaces sont inclus dans ce fil.

Accès et confidentialité des données

Seul le partenaire propriétaire peut accéder aux enregistrements détaillés des appels (CDR) pour la facturation.

  • Un partenaire (ou un sous-partenaire) qui gère la licence associée à l'enregistrement des appels devient le partenaire propriétaire.
  • La propriété est déterminée par : ID utilisateur > ID de licence > ID d'abonnement > ID partenaire.
  • Chaque CDR est accessible à un seul partenaire.
  • Certains enregistrements d'appels ne correspondent pas à un partenaire de facturation, et tous les partenaires associés à une organisation n'ont pas le même accès à tous les enregistrements, car ceux-ci peuvent contenir des informations personnelles identifiables (PII).

configurer une URL de rappel pour un webhook

Configurez le webhook dans le Partner Hub. Vous ne pouvez créer qu'un seul webhook par organisation partenaire.

Assurez-vous que vous avez le rôle d'administrateur complet de partenaire avec «   Accès organisationnel complet au niveau administrateur » et que l'accès à l'API Webex Calling CDR est vérifié dans Control Hub (sous Gestion > Utilisateurs, sélectionnez un administrateur complet ou un administrateur complet partenaire, puis sélectionnez Rôles d'administrateur > Partenaire).

Les mêmes conditions d'accès s'appliquent lorsque vous utilisez les API Partner Reconciliation and Records.

Screenshot showing administrator roles settings with Partner admin and Partner full admin selected, along with Webex Calling CDR API Access checked under Functional settings.

1

Connectez-vous au Partner Hub.

2

Accédez aux paramètres de l'organisation > Dossiers détaillés des appels.

Screenshot of Organization Settings for Call Detail Records, displaying fields for Webhook URL, Secret token, and Resource Type with Analytics selected.
3

Entrez une URL à utiliser sous Webhook.

L'URL doit se terminer par /webhook (par exemple, https://yourdomain.com/webhook).
4

Si vous souhaitez authentifier les charges utiles de votre webhook à l'aide d'un jeton secret, vous pouvez en ajouter un. Pour en savoir plus sur les webhooks et les jetons secrets Webex, consultez Webex for Developers : Webhooks.

5

Sélectionnez l'un des types de ressources suivants à utiliser pour le webhook :

  • Analytics —Inclut tous les enregistrements d'appels de toutes les organisations clientes avec lesquelles le partenaire entretient une Webex Calling relation.
  • Facturation : inclut les relevés d'appels des utilisateurs à qui le partenaire a vendu Webex Calling des licences. Les relevés d'appels pour Workspaces sont inclus dans ce fil.

Points de terminaison de l'API des partenaires

Outre le webhook, il Webex Calling fournit des points de terminaison d'API pour faciliter la réconciliation des données. Ces points de terminaison vous permettent de rattraper ou de réconcilier vos banques de données avec les enregistrements manquants que votre auditeur Webhook n'aurait peut-être pas reçus. Les deux points de terminaison de l'API sont l'API de réconciliation et l'API Records.

Les enregistrements de ces API sont disponibles pendant 30 jours. Pour vous assurer de recevoir tous les disques attendus, nous vous recommandons de réconcilier vos disquaires régulièrement, par exemple toutes les 12 ou 24 heures.

Vous devez utiliser un jeton d'accès partenaire pour accéder à ces API. L'utilisateur qui s'authentifie doit être un administrateur partenaire à part entière avec un accès organisationnel complet au niveau administrateur et l'accès à l'API Webex Calling CDR doit être activé. Le jeton OAuth doit inclure le spark-admin:calling_cdr_readscope. Les rôles d'administrateur en lecture seule ne sont pas suffisants pour les API Partner Reconciliation and Records.

Utilisez le analytics-callingpoint de terminaison correspondant à la région de Webex Calling données de l'organisation cliente. Utilisez l'URL de base applicable pour les API de réconciliation et d'enregistrement :

  • États-Unis et Canada : https://analytics-calling.webexapis.com
  • Europe : https://analytics-calling-eu.webexapis.com
  • Inde : https://analytics-calling-in.webexapis.com
  • Australie : https://analytics-calling-au.webexapis.com

Les plages de fenêtres d'API s'appliquent aux deux terminaux afin de mieux gérer la charge de service.

  • Pour les plages de temps supérieures à 48 heures, la durée maximale autorisée est de 12 heures (obligatoire).
  • Pour l'identifiant d'une organisation partenaire, le débit des API est limité à une demande d'API initiale par minute, par étendue de jeton. Si la pagination est utilisée, jusqu'à 10 demandes d'API paginées supplémentaires par minute et par jeton sont autorisées, et elles peuvent être effectuées immédiatement après la demande initiale.

Point de terminaison de l'API de réconciliation

Le point de terminaison de l'API de réconciliation renvoie le nombre total d'enregistrements d'appels générés pour chaque client géré par le partenaire au cours de la période spécifiée. Vous pouvez utiliser ces totaux pour vérifier votre stockage local et identifier les enregistrements d'appels manquants ou incohérents pour des clients spécifiques.

Conditions d'accès : L'utilisateur qui s'authentifie doit être un administrateur partenaire disposant d'un accès complet au niveau administrateur et l'accès à l'API Webex Calling CDR doit être activé. Le jeton d'accès doit inclure le spark-admin:calling_cdr_readscope.

Si vous gérez plus de 200 organisations clientes, l'API pagine les résultats pour en améliorer la lisibilité.

L'URL du point de terminaison de l'API de réconciliation utilise le format suivant :

https://analytics-calling.webexapis.com/v1/partners/cdrcountbyorg?endTime=YYYY-MM-DDTHH:MM:SS.000Z&startTime=YYYY-MM-DDTHH:MM:SS.000Z

Paramètres de l'API

Vous pouvez utiliser l'API pour récupérer les enregistrements d'appels des 30 derniers jours. La fenêtre horaire que vous avez sélectionnée doit commencer au moins 5 minutes avant l'heure UTC actuelle et ne peut pas dépasser 12 heures entre le début et la fin d'un seul appel d'API.

Les paramètres de l'API sont les suivants :

  • StartTime (obligatoire, chaîne) : date et heure de début (UTC) du premier enregistrement que vous souhaitez collecter. Assurez-vous que :
    • Vous formatez l'heure comme suit YYYY-MM-DDTHH:MM:SS.mmmZ: Par exemple, 2025-08-15T06:00:00.000Z.
    • La date et l'heure de début ne doivent pas dater de plus de 30 jours par rapport à l'heure UTC actuelle.
    • La fenêtre entre startTimeet ne endTimepeut pas dépasser 12 heures.
  • EndTime (obligatoire, chaîne) : date et heure de fin (UTC) des enregistrements que vous souhaitez collecter. Les records sont basés sur l'heure du rapport, c'est-à-dire la fin de l'appel. Assurez-vous que :
    • Vous formatez l'heure comme suit YYYY-MM-DDTHH:MM:SS.mmmZ: Par exemple, 2025-08-15T18:00:00.000Z.
    • La date et l'heure de fin doivent être 5 minutes avant l'heure UTC actuelle et pas plus de 30 jours.
    • La date et l'heure de fin doivent être supérieures au startTime.
    • La fenêtre entre le startTimeet ne endTimepeut pas dépasser 12 heures.

Exemple de réponse JSON au point de terminaison de l'API de réconciliation :


          {
          "cdr_counts": [
          {
          "orgId": "zzzzzzzz-yyyy-zzzz-xxxx-yyyyyyyyyyyy",
          "count": 3009
          },
          {
          "orgId": "yyyyyyyy-yyyy-zzzz-xxxx-yyyyyyyyyyyy",
          "count": 129
          },
          {
          "orgId": "xxxxxxxx-yyyy-zzzz-xxxx-yyyyyyyyyyyy",
          "count": 27895
          }
          ]
          }          
        

Les en-têtes des réponses de l'API indiquent le nombre total d'organisations renvoyées et indiquent si des pages supplémentaires sont disponibles. Vérifiez les paramètres d'en-tête suivants pour vous assurer que vous avez interrogé toutes les pages :

  • num-pages : nombre total de pages (par exemple, 2)
  • total-orgs : nombre total d'organisations incluses dans la réponse (par exemple, 283)
  • page actuelle : Le numéro de la page actuelle (par exemple, 1)

Par exemple, si les en-têtes indiquent num-pages=2, total-orgs=283 et current-page=1, vous consultez la première page d'une réponse de deux pages contenant 283 organisations au total. Pour accéder à la page suivante, ajoutez le paramètre page=2 à votre requête GET, comme indiqué ci-dessous :

https://analytics-calling.webexapis.com/v1/partners/cdrcountbyorg?endTime=YYYY-MM-DDTHH:MM:SS.000Z&startTime=YYYY-MM-DDTHH:MM:SS.000Z&page=2

Enregistre le point final de l'API

Le point de terminaison de l'API Records est utilisé pour interroger les enregistrements d'appels manquants pour des organisations spécifiques où des divergences ou des données manquantes ont été identifiées à l'aide de l'API de réconciliation.

Flux recommandé : appelez /v1/partners/cdrcountbyorgd'abord. Ensuite, utilisez la date exacte que vous avez orgIdrenvoyée cdr_counts[].orgIdlorsque vous appelez /v1/partners/cdrsbyorg.

L'API Records renvoie les enregistrements d'appels au format JSON, identique au format décrit dans l'API d'historique détaillé des appels. La charge utile renvoyée contient des champs identiques à ceux de la charge utile renvoyée par l'historique détaillé des appels. Pour plus d'informations sur les champs et leurs valeurs, voir le rapport Webex Calling détaillé sur l'historique des appels.

L'API fournit des enregistrements d'appels qui se sont terminés 5 minutes avant l'heure actuelle. Pour vous assurer que tous les enregistrements d'appels sont disponibles, nous vous recommandons de consulter l'API une heure après la fenêtre horaire de votre choix.

L'URL du point de terminaison de l'API Records utilise le format suivant :

https://analytics-calling.webexapis.com/v1/partners/cdrsbyorg?orgId=zzzzzzzz-yyyy-zzzz-xxxx-yyyyyyyyyyyy&endTime=YYYY-MM-DDTHH:MM:SS.000Z&startTime=YYYY-MM-DDTHH:MM:SS.000Z

Paramètres de l'API

  • orgId(obligatoire, chaîne) : identifiant de l'organisation cliente pour laquelle vous souhaitez récupérer des enregistrements. Le nom du paramètre distingue les majuscules et minuscules. Vous pouvez obtenir les identifiants des organisations dans le champ de réponse de l'API de réconciliation cdr_counts[].orgId.
  • StartTime (obligatoire, chaîne) : date et heure de début (UTC) du premier enregistrement que vous souhaitez collecter. Assurez-vous que :
    • Vous formatez l'heure comme suit YYYY-MM-DDTHH:MM:SS.mmmZ: Par exemple, 2025-08-15T06:00:00.000Z.
    • La date et l'heure de début ne doivent pas dater de plus de 30 jours par rapport à l'heure UTC actuelle.
    • L'intervalle entre le startTimeet ne endTimedoit pas dépasser 12 heures pour une seule demande d'API.
  • EndTime (obligatoire, chaîne) : date et heure de fin (UTC) du dernier enregistrement que vous souhaitez collecter. Les records sont basés sur l'heure du rapport, c'est-à-dire la fin de l'appel. Assurez-vous que :
    • Vous formatez l'heure comme suit YYYY-MM-DDTHH:MM:SS.mmmZ: Par exemple, 2025-08-15T18:00:00.000Z.
    • La date et l'heure de fin doivent être situées au moins 5 minutes avant l'heure UTC actuelle et pas plus de 30 jours.
    • La date et l'heure de fin doivent être supérieures au startTime.
    • L'intervalle entre le startTimeet ne endTimedoit pas dépasser 12 heures pour une seule demande d'API.
  • max (facultatif, nombre) : limite le nombre maximum d'enregistrements par page dans la réponse. Assurez-vous que :
    • La fourchette va de 500 à 5 000. La valeur par défaut est 5 000. Par exemple, max=1000.
    • Si l'API a plus d'enregistrements à renvoyer que la valeur maximale spécifiée, la réponse est paginée.
    • Si une valeur inférieure à 500 est spécifiée, elle est automatiquement ajustée à 500. Si une valeur supérieure à 5 000 est spécifiée, elle est ramenée à 5 000.

Pagination

Pour savoir si les réponses de l'API sont paginées, vérifiez que les en-têtes de réponse contiennent un en-tête de lien. Si un nextlien est présent dans l'en-tête du lien, extrayez-le et utilisez startTimeForNextFetchsa valeur pour demander la prochaine série d'enregistrements. S'il n'y a pas de lien suivant, tous les rapports pour la période sélectionnée sont collectés.

Les demandes d'API pour les pages suivantes peuvent être effectuées immédiatement, mais le débit doit être limité à un maximum de 10 requêtes paginées par minute, par jeton.

Utilisez le traitement idempotent et la déduplication lorsque vous récupérez des enregistrements, y compris dans le cadre de réponses paginées ou de fenêtres de rapprochement répétées. reportIdUtilisez-la comme clé primaire et reportTimepour déterminer le dernier enregistrement traité.

Par exemple, si la demande d'API initiale est :

https://analytics-calling.webexapis.com/v1/partners/cdrsbyorg?orgId=zzzzzzzz-yyyy-zzzz-xxxx-yyyyyyyyyyyy&endTime=2025-08-15T18:00:00.000Z&startTime=2025-08-15T06:00:00.000Z&max=5000

alors l'en-tête du lien dans la réponse est :

<https://analytics-calling.webexapis.com/v1/partners/cdrsbyorg?orgId=zzzzzzzz-yyyy-zzzz-xxxx-yyyyyyyyyyyy&endTime=2025-08-15T18:00:00.000Z&startTime=2025-08-15T06:00:00.000Z&startTimeForNextFetch=2025-08-15T09:30:00.000Z&totalCount=20000&max=5000>; rel="next"

La pagination utilise uniquement l'en-tête du rel="next"lien. Si la réponse inclut un rel="next"lien, utilisez cet URL pour accéder à la page suivante des records. Si la réponse ne contient pas de rel="next"lien, vous avez récupéré tous les enregistrements disponibles pour la période sélectionnée.

La pagination de cette API est conforme à la norme RFC5988 (liens Web). Pour plus d'informations, consultez REST API Basics.

Comprendre les codes de réponse des points de terminaison de l'API

Cette section donne un aperçu des codes de réponse courants que vous pouvez rencontrer lorsque vous travaillez avec le point de terminaison de l'API de réconciliation et le point de terminaison de l'API Records. Ces terminaux jouent un rôle essentiel dans la synchronisation, la validation et la création de rapports des données. Il est essentiel de comprendre ces codes de réponse pour résoudre les problèmes efficacement et maintenir des intégrations fiables et stables.

Tableau 1. Codes de réponse API Endpoint

Code de réponse

Description du code de réponse

200

OK

400

Mauvaise demande : la demande n'était pas valide ou ne pouvait pas être traitée autrement. Le message d'erreur qui l'accompagne vous expliquera plus en détail.

401

Non autorisé : les informations d'authentification étaient manquantes ou incorrectes.

403

Interdit : La demande est comprise, mais elle a été refusée ou l'accès n'est pas autorisé.

404

Introuvable : L'URI demandé n'est pas valide ou la ressource demandée, par exemple un utilisateur, n'existe pas. Également renvoyé lorsque le format demandé n'est pas pris en charge par la méthode demandée.

405

Méthode non autorisée : La demande a été faite à une ressource à l'aide d'une méthode de requête HTTP qui n'est pas prise en charge.

409

Conflit : La demande n'a pas pu être traitée car elle va à l'encontre d'une règle établie du système. Par exemple, il est interdit d'ajouter une personne à une chambre plus d'une fois.

410

Disparue : La ressource demandée n'est plus disponible.

415

Type de support non pris en charge : La demande a été faite à une ressource sans spécifier de type de support ou a utilisé un type de support non pris en charge.

423

Verrouillé : la ressource demandée est temporairement indisponible. Il se peut qu'un en-tête Retry-After indique le nombre de secondes à attendre avant de réessayer de faire la demande.

428

Condition préalable requise : Les fichiers ne peuvent pas être analysés pour détecter la présence de logiciels malveillants et doivent être téléchargés de force.

429

Trop de demandes : Trop de demandes ont été envoyées en un temps donné et le tarif de la demande a été limité. Un en-tête Retry-After devrait être présent pour indiquer le nombre de secondes à attendre avant qu'une demande ne soit acceptée.

451

Par défaut, les demandes analytics-calling.webexapis.comsont acheminées vers les serveurs régionaux les plus proches. Si ces serveurs hébergent les données de l'organisation, l'API les renvoie. Sinon, l'API renvoie le protocole HTTP 451, et le corps de la réponse identifie le point de terminaison sur lequel vous pouvez récupérer les données de l'organisation.

500

Erreur interne du serveur : quelque chose s'est mal passé sur le serveur. Si le problème persiste, n'hésitez pas à contacter [l'équipe d'assistance aux développeurs de Webex] (/explore/support).

502

Mauvaise passerelle : le serveur a reçu une réponse non valide de la part d'un serveur en amont lors du traitement de la demande. Réessayez plus tard.

503

Service non disponible : le serveur est surchargé de demandes. Réessayez plus tard.

504

Gateway Timeout : aucun serveur en amont n'a répondu à temps. Si votre requête utilise le paramètre Max, essayez de le réduire.

API de rapports/modèles pour les partenaires

Vous pouvez générer et télécharger des rapports disponibles sur Partner Hub à l'aide des API Partner Reports. Pour plus d'informations, consultez le rapport/les modèles des partenaires.

Les partenaires peuvent également accéder à plusieurs rapports et les télécharger directement depuis Partner Hub. Pour plus d' informations, consultez les rapports du Partner Hub.

Historique des révisions

Historique des révisions des documents

Date de révision

Nous avons apporté les modifications suivantes à l'article

13/08/26

  • Rôle de point de terminaison de l'API de réconciliation : l'utilisateur qui s'authentifie doit être un administrateur partenaire disposant d'un accès complet au niveau administrateur. De plus, l'accès à l'API Webex Calling CDR doit être activé.

  • Les codes de réponse des points de terminaison de l'API Understand ont été mis à jour pour inclure le code d'erreur 451.

  • Ajout des points de terminaison régionaux pour la région de Webex Calling données de l'organisation cliente.

2/04/2026

  • A créé un tableau d'historique des révisions qui permet de suivre toutes les modifications apportées au fil du temps.

  • A mis à jour les sections Point de terminaison de l'API de réconciliation et Point de terminaison de l'API Records pour y inclure un tableau ou les valeurs des codes d'erreur.

Cet article était-il utile ?
Cet article était-il utile ?