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-api

    Toutes les requêtes sont en POST.

    📋 Actions disponibles

    list-members

    Liste tous les membres rattachés à votre société.

    Requête

    { "action": "list-members" }

    Réponse

    { "success": true, "count": 2, "members": [...] }
    get-member

    Récupère un membre par ID ou email.

    Requête

    { "action": "get-member", "email": "jean@exemple.fr" }

    Réponse

    { "success": true, "member": { ... } }
    create-member

    Cré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-member

    Met à 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-member

    Cré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-sync

    Synchronise 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-member

    Supprime un membre par ID ou email.

    Requête

    { "action": "delete-member", "email": "j.dupont@exemple.fr" }

    Réponse

    { "success": true }

    📝 Champs disponibles

    ChampTypeDescription
    first_namestring *Prénom
    last_namestring *Nom
    emailstring *Adresse email
    phonestringTéléphone
    citystringVille
    titrestringTitre / Fonction
    is_ancien_militairebooleanAncien militaire
    bio_courtstringBiographie courte
    bio_longstringBiographie complète
    websitestringSite web
    avatar_urlstringURL de la photo de profil
    addressstringAdresse postale
    department_codestringCode département (ex: 83)
    document_urlstringURL d'un document PDF
    booking_urlstringURL de prise de RDV
    calendly_urlstringLien Calendly
    google_urlstringFiche Google
    contact_phonebooleanAfficher le téléphone
    contact_visiobooleanAfficher l'option visio
    social_linksJSONRé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 invalides
    400Paramètres manquants ou action inconnue
    404Membre non trouvé
    409Email déjà existant (create)
    500Erreur serveur

    Documentation API Partenaire — Cercle des Anciens Militaires