📩 Documentation API — Gestion des Colis : Ayam Delivery


📚 Table des matiùres

  1. Authentification
  2. Liste des gouvernorats
  3. Création d'un colis
  4. Modification d'un colis
  5. Historique d'un colis
  6. Exemples d'utilisation
  7. Codes d'erreur
  8. RÚgles métier

1ïžâƒŁ Authentification

L'API utilise Bearer Token pour tous les endpoints sauf la liste des gouvernorats.

Workflow d'authentification :

  1. Obtenir un token via POST /api/login
  2. Utiliser le token dans le header :
    Authorization: Bearer {token}
  3. Le token est valable 24 heures

🔑 Endpoint d’authentification

URL : POST /api/login

Body :

{ "email": "votre@email.com", "password": "votre_mot_de_passe" }

Réponse succÚs :

{ "user_id": 777, "token": "678|IcH4mmRg9HLTSOdA3caFuEtK6YQenxbTHBV2Q5Wqc2bbb524" }

2ïžâƒŁ Liste des gouvernorats

⚠ PUBLIC — Aucun token requis

URL : GET /api/gouvernorat

Réponse:

{ "status": "success", "data": [ { "id": 1, "name": "Tunis", "bigboss_name": "TUNIS" } ] }

3ïžâƒŁ CrĂ©ation d’un colis

🔒 PROTÉGÉ — Token requis

URL : POST /api/colis/v1/ajouter

Headers :

Authorization: Bearer {token} Content-Type: application/json

Body obligatoire

Ce sont les champs requis pour la crĂ©ation standard d’un colis :

{ "nom_complet": "Nom du destinataire", "adresse": "Adresse de livraison", "tel1": "12345678", "nombre_pieces": 1, "service": "Livraison", "id_gov": 1 }

Champs optionnels (non obligatoires)

Champ Type Description
designation string Désignation du colis
tel2 string (8 chiffres) Numéro de téléphone secondaire
bulk boolean Indique si le colis fait partie d’un envoi groupĂ©
fragile boolean Indique si le colis est fragile
remarque string Commentaire ou note libre sur le colis

Body pour échange

Dans le cas d’un Ă©change, le champ service doit ĂȘtre dĂ©fini Ă  "Échange" et il faut ajouter le code de l’ancien colis (old_code).

Les autres champs obligatoires du colis (comme nom_complet, adresse, tel1, id_gov, etc.) doivent Ă©galement ĂȘtre prĂ©sents dans la requĂȘte.

⚠ Les champs reason et apply_delivery sont facultatifs dans le cas d’un Ă©change.

{ "service": "Échange", "old_code": "CODE_ANCIEN_COLIS", "nom_complet": "Nom du destinataire", "adresse": "Adresse de livraison", "tel1": "12345678", "nombre_pieces": 1, "id_gov": 1 }

Réponse succÚs :

{ "status": "success", "message": "Colis créé avec succÚs.", "code": "010000010001", "etat_colis": "Créé" }

4ïžâƒŁ Modification d’un colis

🔒 PROTÉGÉ — Token requis

URL : PUT /api/colis/v1/{code}/modifier

Headers :

Authorization: Bearer {token} Content-Type: application/json

Body :

{ "cod": 75.00, "adresse": "Nouvelle adresse", "tel1": "11111111", "remarque": "Nouvelle remarque" }

Réponse :

{ "status": "success", "message": "Colis mis Ă  jour avec succĂšs." }

5ïžâƒŁ Historique d’un colis

🔒 PROTÉGÉ — Token requis

URL : GET /api/colis/v1/{code}/status

Headers :

Authorization: Bearer {token}

Réponse :

{ "status": "success", "colis_code": "010000010001", "etats": [ { "etat": "Créé", "created_at": "2024-01-15 10:30:00" } ], "anomalies": [ { "nom": "Adresse incorrecte", "commentaire": "Le destinataire a déménagé", "created_at": "2024-01-16 14:20:00" } ] }

đŸ—‚ïž 5.1 Liste des Anomalies possibles

Nom de l’anomalie Code
Téléphone fermé TF
Pas de réponse PR
Colis reporté RP
Colis refusé ANN
Adresse incorrecte AI
Numéro incorrect NI
Client non sérieux CLS

🚩 5.2 Liste des États possibles d’un colis

# Nom de l’état Description
1 Créé Colis enregistré dans le systÚme
2 En attente d’enlùvement En attente du livreur pour le pickup
3 PrĂȘt Ă  enlever Colis prĂȘt Ă  ĂȘtre rĂ©cupĂ©rĂ©
4 Enlevé Colis pris par le livreur
5 Anomalie d’enlùvement Problùme lors du pickup
6 Anomalie de retour ProblĂšme lors du retour
7 En stock Colis dans l’agence
8 En cours de livraison En transit vers le destinataire
9 Livré Colis remis au client
10 Livré Payé Colis livré et payé
11 Planification retour En attente de retour planifié
12 RetournĂ© Colis retournĂ© Ă  l’expĂ©diteur
13 En cours de transfert Colis en transit inter-agence
14 Anomalie de transfert Incident lors du transfert
15 À VĂ©rifier Statut en attente de validation
16 En attente d’échange PrĂ©paration d’un Ă©change
17 Anomalie d’échange ProblĂšme lors d’un Ă©change
18 Stock Ă©change Colis d’échange en stock
19 Échange acceptĂ© Échange validĂ© avec succĂšs

6ïžâƒŁ Exemples d’utilisation

🔐 Obtenir un token

curl -X POST https://youssel.online/api/login \ -H "Content-Type: application/json" \ -d '{"email": "test@example.com", "password": "password"}'

📩 CrĂ©er un colis

curl -X POST https://youssel.online/api/colis/v1/ajouter \ -H "Authorization: Bearer VOTRE_TOKEN" \ -H "Content-Type: application/json" \ -d '{ "nom_complet": "Mohamed Ali", "adresse": "12 Rue de la République", "tel1": "12345678", "nombre_pieces": 2, "service": "Livraison", "id_gov": 1 }'

🌍 Liste des gouvernorats (sans token)

curl -X GET https://youssel.online/api/gouvernorat

7ïžâƒŁ Codes d’erreur

Code Description
200 SuccĂšs
201 Créé avec succÚs
401 Token invalide ou manquant
403 Non autorisé
404 Ressource non trouvée
422 Erreur de validation
500 Erreur serveur

8ïžâƒŁ RĂšgles mĂ©tier