Documentation API

API ASAP Delivery

Bienvenue dans la documentation officielle. Automatisez vos expéditions, suivez vos colis et gérez vos livraisons depuis n'importe quelle plateforme.

Base URL : https://api.asapdelivery.ma

🔑 Authentification

La plupart des endpoints nécessitent deux paramètres d'identification, disponibles dans votre espace client sous Mon profil.

tkVotre Token personnel
skVotre Secret Key
⚠️ Ne partagez jamais votre Token ou votre Secret Key publiquement ou dans du code côté client.
GET

Suivi de colis

Récupérez l'historique complet des événements d'un colis à partir de son code de suivi.

https://api.asapdelivery.ma/track.php?tk=TOKEN&sk=SECRET_KEY&code=CODE_COLIS
ParamètreObligatoireDescription
tkOuiVotre Token
skOuiVotre Secret Key
codeOuiLe code de suivi du colis

Exemple de réponse :

[
  { "state": "Expédié",              "eventdate": 1610824063 },
  { "state": "Reçu par livreur",  "eventdate": 1610819137 },
  { "state": "Ramassé",   "eventdate": 1610817327 },
  { "state": "Livré",               "eventdate": 1610816442 }
]
Réponse d'erreurDescription
Parameters code is missingLe paramètre code est absent de la requête
Parameters code is emptyLe paramètre code ne doit pas être vide
Code doesn't existAucun colis ne correspond à ce code

GET

Ajout de colis

Créez un nouveau colis directement depuis votre plateforme sans passer par l'interface web.

https://api.asapdelivery.ma/addcolis.php?tk=TOKEN&sk=SECRET_KEY&fullname=NOM&phone=TEL&city=VILLE&address=ADRESSE&price=PRIX&product=PRODUITS&qty=QUANTITES&note=NOTE&code2=ID_INTERNE&change=0&openpackage=1
ParamètreObligatoireDescription
tkOuiVotre Token
skOuiVotre Secret Key
fullnameOuiNom complet du destinataire
phoneOuiNuméro de téléphone du destinataire
cityOuiVille du destinataire
addressOuiAdresse complète du destinataire
priceOuiMontant du contre-remboursement (MAD)
productOuiNom du ou des produits (séparés par une point-virgule (;))
qtyOuiQuantité(s) correspondante(s) (séparées par une point-virgule(;))
noteNonNote interne à destination d'ASAP Delivery
code2NonIdentifiant interne de votre commande
changeOuiÉchange : 0 = Non, 1 = Oui
openpackageOuiOuverture du colis autorisée : 0 = Non, 1 = Oui
RéponseDescription
Package added successfullyLe colis a été créé avec succès
Some parameters are missingUn ou plusieurs paramètres obligatoires sont absents
Some parameters are emptyLes champs obligatoires ne peuvent pas être vides
This account doesn't exist or it is disabledLe compte est introuvable ou désactivé

GET

Liste des colis

Récupérez la liste complète de vos colis associés à votre compte.

https://api.asapdelivery.ma/colislist.php?tk=TOKEN&sk=SECRET_KEY
ParamètreObligatoireDescription
tkOuiVotre Token
skOuiVotre Secret Key
RéponseDescription
List of packagesLa liste des colis est retournée avec succès
Some parameters are missingParamètres tk ou sk absents
Some parameters are emptyLes champs tk et sk ne peuvent pas être vides
This account doesn't exist or it is disabledLe compte est introuvable ou désactivé

GET

Liste des villes et tarifs

Récupérez la liste de toutes les villes desservies par ASAP Delivery avec leurs tarifs de livraison. Aucune authentification requise.

https://api.asapdelivery.ma/cities.php
RéponseDescription
List of cities and feesRetourne la liste complète des villes et tarifs au format JSON

GET

Modifier l'état d'un colis (LIVREUR UNIQUEMENT)

Permet à un livreur de mettre à jour l'état d'un colis depuis son application.

https://api.asapdelivery.ma/editstate.php?tk=TOKEN&sk=SECRET_KEY&code=CODE_COLIS&state=ETAT&datereported=JJ/MM/AAAA&note=NOTE
ParamètreObligatoireDescription
tkOuiVotre Token
skOuiVotre Secret Key
codeOuiLe code de suivi du colis à modifier
stateOuiLe nouvel état du colis
datereportedNonDate de l'événement au format JJ/MM/AAAA
noteNonNote complémentaire
RéponseDescription
Package updated successfullyL'état du colis a été mis à jour avec succès
Some parameters are missingUn ou plusieurs paramètres obligatoires sont absents
Some parameters are emptyLes champs obligatoires ne peuvent pas être vides
This package doesn't belong to this accountCe colis n'appartient pas à votre compte

WEBHOOK

Webhooks - Mises à Jour de Statut

AsapDelivery envoie automatiquement des webhooks à votre système chaque fois qu'un statut de commande change. Cela vous permet de maintenir vos systèmes de gestion des stocks et d'exécution synchronisés en temps réel.

Configuration du Point de Terminaison

Créez un fichier PHP à l'adresse :

https://votredomaine.com/updatestate.php

Format de la Requête

AsapDelivery appelle votre endpoint avec les paramètres suivants :

https://votredomaine.com/updatestate.php?code=PKG123456&state=Livr%C3%A9&datereported=&note=Livr%C3%A9+avec+succ%C3%A8s
ParamètreObligatoireDescription
codeOuiCode de suivi de la commande (ID_INTERN lors de l'importation)
stateOuiNouveau statut de la commande
datereportedNonDate du signalement au format Unix timestamp
noteNonNotes ou commentaires de l'agent

En-têtes HTTP

X-Webhook-Source: AsapDelivery
X-Webhook-Host: {serveur_source}

Statuts Possibles

StatutRequiert DateDescription
En attente de ramassageNonCommande initiée
InjoignableNonTéléphone destinataire éteint ou hors réseau
Pas de réponseNonDestinataire ne répond pas à nos appels
AnnuléNonCommande annulée par client/DLM
RefuséNonCommande rejetée à la tentative de livraison
Changement clientNonVotre colis va être livré à un autre destinataire
ReportéOuiClient a reporté la livraison pour une date ultérieure
LivréNonLivré avec succès au destinataire
Retour client reçuNonRetour bien reçu par client
ProgramméOuiLivraison programmée à une date ultérieure
À retourner vers agence principalNonÀ retourner vers agence principal Casa
Changement numéroNonNuméro de téléphone mis à jour
Retour stock client reçuNonRetour stock bien reçu par client
Double commandeNonCommande envoyée en double

Implémentation Basique

<?php

// Vérifier que le webhook provient d'AsapDelivery
if ($_SERVER['HTTP_X_WEBHOOK_SOURCE'] !== 'AsapDelivery') {
    http_response_code(401);
    die('Non autorisé');
}

// Récupérer les paramètres
$code = isset($_GET['code']) ? $_GET['code'] : null;
$state = isset($_GET['state']) ? $_GET['state'] : null;
$datereported = isset($_GET['datereported']) ? $_GET['datereported'] : null;
$note = isset($_GET['note']) ? $_GET['note'] : null;

// Valider les paramètres requis
if (empty($code) || empty($state)) {
    http_response_code(400);
    die('Paramètres manquants : code et state');
}

// Assainir les entrées
$code = htmlspecialchars($code, ENT_QUOTES, 'UTF-8');
$state = htmlspecialchars($state, ENT_QUOTES, 'UTF-8');
$note = htmlspecialchars($note, ENT_QUOTES, 'UTF-8');

// Mettre à jour votre base de données
updateOrderStatus($code, $state, $datereported, $note);

// Retourner une réponse de succès
http_response_code(200);
echo json_encode([
    'success' => true,
    'message' => 'Statut mis à jour avec succès',
    'code' => $code
]);
?>

Codes de Réponse HTTP

CodeSignificationAction
200SuccèsWebhook traité avec succès
400Mauvaise RequêteParamètres manquants/invalides
401Non AutoriséSource webhook invalide
500Erreur ServeurErreur de traitement

Bonnes Pratiques

  • Vérifier la source : Toujours vérifier l'en-tête X-Webhook-Source
  • Utiliser HTTPS : Configurez votre endpoint en HTTPS
  • Idempotence : Gérez les appels dupliqués en vérifiant si le statut est déjà à jour
  • Enregistrement : Loggez tous les webhooks pour le débogage

Test avec cURL

curl -X GET "http://localhost/updatestate.php?code=TEST001&state=Livr%C3%A9&datereported=&note=" \
  -H "X-Webhook-Source: AsapDelivery" \
  -H "X-Webhook-Host: localhost"

Support technique

Une question sur l'intégration ? Notre équipe est disponible pour vous accompagner.

📧 Emailwebmaster@asapdelivery.ma
📞 Téléphone(+212) ___________
📍 SiègeBernoussi, Casablanca