📚 Documentation

Tout ce qu'il faut savoir pour configurer et exploiter Vexa au maximum.

💳 Configurer Stripe

Vexa utilise Stripe Connect Express. L'argent va directement sur votre compte bancaire après chaque vente, Vexa ne stocke jamais vos coordonnées bancaires.

  1. Créez un compte Stripe (gratuit) si vous n'en avez pas.
  2. Allez sur Dashboard → Mes serveurs → [serveur] → Paiements.
  3. Cliquez « Connecter avec Stripe ». Vous serez redirigé pour remplir vos infos KYC (identité, RIB, SIRET si applicable).
  4. Stripe valide en général en quelques minutes. Vous recevez un email de confirmation.
  5. Une fois validé, le badge 💳 Stripe apparaît à côté de votre serveur.
Frais Stripe (à votre charge, déduits de chaque vente) :
  • Carte UE/EEA : 1,5% + 0,25 €
  • Carte hors UE : 3,25% + 0,25 €
  • Apple Pay / Google Pay : mêmes frais que carte
  • SEPA Direct Debit : 0,8% (max 5 €)
Ces frais sont prélevés directement par Stripe, pas par Vexa.

🧾 Facturation & statut légal

Avant votre première vente, vous devez choisir votre statut dans Dashboard → Paiements → Informations de facturation. Trois statuts possibles :

👤

Particulier

Vente non professionnelle. Nom + adresse suffisent. Vous restez responsable de vos déclarations fiscales.

🇫🇷

Entreprise FR

Auto-entrepreneur, EI, SARL, SAS. SIRET obligatoire (validation Luhn). N° TVA intra optionnel selon régime.

🌍

Entreprise étrangère

Société hors France. Pays + identifiant fiscal local (n° TVA UE, EIN US, ABN AU…).

⚖️ À noter pour les particuliers : Vexa agit comme intermédiaire technique de paiement. Vous restez seul responsable de la déclaration de vos revenus à l'administration fiscale française (impôts, URSSAF). Au-delà d'environ 1 500 €/an de revenus réguliers, l'activité est généralement considérée comme professionnelle et nécessite la création d'un statut auto-entrepreneur.

Les factures émises sont conformes à l'art. 242 nonies A du CGI :

  • Numérotation séquentielle annuelle (ex : VEXA-2026-000001)
  • Identification du vendeur selon le statut (SIRET / ID fiscal / mention "Particulier non assujetti TVA")
  • Identification de l'acheteur (email, pays)
  • HT / TVA / TTC séparés si TVA collectée
  • PDF imprimable accessible depuis Dashboard → Ventes

📦 Produits, paliers et bundles

Produits standards

Un produit = un rôle Discord à vendre, en paiement unique ou abonnement (jour / semaine / mois / an). Vous choisissez le prix, la période d'essai éventuelle, et un ou plusieurs rôles à attribuer.

Configurer : Dashboard → Mes serveurs → [serveur] → Produits → Nouveau produit.

Paliers (Bronze / Silver / Gold)

Permettent de proposer plusieurs niveaux de prix sur le même produit. Le membre choisit son palier au moment de l'achat et peut basculer vers un autre palier plus tard.

Configurer : sur la fiche produit, cliquez 🪜 puis ajoutez vos paliers.

Bundles (packs)

Un bundle est un produit qui inclut plusieurs autres produits. À l'achat, tous les rôles des produits inclus sont attribués automatiquement. Idéal pour proposer un pack à prix réduit.

Exemple : Pack Ultime à 20 € qui inclut VIP (5 €) + Premium (8 €) + Pro (12 €).

Configurer : créez d'abord les produits enfants individuellement, puis sur le produit "pack" cliquez 📦 → activez le mode bundle → cochez les enfants.

🎟️ Codes promo

Créez des codes de réduction utilisables au moment du paiement par vos acheteurs.

Configurer : Dashboard → Mes serveurs → [serveur] → Promos → Nouveau code.

Options disponibles

  • Type : pourcentage (ex: -20%) ou montant fixe (ex: -5 €)
  • Date d'expiration optionnelle
  • Nombre maximum d'utilisations total
  • Limite par utilisateur (anti-abus)
  • Première achat uniquement (pour conquérir de nouveaux clients)

Les codes sont synchronisés en temps réel avec Stripe. Le statut ✓ OK indique que le code est actif au checkout. Si ✗ Échec, cliquez « Resync » après avoir finalisé Stripe Connect.

L'acheteur saisit le code dans le champ "J'ai un code promo" sur la page de vente, ou directement sur Stripe Checkout.

🤝 Programme d'affiliation

Récompensez vos partenaires (influenceurs, créateurs) pour chaque vente qu'ils vous apportent.

Comment ça marche

  1. Dashboard → Mes serveurs → [serveur] → Affiliés → Nouveau
  2. Vous définissez un code (ex: JOHN10) et une commission (ex: 20%)
  3. Votre affilié partage le lien vexabot.fr/s/[serveur]?ref=JOHN10
  4. Tout achat dans les 30 jours qui suivent ce clic est attribué à l'affilié (cookie 30j)
  5. Vous voyez les conversions et commissions dans le tableau Affiliés

Le paiement de la commission à votre affilié reste à votre charge — Vexa fournit le tracking, vous définissez les modalités de paiement (virement mensuel, etc.).

↩️ Remboursements & disputes

Remboursement manuel

Pour rembourser un acheteur (geste commercial, erreur, etc.) : Dashboard → Ventes → ligne du paiement → bouton "Rembourser". Vous pouvez rembourser intégralement ou partiellement (montant libre).

Action automatique : le rôle Discord est retiré immédiatement et l'abonnement Stripe annulé si applicable. L'acheteur reçoit une confirmation par email.

Disputes (chargebacks)

Si un acheteur conteste un paiement auprès de sa banque, Stripe vous notifie et vous avez 7 jours pour fournir vos preuves. Vexa vous envoie immédiatement :

  • Un email avec les détails de la dispute
  • Un DM Discord (si bot installé)
  • Le payment passe en statut disputed dans votre dashboard

Si la dispute est perdue (gagnée par l'acheteur) : le rôle Discord est retiré, l'abonnement annulé, les fonds définitivement débités. Si gagnée : les fonds sont restitués et l'accès reste actif.

🤖 Bot Discord

Slash commands

/vexa-status

(admin) Liste des produits du serveur et leurs ventes

/vexa-stats

(admin) MRR, ventes, abonnés actifs

/vexa-grant @user produit

(admin) Offrir un accès gratuit (cadeau, compensation)

/vexa-revoke @user

(admin) Annuler tous les abos d'un membre + retirer rôles

/vexa-sync @user

(admin) Re-synchroniser les rôles d'un membre

/vexa-acheter

(public) Lien vers la boutique du serveur

/vexa-mes-abonnements

(public) Vos abonnements actifs sur ce serveur

/vexa-ticket-panel

(admin) Pose un panneau pour ouvrir des tickets de support

DMs lifecycle automatiques

Le bot envoie des DMs aux membres pour :

  • 🎉 Bienvenue après un achat (avec récap produit + lien espace membre)
  • Rappel J-3 avant renouvellement automatique d'abonnement
  • 😢 Notification expiration avec lien pour reprendre l'abonnement
  • ⚠️ Alerte échec paiement avec lien pour mettre à jour la carte

Configurable dans Dashboard → Serveur → Discord (cocher/décocher chaque type).

Channel de logs ventes

Dans Dashboard → Serveur → Paiements, vous pouvez configurer un channel Discord qui recevra une notification à chaque vente (montant, produit, acheteur). Pratique pour fêter les ventes en équipe.

👥 Espace membres (acheteurs)

Vos acheteurs n'ont pas besoin de compte Vexa. Pour qu'ils puissent gérer leurs abonnements (changer de carte, annuler, voir l'historique), ils utilisent un lien magique par email.

Pour vos clients

  1. Aller sur vexabot.fr/membre/connexion
  2. Saisir son email
  3. Recevoir un email avec un lien valide 30 minutes
  4. Cliquer → ouvre directement le portail Stripe Billing pour gérer l'abonnement

Avant le checkout, l'acheteur passe par une connexion Discord rapide (OAuth, scope identify + email) pour qu'on puisse lui attribuer le rôle Discord automatiquement après paiement. Aucun compte Vexa n'est créé pour lui.

👨‍👩‍👧 Équipe (multi-administrateurs)

Disponible avec le forfait Business uniquement.

Invitez d'autres personnes à co-administrer un serveur Vexa : créer des produits, voir les ventes, répondre aux tickets support… sans partager vos accès Stripe.

Configurer : Dashboard → Mes serveurs → [serveur] → Équipe → Inviter un membre.

Les co-admins doivent avoir un compte Discord et seront connectés à Vexa via OAuth comme vous.

⚙️ API & Webhooks

API REST

Vexa expose une API REST publique pour intégrer vos données dans Zapier, Make, ou vos scripts.

Créer un token : Dashboard → Paramètres → API & Tokens.

curl https://vexabot.fr/api/v1/payments \
  -H "Authorization: Bearer vexa_..."

Endpoints disponibles :

  • GET /api/v1/me — vos infos compte
  • GET /api/v1/guilds — vos serveurs
  • GET /api/v1/products — vos produits
  • GET /api/v1/payments — historique paiements
  • GET /api/v1/subscribers — abonnés actifs

Webhooks sortants

Vexa peut notifier votre URL à chaque événement. Configurer : Dashboard → Mes serveurs → [serveur] → Webhooks.

6 événements disponibles :

  • payment.succeeded — vente confirmée
  • payment.refunded — remboursement
  • payment.disputed — dispute / chargeback
  • subscription.created — abonnement créé
  • subscription.canceled — abonnement annulé
  • subscription.expired — abonnement expiré

Chaque requête contient un header X-Vexa-Signature: sha256=<hex>. Vérifiez-le côté serveur avec votre secret HMAC :

// Node.js
const crypto = require('crypto');
const sig = req.headers['x-vexa-signature']?.replace('sha256=', '');
const expected = crypto.createHmac('sha256', SECRET)
                       .update(rawBody, 'utf8').digest('hex');
if (!crypto.timingSafeEqual(Buffer.from(sig), Buffer.from(expected))) {
  return res.status(401).end();
}

Répondez en 2xx en moins de 10 secondes. Au-delà, l'envoi est considéré échoué et est retenté.

📊 Comptabilité française

Vexa génère automatiquement une facture conforme pour chaque vente, et propose des exports compatibles avec les principaux logiciels de compta.

Exports comptables

Dashboard → Comptabilité, choisissez votre format :

  • Pennylane : import direct dans la rubrique « Écritures comptables »
  • Indy : import direct dans « Recettes » (auto-entrepreneur)
  • Générique CSV : ouvrable dans Excel / LibreOffice / tout logiciel compta

TVA EU (OSS)

Si vous êtes assujetti à la TVA, activez la collecte dans Paiements → "Collecter la TVA". Stripe Tax (à configurer sur votre compte Stripe) calcule automatiquement le taux selon le pays de l'acheteur, l'ajoute au montant payé, et le sépare dans la facture.

Particuliers : non disponible (un particulier n'est pas assujetti à la TVA). Si vous dépassez le seuil de franchise en base, créez un statut auto-entrepreneur et passez en "Entreprise FR".

💬 Support & tickets

Pour les vendeurs

Vous pouvez ouvrir un ticket support directement depuis votre dashboard : Dashboard → Support → Nouveau ticket.

Catégories disponibles : facturation, technique, compte, autre. Vous recevez les réponses par email et par DM Discord. Toutes les réponses staff sont signées "Support Vexa" pour préserver l'anonymat de l'équipe.

Pour vos clients (acheteurs)

Si un de vos acheteurs a un problème (rôle non attribué, demande de remboursement…), il peut :

  • Ouvrir un ticket sur votre serveur Discord via le panneau /vexa-ticket-panel (à poser une fois)
  • Vous contacter directement par DM Discord
  • Utiliser l'espace membre vexabot.fr/membre/connexion pour gérer son abonnement seul

🔒 RGPD & confidentialité

Vexa est conforme RGPD :

  • Hébergement en Union Européenne
  • Aucun cookie de tracking tiers (pas de Google Analytics, pas de Facebook Pixel par défaut)
  • Mesure d'audience interne anonymisée (IP hashée avec rotation quotidienne, exemption CNIL)
  • Bannière de consentement granulaire (essentiels / audience / marketing)

Vos droits

  • Accès et rectification : depuis votre Dashboard → Paramètres
  • Effacement (art. 17) : Dashboard → Paramètres → Zone sensible → "Supprimer mon compte". Vos données personnelles sont effacées, les données comptables (factures) sont anonymisées et conservées 10 ans (obligation art. L123-22 Code de commerce)
  • Portabilité : contactez dpo@vexabot.fr

Si vous avez des abonnés actifs sur un de vos serveurs, la suppression est bloquée tant que ces abonnés n'ont pas été gérés (ne pas leur couper l'accès sans préavis).

Une question reste sans réponse ?

Le Support Vexa répond en français par email et Discord.

Contacter le support →