Consommation des services

Obtenir le detail des consommations des services data et voix.

Netwo - API consommation voix / data (CDR)

La restitution du détail des consommations des services Netwo est disponible par API.
Spécifiquement pour ce service, le format CSV est également disponible en plus du format JSON.

Requête

Format JSON

GET /consumption

Format CSV

GET /consumption/csv

paramètres de la requête

  • after_id : liste les lignes de CDR à partir de l'identifiant du CDR (id_cdr) spécifié (exclus).
  • after_date : liste les lignes de CDR à partir de la date spécifiée spécifié (Ex: 2022-11-25T18:00:39.349Z).

⚠️

L'un ou l'autre des paramètres after_id et after_date est obligatoire. Les deux ne peuvent pas être présents
simultanément.

L'usage du paramètre after_id permet d'accéder aux dernières 48h seulement. Le paramètre after_id devrait être
utilisé dans le contexte d'une synchronisation régulière.
Pour accéder à une période antérieure, il faut utiliser le paramètre after_date.

  • limit : permet de spécifier le nombre maximum de résultats. Ce paramètre est obligatoire et borné (actuellement à
    5000, mais cette valeur est susceptible d'évoluer)
  • infra_type : Permet de filtrer sur le type d'infrastructure (facultatif).
    Valeurs possibles :
    • mobile
    • landline (pas encore disponible)
  • event_type : Permet de filtrer sur le type d'évènement (facultatif).
    Valeurs possibles :
    • voice_call (pas encore disponible)
    • sms (pas encore disponible)
    • mms (pas encore disponible)
    • data
  • service_ids : Permet de limiter la recherche aux lignes de CDR correspondants aux services spécifiés dans la
    liste service_ids.
  • iccids : Permet de limiter la recherche aux lignes de CDR correspondants aux iccids spécifiés dans la
    liste iccids.
  • service_hierarchy_ids : Permet de limiter la recherche aux lignes de CDR correspondants aux services spécifiés
    dans la liste service_hierarchy_ids.

⚠️

service_ids, iccids et service_hierarchy_ids sont mutuellement exclusifs. Il n'est pas obligatoire d'utiliser un
de ces paramètres.

Exemple d'une requête

GET /consumption?after_id=123453456&limit=2000&service_ids[]=5527053d-f9d9-4288-969a-5458b1b0dc54&service_ids[]=d59fb93f-b176-458b-84a4-af5b5d5d5022

Formats de réponse

Deux formats sont proposés :

  • Le format JSON
  • Le format CSV :
    • séparateur de champs : ","
    • séparateur de lignes : "\n"

⚠️

les formats CSV et JSON sont susceptibles d'évoluer.

Des champs seront ajoutés au fur et à mesure que l'offre telecom Netwo s'enrichira, c'est pourquoi il est vivement
recommandé de baser la mapping des champs sur le nom plutôt que sur l'ordre.

⚠️

Les éléments de pricing sont calculés de manière asynchrone

Il est donc possible qu'ils soient manquants lors de la première récupération du CDR.
Netwo pourrait par ailleurs être amené à recalculer a posteriori les coûts associés à certains CDR (dans ce cas
la rating_date serait mise à jour)

Détails des informations restituées

Champs CSVChamps JSONDescriptionTypeExempleOptionnelCondition de présence
cdr_idcdr_idIdentifiant unique et strictement croissant de CDRint(8)2345676543non
start_datestart_dateDate de début de la mesure / de l'appelDateTime(UTC)2022-11-25T18:00:39.349Znon
end_dateend_dateDate de fin de la mesure / de l'appelDateTime(UTC)2022-11-25T19:00:39.349Znon
infra_typeinfra_details.typeType d'infrastructure (fixe, mobile)enum(mobile, landline)mobilenon
iccidinfra_details.iccidICCID : identifiant de la carte SIMString(20)89461733011826019699ouimobile
msisdninfra_details.msisdnMSISDN : Numéro de téléphoneString(15)0612345678ouinon
imsiinfra_details.imsiIdentifie l'abonnéString(16)208391134567890ouimobile
imeiinfra_details.imeiIdentifie l'équipementString(15)49015420323751ouimobile
origin_networkinfra_details.origin_networkRéseau opérateur d'origine - TADIG codeStringFRAF1ouimobile
event_typeevent_details.typeType de communication (Voix, SMS, MMS, data)enum(voice_call, sms, mms, data)datanon
data_consumption_up_bytesevent_details.data_consumption_up_bytesConsommation de données (envoi)int(8)3456764345ouidata
data_consumption_down_bytesevent_details.data_consumption_down_bytesConsommation de données (réception)int(8)8765434534ouidata
service_hierarchy_idservice_hierarchy_idIdentifiant unique de la ligne téléphonique/datauuid13921A62-80AA-4FCD-B4D5-32540A283264non
directionevent_details.directionDirection de l'appel (entrant ou sortant)enum(in, out)inouiappel téléphonique
source_numberevent_details.source_numberNuméro de l'appelantString+33122554466ouiappel téléphonique
destination_numberevent_details.destination_numberNuméro appeléString+33122554466ouiappel téléphonique
start_of_communicationevent_details.start_of_communicationDate de début de la communication téléphoniqueDateTime(UTC)2022-11-25T19:00:39.349Zouiappel téléphonique
call_duration_secondsevent_details.call_duration_secondsDurée précise de l'appelDecimal185.251ouiappel téléphonique
bad_panievent_details.bad_paniIndique si le PANI de l'appel est manquant ou invalideboolfalseouiappel téléphonique
bad_paievent_details.bad_paiindique si le PAI de l'appel est manquant ou invalideboolfalseouiappel téléphonique
panievent_details.paniContenu du champ PANI reçuString017505601ouiappel téléphonique
paievent_details.paiContenu du champ PAI reçuString+33122554466ouiappel téléphonique
hidden_numberevent_details.hidden_numberIndique si l'appel a été passé en numéro cachéboolfalseouiappel téléphonique
total_pricerating.priceCoût associé au CDR (uniquement pour les appels sortants à date)Decimal0.0152ouiappel sortant après rating
rating_daterating.rating_dateDate de calcul du prixDateTime(UTC)2022-11-25T19:00:39.349Zouiappel sortant après rating
origin_namerating.rating_details.origin_nameNom (dans la grille tarifaire) de la région d'origine de l'appelStringFranceouiappel sortant après rating
destination_namerating.rating_details.destination_nameNom (dans la grille tarifaire) de la région de destination de l'appelStringFranceouiappel sortant après rating
service_billed_duration_secrating.rating_details.service_billed_duration_secDurée d'appel effectivement facturéeint190ouiappel sortant après rating
call_chargerating.rating_details.call_chargeCoût d'établissement de la communicationDecimal0.003ouiappel sortant après rating
duration_chargerating.rating_details.duration_chargeCoût associé à la durée de communicationDecimal0.003ouiappel sortant après rating
vas_statusrating.rating_details.vas_status.vas_statusType de numéro spécial (ou not_vas pour un numéro classique)enum(not_vas, priced_as_local_call, free, vas)vasouiappel sortant après rating
vas_pricerating.rating_details.vas_status.vas_priceSurcoût spécifique aux numéros spéciaux ( si vas_status = vas)Decimal0.003ouiappel sortant après rating
bad_pai_pani_overpricerating.rating_details.bad_pai_pani_overpriceIndique si l'appel a fait l'objet d'une majoration du fait d'une erreur dans le PANI ou PAIboolfalseouiappel sortant après rating

Exemple au format JSON

[
  {
    "cdr_id": 2345676543,
    "start_date": "2022-11-25T18:00:39.349Z",
    "end_date": "2022-11-25T19:00:39.349Z",
    "infra_details": {
      "type": "mobile",
      "iccid": "89461733011826019699",
      "msisdn": "0612345678",
      "imsi": "208391134567890",
      "imei": "49015420323751",
      "origin_network": "FRAF1"
    },
    "event_details": {
      "type": "data",
      "data_consumption_up_bytes": 3456764345,
      "data_consumption_down_bytes": 8765434534
    },
    "service_hierarchy_id": "13921A62-80AA-4FCD-B4D5-32540A283264"
  }
]

Exemple au format CSV

cdr_id,start_date,end_date,infra_type,event_type,iccid,msisdn,imsi,imei,origin_network,data_consumption_up_bytes,data_consumption_down_bytes,service_hierarchy_id,direction,source_number,destination_number,start_of_communication,call_duration_seconds,bad_pani,bad_pai,pani,pai,hidden_number,total_price,rating_date,origin_name,destination_name,service_billed_duration_sec,call_charge,duration_charge,vas_status,vas_price,bad_pai_pani_overprice
2345676543,2022-11-25T18:00:39.349Z,2022-11-25T19:00:39.349Z,mobile,data,89461733011826019699,0612345678,208391134567890,49015420323751,FRAF1,3456764345,8765434534,13921A62-80AA-4FCD-B4D5-32540A283264,,,,,,,,,,,,,,,,,,,,

Exports mensuels

Si vous n'êtes pas en mesure d'exploiter les données de consommation temps réel, Netwo met également à votre disposition
des exports mensuels au format CSV.

Ces fichiers sont générés en début de mois pour le mois précédent et reprennent le même format que les CSV disponibles
via l'API temps-réel (présentée ci-dessus).

Si un service VoIP (trunk SIP) ne génère ni ne reçoit aucun appel pour un mois donné, aucun fichier ne sera généré.

Liste des exports disponibles

GET /consumption/export?service_id=37f55488-014a-11ef-8c98-138e7cf3dfdd
[
  {
    "export_id": "400f6db6-014a-11ef-ab6c-2300dd0bec1b",
    "service_id": "37f55488-014a-11ef-8c98-138e7cf3dfdd",
    "beginning_of_period": "2023-07-01",
    "version": 1
  },
  {
    "export_id": "44b6c512-014a-11ef-8de6-8b231f2b8306",
    "service_id": "37f55488-014a-11ef-8c98-138e7cf3dfdd",
    "beginning_of_period": "2023-08-01",
    "version": 1
  }
]

En cas de correction des données de consommation, un nouveau fichier sera généré et le numéro de version présenté dans
cet API sera incrémenté.

Afin d'éviter tout risque d'erreur, l'API ne restitue que la version la plus à jour de chaque export.

Téléchargement d'un export mensuel

GET /consumption/export/44b6c512-014a-11ef-8de6-8b231f2b8306

Comme indiqué précédemment, le retour est un fichier au format CSV identique à celui de l'API temps-réel décrite
ci-dessus.