Aller au contenu

Cotation

Fonctionnement

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

sequenceDiagram participant Client Client->>Covage API: Création d'un panier de cotations Covage API-->>Client: Panier créé Client->>Covage API: Ajout de lignes de cotation Covage API-->>Client: Lignes ajoutées Client->>Covage API: Upload d'un fichier de tracé Covage API-->>Client: Fichier uploadé Client->>Covage API: Confirmation du panier Covage API-->>Covage Backend: Transmission pour traitement Covage Backend-->>Covage API: Confirmation du traitement Covage API-->>Client: Panier prêt Client->>Covage API: Acceptation d'une ligne de cotation Covage API-->>Client: Panier finalisé (transformé en ligne de commande)

Cycle de vie d'un panier de cotations

flowchart LR A[acknowledged] --> B[confirmed] B --> C[finalized] C --> D[partial_ready] D --> E[ready] E --> F[partial_finalized] F --> G[finalized]

Cycle de vie d'une ligne de cotation

flowchart LR A[acknowledged] --> B[confirmed] B --> C[ready] B --> D[unable_to_provide] C --> E[expired] C --> F[refused] C --> G[accepted]

Création d'un panier de cotations

Création d'un panier de cotations.

POST /api/v1/quote/

Paramètres de la requête

Nom Type Description Obligatoire
external_id string Identifiant externe Non
project_id string Identifiant du projet associé Non
Exemple
{
  "external_id": "EXT123",
  "project_id": "PRJ456"
}

Réponse

Nom Type Description
external_id string Identifiant externe
project_id string Identifiant du projet associé
id string Identifiant du panier
quote_date string Date de cotation
creation_date string Date de création
state string État actuel du panier
Exemple
{
  "external_id": "EXT123",
  "project_id": "PRJ456",
  "id": "123e4567-e89b-12d3-a456-426614174000",
  "quote_date": "2026-04-23T10:00:00+02:00",
  "creation_date": "2026-04-23T09:00:00+02:00",
  "state": "acknowledged"
}

Liste et filtrage des paniers de cotations

Liste et filtre les paniers de cotations.

GET /api/v1/quote/

Paramètres de la requête

Nom Type Description Obligatoire
external_id string Filtre par identifiant externe Non
project_id string Filtre par identifiant de projet Non
state string Filtre par état Non
creation_date_gt string Date de création supérieure à (ISO 8601) Non
creation_date_lt string Date de création inférieure à (ISO 8601) Non
quote_date_gt string Date de cotation supérieure à (ISO 8601) Non
quote_date_lt string Date de cotation inférieure à (ISO 8601) Non

Réponse

Liste paginée de paniers de cotations avec les mêmes champs que la réponse de création.

Exemple
{
  "page_size": 10,
  "count": 1,
  "next_page": null,
  "previous_page": null,
  "results": [
    {
      "external_id": "EXT123",
      "project_id": "PRJ456",
      "id": "123e4567-e89b-12d3-a456-426614174000",
      "quote_date": "2026-04-23T10:00:00+02:00",
      "creation_date": "2026-04-23T09:00:00+02:00",
      "state": "acknowledged"
    }
  ]
}

Détail d'un panier de cotations

Récupère les détails d'un panier de cotations.

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

Paramètres URL

Nom Type Description Obligatoire
id string Identifiant du panier Oui

Réponse

Nom Type Description
external_id string Identifiant externe
project_id string Identifiant du projet associé
id string Identifiant du panier
quote_item array Liste des lignes de cotation
state string État actuel du panier
quote_date string Date de cotation
Exemple
{
  "external_id": "EXT123",
  "project_id": "PRJ456",
  "id": "123e4567-e89b-12d3-a456-426614174000",
  "quote_item": [],
  "state": "acknowledged",
  "quote_date": "2026-04-23T10:00:00+02:00"
}

Mise à jour d'un panier de cotations

Met à jour un panier de cotations.

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

Paramètres URL

Nom Type Description Obligatoire
id string Identifiant du panier Oui

Paramètres de la requête

Nom Type Description Obligatoire
external_id string Identifiant externe Non
project_id string Identifiant du projet associé Non
Exemple
{
  "external_id": "EXT123_UPDATED",
  "project_id": "PRJ456_UPDATED"
}

Réponse

Détail du panier mis à jour (voir GET /quote/{id}/).

Confirmation d'un panier de cotations

Confirme un panier de cotations.

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

Paramètres URL

Nom Type Description Obligatoire
id string Identifiant du panier Oui

Réponse

Détail du panier confirmé (voir GET /quote/{id}/).

Ajout d'une ligne de cotation à un panier

Ajoute une ligne de cotation à un panier.

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

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

Paramètres URL

Nom Type Description Obligatoire
quote_id string Identifiant du panier Oui

Paramètres de la requête

Nom Type Description Obligatoire
end_customer_name string Nom du client final Oui (à la confirmation)
external_id string Identifiant externe Non
site_connection_type string Type de connexion du site Oui (à la confirmation)
business_sector string Secteur d'activité Non
expected_response_date string Date de réponse attendue Non
option_ids array Liste des identifiants d'options Non
note string Note Non
technical_note string Note technique Non
product_offerings array Liste des offres de produits (max 5) Oui (à la confirmation)
product_offering_qualification_item_id string Identifiant de l'élément de qualification Oui
project_id string Identifiant du projet Non
customer_order_name string Nom de la commande client Non
business_code string Code métier Non
related_contact_information array Informations des contacts associés (max 2) Non
Exemple
{
  "end_customer_name": "Client Final",
  "external_id": "EXT_ITEM",
  "product_offering_qualification_item_id": "123e4567-e89b-12d3-a456-426614174001"
}

Réponse

Nom Type Description
end_customer_name string Nom du client final
external_id string Identifiant externe
site_connection_type string Type de connexion du site
business_sector string Secteur d'activité
expected_response_date string Date de réponse attendue
option_ids array Liste des identifiants d'options
note string Note
technical_note string Note technique
product_offerings array Liste des offres de produits
product_offering_qualification_item_id string Identifiant de l'élément de qualification
project_id string Identifiant du projet
customer_order_name string Nom de la commande client
business_code string Code métier
related_contact_information array Informations de contact liées
id string Identifiant de la ligne
quote_date string Date de cotation
state string État de la ligne
reference string Référence
trace_file string Fichier de tracé
creation_date string Date de création
Exemple
{
  "end_customer_name": "Client Final",
  "external_id": "EXT_ITEM",
  "site_connection_type": "",
  "business_sector": "",
  "expected_response_date": null,
  "option_ids": [],
  "note": "",
  "technical_note": "",
  "product_offerings": null,
  "product_offering_qualification_item_id": "123e4567-e89b-12d3-a456-426614174001",
  "project_id": "",
  "customer_order_name": "",
  "business_code": "",
  "related_contact_information": null,
  "id": "123e4567-e89b-12d3-a456-426614174002",
  "quote_date": null,
  "state": "acknowledged",
  "reference": "QO_20260423_00000001",
  "trace_file": "",
  "creation_date": "2026-04-23T10:00:00+02:00"
}

Mise à jour d'une ligne de cotation

Met à jour une ligne de cotation.

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

Paramètres URL

Nom Type Description Obligatoire
quote_id string Identifiant du panier Oui
quote_item_id string Identifiant de la ligne Oui

Paramètres de la requête

Identiques aux paramètres de création, plus :

Nom Type Description Obligatoire
quote_date string Date de cotation Non
state string État de la ligne Non
reference string Référence Non

Réponse

Détail de la ligne mise à jour (voir POST /quote/{quote_id}/quote_item/).

Suppression d'une ligne de cotation

Supprime une ligne de cotation du panier.

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

Paramètres URL

Nom Type Description Obligatoire
quote_id string Identifiant du panier Oui
quote_item_id string Identifiant de la ligne Oui

Réponse

Détail du panier après suppression (voir GET /quote/{id}/).

Upload du fichier de tracé d'une ligne de cotation

Upload du fichier de tracé d'une ligne de cotation.

POST /api/v1/quote/{quote_id}/quote_item/{quote_item_id}/trace/upload/

Paramètres URL

Nom Type Description Obligatoire
quote_id string Identifiant du panier Oui
quote_item_id string Identifiant de la ligne Oui

Paramètres de la requête

Nom Type Description Obligatoire
file File Fichier de tracé (kmz) Oui

Réponse

Détail du panier après upload (voir GET /quote/{id}/).

Téléchargement du fichier de tracé d'une ligne de cotation

Télécharge le fichier de tracé d'une ligne de cotation.

GET /api/v1/quote/{quote_id}/quote_item/{quote_item_id}/trace/download/

Paramètres URL

Nom Type Description Obligatoire
quote_id string Identifiant du panier Oui
quote_item_id string Identifiant de la ligne Oui

Réponse

Fichier KMZ du tracé.

En-têtes de réponse

En-tête Valeur
Content-Type application/vnd.google-earth.kmz

Suppression du fichier de tracé d'une ligne de cotation

Supprime le fichier de tracé d'une ligne de cotation.

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

Paramètres URL

Nom Type Description Obligatoire
quote_id string Identifiant du panier Oui
quote_item_id string Identifiant de la ligne Oui

Réponse

Nom Type Description
detail string Si la suppression s'est réalisée avec succès

Liste et filtrage des lignes de cotations

Liste et filtre les lignes de cotations.

GET /api/v1/quote_item/

Paramètres de la requête

Nom Type Description Obligatoire
reference string Filtre par référence Non
customer_order_name string Filtre par nom de commande client Non
end_customer_name string Filtre par nom du client final Non
business_sector string Filtre par secteur d'activité Non
project_id string Filtre par identifiant de projet Non
state string Filtre par état Non

Réponse

Liste paginée de lignes de cotations.

Exemple
{
  "page_size": 10,
  "count": 1,
  "next_page": null,
  "previous_page": null,
  "results": [
    {
      "id": "123e4567-e89b-12d3-a456-426614174002",
      "end_customer_name": "Client Final",
      "external_id": "EXT_ITEM",
      "site_connection_type": "",
      "business_sector": "",
      "expected_response_date": null,
      "product_offerings": [],
      "product_offering_qualification_item_id": "123e4567-e89b-12d3-a456-426614174001",
      "project_id": "",
      "customer_order_name": "",
      "related_contact_information": [],
      "order_date": null,
      "state": "acknowledged",
      "reference": "QO_20260423_00000001",
      "address": {},
      "latitude": null,
      "longitude": null
    }
  ]
}

Détail d'une ligne de cotation

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

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

Paramètres URL

Nom Type Description Obligatoire
id string Identifiant de la ligne Oui

Réponse

Nom Type Description
id string Identifiant de la ligne
end_customer_name string Nom du client final
external_id string Identifiant externe
site_connection_type string Type de connexion du site
business_sector string Secteur d'activité
expected_response_date string Date de réponse attendue
option_ids array Liste des identifiants d'options
note string Note
technical_note string Note technique
product_offerings array Liste des offres de produits
product_offering_qualification_item_id string Identifiant de l'élément de qualification
project_id string Identifiant du projet
customer_order_name string Nom de la commande client
business_code string Code métier
related_contact_information array Informations de contact liées
quote_date string Date de cotation
state string État de la ligne
reference string Référence
trace_file string Fichier de tracé
creation_date string Date de création
manager_regional object Gestionnaire régional
prices array Liste des prix pour chaque offre de produits
response_date string Date de réponse
validity_date string Date de validité
Exemple
{
  "id": "123e4567-e89b-12d3-a456-426614174002",
  "end_customer_name": "Client Final",
  "external_id": "EXT_ITEM",
  "site_connection_type": "",
  "business_sector": "",
  "expected_response_date": null,
  "option_ids": [],
  "note": "",
  "technical_note": "",
  "product_offerings": [],
  "product_offering_qualification_item_id": "123e4567-e89b-12d3-a456-426614174001",
  "project_id": "",
  "customer_order_name": "",
  "business_code": "",
  "related_contact_information": [],
  "quote_date": null,
  "state": "acknowledged",
  "reference": "QO_20260423_00000001",
  "trace_file": "",
  "creation_date": "2026-04-23T10:00:00+02:00",
  "manager_regional": null,
  "prices": [],
  "response_date": null,
  "validity_date": null
}

Acceptation d'une offre de produit d'une ligne de cotation

Accepte une offre de produit d'une ligne de cotation (toutes les autres offres de produit de la ligne de cotation passent alors au statut refused). Cette action transforme la ligne de cotation acceptée en ligne de commande (voir onglet Prise de commande).

PATCH /api/v1/quote_item/{id}/accept/

Paramètres URL

Nom Type Description Obligatoire
id string Identifiant de la ligne Oui

Paramètres de la requête

Nom Type Description Obligatoire
product_id string Identifiant du produit Oui
Exemple
{
  "product_id": "2173"
}

Réponse

Nom Type Description
product_order_id string Identifiant de la session de commande créée
product_order_item_id string Identifiant de la ligne de commande créée
Exemple
{
  "product_order_id": "123e4567-e89b-12d3-a456-426614174003",
  "product_order_item_id": "123e4567-e89b-12d3-a456-426614174004"
}

Refus d'une offre de produit d'une ligne de cotation

Refuse une offre de produit d'une ligne de cotation.

PATCH /api/v1/quote_item/{id}/decline/

Paramètres URL

Nom Type Description Obligatoire
id string Identifiant de la ligne Oui

Paramètres de la requête

Nom Type Description Obligatoire
product_id string Identifiant du produit Oui
comment string Commentaire Non
Exemple
{
  "product_id": "2173",
  "comment": "C'est un commentaire"
}

Réponse

Détail de la ligne refusée (voir GET /quote_item/{id}/).

Remise à l'état prêt d'une offre de produit refusée

Remet une offre de produit refusée à l'état prêt.

PATCH /api/v1/quote_item/{id}/restore_price/

Paramètres URL

Nom Type Description Obligatoire
id string Identifiant de la ligne Oui

Paramètres de la requête

Nom Type Description Obligatoire
product_id string Identifiant du produit Oui
Exemple
{
  "product_id": "2173"
}

Réponse

Détail de la ligne remise à l'état prêt (voir GET /quote_item/{id}/).

Export d'une réponse d'une ligne de cotation en PDF

Exporte une réponse complète d'une ligne de cotation dans un fichier PDF.

POST /api/v1/quote/{quote_id}/quote_item/{quote_item_id}/export/pdf/

Paramètres URL

Nom Type Description Obligatoire
quote_id string Identifiant du panier Oui
quote_item_id string Identifiant de la ligne Oui

Réponse

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

Export d'une offre de produit d'une ligne de cotation en PDF

Exporte une réponse de prix spécifique d'une ligne de cotation dans un fichier PDF.

POST /api/v1/quote/{quote_id}/quote_item/{quote_item_id}/price/{product_id}/export/pdf/

Paramètres URL

Nom Type Description Obligatoire
quote_id string Identifiant du panier Oui
quote_item_id string Identifiant de la ligne Oui
product_id string Identifiant du produit Oui

Réponse

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

Export des lignes de cotations en CSV

Exporte les lignes de cotations dans un fichier CSV.

POST /api/v1/quote_item/export/csv/

Paramètres de la requête

Nom Type Description Obligatoire
reference string Filtre par référence Non
customer_order_name string Filtre par nom de commande client Non
end_customer_name string Filtre par nom du client final Non
business_sector string Filtre par secteur d'activité Non
project_id string Filtre par identifiant de projet Non
state string Filtre par état Non
Exemple
{
  "state": "acknowledged"
}

Réponse

Nom Type Description
task_id string Identifiant de la tâche
Exemple
{
  "task_id": "task_123456789"
}

Statut de l'exportation

Récupère le statut de l'exportation.

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

Paramètres URL

Nom Type Description Obligatoire
task_id string Identifiant de la tâche Oui

Réponse

Nom Type Description
task_id string Identifiant de la tâche
success boolean Succès de l'export
started string Date de début
stopped string Date de fin
Exemple
{
  "task_id": "task_123456789",
  "success": true,
  "started": "2026-04-23T10:00:00+02:00",
  "stopped": "2026-04-23T10:05:00+02:00"
}

Téléchargement du fichier d'export

Télécharge le fichier d'export.

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

Paramètres URL

Nom Type Description Obligatoire
task_id string Identifiant de la tâche Oui

Réponse

Fichier CSV d'export.

En-têtes de réponse

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