Passer au contenu principal
Chariow fournit un systeme complet de gestion d’affiliation qui vous permet de developper vos ventes grace aux partenariats. Les affilies peuvent promouvoir vos produits en utilisant des codes de parrainage uniques et gagner des commissions sur les ventes reussies.

Objet Affilie

Un affilie contient des informations sur son compte, son taux de commission et ses performances :
{
  "id": "aff_abc123xyz",
  "code": "JOHN25",
  "name": "Jean Dupont",
  "email": "[email protected]",
  "commission_rate": 15.00,
  "status": "active",
  "stats": {
    "total_referrals": 45,
    "total_sales": 32,
    "total_earnings": {
      "amount": 1250.00,
      "currency": "EUR"
    }
  },
  "created_at": "2025-01-15T09:00:00.000000Z",
  "updated_at": "2025-01-20T14:30:00.000000Z"
}

Champs Cles

  • code : Le code de parrainage unique de l’affilie utilise dans les liens promotionnels
  • commission_rate : Pourcentage de chaque vente que l’affilie gagne (par exemple, 15.00 pour 15%)
  • status : Statut actuel du compte affilie
  • stats.total_referrals : Nombre de clients recommandes par cet affilie
  • stats.total_sales : Nombre de ventes completees a partir des recommandations
  • stats.total_earnings : Commission totale gagnee

Statuts des Affilies

StatutDescription
activeL’affilie est actif et peut gagner des commissions
inactiveLe compte affilie est temporairement inactif
suspendedLe compte affilie a ete suspendu

Obtenir un Affilie

Recuperez un affilie specifique en utilisant son code de parrainage unique :
curl -X GET "https://api.chariow.com/v1/affiliates/JOHN25" \
  -H "Authorization: Bearer sk_live_your_api_key"
Ceci est utile pour :
  • Valider un code affilie avant d’appliquer des remises
  • Afficher les informations de l’affilie sur votre site web
  • Construire des tableaux de bord pour les affilies

Envoyer des Invitations d’Affiliation

Invitez des affilies potentiels a rejoindre votre programme en envoyant des emails d’invitation :
curl -X POST "https://api.chariow.com/v1/affiliates/invitations" \
  -H "Authorization: Bearer sk_live_your_api_key" \
  -H "Content-Type: application/json" \
  -d '{
    "emails": ["[email protected]", "[email protected]", "[email protected]"]
  }'

Invitations par Lot

Vous pouvez envoyer jusqu’a 25 invitations en une seule requete. L’API va :
  • Creer et envoyer des invitations pour les nouveaux emails valides
  • Ignorer les emails qui sont deja des affilies enregistres
  • Ignorer les emails qui ont des invitations en attente

Reponse

{
  "message": "2 invitations envoyees avec succes",
  "data": {
    "invitations": [
      {
        "id": "affinv_abc123xyz",
        "email": "[email protected]",
        "status": "pending",
        "expires_at": "2026-02-10T10:30:00+00:00",
        "created_at": "2026-01-11T10:30:00+00:00"
      },
      {
        "id": "affinv_def456uvw",
        "email": "[email protected]",
        "status": "pending",
        "expires_at": "2026-02-10T10:30:00+00:00",
        "created_at": "2026-01-11T10:30:00+00:00"
      }
    ],
    "skipped": {
      "already_affiliate": ["[email protected]"],
      "already_invited": []
    }
  },
  "errors": []
}

Objet Invitation

Une invitation contient des informations sur son statut et son expiration :
{
  "id": "affinv_abc123xyz",
  "email": "[email protected]",
  "status": "pending",
  "expires_at": "2026-02-10T10:30:00+00:00",
  "created_at": "2026-01-11T10:30:00+00:00"
}

Statuts des Invitations

StatutDescription
pendingInvitation envoyee mais pas encore acceptee
acceptedL’invitation a ete acceptee
expiredL’invitation a depasse sa date d’expiration

Événements Webhook

Lorsqu’un affilié rejoint votre boutique (accepte une invitation), un événement webhook est déclenché via les Pulses.

affiliate.joined

Déclenché lorsqu’un nouvel affilié rejoint votre boutique.
{
  "event": "affiliate.joined",
  "affiliate": {
    "id": "saff_xyz789abc",
    "account": {
      "id": "aff_abc123def",
      "code": "CREATOR123",
      "pseudo": "studio_creatif",
      "email": "[email protected]",
      "first_name": "Jean",
      "last_name": "Dupont",
      "name": "Jean Dupont",
      "country": {
        "code": "FR",
        "name": "France"
      },
      "phone": {
        "country_code": "FR",
        "formatted": "+33 6 12 34 56 78"
      }
    },
    "source": "invitation",
    "status": "active",
    "joined_at": "2025-01-15T10:40:00+00:00"
  },
  "store": {
    "id": "str_xyz789",
    "name": "Ma Boutique Digitale",
    "url": "https://maboutique.mychariow.com"
  }
}
Configurez les Pulses dans votre tableau de bord Chariow (AutomatisationPulses) pour recevoir ces événements.

Exemple d’Implementation

Voici un exemple complet de gestion des affilies dans votre application :
class AffiliateManager {
  constructor(apiKey) {
    this.apiKey = apiKey;
    this.baseUrl = 'https://api.chariow.com/v1';
  }

  async getAffiliate(code) {
    const response = await fetch(
      `${this.baseUrl}/affiliates/${code}`,
      { headers: { 'Authorization': `Bearer ${this.apiKey}` }}
    );

    if (!response.ok) {
      throw new Error('Affilie non trouve');
    }

    const { data } = await response.json();
    return data;
  }

  async sendInvitations(emails) {
    const response = await fetch(
      `${this.baseUrl}/affiliates/invitations`,
      {
        method: 'POST',
        headers: {
          'Authorization': `Bearer ${this.apiKey}`,
          'Content-Type': 'application/json'
        },
        body: JSON.stringify({ emails })
      }
    );

    if (!response.ok) {
      const error = await response.json();
      throw new Error(error.message);
    }

    return response.json();
  }

  async validateAffiliateCode(code) {
    try {
      const affiliate = await this.getAffiliate(code);
      return {
        valid: affiliate.status === 'active',
        affiliate
      };
    } catch (error) {
      return { valid: false, error: error.message };
    }
  }
}

// Utilisation
const manager = new AffiliateManager('sk_live_your_api_key');

// Valider un code affilie au moment du paiement
const { valid, affiliate } = await manager.validateAffiliateCode('JOHN25');
if (valid) {
  console.log(`Application de ${affiliate.commission_rate}% de commission pour ${affiliate.name}`);
}

// Envoyer des invitations aux affilies potentiels
const result = await manager.sendInvitations([
  '[email protected]',
  '[email protected]'
]);
console.log(`${result.data.invitations.length} invitations envoyees`);

Resume des Endpoints API

EndpointMethodeDescription
/v1/affiliates/{affiliateCode}GETObtenir les details d’un affilie par code
/v1/affiliates/invitationsPOSTEnvoyer des invitations d’affiliation

Bonnes Pratiques

Validation du Code Affilie

  • Validez toujours les codes affilies avant d’appliquer des commissions
  • Verifiez que le statut de l’affilie est active
  • Mettez en cache les donnees des affilies pour reduire les appels API

Gestion des Invitations

  • Utilisez les invitations par lot pour plus d’efficacite (jusqu’a 25 emails)
  • Verifiez le champ skipped pour gerer elegamment les affilies existants
  • Implementez une logique de nouvelle tentative pour les invitations echouees

Integration Webhook

  • Configurez les webhooks pour recevoir les evenements affiliate.joined
  • Utilisez les webhooks pour declencher des workflows d’integration
  • Stockez les donnees des affilies lorsqu’ils rejoignent pour des recherches plus rapides

Suivi des Commissions

  • Suivez avec precision les recommandations des affilies
  • Fournissez aux affilies des statistiques en temps reel
  • Implementez des fenetres d’attribution appropriees

Ressources Connexes