Skip to content

Quotation

Operation

The quotation process allows obtaining quotes for fiber offers before converting them into firm orders.

sequenceDiagram participant Client Client->>Covage API: Create a quotation basket Covage API-->>Client: Basket created Client->>Covage API: Add quotation lines Covage API-->>Client: Lines added Client->>Covage API: Upload a trace file Covage API-->>Client: File uploaded Client->>Covage API: Confirm the basket Covage API-->>Covage Backend: Transmit for processing Covage Backend-->>Covage API: Processing confirmed Covage API-->>Client: Basket ready Client->>Covage API: Accept a quotation line Covage API-->>Client: Basket finalized (converted to order line)

Quotation basket lifecycle

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

Quotation line lifecycle

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

Create a quotation basket

Create a quotation basket.

POST /api/v1/quote/

Request parameters

Name Type Description Required
external_id string External identifier No
project_id string Associated project identifier No
Example
{
  "external_id": "EXT123",
  "project_id": "PRJ456"
}

Response

Name Type Description
external_id string External identifier
project_id string Associated project identifier
id string Basket identifier
quote_date string Quotation date
creation_date string Creation date
state string Current basket state
Example
{
  "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"
}

List and filter quotation baskets

List and filter quotation baskets.

GET /api/v1/quote/

Request parameters

Name Type Description Required
external_id string Filter by external identifier No
project_id string Filter by project identifier No
state string Filter by state No
creation_date_gt string Creation date greater than (ISO 8601) No
creation_date_lt string Creation date less than (ISO 8601) No
quote_date_gt string Quotation date greater than (ISO 8601) No
quote_date_lt string Quotation date less than (ISO 8601) No

Response

Paginated list of quotation baskets with the same fields as the create response.

Example
{
  "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"
    }
  ]
}

Quotation basket details

Retrieve the details of a quotation basket.

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

URL parameters

Name Type Description Required
id string Basket identifier Yes

Response

Name Type Description
external_id string External identifier
project_id string Associated project identifier
id string Basket identifier
quote_item array List of quotation lines
state string Current basket state
quote_date string Quotation date
Example
{
  "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"
}

Update a quotation basket

Update a quotation basket.

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

URL parameters

Name Type Description Required
id string Basket identifier Yes

Request parameters

Name Type Description Required
external_id string External identifier No
project_id string Associated project identifier No
Example
{
  "external_id": "EXT123_UPDATED",
  "project_id": "PRJ456_UPDATED"
}

Response

Updated basket details (see GET /quote/{id}/).

Confirm a quotation basket

Confirm a quotation basket.

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

URL parameters

Name Type Description Required
id string Basket identifier Yes

Response

Confirmed basket details (see GET /quote/{id}/).

Add a quotation line to a basket

Add a quotation line to a basket.

Some optional fields when creating a quotation line become mandatory when confirming the basket. They must then be provided in advance via the quotation line update.

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

URL parameters

Name Type Description Required
quote_id string Basket identifier Yes

Request parameters

Name Type Description Required
end_customer_name string End customer name Yes (during confirmation only)
external_id string External identifier No
site_connection_type string Site connection type Yes (during confirmation only)
business_sector string Business sector No
expected_response_date string Expected response date No
option_ids array List of option identifiers No
note string Note No
technical_note string Technical note No
product_offerings array List of product offerings Yes (during confirmation only)
product_offering_qualification_item_id string Qualification item identifier Yes
project_id string Project identifier No
customer_order_name string Customer order name No
business_code string Business code No
related_contact_information array Related contact information (max 2) No
Example
{
  "end_customer_name": "End Customer",
  "external_id": "EXT_ITEM",
  "product_offering_qualification_item_id": "123e4567-e89b-12d3-a456-426614174001"
}

Response

Name Type Description
end_customer_name string End customer name
external_id string External identifier
site_connection_type string Site connection type
business_sector string Business sector
expected_response_date string Expected response date
option_ids array List of option identifiers
note string Note
technical_note string Technical note
product_offerings array List of product offerings
product_offering_qualification_item_id string Qualification item identifier
project_id string Project identifier
customer_order_name string Customer order name
business_code string Business code
related_contact_information array Related contact information
id string Line identifier
quote_date string Quotation date
state string Line state
reference string Reference
trace_file string Trace file
creation_date string Creation date
Example
{
  "end_customer_name": "End Customer",
  "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"
}

Update a quotation line

Update a quotation line.

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

URL parameters

Name Type Description Required
quote_id string Basket identifier Yes
quote_item_id string Line identifier Yes

Request parameters

Same as create parameters, plus:

Name Type Description Required
quote_date string Quotation date No
state string Line state No
reference string Reference No

Response

Updated line details (see POST /quote/{quote_id}/quote_item/).

Delete a quotation line

Delete a quotation line from the basket.

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

URL parameters

Name Type Description Required
quote_id string Basket identifier Yes
quote_item_id string Line identifier Yes

Response

Basket details after deletion (see GET /quote/{id}/).

Upload trace file for a quotation line

Upload the trace file for a quotation line.

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

URL parameters

Name Type Description Required
quote_id string Basket identifier Yes
quote_item_id string Line identifier Yes

Request parameters

Name Type Description Required
file File Trace file (kmz) Yes

Response

Basket details after upload (see GET /quote/{id}/).

Download trace file for a quotation line

Download the trace file for a quotation line.

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

URL parameters

Name Type Description Required
quote_id string Basket identifier Yes
quote_item_id string Line identifier Yes

Response

KMZ trace file.

Response headers

Header Value
Content-Type application/vnd.google-earth.kmz

Delete trace file for a quotation line

Delete the trace file for a quotation line.

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

URL parameters

Name Type Description Required
quote_id string Basket identifier Yes
quote_item_id string Line identifier Yes

Response

| Name | Type | Description | |---------|----------------------------------------------| | detail | string | Whether the deletion was successful |

List and filter quotation lines

List and filter quotation lines.

GET /api/v1/quote_item/

Request parameters

Name Type Description Required
reference string Filter by reference No
customer_order_name string Filter by customer order name No
end_customer_name string Filter by end customer name No
business_sector string Filter by business sector No
project_id string Filter by project identifier No
state string Filter by state No

Response

Paginated list of quotation lines.

Example
{
  "page_size": 10,
  "count": 1,
  "next_page": null,
  "previous_page": null,
  "results": [
    {
      "id": "123e4567-e89b-12d3-a456-426614174002",
      "end_customer_name": "End Customer",
      "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
    }
  ]
}

Quotation line details

Retrieve the details of a quotation line.

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

URL parameters

Name Type Description Required
id string Line identifier Yes

Response

Name Type Description
id string Line identifier
end_customer_name string End customer name
external_id string External identifier
site_connection_type string Site connection type
business_sector string Business sector
expected_response_date string Expected response date
option_ids array List of option identifiers
note string Note
technical_note string Technical note
product_offerings array List of product offerings
product_offering_qualification_item_id string Qualification item identifier
project_id string Project identifier
customer_order_name string Customer order name
business_code string Business code
related_contact_information array Related contact information
quote_date string Quotation date
state string Line state
reference string Reference
trace_file string Trace file
creation_date string Creation date
manager_regional object Regional manager
prices array List of prices for each product offering
response_date string Response date
validity_date string Validity date
Example
{
  "id": "123e4567-e89b-12d3-a456-426614174002",
  "end_customer_name": "End Customer",
  "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
}

Accept a product offering for a quotation line

Accept a product offering for a quotation line (all other product offerings for that quotation line then become refused). This action transforms the accepted quotation line into an order line (see Order placement tab).

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

URL parameters

Name Type Description Required
id string Line identifier Yes

Request parameters

Name Type Description Required
product_id string Product identifier Yes
Example
{
  "product_id": "2173"
}

Response

Name Type Description
product_order_id string Identifier of the created order session
product_order_item_id string Identifier of the created order line
Example
{
  "product_order_id": "123e4567-e89b-12d3-a456-426614174003",
  "product_order_item_id": "123e4567-e89b-12d3-a456-426614174004"
}

Decline a product offering for a quotation line

Decline a product offering for a quotation line.

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

URL parameters

Name Type Description Required
id string Line identifier Yes

Request parameters

Name Type Description Required
product_id string Product identifier Yes
comment string Comment No
Example
{
  "product_id": "2173",
  "comment": "This is a comment"
}

Response

Declined line details (see GET /quote_item/{id}/).

Restore a refused product offering to ready state

Restore a refused product offering to ready state.

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

URL parameters

Name Type Description Required
id string Line identifier Yes

Request parameters

Name Type Description Required
product_id string Product identifier Yes
Example
{
  "product_id": "2173"
}

Response

Restored line details (see GET /quote_item/{id}/).

Export a quotation line response to PDF

Exports a complete quotation line response to a PDF file.

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

URL parameters

Name Type Description Required
quote_id string Basket identifier Yes
quote_item_id string Line identifier Yes

Response

Name Type Description
task_id string Export task identifier

Export a product offer response to PDF for a quotation line

Exports a specific product price response of a quotation line to a PDF file.

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

URL parameters

Name Type Description Required
quote_id string Basket identifier Yes
quote_item_id string Line identifier Yes
product_id string Product identifier Yes

Response

Name Type Description
task_id string Export task identifier

Export quotation lines to CSV

Export quotation lines to a CSV file.

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

Request parameters

Name Type Description Required
reference string Filter by reference No
customer_order_name string Filter by customer order name No
end_customer_name string Filter by end customer name No
business_sector string Filter by business sector No
project_id string Filter by project identifier No
state string Filter by state No
Example
{
  "state": "acknowledged"
}

Response

| Name | Type | Description | |---------|----------------------| | task_id | string | Task identifier |

Example
{
  "task_id": "task_123456789"
}

Export status

Retrieve the export status.

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

URL parameters

Name Type Description Required
task_id string Task identifier Yes

Response

Name Type Description
task_id string Task identifier
success boolean Export success
started string Start date
stopped string End date
Example
{
  "task_id": "task_123456789",
  "success": true,
  "started": "2026-04-23T10:00:00+02:00",
  "stopped": "2026-04-23T10:05:00+02:00"
}

Download export file

Download the export file.

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

URL parameters

Name Type Description Required
task_id string Task identifier Yes

Response

CSV export file.

Response headers

Header Value
Content-Type text/csv