API Produit: Ces points de terminaison font partie de l'API Loyalty. Tous les points de terminaison commencent par: /api/v1/loyalty/referrals/

Flux de Parrainage

Voici comment fonctionne le système de parrainage :

1

Le Parrain Partage le Code

Un membre existant partage son code de parrainage unique avec des amis.

2

Valider le Code

Lorsqu'un nouvel utilisateur saisit un code, validez-le en utilisant /referrals/validate-code.

3

Appliquer le Parrainage

Après l'inscription du nouvel utilisateur, appliquez le parrainage via /referrals/apply.

4

Points Bonus Attribués

Le parrain et le filleul reçoivent tous deux leurs points bonus configurés.

Obtenir les Statistiques de Parrainage

GET Obtenir les Statistiques de Parrainage
member_read
/api/v1/loyalty/cards/{card_id}/referral-stats

Obtenir les statistiques de parrainage pour une carte, y compris les parrainages totaux, réussis et en attente.

Cas d'Usage

  • Afficher les métriques du programme de parrainage sur un tableau de bord
  • Suivre l'efficacité des campagnes
  • Surveiller les tendances de parrainage au fil du temps

Réponse

{
  "success": true,
  "data": {
    "stats": {
      "total_referrals": 150,
      "successful_referrals": 120,
      "pending_referrals": 30,
      "conversion_rate": 80.0
    },
    "period": "30d"
  }
}

Lister les Meilleurs Parrains

GET Lister les Meilleurs Parrains
member_read
/api/v1/loyalty/cards/{card_id}/referrers

Obtenir la liste des meilleurs parrains pour une carte, triée par parrainages réussis.

Cas d'Usage

  • Créer un classement de parrainage
  • Identifier les ambassadeurs de la marque
  • Récompenser les plus performants

Paramètres de Requête

limit=10
period=30d

limit (integer, optionnel) - Nombre de résultats (défaut: 10)
period (string, optionnel) - Période: 7d, 30d, 90d, all

Réponse

{
  "success": true,
  "data": {
    "referrers": [
      {
        "member_id": 123,
        "name": "Ahmed Ben Ali",
        "email": "ahmed@example.com",
        "total_referrals": 25,
        "successful_referrals": 22
      }
    ],
    "total": 10
  }
}

Obtenir les Parrainages du Parrain

GET Obtenir les Parrainages du Parrain
member_read
/api/v1/loyalty/cards/{card_id}/referrers/{member_id}/referrals

Obtenir tous les parrainages effectués par un membre spécifique.

Paramètres d'URL :
card_id (entier, requis) - L'ID de la carte
member_id (entier, requis) - L'ID du membre parrain

Réponse

{
  "success": true,
  "data": {
    "referrals": [
      {
        "id": 1001,
        "referee_name": "Fatmi Tarek",
        "referee_email": "fatmi@example.com",
        "status": "completed",
        "bonus_points": 50,
        "created_at": "2025-01-15T10:30:00Z"
      }
    ],
    "total": 22
  }
}

Valider le Code de Parrainage

POST Valider le Code de Parrainage
member_read
/api/v1/loyalty/referrals/validate-code

Vérifier si un code de parrainage est valide pour une carte spécifique.

Valider Avant d'Appliquer

Validez toujours les codes avant de les appliquer pour fournir un retour immédiat aux utilisateurs.

Corps de la Requête

{
  "referral_code": "AHMED2024",
  "card_id": 5
}

referral_code (string, requis) - Code de parrainage à valider
card_id (integer, requis) - ID de la carte

Réponse

{
  "success": true,
  "data": {
    "is_valid": true,
    "referrer": {
      "id": 123,
      "name": "Ahmed Ben Ali",
      "bonus_info": {
        "referrer_bonus": 50,
        "referee_bonus": 25
      }
    }
  }
}

Appliquer le Parrainage

POST Appliquer le Parrainage
member_write
/api/v1/loyalty/referrals/apply

Appliquer un code de parrainage à un nouveau membre et attribuer des points bonus aux deux parties.

Application Unique

Les parrainages ne peuvent être appliqués qu'une seule fois par membre. Les tentatives ultérieures renverront une erreur.

Corps de la Requête

{
  "referral_code": "AHMED2024",
  "card_id": 5,
  "referee_member_id": 456
}

referral_code (string, requis) - Code de parrainage
card_id (integer, requis) - ID de la carte
referee_member_id (integer, requis) - ID du nouveau membre

Réponse

{
  "success": true,
  "message": "Parrainage appliqué avec succès",
  "data": {
    "referral": {
      "id": 1001,
      "referrer_id": 123,
      "referee_id": 456,
      "referrer_bonus": 50,
      "referee_bonus": 25,
      "created_at": "2025-01-20T14:30:00Z"
    }
  }
}
ESC