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
etafter_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ètreafter_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ètreafter_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
listeservice_ids
. - iccids : Permet de limiter la recherche aux lignes de CDR correspondants aux iccids spécifiés dans la
listeiccids
. - service_hierarchy_ids : Permet de limiter la recherche aux lignes de CDR correspondants aux services spécifiés
dans la listeservice_hierarchy_ids
.
service_ids
,iccids
etservice_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
larating_date
serait mise à jour)
Détails des informations restituées
Champs CSV | Champs JSON | Description | Type | Exemple | Optionnel | Condition de présence |
---|---|---|---|---|---|---|
cdr_id | cdr_id | Identifiant unique et strictement croissant de CDR | int(8) | 2345676543 | non | |
start_date | start_date | Date de début de la mesure / de l'appel | DateTime(UTC) | 2022-11-25T18:00:39.349Z | non | |
end_date | end_date | Date de fin de la mesure / de l'appel | DateTime(UTC) | 2022-11-25T19:00:39.349Z | non | |
infra_type | infra_details.type | Type d'infrastructure (fixe, mobile) | enum(mobile , landline ) | mobile | non | |
iccid | infra_details.iccid | ICCID : identifiant de la carte SIM | String(20) | 89461733011826019699 | oui | mobile |
msisdn | infra_details.msisdn | MSISDN : Numéro de téléphone | String(15) | 0612345678 | oui | non |
imsi | infra_details.imsi | Identifie l'abonné | String(16) | 208391134567890 | oui | mobile |
imei | infra_details.imei | Identifie l'équipement | String(15) | 49015420323751 | oui | mobile |
origin_network | infra_details.origin_network | Réseau opérateur d'origine - TADIG code | String | FRAF1 | oui | mobile |
event_type | event_details.type | Type de communication (Voix, SMS, MMS, data) | enum(voice_call , sms , mms , data ) | data | non | |
data_consumption_up_bytes | event_details.data_consumption_up_bytes | Consommation de données (envoi) | int(8) | 3456764345 | oui | data |
data_consumption_down_bytes | event_details.data_consumption_down_bytes | Consommation de données (réception) | int(8) | 8765434534 | oui | data |
service_hierarchy_id | service_hierarchy_id | Identifiant unique de la ligne téléphonique/data | uuid | 13921A62-80AA-4FCD-B4D5-32540A283264 | non | |
direction | event_details.direction | Direction de l'appel (entrant ou sortant) | enum(in , out ) | in | oui | appel téléphonique |
source_number | event_details.source_number | Numéro de l'appelant | String | +33122554466 | oui | appel téléphonique |
destination_number | event_details.destination_number | Numéro appelé | String | +33122554466 | oui | appel téléphonique |
start_of_communication | event_details.start_of_communication | Date de début de la communication téléphonique | DateTime(UTC) | 2022-11-25T19:00:39.349Z | oui | appel téléphonique |
call_duration_seconds | event_details.call_duration_seconds | Durée précise de l'appel | Decimal | 185.251 | oui | appel téléphonique |
bad_pani | event_details.bad_pani | Indique si le PANI de l'appel est manquant ou invalide | bool | false | oui | appel téléphonique |
bad_pai | event_details.bad_pai | indique si le PAI de l'appel est manquant ou invalide | bool | false | oui | appel téléphonique |
pani | event_details.pani | Contenu du champ PANI reçu | String | 017505601 | oui | appel téléphonique |
pai | event_details.pai | Contenu du champ PAI reçu | String | +33122554466 | oui | appel téléphonique |
hidden_number | event_details.hidden_number | Indique si l'appel a été passé en numéro caché | bool | false | oui | appel téléphonique |
total_price | rating.price | Coût associé au CDR (uniquement pour les appels sortants à date) | Decimal | 0.0152 | oui | appel sortant après rating |
rating_date | rating.rating_date | Date de calcul du prix | DateTime(UTC) | 2022-11-25T19:00:39.349Z | oui | appel sortant après rating |
origin_name | rating.rating_details.origin_name | Nom (dans la grille tarifaire) de la région d'origine de l'appel | String | France | oui | appel sortant après rating |
destination_name | rating.rating_details.destination_name | Nom (dans la grille tarifaire) de la région de destination de l'appel | String | France | oui | appel sortant après rating |
service_billed_duration_sec | rating.rating_details.service_billed_duration_sec | Durée d'appel effectivement facturée | int | 190 | oui | appel sortant après rating |
call_charge | rating.rating_details.call_charge | Coût d'établissement de la communication | Decimal | 0.003 | oui | appel sortant après rating |
duration_charge | rating.rating_details.duration_charge | Coût associé à la durée de communication | Decimal | 0.003 | oui | appel sortant après rating |
vas_status | rating.rating_details.vas_status.vas_status | Type de numéro spécial (ou not_vas pour un numéro classique) | enum(not_vas , priced_as_local_call , free , vas ) | vas | oui | appel sortant après rating |
vas_price | rating.rating_details.vas_status.vas_price | Surcoût spécifique aux numéros spéciaux ( si vas_status = vas ) | Decimal | 0.003 | oui | appel sortant après rating |
bad_pai_pani_overprice | rating.rating_details.bad_pai_pani_overprice | Indique si l'appel a fait l'objet d'une majoration du fait d'une erreur dans le PANI ou PAI | bool | false | oui | appel 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.
Updated 7 months ago