Aller au contenu

Suivi de commande

Cycle de vie d'une commande

Le cycle de vie d'une commande se déroule en deux phases :

  1. Création de la commande via l'endpoint /api/v1/product_order/
  2. Suivi de la commande via l'endpoint /api/v1/order/

Phase 1 : Création de la commande (/product_order)

Lors de la création, le product_order_item passe par les statuts suivants :

flowchart LR A[Création] --> B(<i>acknowledged</i>) B --> C(<i>in_progress</i>) F -->|Succès| D(<i>created</i>) F -->|Échec| E(<i>rejected_creation</i>) C --> F{<i>Traitement</i>} B --> G(<i>technical_error</i>)
Statut Description
acknowledged Commande reçue et prise en compte
in_progress Traitement en cours
created Commande créée avec succès
rejected_creation Création rejetée
technical_error Erreur technique lors de la création

Phase 2 : Suivi de la commande (/order)

Une fois la commande créée, elle peut être suivie via l'endpoint /order avec les statuts suivants :

flowchart LR A[Commande créée] --> B(<i>confirmed</i>) B --> C(<i>in_progress</i>) C --> D{<a href='/api-suivi-commande/#etapes-de-production'>Production</a>} D -->|OK| E(<i>active</i>) D -->|KO| F(<i>rejected</i>) E --> G[Demande de \nmodification] G --> H(<i>change_in_progress</i>) H --> E E --> I[Demande de \nrésiliation] I --> J(<i>terminate_in_progress</i>) J --> K(<i>terminated</i>) C --> L[Demande \nd'annulation] L --> M(<i>cancelled</i>)
Statut Description
confirmed Commande confirmée
in_progress En cours de production
active Service actif
terminate_in_progress En cours de déproduction
terminated Service déproduit
change_in_progress Mise à jour du service en cours
rejected Commande rejetée
cancelled Commande annulée

Etapes de production

Ces étapes de production détaillées sont disponibles via l'endpoint /api/v1/order/{order_reference}/historic/ et permettent de suivre finement l'avancement de la commande.

flowchart TD A[<i>production_manager_assigned</i> : Commande affectée à un Chargé de Production] --> B(<i>optical_route_received</i> : Réceptionner la Route Optique) B --> C(<i>technical_visit_planned</i> : Visite technique planifiée) C --> D(<i>technical_visit_completed</i> : Visite technique effectuée) D --> E(<i>technical_visit_report_published</i> : Rapport de visite technique publié) E --> F(<i>connexion_planned</i> : Raccordement planifié) F --> G(<i>connexion_completed</i> : Raccordement effectué) G --> H(<i>service_configured</i> : Configuration du service) H --> I(<i>service_controlled</i> : Contrôle du service) I --> J(<i>delivery_report_published</i> : PV de livraison publié) J --> K[<i>intervention_report_published</i> : Rapport d'intervention publié]

Récupération d'une liste de commandes

GET /api/v1/order/

Réponse

Nom Type Description
modification_date string Date de modification de la commande
order_reference string Référence de la commande
id string Identifiant de la commande
order_date string Date de la prise de commande
cancellation_date string Date d'annulation de la commande
cancellation_reason string Raison de l'annulation
completion_date string Date de complétion de la commande
delivery_lead_time string Délai de raccordement de la commande en nombre de semaines
state string Statut
project_id string Projet associé à la commande
offer_family string Famille d'offre (BPE/BPEA)
offer_technology string Technologie associée à la commande
commitment number Durée d'engagement
site_client string Coordonnées postales du site client
site_client_2 string Coordonnées postales du site client secondaire
end_customer_name string Nom du client final
end_customer_name_2 string Nom du client final secondaire
created_by string Utilisateur qui a créé la commande draft
Exemple
  {
      "modification_date": "2025-04-23T10:00:58Z",
      "order_reference": "CMD_X_00009444",
      "id": "PO_DC173_20250423_003366",
      "order_date": "2025-04-23",
      "cancellation_date": null,
      "cancellation_reason": "",
      "completion_date": null,
      "delivery_lead_time": "1",
      "state": "in_progress",
      "project_id": "",
      "offer_family": "BPE",
      "offer_technology": "FIBDE",
      "commitment": 12,
      "site_client": "3 RUE ANDREI DIMITRI SAKHAROV 76130 MONT ST AIGNAN",
      "site_client_2": "",
      "end_customer_name": "king jouet",
      "end_customer_name_2": "",
      "created_by": "example@example.com"
  }

Récupération d'une commande

GET /api/v1/order/{order_reference}/

Paramètres de la requête

Nom Type Description Obligatoire
order_reference string Référence de la commande Oui

Réponse

Nom Type Description
id string Identifiant de la commande
order_reference string Référence de la commande
external_id string Identifiant externe pour la demande
order_date string Date de la commande
cancellation_date string Date d'annulation de la commande
cancellation_reason string Raison de l'annulation
completion_date string Date de complétion de la commande
note string Note associée à la commande
technical_note string Note technique associée à la commande
product_offering_id string Identifiant de l'offre de produit
product_offering_qualification_item_id string Identifiant de l'élément de qualification de l'offre de produit
project_id string Identifiant du projet associé
quote_item_id string Identifiant de l'élément de devis
delivery_mode string Mode de livraison
enni string Identifiant ENNI
enni2 string Identifiant second ENNI
delivery_lead_time string Délai de raccordement de la commande en nombre de semaines
delivery_lead_time_label string Label du délai de raccordement de la commande
vlan_reference number Référence VLAN
customer_order_name string Nom de la commande client
securing number Identifiant de la sécurisation
securing_label string Sécurisation
service_reference string Référence de service
minimum_commitment_duration number Durée minimale d'engagement
commitment_end_date string Date de fin d'engagement
notice_period number Période échue
estimated_delivery_date string Date de livraison prévisionnelle
billing_site_ref string Référence du site de facturation
billing_site_name string Nom du site de facturation
billing_period string Période de facturation
state string État actuel de la commande
termination_error array Erreurs de terminaison associées
option_ids array Liste des identifiants d'options
product array Informations sur le produit
related_contact_information array Informations des contacts associés
technical_zone string Zone technique
bandwidth string Débit
service_topology string Topologie du service
building_ref string Référence de l'immeuble
manager_regional json Responsable commercial (Manager régional)
manager_n1_regional json Responsable commercial (Manager régional N+1)
manager_national json Responsable commercial (Manager national)
manager_n1_national json Responsable commercial (Manager national N+1)
strands_number number Nombre de brins FON
fon_security boolean Sécurisation FON
technology string Technologie associée à la commande
total_amount_monthly number Total mensuel de la commande
total_amount_annual number Total annuel de la commande
Exemple
{
    "id": "PO_DC173_20250423_003366",
    "order_reference": "CMD_X_00009444",
    "external_id": "",
    "order_date": "2025-04-23",
    "cancellation_date": null,
    "cancellation_reason": "",
    "completion_date": null,
    "note": "",
    "technical_note": "",
    "product_offering_id": "1679",
    "product_offering_qualification_item_id": "",
    "project_id": "",
    "quote_item_id": "",
    "delivery_mode": "N/A",
    "enni": "",
    "enni2": "",
    "delivery_lead_time": "1",
    "delivery_lead_time_label": "T0 + 1 semaine",
    "vlan_reference": null,
    "customer_order_name": "",
    "securing": 1,
    "securing_label": "Non sécurisé",
    "service_reference": "FR048380",
    "minimum_commitment_duration": 12,
    "commitment_end_date": null,
    "notice_period": 3,
    "estimated_delivery_date": "2025-04-30",
    "billing_site_ref": "AUX00",
    "billing_site_name": "COVAGE INFRA",
    "billing_period": "Annuelle",
    "state": "in_progress",
    "termination_error": [...],
    "option_ids": [
        "1615",
        "1620",
        "237"
    ],
    "product": {...},
    "related_contact_information": [...],
    "technical_zone": "THD Zone 1",
    "service_topology": "COLST",
    "building_ref": "",
    "manager_regional": {
        "name": "Gregory DUPONT",
        "email": "gregory.d@covage.com",
        "phone": "612345678"
    },
    "manager_n1_regional": null,
    "manager_national": null,
    "manager_n1_national": null,
    "strands_number": 1,
    "fon_security": false,
    "technology": "FON",
    "total_amount_monthly": 440.0,
    "total_amount_annual": 960.0
}

Détail des erreurs de terminaison

Nom Type Description Obligatoire
code string Code de l'erreur Oui
property_path string Chemin de la propriété concernée Oui
value string Valeur associée à l'erreur Oui

Détail des Informations des contacts associés

Nom Type Description Obligatoire
end_customer_name string Nom du client final Oui
siret string Numéro SIRET Oui
contact1_email_address string Adresse e-mail du contact sur site Oui
contact1_firstname string Prénom du contact sur site Oui
contact1_lastname string Nom du contact sur site Oui
contact1_phone_number string Numéro de téléphone du contact sur site Oui
contact2_email_address string Adresse e-mail du contact secondaire Non
contact2_firstname string Prénom du contact secondaire Non
contact2_lastname string Nom du contact secondaire Non
contact2_phone_number string Numéro de téléphone du contact secondaire Non
city string Ville Oui
postcode string Code postal Oui
street_name string Nom de la rue Oui
street_number string Numéro de la rue Oui
street_number_extension string Extension du numéro de rue Non
insee_code string Code INSEE Oui
building_name string Nom du bâtiment Non
level_number string Numéro d'étage Non
latitude number Latitude de l'adresse Oui
longitude number Longitude de l'adresse Oui
Exemple
{
  "related_contact_information": [{
      "end_customer_name": "king jouet",
      "siret": "",
      "contact1_email_address": "toto@gmail.com",
      "contact1_firstname": "toto",
      "contact1_lastname": "toto",
      "contact1_phone_number": "215488745",
      "contact2_email_address": "",
      "contact2_firstname": "",
      "contact2_lastname": "",
      "contact2_phone_number": "",
      "city": "MONT ST AIGNAN",
      "postcode": "76130",
      "street_name": "3 RUE ANDREI DIMITRI SAKHAROV",
      "street_number": "",
      "street_number_extension": "",
      "insee_code": "76451",
      "building_name": "",
      "level_number": "",
      "latitude": 49.474174,
      "longitude": 1.090847
  }]
}

Détail du produit

Nom Type Description
id string Identifiant du produit
name string Nom du produit
description string Description du produit
bandwidth string Débit
bandwidth_guarantee float Débit garanti
bandwidth_max float Débit maximum
commitment string Durée d'engagement
tarif_zone string Zone tarifaire
offer_family string Famille d'offre (BPE/BPEA)
offer_technology string Technologie de l'offre
far number Far
fas number Fas
fad number Fad
price number Prix produit
recurring boolean Récurrence ou non du produit
options array Liste des options
Exemple
"product": {
        "id": "1679",
        "name": "BPE 100M _Zone très dense_12 mois ",
        "description": "BPE 100M _Zone très dense_12 mois ",
        "bandwidth_guarantee": "G",
        "commitment": "12MOIS",
        "tarif_zone": "TRESDENSE",
        "offer_family": "BPE",
        "offer_technology": "FIBDE",
        "far": 540.0,
        "fas": 360.0,
        "fad": 0.0,
        "price": 145.0,
        "recurring": true,
        "options": [...]
    },

Détail des options

Nom Type Description
name string Nom de l'option
label string Nom du produit
type string Type de l'option
option_id string Identifiant
price number Prix
recurring boolean Récurrence
Exemple
"options": [
  {
      "name": "GTR 4H HO",
      "label": "GTR 4H HO",
      "type": "SERVI",
      "option_id": "194",
      "price": 0.0,
      "recurring": true
  },
  {
      "name": "Livraison locale",
      "label": "Livraison locale",
      "type": "SERVI",
      "option_id": "2220",
      "price": 0.0,
      "recurring": true
  },
  ]

Détail des manager

Nom Type Description
name string Nom et prénom
email string Adresse email
phone string Numéro de téléphone
Exemple
"manager_regional": {
    "name": "Gregory DUPONT",
    "email": "gregory.d@covage.com",
    "phone": "612345678"
}

Récupération de la liste des documents d'une commande

GET /api/v1/order/{order_reference}/documents/

Paramètres de la requête

Nom Type Description Obligatoire
order_reference string Référence de la commande Oui

Réponse

Nom Type Description
type string Type du document
values array Liste des documents de ce type
Exemple

BDC = Bon De Commande

[
    {
        "type": "BDC",
        "values": [
            "CMD_X_00009444_1.pdf"
        ]
    }
]

Récupération d'un document d'une commande

GET /api/v1/order/{order_reference}/{filename}/download/

Paramètres de la requête

Nom Type Description Obligatoire
order_reference string Référence de la commande Oui
filename string Nom du document Oui

Réponse

Le contenu du document au format binaire

Récupération de l'historique d'une commande

GET /api/v1/order/{order_reference}/historic/

Paramètres de la requête

Nom Type Description Obligatoire
order_reference string Référence de la commande Oui

Réponse

Nom Type Description
results array Liste des statuts de la commande
Exemple
{
    "results": [
         {
            "change_reason": "",
            "change_date": "2025-06-03T18:37:08+02:00",
            "state": "acknowledged"
        },
        {
            "change_reason": "",
            "change_date": "2025-06-03T18:37:08+02:00",
            "state": "held_adv_validation"
        },
        {
            "change_reason": "",
            "change_date": "2025-06-03T18:37:08+02:00",
            "state": "production_in_progress"
        },
        {
            "change_reason": "",
            "change_date": "2025-06-03T18:37:08+02:00",
            "state": "production_manager_assigned"
        },
        {
            "change_reason": "",
            "change_date": "2025-06-03T18:37:08+02:00",
            "state": "optical_route_received"
        },
        {
            "change_reason": "",
            "change_date": "2025-06-03T18:37:08+02:00",
            "state": "technical_visit_planned"
        },
        {
            "change_reason": "",
            "change_date": "2025-06-03T18:37:08+02:00",
            "state": "technical_visit_completed"
        },
        {
            "change_reason": "",
            "change_date": "2025-06-03T18:37:08+02:00",
            "state": "technical_visit_report_published"
        },
        {
            "change_reason": "",
            "change_date": "2025-06-03T18:37:08+02:00",
            "state": "connexion_planned"
        },
        {
            "change_reason": "",
            "change_date": "2025-06-03T18:37:08+02:00",
            "state": "connexion_completed"
        },
        {
            "change_reason": "",
            "change_date": "2025-06-03T18:37:08+02:00",
            "state": "service_configured"
        },
        {
            "change_reason": "",
            "change_date": "2025-06-03T18:37:08+02:00",
            "state": "service_controlled"
        },
        {
            "change_reason": "",
            "change_date": "2025-06-03T18:37:08+02:00",
            "state": "delivery_report_published"
        },
        {
            "change_reason": "",
            "change_date": "2025-06-03T18:37:10+02:00",
            "state": "intervention_report_published"
        },
        {
            "change_reason": "",
            "change_date": "2025-06-03T18:37:08+02:00",
            "state": "active"
        }
    ]
}

Détail des statuts d'une commande

Nom Type Description
change_reason string Raison du changement d'état
change_date string Date du changement d'état
state string Nouvel état
Exemple
{
    "change_reason": "",
    "change_date": "2025-06-03T18:37:08+02:00",
    "state": "production_in_progress"
}

Liste des motifs de demandes de résiliation

GET /api/v1/terminate_reason/

Réponse

Nom Type Description
terminate_reasons liste Motif de résiliation

Le motif sera à envoyer lors de la demande de résiliation sur la route POST api/v1/order/{order_reference}/terminate/.

Exemple
  {
    "terminate_reasons": [
        "Cessation d'activité",
        "Changement d'Operateur d'Infrastructure",
        "Déménagement sans reprise de lien COVAGE",
        "Déménagement avec reprise de lien COVAGE",
        "Autres motifs, précisez en commentaire"
    ]
  }

Liste des demandes

GET /api/v1/order_request/

Réponse

Nom Type Description
id string id de l'objet
creation_date string Date de création
modification_date string Date modification
order_reference string Référence de l'order
action string Action de la demande
request_effective_date string Date effective
message string Message
reason string Raison de la demande

Paramètres de la requête

Nom Type Description Obligatoire
order_reference string Référence de la commande Non
action string Action de la demande None

Liste les demandes (Résiliation, Modification ...) faites sur POST /api/v1/order/{order_reference}/{action}/

Exemple
  {
    "id": "6964723b-c39b-4a19-b5d5-d4f4fde5c216",
    "creation_date": "2025-05-22T09:40:56.384Z",
    "modification_date": "2025-05-22T09:40:56.384Z",
    "order_reference": "CMD_X_00005342",
    "action": "Résiliation",
    "request_effective_date": null,
    "message": "",
    "reason": "Cessation d'activité"
  }

Export des commandes

Le processus d'export des commandes se déroule en trois étapes :

1. Lancement de l'export CSV

POST /api/v1/order/export/csv/

Lance l'export des commandes au format CSV. Cette opération est limitée à une requête toutes les 5 minutes par utilisateur.

Réponse

Champ Type Description
task_id string Identifiant de la tâche d'export

Exemple de réponse

{ 
    "task_id": "550e8400-e29b-41d4-a716-446655440000" 
}

2. Vérification du statut

GET /api/v1/order/export/{task_id}/status/

Permet de suivre l'état d'avancement de l'export.

Paramètres URL

Paramètre Type Description
task_id string Identifiant de la tâche d'export

Réponse

Champ Type Description
task_id string Identifiant de la tâche
success boolean État de la tâche (null si en cours)
started datetime Date de début
stopped datetime Date de fin

Le champ success dans la réponse du statut d'export peut avoir trois états possibles :

Valeur Description
null La tâche est toujours en cours d'exécution ou n'a pas encore démarrée
true La tâche s'est terminée avec succès, le fichier CSV est prêt
false La tâche s'est terminée en échec

Exemple de réponse

{
    "task_id": "550e8400-e29b-41d4-a716-446655440000",
    "success": true,
    "started": "2025-07-08T10:30:00Z",
    "stopped": "2025-07-08T10:31:00Z"
}

3. Téléchargement du fichier

GET /api/v1/order/export/{task_id}/download/

Télécharge le fichier CSV généré une fois l'export terminé.

Paramètres URL

Paramètre Type Description
task_id string Identifiant de la tâche d'export

Réponse

Fichier CSV contenant les données exportées.

En-têtes de réponse

En-tête Valeur
Content-Type text/csv

Créer un message pour une commande

POST /api/v1/order/{order_reference}/message/

Paramètres de la requête

Nom Type Description Obligatoire
order_reference string Référence de la commande Oui
message string Contenu du message (1-1000 caractères) Oui

Réponse

Nom Type Description
id string Identifiant unique du message
message string Contenu du message
creation_date string Date de création
user object Informations de l'utilisateur créateur
Exemple
{
  "id": "msg_123456789",
  "message": "Demande d'information sur l'avancement de la commande",
  "creation_date": "2025-01-15T14:30:00Z",
  "user": {
    "email": "user@client-domain.com",
    "first_name": "Jean",
    "last_name": "Dupont"
  }
}

Récupération de la liste des messages d'une commande

GET /api/v1/order/{order_reference}/message/

Paramètres de la requête

Nom Type Description Obligatoire
order_reference string Référence de la commande Oui

Détail d'un message

Nom Type Description
id string Identifiant unique du message
message string Contenu du message
creation_date string Date de création du message
user object Informations de l'utilisateur créateur
Exemple
{
  "results": [
    {
      "id": "msg_123456789",
      "message": "Demande d'information sur l'avancement de la commande",
      "creation_date": "2025-01-15T14:30:00Z",
      "user": {
        "email": "user@client-domain.com",
        "first_name": "Jean",
        "last_name": "Dupont"
      }
    }
  ],
  "page_size": 10,
  "has_next": false,
  "next_cursor": null
}

Note : Les messages sont triés par date de création décroissante (le plus récent en premier).

Gestion des erreurs

Code HTTP Description
401 Utilisateur non authentifié
403 Permission refusée
404 Tâche ou fichier non trouvé
429 Trop de requêtes (limitation de débit atteinte)