Skip to main content

API COMMANDE COURSIER.FR V4

01/03/2023 image-1662457811981.png Version 4.1


Objectif

Pouvoir commander un coursier directement depuis un site internet, un intranet ou toute autre application d’un partenaire. L’API permet de spécifier l’adresse d’enlèvement, de destination, le colisage, le niveau de prestation et des références client. Elle peut être appelée directement sans appeler l'API devis au préalable si vous connaissez le service à utiliser.


Protocole

Les requests se font en mode https à l’url api.coursier.fr/v4/order.php, on récupère un accusé de la commande, un id, les engagements horaires et une url de tracking.

 

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(180)

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


FromAddress.Company

O

Varchar(50)

Nom de l'Entreprise d'enlèvement dans le cas d'une société


FromAddress.Address

O

Varchar(120)

Numéro et rue de l'adresse d'enlèvement


FromAddress.PostalCode

O

Varchar(10)

Code Postal de l’adresse d’enlèvement


FromAddress.City

O

Varchar(50)

Ville d’enlèvement


FromAddress.Country

O

Varchar(50)

Pays d’enlèvement (exemple : France)


FromAddress.Contact

O

Varchar(50)

Contact d’enlèvement


FromAddress.Email

N

Varchar(100)

Email d’enlèvement


FromAddress.PhoneNumber

O

Varchar(30)

Téléphone d’enlèvement


FromAddress.Comment


N

Varchar(100)

Précision enlèvement. L'information est enregistrée avec le contact créé, elle doit donc être liée à l'adresse ou le contact comme un code porte, une consigne (ne pas mettre un numéro de colis par exemple)


ToAddress.Company

N

Varchar(50)

Nom de l'Entreprise à livrer dans le cas d'une société


ToAddress.Address

O

Varchar(120)

Numéro et rue de l’adresse de livraison


ToAddress.PostalCode

O

Varchar(10)

Code Postal de l’adresse de livraison


ToAddress.City

O

Varchar(50)

Ville de livraison


ToAddress.Country

O

Varchar(50)

Pays de livraison (exemple : France)


ToAddress.Contact

O

Varchar(50)

Contact de livraison


ToAddress.Email

N

Varchar(100)

Email de livraison


ToAddress.PhoneNumber

O

Varchar(30)

Téléphone de livraison


ToAddress.Comment


N

Varchar(100)

Précision livraison. L'information est enregistrée avec le contact créé, elle doit donc être liée à l'adresse ou le contact comme un code porte, une consigne (ne pas mettre un numéro de colis par exemple)


ServiceId

O

int

Nature de la prestation sous forme d'Id en fonction des accord contractuels. Ces codes vous sont données à la création du compte et vous pouvez également les récupérer en temps réel en appelant l'API devis qui vous donnera les services disponibles pour votre compte pour la date choisie. Pour tester (1=course en Normal, 2=course en Exclu,  3=course en double Exclu, 10=sur créneau 2h)


StartDate

N

DateHeure

Par défaut égale à maintenant, permet de spécifier une date en différé par exemple pour tenir compte d'un cutoff. Format « YYYY-MM-DD HH:MM:SS ».

Dans le cas d'un créneau, il s'agit de la date de début du créneau.


Reference1

N

Varchar(50)

Référence interne du client, nous pouvons sur simple demande splitter ou regrouper vos factures par Reference1


Reference2

N

Varchar(50)

Référence interne du client, nous pouvons sur simple demande splitter ou regrouper vos factures par Reference2


Reference3


N

Varchar(50)

Référence interne du client, nous pouvons sur simple demande splitter ou regrouper vos factures par Reference3


Packages

O

Array()

Tableau des colis



Packages :

NOM

REQUIS

TYPE

DESCRIPTIF

Name

O

Varchar(32)

Texte libre : nature du colis (Pli, Colis, Sac, Palette...)

Pour des raisons de sécurité, éviter de préciser une nature d'objet dans le cas de marchandise à forte valeur (montre, bijou...)


NumberOfPackage

O

Int

Nombre de colis similaires


Weight

O

double

Poids en kilos


Length

O

Double

Longueur en cm


Width

O

double

Largeur en cm


Height

O

Double

Hauteur en cm


Si vous ne disposez pas des mesures précises de vos envois, vous pouvez vous référer à la grille standard ci dessous

Name Weight Length Width Height Exemple
XS 1 30 20 5 Pli
S 3 30 25 25 Petit Colis
M 5 40 30 30 Moyen colis
L 15 60 40 40  Gand Colis
XL 100 80 60 100 Demi Palette
XXL 250 80 120 100 Palette

Les colisages erronées peuvent entrainer un supplément et un retard de livraison 

 

Réponse JSON

La réponse contient le détail de la course enregistrée ainsi que son Id permettant par la suite d'en faire le suivi. En cas de rupture de charge, deux courses avec le même numéro seront créées et visibles par l'API de tracking pour suivre chacun des deux trajets. En cas d'erreur, l'api répond un json contenant un champ Message précisant la nature de l'erreur.

NOM

Taille

DESCRIPTIF

MissionNumber

int

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


PickupStartDate

Datetime

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


PickupEndDate

Datetime

Fin du créneau d’enlèvement


DeliveryStartDate

Datetime

Début du créneau de livraison


DeliveryEndDate

Datetime

Fin du créneau de livraison


price

Float

Prix HT de la prestation


CO2

Float

Emissions de CO2 générées pour faire cette prestation (en kg)


TrackingUrl


Varchar(256)

Url de tracking

TrackingKey

varchar(8)

Numéro de suivi crypté, à utiliser avec l'url https://iris.coursier.fr/order/xxxxxxxx

 


Exemple d'appel
<?php
$url = "https://api.coursier.fr/v4/order.php";
$data = array('User' => 'test@apicfr.fr',
'Apikey' => 'e1ab1411d66765e73cf4b068d39cda8a',
'ClientId' => '7055339',
'ServiceId' => 10, //Correspond à un service de créneau
'StartDate' => '2020-07-01 10:00:00', //Mettre un début de créneau valide
'FromAddress' => array('Company' => 'Worldcompany',
'Address' => '45 Rue la Boétie',
'PostalCode' => '75008',
'City' => 'Paris',
'Country' => 'France',
'Contact' => 'Yann Thebault',
'PhoneNumber' => '0602030405',
'Email' => 'yt@test.com',
'Comment' => '5ème étage à gauche'),
'ToAddress' => array('Company' => 'Coursier.fr',
'Address' => '50 Rue Maurice Arnoux',
'PostalCode' => '92120',
'City' => 'Montrouge',
'Country' => 'France',
'Contact' => 'Sophie Mayeux',
'PhoneNumber' => '0605040302',
'Email' => 'sma@test.com',
'Comment' => 'Déposer le colis à l\'accueil'),
'Packages' => array(array('Name' => 'M', 'NumberOfPackage' => 1, 'Weight' =>5, 'Length' => '40', 'Width' => '30', 'Height' => '30')),
'Reference1' => 'Your internal data',
'Reference2' => 'Your internal data',
'Reference3' => 'Your internal data',
'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

{"MissionNumber":"9999999","PickupStartDate":"2020-06-22 18:20:09","PickupEndDate":"2020-06-22 19:20:09","DeliveryStartDate":"2020-06-22 19:20:09","DeliveryEndDate":"2020-06-22 21:20:09","price":99.99,"CO2":2.5,"TrackingUrl":"https://iris.coursier.fr/order/DDDDDDDD","TrackingKey":"DDDDDDDD"}