Référence des adresses
Base : https://api.codfamilia.com · Authentification :
Authorization: Bearer cfk_… (ou X-Api-Key).
GET
/v1/products
Catalogue commandable
Les produits que CE vendeur peut vendre : catalogue public plus ses produits privés. Le prix renvoyé est le prix CODFamilia (ce que le vendeur paie), jamais le prix usine.
Exemple de réponse (200)
{
"data": [
{
"id": 3,
"sku": "CF-TEETH-03",
"name": "Stylo blanchiment dentaire",
"codfamilia_price": "188.00",
"in_stock": true,
"private": false,
"variants": []
}
]
}
En ligne de commande
curl -s https://api.codfamilia.com/v1/products \
-H "Authorization: Bearer cfk_votre_cle"
GET
/v1/cities
Villes livrées et frais de livraison
À lire avant d'envoyer un lead : une ville inconnue n'est pas refusée, mais le lead part en « lead endommagé » et attend une correction.
Exemple de réponse (200)
{
"data": [
{
"id": 1,
"name": "Casablanca",
"delivery_fee": "29.50"
}
]
}
En ligne de commande
curl -s https://api.codfamilia.com/v1/cities \
-H "Authorization: Bearer cfk_votre_cle"
POST
/v1/leads
Créer un lead
Le corps est en JSON. Un lead douteux (SKU inconnu, ville non reconnue, total incohérent, doublon récent) n'est jamais perdu : il est enregistré comme « lead endommagé » et la réponse est 202 avec la liste des anomalies. Un lead accepté répond 201.
Corps de la requête (JSON)
customer_name | Nom du client (obligatoire) |
|---|---|
customer_phone | Téléphone marocain, 06…/07… (obligatoire) |
city | Nom de la ville, ou city_id |
address | Adresse de livraison |
total_client | Montant à encaisser à la livraison, en MAD |
items | Tableau [{sku ou product_id, quantity}] (obligatoire) |
external_ref | Votre référence, reprise telle quelle dans nos écrans |
Exemple de requête (201 / 202)
{
"customer_name": "Yassine A.",
"customer_phone": "0612345678",
"city": "Casablanca",
"address": "12 rue des Orangers",
"total_client": "299.00",
"items": [
{
"sku": "CF-TEETH-03",
"quantity": 1
}
],
"external_ref": "CMD-1042"
}
En ligne de commande
curl -s -X POST https://api.codfamilia.com/v1/leads \
-H "Authorization: Bearer cfk_votre_cle" \
-H "Content-Type: application/json" \
-d '{"customer_name":"Yassine A.","customer_phone":"0612345678","city":"Casablanca","address":"12 rue des Orangers","total_client":"299.00","items":[{"sku":"CF-TEETH-03","quantity":1}],"external_ref":"CMD-1042"}'
GET
/v1/leads
Lister vos leads
Du plus récent au plus ancien. La pagination se fait par curseur : reprenez `next_before` dans le paramètre `before` pour la page suivante. Un numéro de page se décalerait à chaque nouveau lead, et l'intégration sauterait des commandes sans le voir.
Paramètres
limit | Nombre de leads, 1 à 100 (défaut 50) |
|---|---|
before | Identifiant renvoyé par next_before |
status | Filtre sur le statut de confirmation (new, confirmed, canceled…) |
since | Date minimale de création (AAAA-MM-JJ) |
Exemple de réponse (200)
{
"data": [
{
"id": 412,
"ref": "TAH-00042",
"confirmation_status": "confirmed",
"shipping_status": "shipped",
"total_client": "299.00"
}
],
"next_before": 412
}
En ligne de commande
curl -s https://api.codfamilia.com/v1/leads \
-H "Authorization: Bearer cfk_votre_cle"
GET
/v1/leads/{ref}
Suivre un lead
Par sa référence CODFamilia (TAH-00042). La référence d'un autre vendeur répond 404 : aucune différence entre « pas à vous » et « n'existe pas ».
Paramètres
ref | Référence du lead |
|---|
Exemple de réponse (200 / 404)
{
"data": {
"ref": "TAH-00042",
"confirmation_status": "confirmed",
"shipping_status": "delivered",
"tracking_number": "OZ123456",
"seller_profit": "90.00"
}
}
En ligne de commande
curl -s https://api.codfamilia.com/v1/leads/{ref} \
-H "Authorization: Bearer cfk_votre_cle"
GET
/v1/me
Vérifier votre clé
Le premier appel à faire : il confirme que la clé fonctionne et à quel compte elle appartient, sans exposer la moindre donnée client.
Exemple de réponse (200)
{
"data": {
"account": "H7K2-9QRX",
"name": "Anasse Tahboun",
"lead_prefix": "TAH",
"api_version": "1.3",
"rate_limit_per_minute": 120
}
}
En ligne de commande
curl -s https://api.codfamilia.com/v1/me \
-H "Authorization: Bearer cfk_votre_cle"
Champs de statut
Deux statuts cohabitent, et ils ne parlent pas de la même chose :
confirmation_status | Où en est l'appel au client : new,
callback, no_answer_1…3, confirmed, canceled,
wrong, fake, duplicate. |
|---|---|
shipping_status | Où en est le colis : pending,
picked_up, shipped, delivered, returned,
canceled, paid. |
Un lead non confirmé n'a pas de colis : son shipping_status reste
pending. Fiez-vous à confirmation_status avant la confirmation, à
shipping_status après.