Orders¶
An order is a dictionary containing some fields representing an order.
Order Type¶
There is 2 types of orders:
The
activateorder is used to create a new service. It’s an activation order. It’s defined with a product chosen in the Covage catalog.The
terminateorder is used to end a service from an active service on the Covage platform. It’s a terminate order.
Service type¶
The platform handle two service types depending on the product range used to order a service:
collectservice defined by a product in the familyADSL(A),SDSL(S) orSDSL Max(M).enniservice defined by a product in the familyENNI(N).
Collect Order type¶
Depending on the order collect is one of a neighbour or not, there
is 4 types of collect activation orders:
activatewhen the line used belong to the final client.createwhen the final client wants to create a new line from another one he already activated on the local loop.create_nearbywen the final client wants to create a new line in a building from the activated line of a neigbour in the same neighbour.create_neighbourwhen the final client want to create a new line from the activated line living in a different address but on the same pavement.
The initial state of an order is draft. It’s a draft order.
service activation order of
collecttype needind a line buildingcreate,create_nearbyandcreate_neighbour) require an appointment with the final client and local loop operator.Every service order of type
collectneeds a contact name from the operator.
Note
The terminate order of a
enniservice is not permitted on the platform.The activation order of an
enniservice must be ordered with Covage. They are created and managed by Covage. You can access them throughorderandserviceapi.
order composition¶
Order attributes contains required informations to indentify, define and follow an order.
Some fields are only used for specific services (collect or enni) and the activation type
(with or without line building).
Identify an order¶
Field name |
Type |
Description |
|---|---|---|
model |
string |
|
operator_uuid |
string |
Operator identifier (you) |
order_uuid |
string |
Technical order identifier |
alias |
string |
Legible Covage order reference, in the format OYYMMDD_XXXXX , to be provided to Delivery service |
operator_order_ref |
string |
Order reference in your information system |
operator_order_name |
string |
Order name as displayed on the extranet |
Define an order¶
Field name |
Type |
Description |
|---|---|---|
type |
string |
|
product |
dict |
Informations about the chosen product. Define the service type, technology flow rate and available options. |
service_uuid |
string |
Service technical identifier:
|
service_alias |
string |
Covage commercial reference of the service: (To send along with all exchange with Covage).
|
batch_alias |
string |
Commercial Covage reference of a batch. Set by the Covage delivery team. formated as BYYMMDD_XXXXX. used when the order is part of a mass migration batch. |
type field¶
There are several types of orders:
Order Type |
Description |
|---|---|
|
New service creation |
|
Existing service termination |
product field¶
The product dictionary contains the information required for activation, as well as information
about the product line and the product family (see product catalog).
{
"name": "ADSL-Max-FULL-KOSC",
"code": "AM01",
"description": "ADSL * FULL unbundling * KOSC",
"line": {
"name": "ADSL-Max",
"code": "AM",
"description": "ADSL-MAX * Best of ADSL, VDSL products",
"family": {
"name": "ADSL",
"code": "A",
"description": "ADSL * technology : ADSL, VDSL, READSL"
}
}
}
When creating an order, only the product code field has to be filled in. The other fields are automatically
added by KOSC to grant you an easy access to the information.
Example:
{
"code": "AM01",
}
Follow the order status¶
Field name |
Type |
Description |
|---|---|---|
status |
string |
Order state: |
creation_date |
ISO datetime |
Order creation date |
modification_date |
ISO datetime |
Date of last order modification |
processing_date |
ISO datetime |
Actual order processing start date |
submission_date |
ISO datetime |
Order submission date |
acknowledged_date |
ISO datetime |
Date of order acknowledgment by the Covage system |
held_date |
ISO datetime |
Last date when order changed to |
completion_date |
ISO datetime |
Date when order changed to |
cancellation_date |
ISO datetime |
Date when the order changed to |
rejection_date |
ISO datetime |
Date when order changed to |
status field¶
Order state |
Description |
|---|---|
|
The order was created but not submitted. |
|
The order was successfully submitted by the operator. |
|
The order was acknowledged by Covage. |
|
The order was acknowledged by the provider, and is being processed |
|
The order is waiting for an action by the operator. Example : xDSL order confirmation on a sensitive access |
|
The order is waiting for an action by Covage (or by the PROVIDER). Example : copper local loop desaturation process |
|
The order was rejected. The rejection may happen in different
stages of the access production process: initial controls or
later stages). A rejected order of the |
|
The order was canceled by the operator ( |
|
The order was successfully completed. An order of the
|
Order Characteristics for a collect service¶
Field name |
Type |
Description |
|---|---|---|
owner |
dictionary |
End customer contact information |
contacts |
dictionnaire |
Informations de contact pour l’ |
owner field¶
The owner field is a dictionary containing the end customer identification information.
See documentation here.
contacts field¶
The contacts field is a dictionary containing information about the people to contact in order to process the order.
Field name |
Type |
Description |
|---|---|---|
operator |
dictionary |
Operator (you) contact information |
owner |
dictionary |
End customer contact information |
The contacts.operator field allows you to specify the person in your team that has to be contacted should Covage
encounter any problem with the processing of an order.
Example:
{
"contact_uuid": "93reo2i3",
}
The Contacts API allows you to list, create, modify and delete your contacts.
The contacts.owner field allows you to specify the information associated with the owner of the line that has to be
created.
{
"first_name": "John",
"last_name": "Doe",
"phone_number": "0168425698",
"cell_phone_number": "0668425698",
"email": "john@doe.com"
}
Activation order characteristics for a collect service.¶
Field name |
Type |
Description |
|---|---|---|
activation_type |
string |
Activation type. Either |
activation_info |
dictionary |
Activation information |
eligibility_ref |
string |
Eligibility request identifier |
address |
dict |
|
endpoints |
endpoint list |
List of initial endpoints. Empty if building line is required |
reference_endpoint |
dict |
Active neighbour endpoint (if building line is required) |
enni |
dict |
informations about the |
options |
dict |
Options to be activated (depending on the selected product) |
comment |
string |
Specific information, agreed with Covage, for service activation |
activation_info field¶
The activation_info field is a dictionary containing the required informations for order when
it’s an activate order.
Field name |
Type |
Description |
|---|---|---|
mandate_id |
string |
Refers to the unbundling mandate signed with you by the end customer for line activation. This mandate could be claimed from you in case of slamming. |
endpoints field¶
For line activation, endpoints field is mandatory and express to Covage one or more endpoints
to be activated. xDSL for more informations.
reference_endpoint field¶
In some cases, during the creation of a line, the final endpoint still does not exist. Eligibility then must be
carried out on an endpoint near the endpoint that has to be created.
Once the order is created, the reference_endpoint field will contain information about the reference endpoint.
endpoint example:
{
"endpoint_ref": "0123456789",
"endpoint_ref_type": "line_number",
}
Note
Warning: you must provide all the values that were sent to you upon issuing the eligibility request without modification.
address field¶
in case of line activation, the address field contains informations about de line address of the
line to activate and is pre-filled with informations of the reference_endpoint.
Some fields are the modifiable to indicate exact address of the endpoint to be created (stairs,
street number and so on).
Note
The address fields to fill depends on the activation type. The address definition infos are in the section xDSL line order.
enni field¶
Must be filled with a SDSL family product (S).
See documentation here.
origin field¶
The origin field is a read-only field whose value (standard, mass_migration, unit_migration) is
computed automatically by the platform depending on the order type. This field allows the customer to differentiate
well between STANDARD order and MASS_MIGRATION order.
options field¶
The option field is a dictionary with the option code as the key and configuration dictionary as value.
For orders that include a portability request, the portability report form the local loop operator (operator awarded the contract and infrastructure operator) is directly transmitted to the operator. Also you should a prefix_code and optionalaly a rio_code. See doc here.
Order characteristics for an enni service¶
Field name |
Type |
Description |
|---|---|---|
pop |
dict |
Informations about the POP hosting the |
pop field¶
The pop field is a dictionary with characteristics from the API.
Exemple:
{
"pop": {
"address": "137 Boulevard Voltaire, 75011 PARIS",
"code": "P75TH2",
"housing": "TELEHOUSE 2",
"interface": "10G_SR"
}
}
Creating an order¶
When an order is being created, its state is draft (the term draft order is used).
This feature allows the operator to fill in the initial information available and to complete it later on.
To create an order, a POST must be executed on the URL /api/orders/.
But only the activation order of a collect service can be created on the extranet.
Example:
POST /api/orders/ HTTP/1.1
Host: extranet.kosc-telecom.fr
Content-Type: application/json
{
"type" : "activate",
"activation_type" : "activate",
"eligibility_ref": "KOSC_8178cd36-9207-4f86-a932-caaebba14381",
"product" : {
"code" : "SD01"
},
"options" : {
"grt" : {
"value" : "4h_bhbd",
"enabled" : true
}
},
"contacts" : {
"operator" : {
"contact_uuid" : "bp5nkkcx"
},
"owner" : {
"phone_number" : "0123456789",
"email" : "email@domain.com",
"first_name" : "Prénom",
"last_name" : "Nom"
}
},
"operator_order_ref" : "UNTEL02-1",
"operator_order_name" : "Commande pour client Untel",
"comment" : "Commentaires",
"activation_info" : {
"mandate_id" : "01234567"
},
"owner" : {
"type" : "unregistrated",
"name" : "Untel"
},
"endpoints" : [ {
"endpoint_ref_type" : "line_number",
"endpoint_ref" : "0143340043"
} ],
"address" : {
"street_name" : "RUE DU CAPITAINE GUYNEMER",
"rivoli_code" : "1440",
"floor" : "03",
"city" : "COURBEVOIE",
"insee_code" : "92026",
"street_number" : "00044"
},
"enni": {
"enni_vlan": "111",
"enni_service_ref": "S20181102_12001"
}
}
In this example, Covage adds the fields below:
modelorder_uuidaliasoperator_uuidcreation_datemodification_datestatus
Response:
HTTP/1.1 200 OK
Content-Type: application/json
{
"model": "order",
"order_uuid": "t8jcx8tp",
"alias": "O170516_21000",
"operator_uuid": "9lf2g9rt",
"creation_date": "2017-05-16T21:36:23.945079",
"modification_date": "2017-05-16T21:36:23.945079",
"status": "draft",
"type" : "activate",
"activation_type" : "activate",
"eligibility_ref": "KOSC_8178cd36-9207-4f86-a932-caaebba14381",
"product": {
"name": "SDSL-4M-PREMIUM-G-1P-KOSC",
"code": "SD01",
"description": "SDSL 4Mbit/s PREMIUM * Guaranteed * 1 pair * KOSC",
"line": {
"name": "SDSL-4M",
"code": "SD",
"description": "SDSL-4M * Rate : 4 Mbits",
"family": {
"name": "SDSL",
"code": "S",
"description": "SDSL"
}
}
},
"options" : {
"grt" : {
"value" : "4h_24_7",
"enabled" : true,
"default_value" : "4h_bhbd"
}
},
"contacts" : {
"operator" : {
"contact_uuid" : "bp5nkkcx"
},
"owner" : {
"phone_number" : "0123456789",
"email" : "email@domain.com",
"first_name" : "Prénom",
"last_name" : "Nom"
}
},
"operator_order_ref" : "UNTEL02-1",
"operator_order_name" : "Commande pour client Untel",
"comment" : "Commentaires",
"activation_info" : {
"mandate_id" : "01234567"
},
"owner" : {
"type" : "unregistrated",
"name" : "Untel"
},
"endpoints" : [ {
"endpoint_ref_type" : "line_number",
"endpoint_ref" : "0143340043"
} ],
"address" : {
"street_name" : "RUE DU CAPITAINE GUYNEMER",
"rivoli_code" : "1440",
"floor" : "03",
"city" : "COURBEVOIE",
"insee_code" : "92026",
"street_number" : "00044"
},
"enni": {
"enni_vlan": "111",
"enni_service_ref": "Gate 1"
}
}
Retrieve an order¶
You can retrieve an order by means of the GET method on the /api/orders/{order_uuid}/ URL.
GET /api/orders/t8jcx8tp/ HTTP/1.1
Host: extranet.kosc-telecom.fr
Update an order¶
You can update an order by means of the PUT method on the /api/orders/{order_uuid}/ URL.
Only the modifications on the following fields will be taken into account:
ownercommentcontactsoptionsoperator_order_refoperator_order_nameennibatch_alias
Note
The behavior upon modification of the endpoints field depends on the order type.
Note
An order cannot be modified unless its state (status) is draft.
Note
Every time a PUT is used, the whole document must be sent. The modifiable fields that are no longer present
will be deleted from the order.
Note
The batch_alias field is filled when an order is part of a mass migration program managed by Covage.
Delete an order¶
You can delete an order in the draft state by means of the DELETE method on the
`/api/orders/{order_uuid}/ URL.
DELETE /api/orders/t8jcx8tp/ HTTP/1.1
Host: extranet.kosc-telecom.fr
Response:
HTTP/1.1 200 OK
Content-Type: application/json
{}
Submit an order¶
It’s possible to submit an activation order or terminate order of a collect service with
a POST on POST sur l’url /api/orders/{order_uuid}/submit/. The order mst be in the draft
state.
POST /api/orders/t8jcx8tp/submit/ HTTP/1.1
Host: extranet.kosc-telecom.fr
Response:
HTTP/1.1 200 OK
Content-Type: application/json
{}
Confirm or cancel an activation order¶
If the order is a service activation of collect type, some event requires an answer from you. At
this time the order is in the pending state.
You can send your answer with a POST on /api/orders/{order_uuid}/{action}/.
possible actions are:
confirmcancel