Documentation développeur

API FidelyGo

Créditez automatiquement les points de fidélité des clients à chaque commande passée sur le site d'un commerçant. Une API REST simple, en JSON, avec quatre appels.

Démarrer

  1. Le commerçant génère une clé dans son tableau de bord FidelyGo : Paramètres › Site web & API (plan Business).
  2. À chaque commande payée sur le site, le serveur du site appelle POST /api/v1/orders avec l'e-mail du client et le numéro de commande.
  3. FidelyGo inscrit le client si besoin et crédite un passage, exactement comme un scan en boutique.
Règle de calcul : 1 commande = 1 passage, quel que soit le montant (les points du programme, ou 1 tampon). Le bonus de bienvenue s'applique au premier achat et la limite de passages par jour du commerçant est respectée.

URL de base : https://fidelygo.fr/api/v1 · Format : JSON (UTF-8) · HTTPS obligatoire.

Authentification

Chaque requête porte la clé dans l'en-tête Authorization :

Authorization: Bearer fg_live_xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
  • fg_live_… : clé réelle, les points sont crédités.
  • fg_test_… : clé de test, les réponses sont simulées et rien n'est enregistré. Idéal pour développer.
La clé est un secret : utilisez-la uniquement côté serveur (PHP, Node, back-office…), jamais dans le code JavaScript d'une page web. En cas de fuite, révoquez-la depuis le tableau de bord et générez-en une nouvelle.

Créditer une commande

POST /api/v1/orders

ChampTypeDescription
order_id requistexte ou nombreIdentifiant unique de la commande sur votre site. Une même commande n'est jamais créditée deux fois.
email requistexteE-mail du client : il identifie sa carte de fidélité.
first_nametextePrénom, utilisé si le client est nouveau.
phonetexteTéléphone, utilisé si le client est nouveau.
curl -X POST https://fidelygo.fr/api/v1/orders \
  -H "Authorization: Bearer fg_live_xxx" \
  -H "Content-Type: application/json" \
  -d '{"order_id": "1234", "email": "camille@exemple.fr", "first_name": "Camille"}'

Réponse 201 (commande créditée) :

{
  "credited": true,
  "order_id": "1234",
  "points_earned": 10,
  "welcome_bonus": 50,
  "new_customer": true,
  "customer": {
    "first_name": "Camille",
    "balance": 60,
    "unit": "points",
    "member_since": "2026-10-22T09:41:00.000Z",
    "available_rewards": [],
    "next_reward": { "id": "rw_…", "name": "Café offert", "cost": 100, "missing": 40 },
    "card_url": "https://fidelygo.fr/fidely/etablissement/cafe-lumiere"
  }
}

Réponse 200 si rien n'est crédité, avec la raison dans reason :

  • already_credited : cette commande a déjà été envoyée (vous pouvez renvoyer sans risque).
  • daily_limit : le client a déjà atteint la limite de passages du jour fixée par le commerçant.
Envoyez la commande quand elle est payée (pas à la création du panier). Si votre site permet l'annulation, ne renvoyez simplement pas la commande annulée.

Solde d'un client

GET /api/v1/customers?email=camille@exemple.fr

Renvoie { "customer": { … } } (même format que ci-dessus), ou 404 customer_not_found si cet e-mail n'a pas de carte chez ce commerçant. Pratique pour afficher « Vous avez 60 points » dans l'espace client du site.

Récompenses

GET /api/v1/rewards

{
  "unit": "points",
  "rewards": [
    { "id": "rw_…", "name": "Café offert", "cost": 100, "image_url": "https://fidelygo.fr/uploads/rewards/…" }
  ]
}

Les récompenses s'utilisent en boutique, depuis la carte du client.

Vérifier la clé

GET /api/v1/me

{
  "establishment": { "name": "Café Lumière", "program": "points", "points_per_order": 10, "card_url": "https://fidelygo.fr/fidely/etablissement/cafe-lumiere" },
  "mode": "live"
}

Erreurs et limites

Les erreurs ont toujours la forme { "error": { "code": "…", "message": "…" } }.

StatutCodeSignification
400invalid_order_id, invalid_emailChamp manquant ou invalide
401missing_api_key, invalid_api_keyClé absente, invalide ou révoquée
403plan_requiredLe commerçant n'est plus en plan Business
404customer_not_foundAucun client avec cet e-mail
429rate_limitedPlus de 120 requêtes par minute avec la même clé
500server_errorErreur FidelyGo : réessayez plus tard (l'envoi est sans risque grâce à order_id)

Exemples

WordPress / WooCommerce (PHP)

À ajouter dans une petite extension ou dans le functions.php du thème enfant. Une extension FidelyGo prête à l'emploi arrive bientôt.

add_action('woocommerce_payment_complete', function ($order_id) {
    $order = wc_get_order($order_id);
    if (!$order || !$order->get_billing_email()) return;

    wp_remote_post('https://fidelygo.fr/api/v1/orders', [
        'timeout' => 8,
        'headers' => [
            'Authorization' => 'Bearer ' . FIDELYGO_API_KEY, // définie dans wp-config.php
            'Content-Type'  => 'application/json',
        ],
        'body' => wp_json_encode([
            'order_id'   => (string) $order->get_id(),
            'email'      => $order->get_billing_email(),
            'first_name' => $order->get_billing_first_name(),
        ]),
    ]);
});

Node.js

await fetch('https://fidelygo.fr/api/v1/orders', {
  method: 'POST',
  headers: {
    Authorization: `Bearer ${process.env.FIDELYGO_API_KEY}`,
    'Content-Type': 'application/json',
  },
  body: JSON.stringify({ order_id: order.id, email: order.email, first_name: order.firstName }),
});

WordPress et WooCommerce

Pas besoin de développer : l'extension FidelyGo fait tout. Elle affiche le bouton « Ma carte de fidélité » et, avec WooCommerce, appelle POST /api/v1/orders dès qu'une commande est payée (statut « En cours » ou « Terminée »), avec une note dans la commande.

  1. Téléchargez l'extension (également disponible dans Paramètres › Site web & API).
  2. WordPress : Extensions › Ajouter › Téléverser une extension, puis Activer.
  3. Réglages › FidelyGo › « Connecter mon compte FidelyGo » : le commerçant se connecte et clique sur Autoriser.
Aucune clé à copier : la clé API est créée à l'autorisation et transmise directement de serveur à serveur. Elle apparaît dans la liste des clés du commerçant (« WordPress · nom-du-site ») et est révoquée si le site est déconnecté.

Bouton « Ma carte de fidélité »

Sans aucune clé : ce code affiche un bouton flottant qui ouvre la carte de fidélité du client. Le code exact (avec l'identifiant du commerce) est fourni dans Paramètres › Site web & API.

<script src="https://fidelygo.fr/widget.js" data-fidelygo="IDENTIFIANT_DU_COMMERCE" async></script>
AttributValeurs
data-colorCouleur du bouton, ex. #14213D
data-positionright (défaut) ou left
data-labelTexte du bouton (40 caractères max.)
data-modeinline pour placer le bouton dans la page (dans un élément #fidelygo-widget ou à l'emplacement du script)

Données personnelles

En transmettant l'e-mail d'un client, le site inscrit ce client au programme de fidélité du commerçant. Le commerçant doit l'en informer (par exemple une mention au moment de la commande) et respecter le RGPD. Le client peut demander la suppression de sa carte à tout moment. Voir la politique de confidentialité.

Une question ? contactfidelygo@gmail.com