API Partenaire — Documentation
Référence technique pour intégrer la synchronisation de vos collaborateurs.
🔐 Authentification
Chaque requête doit inclure les en-têtes suivants :
Content-Type: application/json x-api-key: VOTRE_API_KEY x-api-secret: VOTRE_API_SECRET
Générez vos clés depuis votre espace membre ou demandez-les à votre administrateur.
🌐 URL de base
https://qzaindwzvpwtnpgarnpo.supabase.co/functions/v1/partner-apiToutes les requêtes sont en POST.
📋 Actions disponibles
list-membersListe tous les membres rattachés à votre société.
Requête
{ "action": "list-members" }Réponse
{ "success": true, "count": 2, "members": [...] }get-memberRécupère un membre par ID ou email.
Requête
{ "action": "get-member", "email": "jean@exemple.fr" }Réponse
{ "success": true, "member": { ... } }create-memberCrée une nouvelle fiche membre. Champs requis : first_name, last_name, email.
Requête
{
"action": "create-member",
"first_name": "Jean",
"last_name": "Dupont",
"email": "j.dupont@exemple.fr",
"city": "Toulon",
"titre": "Conseiller",
"is_ancien_militaire": true
}Réponse
{ "success": true, "member": { "id": "...", ... } }update-memberMet à jour un membre existant par son ID.
Requête
{
"action": "update-member",
"member_id": "UUID_DU_MEMBRE",
"city": "Marseille",
"titre": "Directeur"
}Réponse
{ "success": true, "member": { ... } }upsert-memberCrée ou met à jour automatiquement un membre basé sur l'email. Idéal pour la synchronisation.
Requête
{
"action": "upsert-member",
"first_name": "Jean",
"last_name": "Dupont",
"email": "j.dupont@exemple.fr",
"city": "Toulon"
}Réponse
{ "success": true, "action": "created|updated", "member": { ... } }bulk-syncSynchronise jusqu'à 100 membres en un seul appel (upsert par email).
Requête
{
"action": "bulk-sync",
"members": [
{ "first_name": "Jean", "last_name": "Dupont", "email": "j.dupont@ex.fr", "city": "Toulon" },
{ "first_name": "Marie", "last_name": "Martin", "email": "m.martin@ex.fr", "city": "Marseille" }
]
}Réponse
{ "success": true, "created": 1, "updated": 1, "errors": [] }delete-memberSupprime un membre par ID ou email.
Requête
{ "action": "delete-member", "email": "j.dupont@exemple.fr" }Réponse
{ "success": true }📝 Champs disponibles
| Champ | Type | Description |
|---|---|---|
first_name | string * | Prénom |
last_name | string * | Nom |
email | string * | Adresse email |
phone | string | Téléphone |
city | string | Ville |
titre | string | Titre / Fonction |
is_ancien_militaire | boolean | Ancien militaire |
bio_court | string | Biographie courte |
bio_long | string | Biographie complète |
website | string | Site web |
avatar_url | string | URL de la photo de profil |
address | string | Adresse postale |
department_code | string | Code département (ex: 83) |
document_url | string | URL d'un document PDF |
booking_url | string | URL de prise de RDV |
calendly_url | string | Lien Calendly |
google_url | string | Fiche Google |
contact_phone | boolean | Afficher le téléphone |
contact_visio | boolean | Afficher l'option visio |
social_links | JSON | Réseaux sociaux |
* Champs obligatoires pour la création.
⚡ Exemple cURL
curl -X POST "https://qzaindwzvpwtnpgarnpo.supabase.co/functions/v1/partner-api" \
-H "Content-Type: application/json" \
-H "x-api-key: VOTRE_API_KEY" \
-H "x-api-secret: VOTRE_API_SECRET" \
-d '{
"action": "upsert-member",
"first_name": "Jean",
"last_name": "Dupont",
"email": "j.dupont@exemple.fr",
"city": "Toulon",
"titre": "Conseiller"
}'❌ Codes d'erreur
401Clés API manquantes ou invalides400Paramètres manquants ou action inconnue404Membre non trouvé409Email déjà existant (create)500Erreur serveurDocumentation API Partenaire — Cercle des Anciens Militaires