Documentation

Service Création étiquette transport (request_bl)

NOUVELLE VERSION V2 : CLIQUEZ-ICI

Vous êtes développeur ou une agence web ? Inscrivez-vous au programme Expedy Partner

La création d’étiquette de transport ou aussi appelé bl (bordereau livraison), permet de déclencher la création du service de transport. Attention pour certains transporteurs comme les coursiers qui intègrent la collecte, le service démarre dès la création du bordereau.

URL requête : http://www.expedy.fr/api/request_bl

ParamètreDescriptionFormat
typeCode type envoi récupéré après requête cotation. 
unique_refVotre référence unique interne. 
poidsPoids en kg , exemple : 1.25 pour 1 kilo 250 grammes.Numérique
total_invoiceValeur du colis en euro. Selon transporteurs pour assurance.Numérique
relayidselectedID du relais récupéré après requête relais.Numérique

Informations colis. Obligatoire pour les envois hors de France
lengthLongueur du colis en cm. Obligatoire pour export.Numérique
widthLargeur du colis en cm. Obligatoire pour export.Numérique
heightHauteur du colis en cm. Obligatoire pour export.Numérique
content_descrDescription simple du contenu du colis. Obligatoire pour export.Numérique
content_valueValeur du colis en euro déclarée en douane. Obligatoire pour export.Numérique
content_customscodeCode douane. Obligatoire pour export postal avec Colissimo.6 Numériques

Coordonnées expéditeur
sender_companyRaison sociale expéditeur 
sender_civiliteCivilité expéditeurListe de valeurs mr | mme
sender_nameNom expéditeur 
sender_firstnamePrénom expéditeur 
sender_adr1Adresse expéditeur ligne 1max 32 caractères
sender_adr2Adresse expéditeur ligne 2max 32 caractères
sender_zipCode postal expéditeurDépend du pays
sender_cityVille expéditeur 
sender_country_codeCode pays ISO expéditeur2 Alphanumériques
sender_emailAdresse email expéditeur 
sender_phoneNuméro mobile expéditeur, exemple : 060000000010 Numériques

Coordonnées destinataire
shipping_companyRaison sociale destinataire 
shipping_civiliteCivilité destinataireListe de valeurs mr | mme
shipping_nameNom destinataire 
shipping_firstnamePrénom destinataire 
shipping_adr1Adresse destinataire ligne 1max 32 caractères
shipping_adr2Adresse destinataire ligne 2max 32 caractères
shipping_zipCode postal destinataireDépend du pays
shipping_cityVille destinataire 
shipping_country_codeCode pays ISO destinataire2 Alphanumériques
shipping_emailAdresse email destinataire 
shipping_phoneNuméro mobile destinataire, exemple : 060000000010 Numériques

Autres paramètres
request_timeLaisser vide pour une création de transport  immédiate,
ou mettre une date unix pour un moment ultérieur.
ex :1483365600 pour le mardi 2 janvier 2017 à 14h00 gmt +1 (paris)
Numérique
print_modeFormat étiquette. Format A4 : “pdf” . Format A5 (thermique) : “thermal”Liste de valeurs pdf | thermal
auto_storeArchiver automatiquement cet envoi dans votre consoleListe de valeurs yes | no
csv_ref_prefixPermet au coursier d’identifier la source de la course, par exemple le nom de votre site web en abrégé. 
csv_source_idID permettant de faire un pingback (webhook) sur une URL pour recevoir les informations de suivi de livraison. Envoyer votre URL à support@expedy.fr 
order_cart_dataPermet de transmettre au coursier le contenu de la commande pour un ou plusieurs magasins à collecter.

Exemple XML “order_cart_data”

(faire passer ce XML dans l’array “params”.)

<shops>
<shop>
<shop_name><![CDATA[Woki Restaurant]]></shop_name>
<shop_adr><![CDATA[118 rue République, 75005 Paris]]></ shop_adr >
<shop_preorder></shop_preorder> // laisser vide
<shop_cart>
<shop_item>
<p_ref>W04</p_ref>
<quantity>1</quantity>
<p_name><![CDATA[Plat Principal]]></p_name>
<p_price>9.5</p_price>
<p_tva>1.055</p_tva>
<p_weight>200</p_weight>
<p_desc><![CDATA[]]></p_desc> // pas obligatoire
<p_opts>
<opt>
<opt_name><![CDATA[Cacahuetes]]></opt_name>
<opt_price>0.50</opt_price>
<opt_tva>1.055</opt_tva>
</opt>
<opt>
<opt_name><![CDATA[Poulet]]></opt_name>
<opt_price>2.00</opt_price>
<opt_tva>1.055</opt_tva>
</opt>
</p_opts>
</shop_item>
<shop_item>
<p_ref>W04</p_ref>
<quantity>1</quantity>
<p_name><![CDATA[Le Best Of Woki]]></p_name>
<p_price>7.5</p_price>
<p_tva>1.055</p_tva>
<p_weight>200</p_weight>
<p_desc><![CDATA[]]></p_desc> // pas obligatoire
<p_opts>
<opt>
<opt_name><![CDATA[Cacahuetes]]></opt_name>
<opt_price>0.50</opt_price>
<opt_tva>1.055</opt_tva>
</opt>
</p_opts>
</shop_item>
</shop_cart>
</shop>
<shop>
<shop_name><![CDATA[Burger Rapide]]></shop_name>
<shop_adr><![CDATA[ 63 quai Cavelier de la Salle, 75005 Paris]]></ shop_adr >
<shop_preorder></shop_preorder> // laisser vide
<shop_cart>
<shop_item>
<p_ref>A28</p_ref>
<quantity>2</quantity>
<p_name><![CDATA[Burger Double Cheese]]></p_name>
<p_price>13</p_price>
<p_tva>1.055</p_tva>
<p_weight>200</p_weight>
<p_desc><![CDATA[]]></p_desc> // pas obligatoire
<p_opts></p_opts>
</shop_item>
<shop_item>
<p_ref>A22</p_ref>
<quantity>1</quantity>
<p_name><![CDATA[Grande Frite]]></p_name>
<p_price>5</p_price>
<p_tva>1.055</p_tva>
<p_weight>200</p_weight>
<p_desc><![CDATA[]]></p_desc> // pas obligatoire
<p_opts></p_opts>
</shop_item>
</shop_cart>
</shop>
</shops>

Exemple PHP d’une requête Création étiquette transport

 <?

// GENERER UN BON ENVOI * LIVRAISON  ( api/request_bl )

define('DS_SERVICE', 'api/request_cotation'); // <-- ! service a requeter
define('SID', 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX');
define('TOKEN', 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX');
define('DS_URL', 'www.expedy.fr');
define('DS_SERVICE_URL', 'https://'.DS_URL.'/'.DS_SERVICE);

// start params
$poids = "1"; // poids en kg , exemple : 1.25 
$total_invoice = "0"; // valeur du colis en euros
$type = "kebi_resto_in_rouen"; // code type envoi récupéré aprés requete cotation
$relayidselected = ""; // id relais recupérée aprés requete relais
$unique_ref = "TEST API"; // votre reference unique / interne 
$print_mode = "thermal";  // type d'impression "pdf" pour A4, "thermal" pour A5
$auto_store = "yes"; // yes ou no (archive automatiquement ou pas cet envoi dans votre console)
$csv_ref_prefix = "API"; // tag general / de groupe pr votre reference unique
$length = "5";  //  obligatoire pour export : longueur du colis,
$width = "5";  // obligatoire pour export : largeur du colis, 
$height = "5";  // obligatoire pour export : hauteur du colis, 
$content_descr = ""; // obligatoire pour export : description simple
$content_value = ""; // obligatoire pour export : valeur du colis en euros déclarée pour export 
$content_customscode = ""; // obligatoire pour export avec colissimo : code douane
// end params


// start sender
$sender_company = "RESTO IN"; // raison sociale expediteur
$sender_civilite = ""; // mr ou mme
$sender_name = "Dupont"; // Nom
$sender_firstname = "Pierre"; // prénom
$sender_zip = "76000"; // code postal
$sender_adr1 = "12 rue de la république"; // max 32 char
$sender_adr2 = ""; // max 32 char
$sender_city = "Rouen"; // ville
$sender_country_code = "FR"; // code pays iso 2
$sender_email = "test@resto-in.fr"; 
$sender_phone = "0601010101";  // mobile , format 0600000000
// end sender

// start shipping
$shipping_company = "TEST API"; // raison sociale destinataire
$shipping_civilite = ""; // mr ou mme
$shipping_name = "Robot"; // Nom
$shipping_firstname = "Mister"; // prénom
$shipping_zip = "76000"; // code postal
$shipping_adr1 = "10 rue rouge"; // max 32 char
$shipping_adr2 = "Batiment bleu"; // max 32 char
$shipping_city = "Rouen"; // ville
$shipping_country_code = "FR"; // code pays iso 2
$shipping_email = "test@resto-in.fr"; // 
$shipping_phone = "0601010101";  // mobile , format 0600000000
// end shipping

$data_params = array(
        'type' => $type,
        'poids' => $poids,
        'relayidselected' => $relayidselected,
        'unique_ref' => $client_order_id,
        'total_invoice' => $total_invoice,
        'csv_ref_prefix' => $csv_ref_prefix,
        'length' => $length,
        'width' => $width,
        'height' => $height,
        'content_descr' => $content_descr,
        'content_value' => $content_value,
        'content_customscode' => $content_customscode,
        'print_mode' => $print_mode,
        'auto_archive' => $auto_store
);

// construction requete : 
$data_from = array(
       'sender_company' => $sender_company,
       'sender_civilite' => $sender_civilite,
       'sender_name' => $sender_name,
       'sender_firstname' => $sender_firstname,
       'sender_zip' => $sender_zip,
       'sender_adr1' => $sender_adr1,
       'sender_adr2' => $sender_adr2,
       'sender_city' => $sender_city,
       'sender_country_code' => $sender_country_code,
       'sender_email' => $sender_email,
       'sender_phone' => $sender_phone
);

$data_to = array(
       'shipping_company' => $shipping_company,
       'shipping_civilite' => $shipping_civilite,
       'shipping_name' => $shipping_name,
       'shipping_firstname' => $shipping_firstname,
       'shipping_zip' => $shipping_zip,
       'shipping_adr1' => $shipping_adr1,
       'shipping_adr2' => $shipping_adr2,
       'shipping_city' => $shipping_city,
       'shipping_country_code' => $shipping_country_code,
       'shipping_email' => $shipping_email, 
       'shipping_phone' => $shipping_phone
);

$data_request = array(
        'sid' => SID,
        'token' => TOKEN,
        'params'  => $data_params,
        'from'  => $data_from,
        'to'  => $data_to
);

$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, DS_SERVICE_URL);
curl_setopt($ch, CURLOPT_POST, 1);
curl_setopt($ch, CURLOPT_POSTFIELDS, http_build_query($data_request));
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt ($ch, CURLOPT_SSL_VERIFYHOST, false);
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false);
$result = curl_exec ($ch);
curl_close ($ch);

header ("Content-Type: text/xml; charset=utf-8");
//print $result;
echo $result;
?>