Zalako Digital

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é API

Authentification

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/v1

Démarrage rapide

curl "https://zalakodigital.com/api/v1/products" \
  -H "Authorization: Bearer zdk_live_VOTRE_CLE"

Endpoints

MéthodeCheminDescription
GET/productsListe vos produits
GET/products/:idDétails d'un produit
POST/productsCréer un produit
GET/ordersListe vos commandes
GET/orders/:idDétails d'une commande
GET/customersListe vos clients
GET/statsRevenus, ventes, conversion
POST/webhooksCréer un webhook
DELETE/webhooks/:idSupprimer un webhook
GET/products

Liste 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 }
GET/products/:id

Détails d'un produit qui vous appartient.

curl "https://zalakodigital.com/api/v1/products/PRODUCT_ID" \
  -H "Authorization: Bearer zdk_live_VOTRE_CLE"
POST/products

Cré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"}'
GET/orders

Liste 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"
GET/orders/:id

Détails d'une commande vous appartenant.

GET/customers

Vos clients, agrégés à partir de vos commandes complétées (nombre de commandes, total dépensé, dates). Paramètres : page, limit.

GET/stats

Vos 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.

POST/webhooks
curl -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"]}'
DELETE/webhooks/:id

Chaque é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

CodeSignification
200Succès
201Ressource créée
204Succès, sans contenu (suppression)
400Requête invalide (paramètres manquants ou incorrects)
401Clé API manquante, invalide, révoquée ou expirée
403Clé API valide mais sans la permission requise
404Ressource introuvable
429Limite de requêtes dépassée
500Erreur 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.