Une plateforme, pas une boîte noire
Clés API scopées, webhooks signés HMAC, idempotence. Branchez ShipAndCheap à n'importe quel site, ERP ou outil maison. Vos commandes entrent, votre tracking ressort — en temps réel.
POST /v1/orders
Authorization: Bearer sk_live_••••••••••
{
"orderNumber": "CMD-2026-1551",
"source": "mon-site.com",
"customer": {
"name": "Jean Dupont",
"email": "jean@exemple.fr",
"address": { "city": "Lyon", "postalCode": "69001", "country": "FR" }
},
"items": [{ "sku": "REF-123", "quantity": 1, "price": 49.9 }]
}
→ 201 Created · { "orderId": "...", "status": "pending" }Clés API scopées
Format sk_live_…, scopes par ressource (orders, shipments…), IP allowlist et rate limit. Le secret n'est affiché qu'une seule fois.
Webhooks signés
Signature HMAC (style Stripe : t=…,v1=…) + anti-rejeu. Vérifiez chaque événement, en toute confiance.
Idempotence
Pas de doublon, livraison fiable, rejeu possible. Vos intégrations restent cohérentes même en cas de retry.
Poussez votre stock en trois requêtes
Le cas le plus fréquent : votre catalogue vit dans votre propre système et doit alimenter le stock central ShipAndCheap. Créez une clé avec les portées products:read et products:write, puis :
1 · Importer / mettre à jour (idempotent par SKU)
curl -X POST https://api.shipandcheap.com/products/import \
-H "Authorization: Bearer sk_live_..." \
-H "Content-Type: application/json" \
-d '{
"products": [
{ "sku": "REF-001", "name": "Casque modulable",
"price": "89,90", "costPrice": "41,20",
"stock": "14", "ean": "4006381333931",
"brand": "Nova", "supplierName": "Motea" }
]
}'
→ { "imported": 1, "skipped": 0, "errors": [] }Lots de 200 max par appel. Renvoyer le même SKU met à jour la fiche — jamais de doublon. Un envoi partiel (SKU + stock) ne touche que le stock. La virgule décimale française est acceptée.
2 · Lire le catalogue
curl https://api.shipandcheap.com/products?limit=100 \
-H "Authorization: Bearer sk_live_..."
→ { "products": [...], "nextKey": "..." }3 · Mettre à jour un produit précis
curl -X PUT https://api.shipandcheap.com/products/REF-001 \
-H "Authorization: Bearer sk_live_..." \
-H "Content-Type: application/json" \
-d '{ "stock": 9 }'Une clé n'a que les droits que vous lui donnez
Chaque ressource a une portée lecture et une portée écriture. La règle est mécanique : GET exige ressource:read, les écritures exigent ressource:write. Une clé limitée au stock ne peut jamais lire vos commandes — vérifié requête par requête, même en cache.
Secret affiché une seule fois
La clé complète n'apparaît qu'à la création. Ensuite, seul un aperçu (sk_live_••••1234) est visible — le secret est haché, personne ne peut le relire, pas même nous.
Révocation en moins de 10 s
Révoquez une clé depuis l'application : elle cesse de fonctionner en 10 secondes maximum, partout. Utile si une clé fuite dans un dépôt ou un log.
Allowlist IP & expiration
Optionnel : restreignez une clé à vos adresses IP serveur (CIDR) et donnez-lui une date d'expiration. Une clé de test qui traîne ne devient pas une porte d'entrée.
Endpoints principaux
Base : https://api.shipandcheap.com · Auth : Authorization: Bearer sk_live_…
| Endpoint | Portée | Rôle |
|---|---|---|
GET /products | products:read | Lister le catalogue (paginé par nextKey) |
POST /products/import | products:write | Importer / mettre à jour en masse (200 max/appel, idempotent par SKU) |
PUT /products/{sku} | products:write | Mettre à jour un produit (champs partiels acceptés) |
GET /orders | orders:read | Lister les commandes du compte |
POST /orders | orders:write | Créer une commande (votre site → SACP, expédition prise en charge) |
GET /shipments | shipments:read | Suivre les expéditions et leur tracking |
GET /returns | returns:read | Lister les retours (RMA) |
Codes d'erreur : 401 clé absente ou invalide · 403 portée insuffisante ou clé révoquée · 400 corps invalide (le message précise le champ) · 429 limite de débit atteinte.
Votre site, notifié en temps réel
Abonnez vos endpoints aux événements de la chaîne. À chaque étape — commande, expédition, retour — votre système reçoit un webhook signé.
- Couplage faible : votre site reste maître, ShipAndCheap pousse les mises à jour.
- Reprise sur erreur : retries avec backoff, journal de livraison, rejeu manuel.
Branchez votre stack en quelques minutes
Créez une clé, abonnez vos webhooks, envoyez votre première commande.