Cuivre

Un order est un dictionnaire contenant une variété de champs représentant une commande.

Type de commandes

Deux types de commandes doivent être distingués :

  • La commande de type activate pour créer un nouveau service. On parle alors de commande d'activation. Elle se définit à l'aide d'un produit, choisi parmi les produits disponibles.

  • La commande de type terminate pour résilier un service actif existant dans la plateforme. On parle alors de commande de résiliation.

Type de service

La plateforme supporte deux types de services selon la gamme de produits utilisée pour commander un service:

  • Un service de type collect se définit par un produit appartenant aux familles ADSL (A), SDSL (S) ou SDSL Max (M).

  • Un service de type enni se définit par un produit appartenant à la famille ENNI (N).

Commande de type collect

Selon que la ligne utilisée pour activer le service de type collect est celle d'un voisin ou non, quatre sous-types doivent être distingués pour une commande d'activation d'un service de type collect:

  • activate lorsque la ligne utilisée appartient au client final,

  • create lorque le client final souhaite créer une nouvelle ligne à partir d'une ligne qu'il a déjà activé sur la boucle locale,

  • create_nearby lorsque le client final souhaite créer une nouvelle ligne dans un immeuble à partir de la ligne active d'un voisin au sein du même immeuble,

  • create_neighbour lorsque le client final souhaite créer une nouvelle ligne à partir de la ligne active d'un voisin résident à une adresse différente mais sur le même trottoir.

L'état initial d'une commande est draft : c'est un draft order.

  • Les commandes d'activation d'un service de type collect impliquant une construction de ligne (create, create_nearby et create_neighbour) requièrent la prise d'un rendez-vous entre le client final et l'opérateur de boucle locale.

  • Chaque commande d'un service de type collect requiert le nom d'un contact au sein de votre équipe.

Note

  • La commande de résiliation d'un service de type enni n'est pas supportée par la plateforme.

  • les commandes d'activation d'un service de type enni doivent être commandées directement via un agent du personnel Covage. Elles sont créées et gérées par Covage. Vous pouvez néanmoins les retrouver dans les API order et service.

Composition d'un order

Les attributs d'une commande comprennent les informations nécessaires pour identifier, définir et suivre une commande. Certain champs sont spécifiques en fonction du type de service demandé (collect ou enni) et en fonction du type d'activation (avec ou sans construction de ligne).

Identifier une commande

Nom du champ

Type

Description

model

string

order

order_uuid

string

Identifiant technique de la commande

alias

string

Référence commerciale de la commande au format OYYMMDD_XXXXX à communiquer au service Delivery

operator_order_ref

string

Référence de la commande dans votre système d'information

operator_order_name

string

Nom de la commande affiché sur l'extranet

Définir une commande

Nom du champ

Type

Description

type

string

Type d'order. Peut être activate ou terminate

product

dictionnaire

Informations sur le produit choisi. Définit le type de service, la technologie, le débit, les options possibles.

service_uuid

string

Identifiant technique du service :

  • lorsque la commande d'activation s'est terminé avec succès

  • lorsque la commande de résiliation est créée

service_alias

string

Référence commerciale du service (à communiquer dans tous les échanges avec Covage) :

  • lorsque la commande d'activation s'est terminé avec succès

  • lorsque la commande de résiliation est créée

batch_alias

string

Référence commerciale d'un lot fournit par l'équipe Delivery au format BYYMMDD_XXXXX, lorsque la commande est inclue dans un programme de migration de masse.

Champ type

Il existe plusieurs types de commandes:

Order Type

Description

activate

Création d'un nouveau service

terminate

Résiliation d'un service existant

Champ product

Le dictionnaire product contient les informations du produit à utiliser pour l'activation ainsi que les informations sur la ligne de produit et la famille de produit (se reporter au catalogue produit).

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

Lors de la création d'un order, seul le champ code du produit doit être renseigné. Les autres champs sont ajoutés automatiquement pour vous permettre d'accéder plus facilement à l'information.

Exemple:

{
    "code": "AM01",
}

Suivre l'avancée d'une commande

Nom du champ

Type

Description

status

string

État de la comamnde : draft, processing, (cf. champ status)

creation_date

ISO datetime

Date de création de la commande

modification_date

ISO datetime

Date de dernière modification de la commande

processing_date

ISO datetime

Date de démarrage du traitement effectif de la commande

submission_date

ISO datetime

Date de soumission de la commande

acknowledged_date

ISO datetime

Date de prise en compte de la commande par Covage

held_date

ISO datetime

Dernière date de passage de la commande en statut held

completion_date

ISO datetime

Date de passage de la commande en status completed

cancellation_date

ISO datetime

Date de passage de la commande en status cancelled

rejection_date

ISO datetime

Date de passage de la commande en status rejected

Champ status

Statut des ordres

Description

draft

L’ordre a été créé, mais n’a pas été soumis.

submitted

L’ordre a été soumis avec succès par l’opérateur.

acknowledged

L’ordre a été acquitté par Covage.

processing

L’ordre a fait l’objet d’un acquittement par le fournisseur, il est en cours de traitement

pending

L’ordre est en attente d’une action de l’opérateur. Exemple : confirmation d’une commande xDSL sur un accès sensible

held

L’ordre est en attente d’une action de Covage (ou du PROVIDER). Exemple : processus de désaturation de la boucle locale cuivre

rejected

L’ordre a été rejeté. Ce rejet peut avoir lieu lors des différentes étapes de la production de l’accès : contrôles initiaux ou étapes postérieures). Un ordre de type activate rejeté n'a pas créé de nouveau service, un ordre de type modify rejeté n'a pas modifié un service, un ordre terminate rejeté n'a pas résilié un service, ...

cancelled

L’ordre a été annulé par l'opérateur (action cancel)

completed

L’ordre s’est terminé avec succès. Un ordre de type activate a permis l’activation d’un nouveau lien, un ordre de type terminate a permis la résiliation d’un service, …

Caractéristique d'une commande de type collect

Nom du champ

Type

Description

owner

dictionnaire

Informations sur le client final

contacts

dictionnaire

Informations de contact pour l'order

Champ owner

Le champ owner est un dictionnaire contenant les informations d'identification du client final.

Voir la documentation ici

Champ contacts

Le champ contacts est un dictionnaire contenant les informations sur les personnes à contacter pour la réalisation de la commande.

Nom du champ

Type

Description

operator

dictionnaire

Informations de contact de l'opérateur (vous)

owner

dictionnaire

Informations de contact du client final

Le champ contacts.operator permet de préciser quelle personne chez vous devra être contactée dans le cas où Covage rencontrerait un problème sur la réalisation de la commande.

Exemple:

{
     "contact_uuid": "93reo2i3",
}

L'API Contacts vous permettra de lister, créer, modifier et supprimer vos contacts.

Le champ contacts.owner vous permet de préciser les informations sur le propriétaire de la ligne à créer.

{
     "first_name": "John",
     "last_name": "Doe",
     "phone_number": "0168425698",
     "cell_phone_number": "0668425698",
     "email": "john@doe.com"
 }

Caractéristique d'une commande d'activation d'un service de type collect

Nom du champ

Type

Description

activation_type

string

Type d'activation. Peut être activate, create, create_nearby ou create_neighbour

activation_info

dictionnaire

Informations sur l'activation

eligibility_ref

string

Identifiant de la demande d'éligibilité

address

dictionnaire

Adresse de l'endpoint.

endpoints

liste d'endpoints

Liste des endpoints initiaux (liste vide dans le cas d'une demande de construction)

reference_endpoint

dictionnaire

Endpoint d'une ligne active voisine (cas d'une demande de construction)

enni

dictionnaire

Définition du service ENNI vers lequel vous souhaitez router le traffic (cas d'un produit de la famille S)

options

dictionnaire

Options à activer (dépend du produit sélectionné).

comment

string

Informations spécifiques convenues avec Covage pour activer le service

Champ activation_info

Le champ activation_info est un dictionnaire contenant les informations nécessaires à la commande lorsque le type de la commande est activate.

Nom du champ

Type

Description

mandate_id

string

Référence au mandat de dégroupage signé par le client final auprès de vous en cas d'activation de ligne. Ce mandat pourrait vous être réclamé en cas d'écrasement de ligne à tort

Champ endpoints

Dans le cas d'une activation de ligne, le champ endpoints permet d'indiquer à Covage le ou les endpoints à activer.

Voir xDSL pour plus d'informations.

Champ reference_endpoint

Dans certains cas de création de ligne, l'endpoint final n'existe pas encore. L'éligibilité doit donc s'effectuer sur un endpoint de référence proche de celui à créer. Voir xDSL pour plus d'informations.

Une fois l'ordre créé, le champ reference_endpoint contiendra les informations de l'endpoint de référence.

Exemple d'endpoint:

{
    "endpoint_ref": "0123456789",
    "endpoint_ref_type": "line_number",
}

Champ address

  • Dans le cas d'une activation de ligne, le champ address contient les informations d'adresse de la ligne à activer.

  • Dans le cas d'une création de ligne, le champ address est pré-rempli avec les informations de l'endpoint de référence. Certains champs sont alors modifiables afin de préciser l'adresse exacte de l'endpoint à créer (étage, numéro de rue, etc..).

Note

Les champs de l'addresse à renseigner dépendent du type d'activation. Les règles de définition de l'adresse sont renseignées dans la section Commande d'une ligne XDSL. Cf xDSL pour plus d'informations.

Champ enni

Doit être défini avec un produit de la famille SDSL (S).

Voir la documentation ici.

Champ origin

Le champ origin est en lecture seule et peut prendre comme valeur (standard, mass_migration, unit_migration) qui est automatiquement calculée par la platforme en fonction de type de commande. Ce champ permet de distinguer une commande STANDARD, d'une MASS_MIGRATION.

Note

En V2, la valeur de ce champ sera forcée à standard et ne permettra plus de distinguer son origine véritable. Nous vous invitons à ne plus utiliser ce champ.

Champ options

Le champ options est un dictionnaire dont la clef est le code de l'option et la valeur est un dictionnaire contenant sa configuration.

Dans le cas des commandes comportant une demande de portabilité, le compte-rendu de portabilité de l'opérateur de boucle locale (opérateur attributaire et opérateur d’infrastructure) est transmis directement à l’opérateur. Également, le champs prefix_code est obligatoire, facultativement vous pouvez préciser un rio_code.

Voir la documentation ici.

Caractéristique d'une commande d'un service de type enni

Nom du champ

Type

Description

pop

dictionnaire

Information sur le POP hebergeant l'ENNI.

Champ pop

Le champ pop est un dictionnaire qui renvoie les caracteristiques de l'API.

Exemple:

{
   "pop": {
        "address": "137 Boulevard Voltaire, 75011 PARIS",
        "code": "P75TH2",
        "housing": "TELEHOUSE 2",
        "interface": "10G_SR"
    }
}

Créer un order

Lors de la création d’un nouvel order, son status est mis à draft (on parle de draft order).

Cette facilité permet à l’opérateur de renseigner le draft order avec les premières informations disponibles et de le compléter par la suite. Une fois toutes les informations renseignées, il faudra soumettre l'order pour une exécution effective de la commande via l'url /api/orders/{order_uuid}/submit/.

Pour créer un order, un POST doit être effectué sur l'url /api/orders/.

Pour l'instant, seules les commandes d'activation ou de résiliation d'un service de type collect peuvent être créées via l'extranet.

Exemple:

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" : "0492271978"
   } ],
   "address" : {
      "street_name" : "BOULEVARD SAINT ROCH",
      "kosc_street_code" : "0608859150",
      "floor" : "00",
      "city" : "NICE",
      "kosc_insee_code" : "06088",
      "street_number" : "0022"
   },
   "enni": {
       "enni_vlan": "111",
       "enni_service_ref": "S20181102_12001"
   }
}

Dans cet exemple, les champs suivants sont ajoutés par Covage:

  • model

  • order_uuid

  • alias

  • creation_date

  • modification_date

  • status

Réponse :

HTTP/1.1 201 OK
Content-Type: application/json

{
  "model": "order",
  "order_uuid": "35266f3e-1915-43a3-925e-1a19d822ce9e",
  "alias": "O170516_21000",
  "creation_date": "2019-09-16 08:53:27.676901+00:00",
  "modification_date": "2019-09-16 08:53:27.676933+00:00",
  "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" : "null"
     },
     "unlisted_number": {
        "enabled": false
     },
     "internal_cabling": {
        "enabled": false,
        "default_value": "0-5m"
     },
     "contract_term": {
        "enabled": false,
        "default_value": "12_months"
     },
     "portability": {
        "enabled": false,
        "contract_ref": null,
        "operator_code": null
     }
  },
  "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"
  },
  "owner_name" : null,
   "endpoints": [
       {
           "endpoint_ref": "0492271978",
           "endpoint_ref_type": "line_number",
           "concentration_point": {
               "latlng": {
                   "latitude": 43.7101894,
                   "longitude": 7.2930888
               },
               "address": {
                   "kosc_street_code": "0608859150",
                   "kosc_insee_code": "06088",
                   "street_number": "00022",
                   "street_name": "BD SAINT ROCH",
                   "city": "NICE",
                   "housing_complex": null,
                   "building": null,
                   "stairs": null,
                   "floor": null,
                   "door": null,
                   "logo": null
               }
           },
           "info": {
               "inactive": false,
               "unlisted_number": true,
               "available_pairs": 11,
               "max_available_pairs": 11,
               "under_construction": false
           },
           "characteristics": {
               "sections_lengths": [
                   {
                       "diameter": 4,
                       "length": 1425
                   }
               ],
               "nra": "06088CAR"
           }
       }
   ],
  "address": {
       "kosc_street_code": "0608859150",
       "kosc_insee_code": "06088",
       "street_number": "22",
       "street_name": "BOULEVARD SAINT ROCH",
       "city": "NICE",
       "zipcode": "06000",
       "housing_complex": "DELPHINARIUM DU MONT LUPIN",
       "building": null,
       "stairs": null,
       "floor": "00",
       "door": null,
       "logo": null
   },
   "pop": {
       "code": null,
       "interface": null
   },
  "enni": {
      "enni_vlan": "111",
      "enni_service_ref": "S20181102_12001"
  }
}

Récupérer un order

Il est possible de récupérer un order avec la méthode GET sur l'url /api/orders/{order_uuid}/.

GET /api/orders/35266f3e-1915-43a3-925e-1a19d822ce9e/ HTTP/1.1
Host: extranet.kosc-telecom.fr

Modifier un order

Il est possible de modifier un order avec la méthode PUT sur l'url /api/orders/{order_uuid}/.

Seules les modifications sur les champs suivants seront prises en comptes.

  • owner

  • comment

  • contacts

  • options

  • operator_order_ref

  • operator_order_name

  • enni

  • batch_alias

Note

Le comportement lors de la modifications du champs endpoints dépend du type d'order.

Note

Il n'est possible de modifier un order que si son status est à draft.

Note

À chaque PUT, l'intégralité du document doit être envoyé. Les champs modifiables qui ne sont plus présents seront supprimés de l'order.

Note

Le champ batch_alias est renseigné lorsque la commande entre dans un programme de migration de masse géré par Covage.

Supprimer un order

Il est possible de supprimer un order à l'état draft avec la méthode DELETE sur l'url /api/orders/{order_uuid}/.

DELETE /api/orders/35266f3e-1915-43a3-925e-1a19d822ce9e/ HTTP/1.1
Host: extranet.kosc-telecom.fr

Réponse:

HTTP/1.1 200 OK
Content-Type: application/json

{}

Soumettre un order

Il est possible de soumettre un order d'activation ou de résiliation d'un service de type collect en effectuant un POST sur l'url /api/orders/{order_uuid}/submit/. Cette commande doit être dans l'état draft.

POST /api/orders/35266f3e-1915-43a3-925e-1a19d822ce9e/submit/ HTTP/1.1
Host: extranet.kosc-telecom.fr

Réponse:

HTTP/1.1 200 OK
Content-Type: application/json

{}

Confirmer ou annuler un order d'activation

Dans le cas d'une commande d'activation d'un service de type collect, l'arrivée de certains événements requiert une réponse de votre part, la commande passe alors dans l'état pending.

Il vous est possible d’envoyer votre réponse en effectuant un POST sur l'url /api/orders/{order_uuid}/{action}/.

Les actions possibles sont les suivantes :

  • confirm

  • cancel