Recompenses
Creez un catalogue de recompenses attractif : reductions, produits gratuits, cashback et experiences exclusives echangeables contre des points.
Vue d'ensemble
Le systeme de recompenses YaniPay permet aux marchands de creer un catalogue d'offres echangeables par les clients avec leurs points de fidelite. Chaque recompense a un cout en points, un stock optionnel et une date d'expiration.
Les clients parcourent le catalogue, echangent leurs points et recoivent un code ou un credit directement dans leur cagnotte.
Types de recompenses
Reduction
Pourcentage ou montant fixe de reduction sur le prochain achat. Code promo genere automatiquement.
Produit gratuit
Produit offert par le marchand. Gestion des stocks et alertes de disponibilite.
Cashback
Conversion de points en euros credites sur la cagnotte YaniPay. Utilisable pour tout paiement.
Experience
Experiences exclusives : evenements VIP, cours de cuisine, acces anticipe aux nouveautes.
API Marchand
| Methode | Endpoint | Description |
|---|---|---|
| GET | /api/loyalty/rewards | Lister les recompenses |
| POST | /api/loyalty/rewards | Creer une recompense |
| PATCH | /api/loyalty/rewards/:id | Modifier une recompense |
| DELETE | /api/loyalty/rewards/:id | Supprimer une recompense |
| GET | /api/loyalty/rewards/:id/stats | Statistiques d'echange |
Creer une recompense
1 // Creer une recompense 2 const response = await fetch('/api/loyalty/rewards', { 3 method: 'POST', 4 headers: { 'Content-Type': 'application/json' }, 5 body: JSON.stringify({ 6 programId: 'prog_abc123', 7 name: 'Menu Decouverte Offert', 8 description: 'Un menu decouverte complet offert pour 2 personnes', 9 type: 'product', // "discount" | "product" | "cashback" | "experience" 10 pointsCost: 2000, // 2000 points necessaires 11 12 // Configuration specifique au type 13 config: { 14 // Pour "discount": 15 // discountType: "percentage" | "fixed", 16 // discountValue: 20, // 20% ou 20 EUR 17 18 // Pour "product": 19 productName: 'Menu Decouverte 2 Personnes', 20 estimatedValue: 6900, // 69.00 EUR en centimes 21 22 // Pour "cashback": 23 // cashbackAmount: 500, // 5.00 EUR en centimes 24 25 // Pour "experience": 26 // eventName: "Cours de cuisine", 27 // eventDate: "2025-03-15T18:00:00Z", 28 // maxParticipants: 20, 29 }, 30 31 // Limites 32 stock: 50, // Stock limite (null = illimite) 33 maxPerUser: 2, // Max 2 echanges par utilisateur 34 minTier: 'Gourmet', // Tier minimum requis 35 36 // Validite 37 startsAt: '2025-01-01T00:00:00Z', 38 expiresAt: '2025-06-30T23:59:59Z', 39 40 // Media 41 imageUrl: '/rewards/menu-decouverte.jpg', 42 active: true, 43 }), 44 }); 45 46 const { data: reward } = await response.json(); 47 // reward.id = "rwd_def456"
Images de recompenses
API Client
1 // Response - Catalogue des recompenses 2 { 3 "success": true, 4 "data": [ 5 { 6 "id": "rwd_def456", 7 "name": "Menu Decouverte Offert", 8 "description": "Un menu decouverte complet offert pour 2 personnes", 9 "type": "product", 10 "pointsCost": 2000, 11 "estimatedValue": 6900, 12 "stock": 48, // Stock restant 13 "maxPerUser": 2, 14 "userRedemptions": 0, // Fois echange par cet utilisateur 15 "minTier": "Gourmet", 16 "canRedeem": true, // true si assez de points + bon tier 17 "imageUrl": "/rewards/menu-decouverte.jpg", 18 "expiresAt": "2025-06-30T23:59:59Z" 19 }, 20 { 21 "id": "rwd_ghi789", 22 "name": "-15% sur la prochaine commande", 23 "type": "discount", 24 "pointsCost": 500, 25 "canRedeem": false, // Pas assez de points 26 "reason": "need_250_more_points" 27 } 28 ] 29 }
Echanger une recompense
1 // Echanger une recompense 2 const response = await fetch('/api/customer/loyalty-cards/lc_xyz789/redeem', { 3 method: 'POST', 4 headers: { 'Content-Type': 'application/json' }, 5 body: JSON.stringify({ 6 rewardId: 'rwd_def456', 7 }), 8 }); 9 10 const { data } = await response.json(); 11 // { 12 // "redemption": { 13 // "id": "rdm_abc123", 14 // "rewardId": "rwd_def456", 15 // "rewardName": "Menu Decouverte Offert", 16 // "pointsSpent": 2000, 17 // "code": "GOURMET-XK7P-2025", // Code a presenter en magasin 18 // "qrCode": "data:image/png;base64,...", 19 // "status": "active", 20 // "expiresAt": "2025-03-20T23:59:59Z", 21 // "redeemedAt": "2024-12-20T15:30:00Z" 22 // }, 23 // "loyaltyCard": { 24 // "id": "lc_xyz789", 25 // "pointsBefore": 2500, 26 // "pointsAfter": 500, 27 // "tier": "Gourmet" 28 // } 29 // }
Echange irreversible
Statistiques
L'API de statistiques permet aux clients de suivre leur activite et aux marchands d'analyser les performances de leurs recompenses.
1 // Statistiques fidelite du client 2 { 3 "success": true, 4 "data": { 5 "totalPrograms": 3, 6 "totalPoints": 4750, 7 "totalCashback": 2345, // 23.45 EUR en centimes 8 "totalRedemptions": 12, 9 "totalReferrals": 5, 10 "currentMonthPoints": 350, 11 "favoriteProgram": { 12 "id": "prog_abc123", 13 "name": "Club Gourmet", 14 "points": 2500 15 }, 16 "recentActivity": [ 17 { 18 "type": "earn", 19 "points": 150, 20 "program": "Club Gourmet", 21 "description": "Achat de 15.00 EUR", 22 "date": "2024-12-19T12:30:00Z" 23 }, 24 { 25 "type": "redeem", 26 "points": -500, 27 "program": "Fitness Plus", 28 "description": "-15% code promo", 29 "date": "2024-12-18T09:00:00Z" 30 } 31 ] 32 } 33 }
Statistiques marchand
1 // Statistiques d'une recompense (marchand) 2 { 3 "success": true, 4 "data": { 5 "rewardId": "rwd_def456", 6 "totalRedemptions": 47, 7 "uniqueUsers": 35, 8 "stockRemaining": 3, 9 "averageUserTier": "Gourmet", 10 "conversionRate": 12.5, // % d'utilisateurs eligibles qui echangent 11 "timeline": [ 12 { "date": "2024-12-01", "redemptions": 8 }, 13 { "date": "2024-12-08", "redemptions": 12 }, 14 { "date": "2024-12-15", "redemptions": 15 }, 15 { "date": "2024-12-20", "redemptions": 12 } 16 ] 17 } 18 }
Best Practices
Variez les recompenses
Proposez differents types (reductions, produits, experiences) pour toucher tous les profils de clients.
Gerez les expirations
Definissez des dates d'expiration raisonnables. Envoyez des rappels 7 jours et 1 jour avant expiration.
Analysez les performances
Suivez les taux de conversion et adaptez les couts en points selon la demande.
Recompensez les meilleurs tiers
Reservez les meilleures recompenses aux clients fideles pour encourager la progression.
Notifications automatiques