Démarrer
- Le commerçant génère une clé dans son tableau de bord FidelyGo : Paramètres › Site web & API (plan Business).
- À chaque commande payée sur le site, le serveur du site appelle
POST /api/v1/ordersavec l'e-mail du client et le numéro de commande. - FidelyGo inscrit le client si besoin et crédite un passage, exactement comme un scan en boutique.
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_xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxfg_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.
Créditer une commande
POST /api/v1/orders
| Champ | Type | Description |
|---|---|---|
order_id requis | texte ou nombre | Identifiant unique de la commande sur votre site. Une même commande n'est jamais créditée deux fois. |
email requis | texte | E-mail du client : il identifie sa carte de fidélité. |
first_name | texte | Prénom, utilisé si le client est nouveau. |
phone | texte | Té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.
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": "…" } }.
| Statut | Code | Signification |
|---|---|---|
| 400 | invalid_order_id, invalid_email | Champ manquant ou invalide |
| 401 | missing_api_key, invalid_api_key | Clé absente, invalide ou révoquée |
| 403 | plan_required | Le commerçant n'est plus en plan Business |
| 404 | customer_not_found | Aucun client avec cet e-mail |
| 429 | rate_limited | Plus de 120 requêtes par minute avec la même clé |
| 500 | server_error | Erreur 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.
- Téléchargez l'extension (également disponible dans Paramètres › Site web & API).
- WordPress : Extensions › Ajouter › Téléverser une extension, puis Activer.
- Réglages › FidelyGo › « Connecter mon compte FidelyGo » : le commerçant se connecte et clique sur Autoriser.
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>| Attribut | Valeurs |
|---|---|
data-color | Couleur du bouton, ex. #14213D |
data-position | right (défaut) ou left |
data-label | Texte du bouton (40 caractères max.) |
data-mode | inline 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