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.
🔑 Authentification
La plupart des endpoints nécessitent deux paramètres d'identification, disponibles dans votre espace client sous Mon profil.
| tk | Votre Token personnel |
| sk | Votre Secret Key |
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ètre | Obligatoire | Description |
|---|---|---|
tk | Oui | Votre Token |
sk | Oui | Votre Secret Key |
code | Oui | Le 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'erreur | Description |
|---|---|
Parameters code is missing | Le paramètre code est absent de la requête |
Parameters code is empty | Le paramètre code ne doit pas être vide |
Code doesn't exist | Aucun colis ne correspond à ce code |
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¬e=NOTE&code2=ID_INTERNE&change=0&openpackage=1
| Paramètre | Obligatoire | Description |
|---|---|---|
tk | Oui | Votre Token |
sk | Oui | Votre Secret Key |
fullname | Oui | Nom complet du destinataire |
phone | Oui | Numéro de téléphone du destinataire |
city | Oui | Ville du destinataire |
address | Oui | Adresse complète du destinataire |
price | Oui | Montant du contre-remboursement (MAD) |
product | Oui | Nom du ou des produits (séparés par une point-virgule (;)) |
qty | Oui | Quantité(s) correspondante(s) (séparées par une point-virgule(;)) |
note | Non | Note interne à destination d'ASAP Delivery |
code2 | Non | Identifiant interne de votre commande |
change | Oui | Échange : 0 = Non, 1 = Oui |
openpackage | Oui | Ouverture du colis autorisée : 0 = Non, 1 = Oui |
| Réponse | Description |
|---|---|
Package added successfully | Le colis a été créé avec succès |
Some parameters are missing | Un ou plusieurs paramètres obligatoires sont absents |
Some parameters are empty | Les champs obligatoires ne peuvent pas être vides |
This account doesn't exist or it is disabled | Le compte est introuvable ou désactivé |
Liste des colis
Récupérez la liste de vos colis associés à votre compte. L'API permet également de filtrer les colis par date et d'utiliser la pagination.
https://api.asapdelivery.ma/colislist.php?tk=TOKEN&sk=SECRET_KEY
Paramètres
| Paramètre | Obligatoire | Description |
|---|---|---|
tk |
Oui |
Votre Token personnel.
Il correspond au MD5 de l'adresse email du compte.
|
sk |
Oui |
Votre Secret Key.
Il correspond au MD5 du numéro de téléphone du compte.
|
start_date |
Non |
Date de début du filtre sur la date d'ajout du colis
(dateadd), au format AAAA-MM-JJ.
L'heure de début est automatiquement fixée à 00:00:00.
Si ce paramètre n'est pas renseigné, aucune limite de début n'est appliquée.
|
end_date |
Non |
Date de fin du filtre sur la date d'ajout du colis
(dateadd), au format AAAA-MM-JJ.
L'heure de fin est automatiquement fixée à 23:59:59.
La valeur now permet de filtrer jusqu'à l'heure actuelle.
|
page |
Non |
Numéro de page pour la pagination.
Commence à 1.
Si page et per_page sont tous les deux
renseignés, la pagination est activée.
|
per_page |
Non |
Nombre de colis à retourner par page.
Minimum : 1.
Maximum : 1000.
Ce paramètre est utilisé avec page.
|
dateadd).
Exemple simple
Retourne les colis du compte authentifié sans filtre de date ni pagination.
https://api.asapdelivery.ma/colislist.php?tk=TOKEN&sk=SECRET_KEY
Filtrer par date
Vous pouvez utiliser uniquement start_date,
uniquement end_date, ou les deux.
https://api.asapdelivery.ma/colislist.php?tk=TOKEN&sk=SECRET_KEY&start_date=2026-09-01&end_date=2026-09-25
Exemple avec uniquement une date de début :
https://api.asapdelivery.ma/colislist.php?tk=TOKEN&sk=SECRET_KEY&start_date=2026-09-01
Exemple avec uniquement une date de fin :
https://api.asapdelivery.ma/colislist.php?tk=TOKEN&sk=SECRET_KEY&end_date=2026-09-25
Exemple jusqu'à l'heure actuelle :
https://api.asapdelivery.ma/colislist.php?tk=TOKEN&sk=SECRET_KEY&start_date=2026-09-01&end_date=now
Pagination
Pour activer la pagination, utilisez page et
per_page ensemble.
https://api.asapdelivery.ma/colislist.php?tk=TOKEN&sk=SECRET_KEY&page=1&per_page=50
Exemple avec filtre de dates et pagination :
https://api.asapdelivery.ma/colislist.php?tk=TOKEN&sk=SECRET_KEY&start_date=2026-09-01&end_date=2026-09-25&page=1&per_page=100
page et per_page ne sont pas fournis,
l'API retourne tous les colis correspondant au filtre éventuel.
Lorsque les deux paramètres sont présents, la réponse reste actuellement
un tableau de colis ; l'endpoint ne retourne pas de métadonnées
total, total_pages, etc.
Format de la réponse
L'API retourne un tableau JSON contenant les colis.
[
{
"DateAdd": 25/09/2026 10:30,
"Code": "COL-000125",
"Code2": "REF-45821",
"Fullname": "Mohamed Alaoui",
"Phone": "0612345678",
"Address": "123 Rue Exemple",
"City": "Casablanca",
"Dlm": "0623456789",
"Price": 299,
"Qty": 1,
"Fees": 35,
"State": "Livré",
"DateUpdate": 25/09/2026 10:30
}
]
Champs retournés
| Champ | Description | Exemple |
|---|---|---|
DateAdd |
Correspondant à la date d'ajout du colis. | 25/09/2026 10:30 |
Code |
Code principal du colis. | COL-000125 |
Code2 |
Code secondaire ou référence associée au colis. | REF-45821 |
Fullname |
Nom complet du destinataire. | Mohamed Alaoui |
Phone |
Numéro de téléphone du destinataire. | 0612345678 |
Address |
Adresse de livraison du destinataire. | 123 Rue Exemple |
City |
Ville de livraison. | Casablanca |
Dlm |
Numéro de téléphone du livreur associé au colis.
Retourne null si aucun livreur actif n'est associé
au colis.
|
0623456789 |
Price |
Prix du colis. | 299 |
Qty |
Quantité associée au colis. | 1 |
Fees |
Frais associés au colis (cfees).
|
35 |
State |
Libellé de l'état actuel du colis. L'état est récupéré depuis la table des états de tracking. | Livré |
DateUpdate |
Correspondant à la dernière mise à jour du colis. | 25/09/2026 10:30 |
Ordre des résultats
Les colis sont retournés par ordre décroissant de leur identifiant, les colis les plus récemment créés apparaissant en premier.
Gestion des paramètres de date
| Paramètres | Comportement |
|---|---|
| Aucun | Tous les colis du compte sont retournés. |
start_date uniquement |
Colis ajoutés à partir de la date indiquée jusqu'à l'heure actuelle. |
end_date uniquement |
Colis ajoutés depuis le début de la période jusqu'à la date indiquée
à 23:59:59.
|
start_date + end_date |
Colis ajoutés entre les deux dates, bornes incluses. |
end_date=now |
Le filtre se termine à l'heure actuelle au moment de la requête. |
Réponses d'erreur
| Réponse | Description |
|---|---|
Some parameter are missing |
Les paramètres obligatoires tk ou sk
sont absents.
|
Some parameter are empty |
Les paramètres tk et sk ne peuvent pas
être vides.
|
This account doesn't exist or it is disabled |
Le compte correspondant aux identifiants fournis est introuvable ou désactivé. |
Restrictions d'accès
tk et sk.
Il n'est pas possible de spécifier directement l'identifiant d'un autre
client dans la requête.
Liste des factures
Récupérez la liste de vos factures client (FC) associées à votre compte. Cet endpoint est accessible uniquement aux comptes de type client.
FC.
Les autres types de factures ne sont pas accessibles via cette API.
https://api.asapdelivery.ma/factures.php?tk=TOKEN&sk=SECRET_KEY
Paramètres
| Paramètre | Obligatoire | Description |
|---|---|---|
tk |
Oui | Votre Token personnel |
sk |
Oui | Votre Secret Key |
start_date |
Non |
Date de début du filtre au format AAAA-MM-JJ.
Si non renseignée, aucune limite de début n'est appliquée.
|
end_date |
Non |
Date de fin du filtre au format AAAA-MM-JJ.
La journée complète est prise en compte.
La valeur now permet de filtrer jusqu'à l'heure actuelle.
|
page |
Non |
Numéro de page pour la pagination. Commence à 1.
|
per_page |
Non |
Nombre de factures par page.
Minimum : 1.
Maximum : 1000.
|
Exemple simple
https://api.asapdelivery.ma/factures.php?tk=TOKEN&sk=SECRET_KEY
Exemple avec filtre de dates
https://api.asapdelivery.ma/factures.php?tk=TOKEN&sk=SECRET_KEY&start_date=2026-09-01&end_date=2026-09-25
Exemple avec pagination
https://api.asapdelivery.ma/factures.php?tk=TOKEN&sk=SECRET_KEY&page=1&per_page=50
Format de la réponse
Sans pagination, l'API retourne directement un tableau contenant les factures.
[
{
"Type": "FC",
"Code": "FC-2026-000125",
"Price": 1500,
"Charges": 50,
"Note": "Paiement espèces",
"Versée": "Non",
"DateCreation": "25/09/2026 10:30",
"DateVersement": null
}
]
Champs retournés
| Champ | Description | Exemple |
|---|---|---|
Type |
Type de facture. Cet endpoint retourne uniquement FC. |
FC |
Code |
Code unique de la facture. | FC-2026-000125 |
Price |
Montant de la facture en MAD. | 1500 |
Charges |
Montant des charges associées à la facture. | 50 |
Note |
Note associée à la facture. | Paiement espèces |
Versée |
Indique si la facture a été versée.
Oui = versée, Non = non versée.
|
Oui |
DateCreation |
Date et heure de création de la facture au format JJ/MM/AAAA HH:mm. |
25/09/2026 10:30 |
DateVersement |
Date et heure du versement.
Retourne null si la facture n'a pas encore été versée.
|
25/09/2026 16:45 |
Réponse avec pagination
Lorsque page et per_page sont utilisés,
la réponse contient les données ainsi que les informations de pagination.
{
"data": [
{
"Type": "FC",
"Code": "FC-2026-000125",
"Price": 1500,
"Charges": 50,
"Note": "",
"Versée": "Oui",
"DateCreation": "25/09/2026 10:30",
"DateVersement": "25/09/2026 16:45"
}
],
"pagination": {
"page": 1,
"per_page": 50,
"total": 127,
"total_pages": 3
}
}
Restrictions d'accès
| Condition | Accès |
|---|---|
Compte actif de type client |
Autorisé |
| Compte désactivé | Refusé |
| Compte d'un autre type | Refusé |
Facture de type FC |
Retournée |
| Facture d'un autre type | Non retournée |
Facture supprimée (trash != 1) |
Non retournée |
Réponses d'erreur
| Réponse | Description |
|---|---|
Some parameter are missing |
Les paramètres tk ou sk sont absents. |
Some parameter are empty |
Les paramètres tk ou sk sont présents mais vides. |
This account doesn't exist, is disabled, or is not a client |
Le compte est introuvable, désactivé ou n'est pas un compte client. |
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éponse | Description |
|---|---|
List of cities and fees | Retourne la liste complète des villes et tarifs au format JSON |
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¬e=NOTE
| Paramètre | Obligatoire | Description |
|---|---|---|
tk | Oui | Votre Token |
sk | Oui | Votre Secret Key |
code | Oui | Le code de suivi du colis à modifier |
state | Oui | Le nouvel état du colis |
datereported | Non | Date de l'événement au format JJ/MM/AAAA |
note | Non | Note complémentaire |
| Réponse | Description |
|---|---|
Package updated successfully | L'état du colis a été mis à jour avec succès |
Some parameters are missing | Un ou plusieurs paramètres obligatoires sont absents |
Some parameters are empty | Les champs obligatoires ne peuvent pas être vides |
This package doesn't belong to this account | Ce colis n'appartient pas à votre compte |
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.phpFormat 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=¬e=Livr%C3%A9+avec+succ%C3%A8s
| Paramètre | Obligatoire | Description |
|---|---|---|
code | Oui | Code de suivi de la commande (ID_INTERN lors de l'importation) |
state | Oui | Nouveau statut de la commande |
datereported | Non | Date du signalement au format Unix timestamp |
note | Non | Notes ou commentaires de l'agent |
En-têtes HTTP
X-Webhook-Source: AsapDelivery X-Webhook-Host: {serveur_source}
Statuts Possibles
| Statut | Requiert Date | Description |
|---|---|---|
| En attente de ramassage | Non | Commande initiée |
| Injoignable | Non | Téléphone destinataire éteint ou hors réseau |
| Pas de réponse | Non | Destinataire ne répond pas à nos appels |
| Annulé | Non | Commande annulée par client/DLM |
| Refusé | Non | Commande rejetée à la tentative de livraison |
| Changement client | Non | Votre colis va être livré à un autre destinataire |
| Reporté | Oui | Client a reporté la livraison pour une date ultérieure |
| Livré | Non | Livré avec succès au destinataire |
| Retour client reçu | Non | Retour bien reçu par client |
| Programmé | Oui | Livraison programmée à une date ultérieure |
| À retourner vers agence principal | Non | À retourner vers agence principal Casa |
| Changement numéro | Non | Numéro de téléphone mis à jour |
| Retour stock client reçu | Non | Retour stock bien reçu par client |
| Double commande | Non | Commande 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
| Code | Signification | Action |
|---|---|---|
200 | Succès | Webhook traité avec succès |
400 | Mauvaise Requête | Paramètres manquants/invalides |
401 | Non Autorisé | Source webhook invalide |
500 | Erreur Serveur | Erreur 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
Support technique
Une question sur l'intégration ? Notre équipe est disponible pour vous accompagner.
| webmaster@asapdelivery.ma | |
| 📞 Téléphone | (+212) ___________ |
| 📍 Siège | Bernoussi, Casablanca |