API
Cette API permet à des systèmes externes (votre site, app ou ERP) de créer automatiquement des commandes dans votre comp…
# API KambaChat — pour développeurs
Cette API permet à des systèmes externes (votre site, app ou ERP) de créer automatiquement des commandes dans votre compte KambaChat. Les commandes arrivent dans le tableau de bord et suivent le flux normal : confirmer et conclure.
> Disponibilité (GEO) — Les vitrines sont exclusives à l'Angola. Cette API crée des commandes dans votre vitrine numérique, elle s'applique donc aux vendeurs en Angola. Utilisateurs internationaux : KambaChat se concentre sur l'automatisation IA de WhatsApp, Facebook et Instagram — la vitrine et l'API de commandes ne sont pas disponibles hors d'Angola.
1. Authentification
L'authentification se fait par une clé secrète dans l'en-tête de chaque requête.
1. Créez une clé dans Tableau de bord → Réglages → Clés API : donnez un nom et (option) une expiration, puis cliquez sur Créer la clé.
2. La clé (af_...) n'est affichée qu'une seule fois. Elle est stockée hachée (SHA-256) — jamais récupérable. Gardez-la secrète.
3. Envoyez-la à chaque requête dans l'en-tête : Authorization: Bearer af_...
Sécurité
- La clé n'est jamais stockée en clair — seulement son hachage.
- Vous pouvez définir une expiration (30/90/365 jours) et supprimer une clé à tout moment (révocation immédiate).
- Limites de débit : 60/min par IP et 120/min par clé.
- N'exposez jamais la clé côté frontend/navigateur — utilisez-la côté serveur uniquement.
2. Créer une commande
POST /api/webhooks/orders
Crée une commande dans votre compte (statut En attente) et vous envoie une notification.
| Champ | Type | Requis | Description |
|---|---|---|---|
| customerName | string | ✅ | Nom du client |
| customerPhone | string | ✅ | Téléphone du client |
| customerEmail | string | — | E-mail du client |
| address | string | — | Adresse du client (optionnelle) |
| notes | string | — | Notes de commande |
| channel | string | — | Canal d'origine (ex. WHATSAPP, défaut WHATSAPP) |
| items | array | — | Articles : liste de { productId, quantity } (le total est calculé) |
| total | number | — | Total (utilisé seulement sans items) |
Exemple
```bash
curl -X POST https://kambachat.com/api/webhooks/orders \
-H "Authorization: Bearer af_xxxxxxxx..." \
-H "Content-Type: application/json" \
-d '{
"customerName": "Ana Silva",
"customerPhone": "+244923000000",
"customerEmail": "ana@exemplo.com",
"address": "Kilamba, Luanda",
"channel": "WHATSAPP",
"notes": "Cliente VIP — contactar por WhatsApp",
"items": [
{ "productId": "PRODUCT_ID_1", "quantity": 2 },
{ "productId": "PRODUCT_ID_2", "quantity": 1 }
]
}'
```
Réponse (201)
```json
{ "success": true, "orderNumber": "WA12345678", "orderId": "ckx...", "total": 7500 }
```
Les productId doivent appartenir à votre compte. Avec items, le total est recalculé selon les prix réels des produits.
3. Obtenir le catalogue public
GET /api/webhooks/orders?store=SLUG
Renvoie les données publiques de la vitrine (nom, produits actifs, config IA) par le *slug*. Aucune clé requise (public).
```bash
curl "https://kambachat.com/api/webhooks/orders?store=a-minha-loja"
```
4. Codes de statut
| Code | Signification |
|---|---|
| 401 | Clé manquante, invalide ou expirée |
| 404 | Vitrine introuvable (aucune → voir règle GEO) |
| 429 | Trop de requêtes (limite) |
| 201 | Commande créée avec succès |