API publique Zalako Digital
Une API REST pour intégrer votre catalogue, vos commandes et vos statistiques de vente à vos propres outils, et des webhooks pour être notifié en temps réel de vos ventes.
Créer une clé APIAuthentification
Toutes les requêtes doivent inclure votre clé API dans l'en-tête Authorization, au format Bearer. Créez et gérez vos clés depuis API & Webhooks. Chaque clé a une permission read (lecture seule) ou read + write(lecture/écriture) — les endpoints de création/suppression exigent la permission d'écriture.
Authorization: Bearer zdk_live_...URL de base
https://zalakodigital.com/api/v1Démarrage rapide
curl "https://zalakodigital.com/api/v1/products" \
-H "Authorization: Bearer zdk_live_VOTRE_CLE"Endpoints
| Méthode | Chemin | Description |
|---|---|---|
| GET | /products | Liste vos produits |
| GET | /products/:id | Détails d'un produit |
| POST | /products | Créer un produit |
| GET | /orders | Liste vos commandes |
| GET | /orders/:id | Détails d'une commande |
| GET | /customers | Liste vos clients |
| GET | /stats | Revenus, ventes, conversion |
| POST | /webhooks | Créer un webhook |
| DELETE | /webhooks/:id | Supprimer un webhook |
/productsListe vos produits, triés du plus récent au plus ancien. Paramètres : page, limit (max 100), status, category (slug).
curl "https://zalakodigital.com/api/v1/products?page=1&limit=20&status=active" \
-H "Authorization: Bearer zdk_live_VOTRE_CLE"{ "data": [ { "id": "...", "title": "...", "price": 19.99, "status": "active", ... } ], "page": 1, "limit": 20, "total": 42 }/products/:idDétails d'un produit qui vous appartient.
curl "https://zalakodigital.com/api/v1/products/PRODUCT_ID" \
-H "Authorization: Bearer zdk_live_VOTRE_CLE"/productsCrée un produit. Nécessite une clé avec la permission d'écriture. file_urldoit pointer vers votre fichier déjà hébergé (le téléversement direct via l'API n'est pas pris en charge — utilisez le formulaire pour téléverser un fichier depuis votre poste).
curl -X POST "https://zalakodigital.com/api/v1/products" \
-H "Authorization: Bearer zdk_live_VOTRE_CLE" \
-H "Content-Type: application/json" \
-d '{"title":"Mon eBook","price":9.99,"category":"ebooks","file_url":"https://.../ebook.pdf"}'/ordersListe vos commandes. Paramètres : page, limit, status (pending, completed, failed, refunded), from, to (dates ISO 8601).
curl "https://zalakodigital.com/api/v1/orders?status=completed&from=2026-01-01" \
-H "Authorization: Bearer zdk_live_VOTRE_CLE"/orders/:idDétails d'une commande vous appartenant.
/customersVos clients, agrégés à partir de vos commandes complétées (nombre de commandes, total dépensé, dates). Paramètres : page, limit.
/statsVos statistiques : revenus totaux, ventes, vues, téléchargements et taux de conversion (ventes / vues).
{ "data": { "total_revenue": 1280.5, "total_sales": 64, "total_views": 3200, "total_downloads": 58, "conversion_rate_percent": 2.0 } }Webhooks
Recevez une notification HTTP en temps réel sur vos propres événements : nouvelle vente, nouveau client, remboursement. Créez un webhook via POST /webhooks ou depuis API & Webhooks.
/webhookscurl -X POST "https://zalakodigital.com/api/v1/webhooks" \
-H "Authorization: Bearer zdk_live_VOTRE_CLE" \
-H "Content-Type: application/json" \
-d '{"url":"https://votre-site.com/webhooks/zalako","events":["order.completed"]}'/webhooks/:idChaque événement envoie ce payload à votre URL :
{
"event": "order.completed",
"data": { "order_id": "...", "amount": 19.99, "currency": "EUR", ... },
"timestamp": "2026-07-21T10:00:00.000Z",
"signature": "hmac-sha256(secret, JSON.stringify({event, data, timestamp}))"
}Vérifiez la signature avec le secret affiché sur votre webhook (préfixe whsec_) :
const crypto = require("crypto");
function isValid(secret, event, data, timestamp, signature) {
const expected = crypto
.createHmac("sha256", secret)
.update(JSON.stringify({ event, data, timestamp }))
.digest("hex");
return expected === signature;
}Codes de réponse
| Code | Signification |
|---|---|
| 200 | Succès |
| 201 | Ressource créée |
| 204 | Succès, sans contenu (suppression) |
| 400 | Requête invalide (paramètres manquants ou incorrects) |
| 401 | Clé API manquante, invalide, révoquée ou expirée |
| 403 | Clé API valide mais sans la permission requise |
| 404 | Ressource introuvable |
| 429 | Limite de requêtes dépassée |
| 500 | Erreur serveur |
Limite de requêtes
100 requêtes par minute et par clé API, fenêtre glissante. Chaque réponse inclut les en-têtes X-RateLimit-Limit et X-RateLimit-Remaining. Au-delà, l'API répond 429.