Demande d'éligibilité
Fonctionnement
sequenceDiagram
participant Client
participant Covage API
participant Covage Backend
Client->>Covage API: Demande des familles d'offres vendues par Covage
Covage API-->>Client: Liste des familles d'offres
Client->>Covage API: Demande d'éligibilité d'un site à plusieurs famille d'offres
Covage API-->>Client: Identifiant de la demande d'éligibilité
Covage API->>Covage Backend: Demande d'éligibilité d'un site à plusieurs offres
Covage Backend-->>Covage API: Liste des offres éligibles à cette adresse
Client->>Covage API: Récupération des résultats d'éligibilité
Covage API-->>Client: Résultats d'éligibilité
Client->>Covage API: Détail d'une offre
Covage API->>Covage Backend: Demande de détail d'un pack avec détail et prix
Covage Backend-->>Covage API: Détail du pack
Covage API-->>Client: Détail de l'offre
Demande des familles d'offres vendues par Covage
Récupération des familles d'offres vendues par Covage
GET /api/v1/catalog/category/
Réponse
Nom |
Type |
Description |
Obligatoire |
name |
string |
Nom de la famille d'offres ('BPE','BPEA') |
Oui |
type |
string |
Type de famille d'offres ('OFFER_FAMILY') |
Oui |
description |
string |
Description de la famille d'offres |
Non |
Exemple
{
"name": "BPE",
"type": "OFFER_FAMILY",
"description": ""
}
Demande d'éligibilité d'un site à plusieurs offres
Création d'une demande d'éligibilité pour vérifier l'éligibilité d'une adresse à une ou plusieurs offres.
POST /api/v1/product_offering_qualification/
Paramètres de la requête
Nom |
Type |
Description |
Obligatoire |
external_id |
string |
Identifiant externe pour la demande |
Non |
project_id |
string |
Identifiant du projet associé |
Non |
product_offering_qualification_items |
array |
Liste des éléments de qualification d'offre |
Oui |
Exemple
{
"external_id": "123",
"project_id": "456",
"product_offering_qualification_items": [...]
}
Détail des éléments de qualification d'offre
Nom |
Type |
Description |
Obligatoire |
offer_families |
array |
Familles d'offres demandées |
Oui |
eligibility_id |
string |
Identifiant de l'éligibilité (issu de l'API de recherche d'adresse) |
Oui |
address |
object |
Détail de l'adresse à vérifier |
Non |
Exemple
"product_offering_qualification_items": [
{
"offer_families": ["BPEA","BPE"],
"eligibility_id": "{{eligibility_id}}",
"address": {}
}]
Détail de l'adresse
Nom |
Type |
Description |
Obligatoire |
label |
string |
Étiquette de l'adresse |
Non |
street_ext |
string |
Extension de la rue |
Non |
street_nr |
string |
Numéro de la rue |
Non |
city |
object |
Détail de la ville |
Non |
street |
object |
Détail de la rue |
Non |
Exemple
"address": {
"label": "4bis Rue Andrei Sakharov 76130 Mont-Saint-Aignan",
"street_ext": "B",
"street_nr": "4",
"city": {},
"street": {}
}
Détail de la ville
Nom |
Type |
Description |
Obligatoire |
city_id |
string |
Identifiant de la ville |
Non |
insee_code |
string |
Code INSEE de la ville |
Non |
city_name |
string |
Nom de la ville |
Non |
post_code |
string |
Code postal de la ville |
Non |
Exemple
"city": {
"city_id": "76451",
"insee_code": "76451",
"city_name": "MONT ST AIGNAN",
"post_code": "76130"
}
Détail de la rue
Nom |
Type |
Description |
Obligatoire |
street_id |
string |
Identifiant de la rue |
Non |
street_name |
string |
Nom de la rue |
Non |
Exemple
"street": {
"street_id": "76451055R",
"street_name": "Rue Andrei Sakharov"
}
Exemple de param de la requête finale
{
"external_id": "123",
"project_id": "456",
"product_offering_qualification_items": [
{
"offer_families": [
"BPEA","BPE"
],
"eligibility_id": "KHg6MS4wOTIxMDgxO3k6NDkuNDc0Mzk3MTtiOklNQi83NjQ1MS9DLzAwMTkp",
"address": {
"label": "4bis Rue Andrei Sakharov 76130 Mont-Saint-Aignan",
"street_ext": "B",
"street_nr": "4",
"city": {
"city_id": "76451",
"insee_code": "76451",
"city_name": "MONT ST AIGNAN",
"post_code": "76130"
},
"street": {
"street_id": "76451055R",
"street_name": "Rue Andrei Sakharov"
}
}
}
]
}
Réponse
Nom |
Type |
Description |
id |
string |
Identifiant de la demande d'éligibilité |
creation_date |
string |
Date de création |
{
"id": "2eaf7b5b-384d-4cb7-8d9b-09ac712354d7",
"creation_date": "2025-04-04T10:07:24.274+02:00",
}
Récupération des résultats d'éligibilité
Récupération des résultats d'éligibilité d'une demande d'éligibilité.
GET /api/v1/product_offering_qualification/{id}/
Paramètres de la requête
Nom |
Type |
Description |
Obligatoire |
id |
string |
Identifiant de la demande d'éligibilité |
Oui |
Réponse
Nom |
Type |
Description |
Obligatoire |
id |
string |
Identifiant de la demande d'éligibilité |
Oui |
creation_date |
string |
Date de création de la demande |
Oui |
external_id |
string |
Identifiant externe pour la demande |
Non |
project_id |
string |
Identifiant du projet associé |
Non |
effective_qualification_date |
string |
Date d'éligibilité effective |
Non |
href |
string |
Lien vers la ressource |
Non |
state |
string |
État actuel de la demande |
Oui |
state_change |
array |
Historique des changements d'état |
Oui |
product_offering_qualification_item_detail |
array |
Liste des éléments de qualification d'offre |
Non |
Exemple
{
"id": "2eaf7b5b-384d-4cb7-8d9b-09ac712354d7",
"creation_date": "2025-04-04T10:07:24.274+02:00",
"external_id": "987654",
"project_id": "456789",
"effective_qualification_date": null,
"href": "",
"state": "done.ready",
"state_change": [...],
"product_offering_qualification_item_detail": [...]
}
Détail des changement d'état
Nom |
Type |
Description |
Obligatoire |
change_reason |
string |
Raison du changement d'état |
Oui |
change_date |
string |
Date du changement d'état |
Oui |
state |
string |
Nouvel état |
Oui |
Exemple
"state_change": [
{
"change_reason": "",
"change_date": "2025-04-04T10:07:24.276+02:00",
"state": "acknowledged"
},
{
"change_reason": "",
"change_date": "2025-04-04T10:07:24.678+02:00",
"state": "in_progress.elig"
},
{
"change_reason": "",
"change_date": "2025-04-04T10:07:24.791+02:00",
"state": "in_progress.offer"
},
{
"change_reason": "",
"change_date": "2025-04-04T10:07:26.332+02:00",
"state": "done.ready"
}]
Détail des éléments de qualification d'offre
Nom |
Type |
Description |
Obligatoire |
id |
string |
Identifiant de l'élément de qualification |
Oui |
tarif_zone |
string |
Zone tarifaire |
Oui |
offer_families |
array |
Familles d'offres disponibles |
Oui |
zone_type_bpe |
string |
Type de zone BPE |
Oui |
zone_type_bpea |
string |
Type de zone BPEA |
Oui |
zone_bpe |
number |
Zone BPE |
Oui |
zone_bpea |
number |
Zone BPEA |
Oui |
place |
object |
Détail du lieu |
Oui |
address |
object |
Détail de l'adresse |
Non |
guaranteed_until_date |
string |
Date jusqu'à laquelle l'offre est garantie |
Oui |
state |
string |
État actuel de l'élément |
Oui |
state_change |
array |
Historique des changements d'état de l'élément |
Oui |
state_change |
array |
Historique des changements d'état de l'élément |
Oui |
product_offering_qualification_id |
string |
Identifiant du produit |
Oui |
Exemple
"product_offering_qualification_item_detail": [
{
"id": "a4517ca6-1f13-42a2-9359-4ff3cc21785b",
"tarif_zone": "",
"offer_families": ["BPEA","BPE"],
"zone_type_bpe": "FTTO",
"zone_type_bpea": "FTTO",
"zone_bpe": 2,
"zone_bpea": 2,
"place":{},
"address": {},
"guaranteed_until_date": null,
"state": "done.ready",
"state_change": [...],
"product_offering_qualification_id": null,
"products_offering": [...]
Détail du lieu
Nom |
Type |
Description |
Obligatoire |
location |
object |
Coordonnées géographiques |
Oui |
building_ref |
string |
Référence du bâtiment |
Non |
eligibility_id |
string |
Identifiant de l'éligibilité |
Oui |
Exemple
"place": {
"location": {
"x": 1.0741197,
"y": 49.4629709
},
"building_ref": "",
"eligibility_id": "KHg6MS4wNzQxMTk3O3k6NDkuNDYyOTcwOTtiOk5vbmUp"
}
Détail de l'adresse
Nom |
Type |
Description |
Obligatoire |
label |
string |
Étiquette de l'adresse |
Non |
street_ext |
string |
Extension de la rue |
Non |
street_nr |
string |
Numéro de la rue |
Non |
city |
object |
Détail de la ville |
Non |
street |
object |
Détail de la rue |
Non |
Exemple
"address": {
"label": "4bis Rue Andrei Sakharov 76130 Mont-Saint-Aignan",
"street_ext": "B",
"street_nr": "4",
"city": {},
"street": {}
}
Détail de la ville
Nom |
Type |
Description |
Obligatoire |
city_id |
string |
Identifiant de la ville |
Non |
insee_code |
string |
Code INSEE de la ville |
Non |
city_name |
string |
Nom de la ville |
Non |
post_code |
string |
Code postal de la ville |
Non |
Exemple
"city": {
"city_id": "76451",
"insee_code": "76451",
"city_name": "MONT ST AIGNAN",
"post_code": "76130"
}
Détail de la rue
Nom |
Type |
Description |
Obligatoire |
street_id |
string |
Identifiant de la rue |
Non |
street_name |
string |
Nom de la rue |
Non |
Exemple
"street": {
"street_id": "76451055R",
"street_name": "Rue Andrei Sakharov"
}
Détail des offres
Nom |
Type |
Description |
Obligatoire |
product_id |
string |
Identifiant de l'offre (product_offering) |
Oui |
name |
string |
Nom du produit |
Oui |
description |
string |
Description du produit |
Oui |
bandwidth |
string |
Bande passante du produit |
Oui |
bandwidth_guarantee |
string |
Garantie de bande passante |
Oui |
commitment |
string |
Engagement du produit |
Oui |
offer_technology |
string |
Technologie de l'offre |
Oui |
offer_family |
string |
Famille de l'offre |
Oui |
tarif_zone |
string |
Zone tarifaire |
Oui |
Exemple
"products_offering":
[{
"product_id": "2173",
"name": "BPEA 20M/100M_24 mois",
"description": "BPEA 20M/100M",
"bandwidth": "20M",
"bandwidth_guarantee": "G",
"commitment": "24MOIS",
"offer_technology": "FIBDE",
"offer_family": "BPEA",
"tarif_zone": ""
}]
Liste d'offres
Récupération d'une liste d'offres.
GET /api/v1/catalog/product_offering/
Détail d'une offre
Récupération du détail d'une offre.
GET /api/v1/catalog/product_offering/{id}/
Paramètres de la requête
Nom |
Type |
Description |
Obligatoire |
id |
string |
Identifiant de l'offre (product_offering) |
Oui |
zone |
integer |
Zone tarifaire (provenant de l'éligibilité) |
Non |
Réponse
Nom |
Type |
Description |
Obligatoire |
id |
string |
Identifiant de l'offre |
Oui |
href |
string |
Lien vers la ressource |
Oui |
name |
string |
Nom de l'offre |
Oui |
description |
string |
Description de l'offre |
Oui |
bandwidth_guarantee |
string |
Garantie de bande passante |
Oui |
commitment |
string |
Engagement de l'offre |
Oui |
tarif_zone |
string |
Zone tarifaire |
Oui |
far |
number |
Valeur FAR |
Oui |
fas |
number |
Valeur FAS |
Oui |
price |
number |
Prix de l'offre |
Oui |
recurring |
boolean |
Indique si l'offre est récurrente |
Oui |
offer_family |
string |
Famille de l'offre |
Oui |
offer_technology |
string |
Technologie de l'offre |
Oui |
available_options |
array |
Options disponibles pour l'offre |
Oui |
last_update |
string |
Date de la dernière mise à jour |
Oui |
Exemple
{
"id": "1765",
"href": "",
"name": "BPE 20M _Zone dense_24 mois ",
"description": "description",
"bandwidth_guarantee": "20M",
"commitment": "24MOIS",
"tarif_zone": "DENSE",
"far": 240.0,
"fas": 360.0,
"price": 155.0,
"recurring": true,
"offer_family": "BPE",
"offer_technology": "FIBDE",
"available_options": [...],
"last_update": "2024-06-22T08:28:06Z"
}
Détail des options disponibles
Nom |
Type |
Description |
Obligatoire |
name |
string |
Nom de l'option |
Oui |
type |
string |
Type de l'option |
Oui |
values |
array |
Valeurs associées à l'option |
Oui |
Exemple
{
"name": "SECURISATIONCOLLECTE",
"type": "Option",
"values": []
}
Détail des valeurs d'option
Nom |
Type |
Description |
Obligatoire |
option_id |
string |
Identifiant de l'option |
Oui |
label |
string |
Étiquette de l'option |
Oui |
price |
number |
Prix de l'option |
Oui |
recurring |
boolean |
Indique si l'option est récurrente |
Oui |
Exemple
{
"option_id": "241",
"label": "SECURISATION COLLECTE Active - Passive",
"price": 10.0,
"recurring": true
}