Accueil
TAMBA APIv1.0

Pas développeur ? Consultez notre guide simple — WooCommerce, Shopify, widget, tout expliqué sans jargon.

Guide d'intégration

Obtenez votre clé API gratuitement

Inscrivez-vous en 1 minute pour tester et intégrer l'API TAMBA sur votre site.

v1.0 — Stable

API Reference

Documentation complète de l'API TAMBA. Intégrez notre service de livraison express dans votre application en quelques minutes.

Base URL: https://api.tamba.app/v1

Introduction

L'API TAMBA est une API REST qui vous permet d'intégrer notre service de livraison express dans votre application e-commerce, ERP ou logiciel de gestion. Toutes les réponses sont au format JSON.

REST & JSON

Endpoints simples, réponses JSON prévisibles, compatible avec tous les langages

Sécurisé

Authentification par clé API, HTTPS obligatoire, vérification de signature webhook

Temps réel

Webhooks pour mises à jour instantanées du statut de livraison

Flux d'intégration typique

1

Afficher les options

Appelez GET /estimate au checkout pour afficher les prix moto et voiture

2

Créer la livraison

Une fois la commande validée, appelez POST /deliveries pour créer l'expédition

3

Transmettre le code

Communiquez le tracking_code à votre client par email ou SMS

4

Suivre en temps réel

Utilisez GET /deliveries/{tracking_code} ou les webhooks pour les mises à jour

JavaScript — Exemple complet
// 1. Estimer le prix
      const estimate = await fetch(
      'https://api.tamba.app/v1/estimate?pickup_address=Bamako+ACI&delivery_address=Badalabougou&package_size=small',
      { headers: { 'Authorization': 'Bearer tmb_live_xxx' } }
      ).then(r => r.json());

      console.log(estimate.options); // [{ vehicle_type: 'moto', price: 2500 }, ...]

      // 2. Créer la livraison
      const delivery = await fetch('https://api.tamba.app/v1/deliveries', {
      method: 'POST',
      headers: { 
      'Authorization': 'Bearer tmb_live_xxx',
      'Content-Type': 'application/json'
      },
      body: JSON.stringify({
      sender_name: 'Ma Boutique', sender_phone: '+223 20 00 00 00',
      receiver_name: 'Fatoumata', receiver_phone: '+223 76 12 34 56',
      pickup_address: 'Bamako, ACI 2000', delivery_address: 'Badalabougou',
      package_size: 'small', vehicle_type: 'moto'
      })
      }).then(r => r.json());

      console.log(delivery.delivery.tracking_code); // "TLY-A3K9M2X7"
API KEY

Authentification

L'API TAMBA utilise des clés API pour authentifier les requêtes. Incluez votre clé dans le header Authorization de chaque requête. Ne partagez jamais votre clé API et ne la committez pas dans votre code source.

cURL
curl "https://api.tamba.app/v1/..." \
  -H "Authorization: Bearer tmb_live_xxxxxxxxxxx"
JavaScript
const response = await fetch(
  'https://api.tamba.app/v1/...',
  {
    headers: {
      'Authorization': 'Bearer tmb_live_xxx',
      'Content-Type': 'application/json'
    }
  }
);

Production

tmb_live_

Vraies livraisons, facturation réelle

Test / Sandbox

tmb_test_

Simulation sans coût ni livreur réel

Rate Limit

100 req/min

Contactez-nous pour augmenter la limite

GET/estimate

Calculer un prix de livraison

Obtenez une estimation du coût et de la durée de livraison avant de créer une expédition.

Paramètres de requête (Query)
pickup_address
stringobligatoire

Adresse de ramassage complète

delivery_address
stringobligatoire

Adresse de livraison complète

package_size
enumobligatoire

small | medium | large | extra_large

vehicle_type
enumoptionnel

moto | car

Requête

cURL
curl -X GET "https://api.tamba.app/v1/estimate?pickup_address=Bamako,ACI+2000&delivery_address=Bamako,Badalabougou&package_size=small" \
  -H "Authorization: Bearer YOUR_API_KEY"

Réponse

JSON
{
  "success": true,
  "options": [
    { "vehicle_type": "moto", "price": 2500, "currency": "XOF", "estimated_duration": "30-45 min" },
    { "vehicle_type": "car", "price": 5000, "currency": "XOF", "estimated_duration": "45-60 min" }
  ],
  "distance_km": 8.4
}
POST/deliveries

Créer une expédition

Crée une nouvelle demande de livraison. Retourne un code de suivi unique.

Corps de la requête (Body)
sender_name
stringobligatoire

Nom de l'expéditeur

sender_phone
stringobligatoire

Téléphone de l'expéditeur

receiver_name
stringobligatoire

Nom du destinataire

receiver_phone
stringobligatoire

Téléphone du destinataire

pickup_address
stringobligatoire

Adresse de ramassage

delivery_address
stringobligatoire

Adresse de livraison

package_size
enumobligatoire

small | medium | large | extra_large

vehicle_type
enumobligatoire

moto | car

priority
enumoptionnel

standard | express | urgent

payment_method
enumoptionnel

cash | mobile_money | card

Requête

cURL
curl -X POST "https://api.tamba.app/v1/deliveries" \
  -H "Authorization: Bearer YOUR_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{"sender_name":"Ma Boutique","sender_phone":"+223 20 00 00 00","receiver_name":"Fatoumata Diallo","receiver_phone":"+223 76 12 34 56","pickup_address":"Bamako, ACI 2000","delivery_address":"Bamako, Badalabougou Est","package_size":"small","vehicle_type":"moto"}'

Réponse

JSON
{
  "success": true,
  "delivery": {
    "tracking_code": "TBA-A3K9M2X7",
    "status": "pending",
    "price": 3000,
    "currency": "XOF",
    "estimated_duration": "30-45 min"
  }
}
GET/deliveries/{tracking_code}

Suivre une expédition

Récupère l'état actuel d'une livraison ainsi que les informations du livreur assigné.

Corps de la requête (Body)
tracking_code
stringobligatoire

Code de suivi unique — dans l'URL

Requête

cURL
curl -X GET "https://api.tamba.app/v1/deliveries/TBA-A3K9M2X7" \
  -H "Authorization: Bearer YOUR_API_KEY"

Réponse

JSON
{
  "success": true,
  "delivery": {
    "tracking_code": "TBA-A3K9M2X7",
    "status": "in_transit",
    "driver": { "name": "Bakary Konaté", "phone": "+223 76 11 22 33", "rating": 4.8 }
  }
}
GET/deliveries

Lister les expéditions

Récupère la liste paginée de vos expéditions.

Paramètres de requête (Query)
status
enumoptionnel

pending | assigned | in_transit | delivered | cancelled

limit
integeroptionnel

Nombre de résultats (défaut: 20, max: 100)

page
integeroptionnel

Numéro de page

Requête

cURL
curl -X GET "https://api.tamba.app/v1/deliveries?status=delivered&limit=10" \
  -H "Authorization: Bearer YOUR_API_KEY"

Réponse

JSON
{
  "success": true,
  "data": [{ "tracking_code": "TBA-A3K9M2X7", "status": "delivered", "price": 3000 }],
  "pagination": { "total": 142, "page": 1, "limit": 10 }
}
DELETE/deliveries/{tracking_code}

Annuler une expédition

Annule une expédition en attente ou assignée.

Corps de la requête (Body)
tracking_code
stringobligatoire

Code de suivi — dans l'URL

reason
stringoptionnel

Motif d'annulation

Requête

cURL
curl -X DELETE "https://api.tamba.app/v1/deliveries/TBA-A3K9M2X7" \
  -H "Authorization: Bearer YOUR_API_KEY"

Réponse

JSON
{
  "success": true,
  "message": "Expédition TBA-A3K9M2X7 annulée avec succès."
}