API TRACKING COURSIER.FR V3

08/06/2020 logo_coursier.png Version 3.1

 

Objectif

Suivre tous les évènements liés à une mission donnée : enlèvement, livraison, approches, informations coursier, reprogrammation, preuve de livraison. Il est également possible d'interroger l'API pour l'ensemble des missions en cours en une fois.

 

Protocole

Les requests se font en mode https à l’url api.coursier.fr/v3/tracking.php, on récupère un json contenant toutes les informations de la course. Dans le cas d'une rupture de charge, plusieurs enregistrements sont renvoyés, chacun d'eux ayant ses propres informations.

 

Authentification

L'authentification se fait à l'aide d'une apikey associée à votre user coursier.fr, vous pouvez trouver ces informations dans votre espace client. Vous devez disposez d'un compte en facturation mensuelle, si ce n'est pas encore le cas vous pouvez contacter un commercial à l'adresse commercial@coursier.fr. Vous devez passer en paramètre l'apikey, le user et le compte client utilisé, un même user pouvant être rattaché à plusieurs comptes client.

Afin de tester nos apis, vous pouvez utiliser le compte de test suivant pour réaliser vos développements dès à présent en attendant d'avoir vos accès définitifs :

User : test@apicfr.fr

Pass : T3stCFR*

ClientId : 7055339

Apikey : e1ab1411d66765e73cf4b068d39cda8a

 

Paramètres 

Les paramètres sont à passer en POST sous forme d’un tableau json.

NOM

REQUIS

TYPE

DESCRIPTIF

User

O

Varchar(32)

User d'accès aux interfaces coursier.fr

 

Apikey

O

Varchar(32)

Apikey liée à votre user d'accès aux interfaces coursier.fr

 

ClientId

O

int

Numéro de compte client

 

MissionNumber

O

int

Identifiant de la course obtenu lors du passage de commande. Si ce paramètre n'est pas spécifié ou vide, l'API retourne l'ensemble des missions à livrer à partir d'aujourd'hui.

 

Lang

N

varchar(2)

Code langue pour ma restitution des messages (FR par défaut)

 

Réponse JSON 

La réponse est un tableau json contenant les informations relatives à la course ou au fragment interrogé. En cas d'erreur, l'api répond un json contenant un champ Message précisant la nature de l'erreur.

NOM

Taille

DESCRIPTIF

MissionId

int

 

Id de la course, dans le cas d'une rupture de charge l'Id est différent pour chaque fragment

 

MissionNumber

int

Numéro de la course, c'est ce numéro qui permet de dialoguer avec notre coursier et le service client

 

From

varchar(80)

Nom de l'adresse de d'enlèvement

 

To

varchar(80)

Nom de l'adresse de livraison

 

PickupStartDate

Datetime

début du créneau d’enlèvement

 

PickupEndDate

Datetime

fin du créneau d’enlèvement

 

PickupStartEstimate

Datetime

début du créneau affiné de la date d'enlèvement

 

PickupEndEstimate

Datetime

fin du créneau affiné de la date d'enlèvement

 

PickupDate

Datetime

date effective d'enlèvement

 

DeliveryStartDate

Datetime

début du créneau de livraison

 

DeliveryEndDate

Datetime

fin du créneau de livraison

 

DeliveryStartEstimate

Datetime

début du créneau affiné de livraison

 

DeliveryEndEstimate

Datetime

fin du créneau affiné de livraison

 

DeliveryDate

Datetime

date effective de livraison

 

State

varchar(50)

Statut de la mission :

- Non Attribué

- Enlevé

- Livré

- Annulé

- Facturé

- Suspendu

- Attribué

- A facturer

 

WorkerShortCode

varchar(5)

Code d'identification du chauffeur

 

WorkerSurname

varchar(100)

Prénom du chauffeur

 

WorkerPicture

varchar(100)

Url de la photo du chauffeur

 

ProofOfdelivery

varchar(100)

Url de la photo de signature

DeliverySignee

varchar(30)

Nom du signataire

 

Exemple d'appel
<?php
$Url = "https://api.coursier.fr/v3/tracking.php";
$Data = array('User' => 'test@apicfr.fr',
			  'Apikey' => 'e1ab1411d66765e73cf4b068d39cda8a',
			  'ClientId' => '7055339',
			  'MissionNumber' => '9005657',
			  'Lang' => 'FR',
			 );

$datajson = json_encode($data);
$curl = curl_init();
curl_setopt($curl, CURLOPT_URL, $url);
curl_setopt($curl, CURLOPT_POST, 1);
curl_setopt($curl, CURLOPT_POSTFIELDS, $datajson);
curl_setopt($curl, CURLOPT_HTTPHEADER, array('Content-Type:application/json'));
curl_setopt($curl, CURLOPT_RETURNTRANSFER, 1);
$res = curl_exec($curl);
curl_close($curl);
var_dump($res);
?>

 

Exemple de réponse

[{"MissionId":"10009999","MissionNumber":"9005657","From":"Boutique Georges 5","To":"Hub Coursier.fr","PickupStartDate":"2020-06-26 11:00:00","PickupEndDate":"2020-06-26 12:00:00","PickupStartEstimate":"","PickupEndEstimate":"","PickupDate":"2020-06-26 11:24:52","DeliveryStartDate":"2020-06-26 12:00:00","DeliveryEndDate":"2020-06-26 13:00:00","DeliveryStartEstimate":"2020-06-26 12:05:00","DeliveryEndEstimate":"2020-06-26 12:15:00","DeliveryDate":"","State":"En approche livraison","WorkerShortCode":"710","WorkerSurname":"Laurent","Picture":"https:\/\/iris.coursier.fr\/worker\/view\/710","ProofOfDelivery":"","DeliverySignee":""},{"MissionId":"10009999","MissionNumber":"9005657","From":"Hub Coursier.fr","To":"Yann THEBAULT","PickupStartDate":"2020-06-26 19:00:00","PickupEndDate":"2020-06-26 20:00:00","PickupStartEstimate":"","PickupEndEstimate":"","PickupDate":"","DeliveryStartDate":"2020-06-26 20:00:00","DeliveryEndDate":"2020-06-26 22:00:00","DeliveryStartEstimate":"","DeliveryEndEstimate":"","DeliveryDate":"","State":"","WorkerShortCode":"","WorkerSurname":"","Picture":"","ProofOfDelivery":"","DeliverySignee":""}]