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.
| 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.
| Header |
Value |
| Content-Type |
text/csv |