Aller au contenu

Prise de commande

Fonctionnement

sequenceDiagram participant Client participant Covage API participant Covage Backend Client ->> Covage API: Création d'une session de commande Covage API -->> Client: Récupération de l'identifiant de la session de commande Client ->> Covage API: Création d'une ligne de commande Covage API -->> Client: Récupération de l'identifiant de la ligne de commande Client ->> Covage API: Mise à jour de la ligne de commande Covage API -->> Client: Confirmation de la mise à jour de la ligne de commande Client ->> Covage API: Confirmation de la session de commande Covage API -->> Client: Confirmation de la réception de la commande Covage API ->> Covage Backend: Création de la commande Covage Backend -->> Covage API: Confirmation de la commande

Cycle de vie d'une session de commande

flowchart LR A[<a href='/api-prise-commande/#creation-dune-session-de-commande'>Création d'une \nsession de commande</a>] -->B(created) B -->C[<a href='/api-prise-commande/#confirmation-de-la-session-de-commande'>Confirmation de la \nsession de commande</a>] C -->D(in_progress) D -->E{Toutes les lignes \nde commande \nsont créées ?} E -->|oui| F[completed] E -->G{Au moins une \nligne est créée ?} G -->|oui| H[partial] G -->|non| I[rejected]

Cycle de vie d'une ligne de commande

flowchart LR A[<a href='/api-prise-commande/#creation-dune-ligne-de-commande'>Création d'une \nligne de commande</a>] -->B(created) B -->C[<a href='/api-prise-commande/#confirmation-de-la-session-de-commande'>Confirmation de la \nligne de commande</a>] C -->D(in_progress) D -->E{La commande \nest créée ?} E -->|oui| F[acknowledged\nheld_adv_validation\nin_progress] style F text-align:left E -->|non| G[rejected_creation]

Création d'une session de commande

Une fois la session de commande crééé, une ou plusieurs de lignes de commande peuvent être ajoutées

POST /api/v1/product_order/

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
Exemple
{
  "external_id": "12345",
  "project_id": ""
}

Réponse

Nom Type Description Obligatoire
external_id string Identifiant externe pour la demande Non
project_id string Identifiant du projet associé Non
id string Identifiant de la commande Oui
creation_date string Date de création de la commande Oui
cancellation_date string Date d'annulation de la commande Non
completion_date string Date de complétion de la commande Non
order_date string Date de la commande Oui
state string État actuel de la commande Oui
Exemple
{
    "external_id": "12345",
    "project_id": "",
    "id": "0b10ba8a-3c31-44ba-a758-d178ec0bb166",
    "creation_date": "2025-04-10T12:11:57.548+02:00",
    "cancellation_date": null,
    "completion_date": null,
    "order_date": null,
    "state": "created"
}

Liste des sessions de commande

GET /api/v1/product_order/

Liste les sessions de commande (paniers) avec possibilité de filtrage.

Filtres disponibles (query params) :

Paramètre Type Description
state string Filtre par état de la session
external_id string Filtre par identifiant externe
project_id string Filtre par identifiant de projet
creation_date_gt datetime Sessions créées après cette date (ISO 8601)
creation_date_lt datetime Sessions créées avant cette date (ISO 8601)
order_date_gt datetime Sessions commandées après cette date (ISO 8601)
order_date_lt datetime Sessions commandées avant cette date (ISO 8601)
completion_date_gt datetime Sessions complétées après cette date (ISO 8601)
completion_date_lt datetime Sessions complétées avant cette date (ISO 8601)
cancellation_date_gt datetime Sessions annulées après cette date (ISO 8601)
cancellation_date_lt datetime Sessions annulées avant cette date (ISO 8601)

Réponse : Liste de sessions de commande (mêmes champs que la réponse de création).

Détail d'une session de commande

GET /api/v1/product_order/{id}/

Récupère les détails d'une session de commande, incluant toutes ses lignes de commande.

Paramètre URL :

Nom Type Obligatoire Description
id UUID Identifiant de la session

Réponse :

Champ Type Description
id UUID Identifiant unique de la session
external_id string Identifiant externe
project_id string Identifiant du projet associé
product_order_item array Liste des lignes de commande associées

Mise à jour d'une session de commande

PATCH /api/v1/product_order/{id}/

Met à jour les métadonnées d'une session de commande existante.

Paramètre URL :

Nom Type Obligatoire Description
id UUID Identifiant de la session

Corps de la requête :

Champ Type Obligatoire Description
external_id string Identifiant externe pour la demande
project_id string Identifiant du projet associé

Réponse : Détail de la session mise à jour (voir GET /product_order/{id}/).

Suppression d'une session de commande

DELETE /api/v1/product_order/{id}/

Supprime une session de commande et toutes ses lignes de commande associées.

Paramètre URL :

Nom Type Obligatoire Description
id UUID Identifiant de la session

Création d'une ligne de commande

Certains champs facultatifs lors de la création d'une ligne de commande deviennent obligatoires lors de la confirmation de la session de commande. Il convient alors de les renseigner au préalable via la mise à jour de la ligne de commande.

POST /api/v1/product_order/{id}/product_order_item/

Paramètres de la requête

Nom Type Description Obligatoire
end_customer_name string Nom du client final Non
external_id string Identifiant externe pour la demande Non
option_ids array Liste des identifiants d'options Non
note string Note associée à la commande Non
technical_note string Note technique associée à la commande Non
product_offering_id string Identifiant de l'offre de produit Oui
product_offering_qualification_item_id string Identifiant de l'élément de qualification de l'offre de produit Oui
project_id string Identifiant du projet associé Non
quote_item_id string Identifiant de l'élément de devis Non
delivery_mode string Mode de livraison Non
enni string Identifiant ENNI Oui (à la confirmation*)
enni_2 string Identifiant ENNI secondaire Non
vlan_reference number Référence VLAN Non
customer_order_name string Nom de la commande client Non
business_code string Code d'affaires Non
billing_site_ref string Référence facturation Non
related_contact_information array Informations des contacts associés Oui (à la confirmation)
siret_known boolean Siret à renseigner Non
additional_vlan_reference string Référence VLAN additionnel Non
offer_family string Famille de l'offre Non
offer_technology string Technologie de l'offre Non
specific_request string Requête spécifique Non
access_instructions string Consignes d'accès au site fournies par le client au moment de la prise de commande Non
scheduled_delivery_date date Date de livraison programmée Non
cpe_networking_number string Numéro de mise en réseau du CPE Non
cpe_serial_number string Numéro de série du CPE Non
Cas particulier du champ enni pour l'offre DIA

Le champ enni n'est pas à renseigner pour l'offre DIA: s'il est renseigné, il sera remplacé par la valeur calculée par notre système.

Exemple
{
  "end_customer_name": "Covage",
  "external_id": "6789",
  "option_ids": [...],
  "note": "",
  "technical_note": "",
  "product_offering_id": "2173",
  "product_offering_qualification_item_id":"{eligibility_id}",
  "project_id": "",
  "quote_item_id": "{quote_id}",
  "delivery_mode": "",
  "enni": "AZ001234",
  "enni2": "",
  "vlan_reference": "1257",
  "customer_order_name": "john Doe",
  "business_code": "AB123",
  "billing_site_ref": "AUX99",
  "related_contact_information": [...],
  "siret_known": true,
  "additional_vlan_reference": "1258",
  "offer_family": "BPE",
  "offer_technology": "FIBDE",
  "specific_request": "Demande de raccordement spécifique",
  "access_instructions": "Prendre la grande porte",
  "scheduled_delivery_date": "2025-09-21",
  "cpe_networking_number": "NET-123456",
  "cpe_serial_number": "SN-123456"
}

Détail des Informations des contacts associés

Nom Type Description Obligatoire
end_customer_name string Nom du client final Oui (à la confirmation)
siret string Numéro SIRET Non
contact1_email_address string Adresse e-mail du contact sur site Oui (à la confirmation)
contact1_firstname string Prénom du contact sur site Oui (à la confirmation)
contact1_lastname string Nom du contact sur site Oui (à la confirmation)
contact1_phone_number string Numéro de téléphone du contact sur site Oui (à la confirmation)
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 (à la confirmation)
postcode string Code postal Oui (à la confirmation)
street_name string Nom de la rue Oui (à la confirmation)
street_number string Numéro de la rue Oui (à la confirmation)
street_number_extension string Extension du numéro de rue Non
insee_code string Code INSEE Oui (à la confirmation)
building_name string Nom du bâtiment Non
level_number string Numéro d'étage Non
latitude number Latitude de l'adresse Non
longitude number Longitude de l'adresse Non
Exemple
"related_contact_information": [
    {
      "end_customer_name": "Covage corp",
      "siret": "00000000000000",
      "contact1_email_address": "John.Doe@unknown.com",
      "contact1_firstname": "John",
      "contact1_lastname": "Doe",
      "contact1_phone_number": "0123456789",
      "contact2_email_address": "Jane.Doe@unknown.com",
      "contact2_firstname": "Jane",
      "contact2_lastname": "Doe",
      "contact2_phone_number": "0987654321",
      "city": "Mont-Saint-Aignan",
      "postcode": "76130",
      "street_name": "Rue Andrei Sakharov",
      "street_number": "4",
      "street_number_extension": "B",
      "insee_code": "76451",
      "building_name": "",
      "level_number": "0",
      "latitude": 49.4744077,
      "longitude": 1.091455
    }]

Réponse

Nom Type Description Obligatoire
end_customer_name string Nom du client final Non
external_id string Identifiant externe pour la demande Non
option_ids array Liste des identifiants d'options Non
note string Note associée à la commande Non
technical_note string Note technique associée à la commande Non
product_offering_id string Identifiant de l'offre de produit Oui
product_offering_qualification_item_id string Identifiant de l'élément de qualification de l'offre de produit Oui
project_id string Identifiant du projet associé Non
quote_item_id string Identifiant de l'élément de devis Non
delivery_mode string Mode de livraison Non
enni string Identifiant ENNI Non
enni_2 string Identifiant ENNI secondaire Non
vlan_reference number Référence VLAN Non
business_code string code affaire Non
customer_order_name string Nom de la commande client Non
billing_site_ref string Référence du site de facturation Non
related_contact_information array Informations des contacts associés Non
id string Identifiant de la commande Oui
cancellation_date string Date d'annulation de la commande Non
cancellation_reason string Raison de l'annulation Non
completion_date string Date de complétion de la commande Non
order_date string Date de la commande Non
state string État actuel de la commande Oui
state_change array Historique des changements d'état Non
termination_error array Erreurs de terminaison associées Non
order_reference string Référence de la commande Non
temporary_reference string Référence temporaire de la commande (Déprécié, se reporter au champ order_reference) Non
building_ref string Référence de l'immeuble Non
offer_family string Famille de l'offre Non
offer_technology string Technologie de l'offre Non
cpe_networking_number string Numéro de mise en réseau du CPE Non
cpe_serial_number string Numéro de série du CPE Non
Exemple
{
    "end_customer_name": "Covage",
    "external_id": "",
    "option_ids": [],
    "note": "",
    "technical_note": "",
    "product_offering_id": "2173",
    "product_offering_qualification_item_id": "d5a4a9aa-ba2c-4f53-95c7-0c1ce6f6e7fa",
    "project_id": "",
    "quote_item_id": "",
    "delivery_mode": "",
    "enni": "",
    "enni2": "",
    "vlan_reference": 1257,
    "customer_order_name": "john Doe",
    "business_code": "",
    "billing_site_ref": "AUX00",
    "related_contact_information": [
        {
            "end_customer_name": "Covage corp",
            "siret": "00000000000000",
            "contact1_email_address": "John.Doe@unknown.com",
            "contact1_firstname": "John",
            "contact1_lastname": "Doe",
            "contact1_phone_number": "0123456789",
            "contact2_email_address": "Jane.Doe@unknown.com",
            "contact2_firstname": "Jane",
            "contact2_lastname": "Doe",
            "contact2_phone_number": "0987654321",
            "city": "Mont-Saint-Aignan",
            "postcode": "76130",
            "street_name": "Rue Andrei Sakharov",
            "street_number": "4",
            "street_number_extension": "B",
            "insee_code": "76451",
            "building_name": "",
            "level_number": "0",
            "latitude": 49.4744077,
            "longitude": 1.091455
        }
    ],
    "id": "259a1c5b-8462-4c5e-90d0-90d135763378",
    "product_order_id": "908d2cc0-4bdc-4f62-b812-f8c1f48c96cd",
    "cancellation_date": null,
    "cancellation_reason": "",
    "completion_date": null,
    "order_date": null,
    "state": "created",
    "state_change": [
        {
            "change_reason": "",
            "change_date": "2025-04-23T10:13:08.733+02:00",
            "state": "created"
        }
    ],
    "termination_error": [],
    "order_reference": "PO_DC173_20250423_003363",
    "temporary_reference": "PO_DC173_20250423_003363",
    "building_ref": "",
    "offer_family": "BPE",
    "offer_technology": "FIBDE",
    "cpe_networking_number": "NET-123456",
    "cpe_serial_number": "SR-123456"
}

Détail des Informations des contacts associés

Nom Type Description Obligatoire
end_customer_name string Nom du client final Non
siret string Numéro SIRET Non
contact1_email_address string Adresse e-mail du contact sur site Non
contact1_firstname string Prénom du contact sur site Non
contact1_lastname string Nom du contact sur site Non
contact1_phone_number string Numéro de téléphone du contact sur site Non
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 Non
postcode string Code postal Non
street_name string Nom de la rue Non
street_number string Numéro de la rue Non
street_number_extension string Extension du numéro de rue Non
insee_code string Code INSEE Non
building_name string Nom du bâtiment Non
level_number string Numéro d'étage Non
latitude number Latitude de l'adresse Non
longitude number Longitude de l'adresse Non

Détail des changements 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

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
Exemple
"termination_error": [
    {
    "code":"string",
    "property_path":"string",
    "value":"string"
    }
]

Mise à jour de la ligne de commande

PATCH /api/v1/product_order/{id}/product_order_item/{item_id}/

Paramètres de la requête

Nom Type Description Obligatoire
end_customer_name string Nom du client final Non
external_id string Identifiant externe pour la demande Non
option_ids array Liste des identifiants d'options Non
note string Note associée à la commande Non
technical_note string Note technique associée à la commande Non
product_offering_id string Identifiant de l'offre de produit Non
product_offering_qualification_item_id string Identifiant de l'élément de qualification de l'offre de produit Non
project_id string Identifiant du projet associé Non
quote_item_id string Identifiant de l'élément de devis Non
delivery_mode string Mode de livraison Non
enni string Identifiant ENNI Oui (à la confirmation*)
enni_2 string Identifiant ENNI secondaire Non
vlan_reference number Référence VLAN Non
customer_order_name string Nom de la commande client Non
business_code string Code d'affaires Non
billing_site_ref string Référence facturation Non
related_contact_information array Informations des contacts associés Oui (à la confirmation)
siret_known boolean Siret à renseigner Non
additional_vlan_reference string Référence VLAN additionnel Non
specific_request string Requête spécifique Non
access_instructions string Consignes d'accès au site fournies par le client Non
scheduled_delivery_date date Date de livraison programmée Non
cpe_networking_number string Numéro de mise en réseau du CPE Non
cpe_serial_number string Numéro de série du CPE Non
Exemple
{
  "product_offering_id": "b99fce70-d195-41ed-b029-9b75c62ecd7c",
  "product_offering_qualification_item_id": "1b83a456-89a2-456e-9b78-a578c39b0474",
  "end_customer_name": "Covage corp edited",
  "external_id": "99999",
  "option_ids": [],
  "note": "you can add any information here",
  "technical_note": "you can add any technical information here",
  "project_id": "56789",
  "quote_item_id": "c0b5c9ab-c206-4858-8957-3befa6cbe58a",
  "delivery_mode": "string",
  "enni": "string",
  "enni2": "string",
  "vlan_reference": "1234",
  "customer_order_name": "John Doe",
  "business_code": "FLASH",
  "related_contact_information": [...],
  "siret_known": true,
  "specific_request": "Demande de raccordement spécifique"
}

Détail des Informations des contacts associés

Nom Type Description Obligatoire
end_customer_name string Nom du client final Oui (à la confirmation)
siret string Numéro SIRET Non
contact1_email_address string Adresse e-mail du contact sur site Oui (à la confirmation)
contact1_firstname string Prénom du contact sur site Oui (à la confirmation)
contact1_lastname string Nom du contact sur site Oui (à la confirmation)
contact1_phone_number string Numéro de téléphone du contact sur site Oui (à la confirmation)
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 Oui (à la confirmation)
city string Ville Oui (à la confirmation)
postcode string Code postal Oui (à la confirmation)
street_name string Nom de la rue Oui (à la confirmation)
street_number string Numéro de la rue Oui (à la confirmation)
street_number_extension string Extension du numéro de rue Non
insee_code string Code INSEE Oui (à la confirmation)
building_name string Nom du bâtiment Non
level_number string Numéro d'étage Non
latitude number Latitude de l'adresse Non
longitude number Longitude de l'adresse Non

Réponse

Nom Type Description Obligatoire
end_customer_name string Nom du client final Non
external_id string Identifiant externe pour la demande Non
option_ids array Liste des identifiants d'options Non
note string Note associée à la commande Non
technical_note string Note technique associée à la commande Non
product_offering_id string Identifiant de l'offre de produit Oui
product_offering_qualification_item_id string Identifiant de l'élément de qualification de l'offre de produit Oui
project_id string Identifiant du projet associé Non
quote_item_id string Identifiant de l'élément de devis Non
delivery_mode string Mode de livraison Non
enni string Identifiant ENNI Non
enni_2 string Identifiant ENNI secondaire Non
vlan_reference number Référence VLAN Non
customer_order_name string Nom de la commande client Non
business_code string Code d'affaires Non
related_contact_information array Informations des contacts associés Non
id string Identifiant de la commande Oui
cancellation_date string Date d'annulation de la commande Non
cancellation_reason string Raison de l'annulation Non
completion_date string Date de complétion de la commande Non
order_date string Date de la commande Non
state string État actuel de la commande Oui
state_change array Historique des changements d'état Non
termination_error array Erreurs de terminaison associées Non
order_reference string Référence de la commande Non
temporary_reference string Référence temporaire de la commande (Déprécié, se reporter au champ order_reference) Non
building_ref string Référence de l'immeuble Non
cpe_networking_number string Numéro de mise en réseau du CPE Non
cpe_serial_number string Numéro de série du CPE Non
Exemple
{
    "end_customer_name": "Covage",
    "external_id": "",
    "option_ids": [],
    "note": "",
    "technical_note": "",
    "product_offering_id": "2173",
    "product_offering_qualification_item_id": "1b83a456-89a2-456e-9b78-a578c39b0474",
    "project_id": "",
    "quote_item_id": "",
    "delivery_mode": "",
    "enni": "",
    "enni2": "",
    "vlan_reference": 1257,
    "customer_order_name": "john Doe",
    "business_code": "",
    "billing_site_ref": "",
    "related_contact_information": [...],
    "id": "764a778c-4b16-4502-8377-e817b93d5b08",
    "product_order_id": "2144c9f2-6ac1-49fd-8a7d-905def231857",
    "cancellation_date": null,
    "cancellation_reason": "",
    "completion_date": null,
    "order_date": null,
    "state": "created",
    "state_change": [...],
    "termination_error": [],
    "order_reference": "PO_DG541_20250404_000001",
    "temporary_reference": "PO_DG541_20250404_000001",
    "building_ref": "",
    "cpe_network_number": "NET-123456",
    "cpe_serial_number": "SR-123456"
}

Détail des informations des contacts associés

Nom Type Description Obligatoire
end_customer_name string Nom du client final Non
siret string Numéro SIRET Non
contact1_email_address string Adresse e-mail du contact sur site Non
contact1_firstname string Prénom du contact sur site Non
contact1_lastname string Nom du contact sur site Non
contact1_phone_number string Numéro de téléphone du contact sur site Non
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 Non
postcode string Code postal Non
street_name string Nom de la rue Non
street_number string Numéro de la rue Non
street_number_extension string Extension du numéro de rue Non
insee_code string Code INSEE Non
building_name string Nom du bâtiment Non
level_number string Numéro d'étage Non
latitude number Latitude de l'adresse Non
longitude number Longitude de l'adresse Non
Exemple
    {
        "end_customer_name": "Covage corp",
        "siret": "00000000000000",
        "contact1_email_address": "John.Doe@unknown.com",
        "contact1_firstname": "John",
        "contact1_lastname": "Doe",
        "contact1_phone_number": "0123456789",
        "contact2_email_address": "Jane.Doe@unknown.com",
        "contact2_firstname": "Jane",
        "contact2_lastname": "Doe",
        "contact2_phone_number": "0987654321",
        "city": "Mont-Saint-Aignan",
        "postcode": "76130",
        "street_name": "Rue Andrei Sakharov",
        "street_number": "4",
        "street_number_extension": "B",
        "insee_code": "76451",
        "building_name": "",
        "level_number": "0",
        "latitude": 49.4744077,
        "longitude": 1.091455
    }   

Détail des changements 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
    {
        "change_reason": "",
        "change_date": "2025-04-04T11:30:47.475+02:00",
        "state": "created"
    }

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

Suppression d'une ligne de commande

Ce endpoint permet de supprimer une ligne de commande dans la session de commande.

DELETE /api/v1/product_order/{product_order_id}/product_order_item/{item_id}/

Paramètres

Nom Type Description Obligatoire
product_order_id string Identifiant de la session de commande Oui
item_id string Identifiant de l'élément de qualification de l'offre de produit Oui

Réponse

Nom Type Description Obligatoire
external_id string Identifiant externe pour la demande Non
project_id string Identifiant du projet associé Non
id string Identifiant de la commande Oui
product_order_item array Liste des éléments de commande Oui
Exemple
{
    "external_id": "444555666777",
    "project_id": "",
    "id": "f12c54b3-881b-48e0-9c96-fea9b2597967",
    "product_order_item": []
}

Liste des lignes de commande

GET /api/v1/product_order_item/

Liste les lignes de commande (tous paniers confondus) avec possibilité de filtrage avancé.

Filtres disponibles (query params) :

Paramètre Type Description
state string Filtre par état de la ligne
order_reference string Filtre par référence de commande (X3)
temporary_reference string Filtre par référence temporaire
customer_order_name string Filtre par nom de commande client
end_customer_name string Filtre par nom du client final
creation_date_gt datetime Lignes créées après cette date (ISO 8601)
creation_date_lt datetime Lignes créées avant cette date (ISO 8601)
order_date_gt datetime Lignes commandées après cette date (ISO 8601)
order_date_lt datetime Lignes commandées avant cette date (ISO 8601)
expiration_date_gt datetime Lignes expirant après cette date (ISO 8601)
expiration_date_lt datetime Lignes expirant avant cette date (ISO 8601)
search string Recherche textuelle libre
sort string Champ de tri

Réponse : Liste paginée de lignes (ProductOrderItemListSchema).

Champ Type Description
id UUID Identifiant de la ligne
product_order_id UUID Identifiant de la session parente
end_customer_name string Nom du client final
external_id string Identifiant externe
product_offering_id string Identifiant de l'offre sélectionnée
product_offering_qualification_item_id UUID Identifiant de l'élément d'éligibilité associé
state string État courant de la ligne
order_reference string Référence de commande (X3, renseignée après confirmation)
temporary_reference string Référence temporaire (avant confirmation)
customer_order_name string Nom de commande client
creation_date datetime Date de création (ISO 8601)
order_date datetime Date de passage en commande (ISO 8601)
expiration_date string Date d'expiration du draft (J+90 de la création)
scheduled_delivery_date date Date de livraison souhaitée

Détail d'une ligne de commande

GET /api/v1/product_order_item/{item_id}/

Récupère le détail complet d'une ligne de commande.

Paramètre URL :

Nom Type Obligatoire Description
item_id UUID Identifiant de la ligne

Réponse : Objet ProductOrderItemSchema complet (tous les champs de création + champs en lecture seule : id, state, order_reference, temporary_reference, cancellation_date, cancellation_reason, completion_date, order_date, state_change, termination_error).

Confirmation de la session de commande

La confirmation de la session entraîne la création de commandes à partir des lignes de commandes contenues dans la session. Les champs cpe_networking_number et cpe_serial_number sont obligatoires si l'option 7021 est présente dans option_ids, sinon ils doivent être vides.

Il est alors possible de suivre l'état d'avancement de ces commandes nouvellement créées (hormis les commandes au statut 'rejected_creation') via l'API de Suivi de Commande.

PATCH /api/v1/product_order/{id}/confirm/

Réponse

Nom Type Description Obligatoire
external_id string Identifiant externe pour la demande Non
project_id string Identifiant du projet associé Non
id string Identifiant de la commande Oui
product_order_item array Liste des éléments de commande Oui
Exemple
{
    "external_id": "777888999",
    "project_id": "",
    "id": "908d2cc0-4bdc-4f62-b812-f8c1f48c96cd",
    "product_order_item": [
        {
            "end_customer_name": "Covage",
            "external_id": "",
            "option_ids": [
                "2210",
                "2220",
                "1615"
            ],
            "note": "",
            "technical_note": "",
            "product_offering_id": "2173",
            "product_offering_qualification_item_id": "d5a4a9aa-ba2c-4f53-95c7-0c1ce6f6e7fa",
            "project_id": "",
            "quote_item_id": "",
            "delivery_mode": "",
            "enni": "",
            "enni2": "",
            "vlan_reference": 1257,
            "customer_order_name": "john Doe",
            "business_code": "",
            "billing_site_ref": "AUX00",
            "related_contact_information": [
                {
                    "end_customer_name": "Covage corp",
                    "siret": "00000000000000",
                    "contact1_email_address": "John.Doe@unknown.com",
                    "contact1_firstname": "John",
                    "contact1_lastname": "Doe",
                    "contact1_phone_number": "0123456789",
                    "contact2_email_address": "Jane.Doe@unknown.com",
                    "contact2_firstname": "Jane",
                    "contact2_lastname": "Doe",
                    "contact2_phone_number": "0987654321",
                    "city": "Mont-Saint-Aignan",
                    "postcode": "76130",
                    "street_name": "Rue Andrei Sakharov",
                    "street_number": "4",
                    "street_number_extension": "B",
                    "insee_code": "76451",
                    "building_name": "",
                    "level_number": "0",
                    "latitude": 49.4744077,
                    "longitude": 1.091455
                }
            ],
            "id": "259a1c5b-8462-4c5e-90d0-90d135763378",
            "product_order_id": "908d2cc0-4bdc-4f62-b812-f8c1f48c96cd",
            "cancellation_date": null,
            "cancellation_reason": "",
            "completion_date": null,
            "order_date": null,
            "state": "in_progress",
            "state_change": [
                {
                    "change_reason": "",
                    "change_date": "2025-04-23T10:13:08.733+02:00",
                    "state": "created"
                },
                {
                    "change_reason": "",
                    "change_date": "2025-04-23T10:24:57.225+02:00",
                    "state": "in_progress"
                }
            ],
            "termination_error": [],
            "order_reference": "PO_DC173_20250423_003363",
            "temporary_reference": "PO_DC173_20250423_003363",
            "building_ref": "",
            "cpe_networkin_number": "NET-123456",
            "cpe_serial_number": "SR-123456"
        }
    ]
}

Détail des éléments de commande

Nom Type Description Obligatoire
end_customer_name string Nom du client final Non
external_id string Identifiant externe pour la demande Non
option_ids array Liste des identifiants d'options Non
note string Note associée à la commande Non
technical_note string Note technique associée à la commande Non
product_offering_id string Identifiant de l'offre de produit Oui
product_offering_qualification_item_id string Identifiant de l'élément de qualification de l'offre de produit Oui
project_id string Identifiant du projet associé Non
quote_item_id string Identifiant de l'élément de devis Non
delivery_mode string Mode de livraison Non
enni string Identifiant ENNI Oui
enni_2 string Identifiant ENNI secondaire Non
vlan_reference number Référence VLAN Non
customer_order_name string Nom de la commande client Non
business_code string Code d'affaires Non
related_contact_information array Informations des contacts associés Oui
id string Identifiant de la commande Oui
cancellation_date string Date d'annulation de la commande Non
cancellation_reason string Raison de l'annulation Non
completion_date string Date de complétion de la commande Non
order_date string Date de la commande Non
state string État actuel de la commande Oui
state_change array Historique des changements d'état Non
termination_error array Erreurs de terminaison associées Non
order_reference string Référence de la commande Non
temporary_reference string Référence temporaire de la commande (Déprécié, se reporter au champ order_reference) Non
building_ref string Référence de l'immeuble Non
cpe_networking_number string Numéro de mise en réseau du CPE Non
cpe_serial_number string Numéro de série du CPE Non

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

Détail des changements 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

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

Cotation (Quote)

Le processus de cotation permet d'obtenir des devis pour des offres fibres avant de les convertir en commandes fermes.

Cycle de vie d'une cotation

stateDiagram-v2 [*] --> created created --> confirmed confirmed --> [*]
État Description
created Panier de cotation créé, en cours de complétion
confirmed Cotation confirmée

Création d'un panier de cotations

POST /api/v1/quote/

Crée un nouveau panier de cotations.

Corps de la requête :

Champ Type Obligatoire Description
external_id string Identifiant externe pour la demande
project_id string Identifiant du projet associé

Réponse :

Champ Type Description
id UUID Identifiant du panier de cotation
external_id string Identifiant externe
project_id string Identifiant du projet associé
state string État courant (created, confirmed)
quote_date datetime Date de cotation (ISO 8601)
creation_date datetime Date de création (ISO 8601)

Liste des paniers de cotations

GET /api/v1/quote/

Liste ou filtre les paniers de cotations.

Filtres disponibles (query params) :

Paramètre Type Description
state string Filtre par état
external_id string Filtre par identifiant externe
project_id string Filtre par identifiant de projet
creation_date_gt datetime Paniers créés après cette date (ISO 8601)
creation_date_lt datetime Paniers créés avant cette date (ISO 8601)
quote_date_gt datetime Paniers cotés après cette date (ISO 8601)
quote_date_lt datetime Paniers cotés avant cette date (ISO 8601)

Réponse : Liste de paniers (mêmes champs que la réponse de création).

Détail d'un panier de cotations

GET /api/v1/quote/{id}/

Récupère les détails d'un panier de cotations, incluant toutes ses lignes.

Paramètre URL :

Nom Type Obligatoire Description
id UUID Identifiant du panier

Réponse :

Champ Type Description
id UUID Identifiant unique
external_id string Identifiant externe
project_id string Identifiant du projet associé
state string État courant
quote_item array Liste des lignes de cotation

Mise à jour d'un panier de cotations

PATCH /api/v1/quote/{id}/

Met à jour les métadonnées d'un panier de cotations.

Paramètre URL :

Nom Type Obligatoire Description
id UUID Identifiant du panier

Corps de la requête :

Champ Type Obligatoire Description
external_id string Identifiant externe pour la demande
project_id string Identifiant du projet associé

Réponse : Détail du panier mis à jour.

Confirmation d'un panier de cotations

PATCH /api/v1/quote/{id}/confirm/

Confirme un panier de cotations. Aucun corps de requête requis.

Paramètre URL :

Nom Type Obligatoire Description
id UUID Identifiant du panier

Réponse : 204 No Content

Ajout d'une ligne de cotation

POST /api/v1/quote/{quote_id}/quote_item/

Ajoute une ligne de cotation à un panier.

Paramètre URL :

Nom Type Obligatoire Description
quote_id UUID Identifiant du panier

Corps de la requête :

Champ Type Obligatoire Description
product_offering_qualification_item_id UUID Identifiant de l'élément d'éligibilité associé
product_offerings array Offres souhaitées (max 4 par ligne)
end_customer_name string Nom du client final
external_id string Identifiant externe
site_connection_type string Type de raccordement du site
business_sector string Secteur d'activité
expected_response_date date Date de réponse souhaitée
option_ids array Liste des options à ajouter
note string Note libre
technical_note string Note technique
project_id string Identifiant du projet associé
customer_order_name string Nom de commande client
business_code string Code affaire
related_contact_information array Contacts associés (max 2)

Réponse :

Champ Type Description
id UUID Identifiant de la ligne
state string État de la ligne de cotation
reference string Référence de la ligne
quote_date datetime Date de cotation (ISO 8601)

Mise à jour d'une ligne de cotation

PATCH /api/v1/quote/{quote_id}/quote_item/{quote_item_id}/

Met à jour une ligne de cotation existante.

Paramètres URL :

Nom Type Obligatoire Description
quote_id UUID Identifiant du panier
quote_item_id UUID Identifiant de la ligne de cotation

Corps de la requête : Mêmes champs que la création (tous optionnels).

Réponse : Détail du panier mis à jour.

Suppression d'une ligne de cotation

DELETE /api/v1/quote/{quote_id}/quote_item/{quote_item_id}/

Supprime une ligne de cotation d'un panier.

Paramètres URL :

Nom Type Obligatoire Description
quote_id UUID Identifiant du panier
quote_item_id UUID Identifiant de la ligne de cotation

Réponse : Détail du panier mis à jour.

Liste des lignes de cotation

GET /api/v1/quote_item/

Liste ou filtre les lignes de cotation (tous paniers confondus).

Filtres disponibles (query params) :

Paramètre Type Description
reference string Filtre par référence de ligne
customer_order_name string Filtre par nom commande client
end_customer_name string Filtre par nom client final
business_sector string Filtre par secteur d'activité
project_id string Filtre par identifiant de projet
state string Filtre par état
offer_family string Filtre par famille d'offre
technology_family string Filtre par famille technologique
creation_date_gt datetime Lignes créées après cette date (ISO 8601)
creation_date_lt datetime Lignes créées avant cette date (ISO 8601)
search string Recherche textuelle libre
sort string Champ de tri

Réponse : Liste paginée de lignes de cotation (QuoteItemListSchema).

Champ Type Description
id UUID Identifiant de la ligne
end_customer_name string Nom du client final
external_id string Identifiant externe
reference string Référence de la ligne
state string État courant
site_connection_type string Type de raccordement
business_sector string Secteur d'activité
product_offerings array Offres demandées
product_offering_qualification_item_id UUID Identifiant de l'élément d'éligibilité associé
address object Adresse du site
latitude float Latitude du site
longitude float Longitude du site
creation_date datetime Date de création (ISO 8601)
order_date datetime Date de cotation (ISO 8601)
expected_response_date date Date de réponse souhaitée

Détail d'une ligne de cotation

GET /api/v1/quote_item/{id}/

Récupère le détail complet d'une ligne de cotation.

Paramètre URL :

Nom Type Obligatoire Description
id UUID Identifiant de la ligne de cotation

Réponse : Objet QuoteItemSchema complet (tous les champs de la liste + note, technical_note, option_ids, business_code).