# Get all balances
Source: https://docs.fedapay.com/api-reference/balances/get-all
get /balances
# Get a balance
Source: https://docs.fedapay.com/api-reference/balances/get-by-id
get /balances/{id}
Retrieves a single balance by ID
# Get all currencies
Source: https://docs.fedapay.com/api-reference/currencies/get-all
get /currencies
# Get a currency
Source: https://docs.fedapay.com/api-reference/currencies/get-by-id
get /currencies/{id}
# Get all events
Source: https://docs.fedapay.com/api-reference/events/get-all
get /events
# Get a event
Source: https://docs.fedapay.com/api-reference/events/get-by-id
get /events/{id}
Retrieves a single event by ID
# Introduction à l’API FedaPay
Source: https://docs.fedapay.com/api-reference/introduction-fr
Bienvenue dans **la référence de l’API FedaPay**, votre guide complet pour intégrer facilement **une passerelle de paiement** à vos sites web et applications. Cette documentation **API** exhaustive met à disposition des entreprises, développeurs et organisations des outils robustes pour gérer les paiements, les clients et les transactions financières dans les régions prises en charge.
Améliorez votre expérience d’intégration grâce à des fonctionnalités telles que le test des endpoints directement dans la documentation et des exemples de code prêts à l’emploi dans plusieurs langages de programmation. Ces ressources simplifient le processus d’intégration et garantissent une mise en œuvre fluide, efficace et adaptée à vos exigences techniques. Plongez dans l’écosystème FedaPay et exploitez tout son potentiel.
## Que pouvez-vous réaliser avec l’API FedaPay ?
FedaPay propose un ensemble de fonctionnalités conçues pour répondre aux besoins de secteurs variés :
* **Gestion des clients (Customer Management)** : Créez et gérez facilement des profils clients.
* **Encaissements (Collects)** : Traitez des encaissements sécurisés sur plusieurs canaux de paiement avec un minimum d’effort.
* **Paiements sortants (Payouts)** : Automatisez et suivez vos paiements avec précision.
* **Suivi des événements (Event Monitoring)** : Recevez des notifications en temps réel sur les événements clés.
* **Balances** : Accédez à une vue financière complète et détaillée.
* **Devises (Currencies)** : Gérez plusieurs devises en toute simplicité.
* **Logs** : Déboguez et suivez l’activité de l’API.
* **Webhooks** : Activez une communication fluide et automatisée entre votre application et les services FedaPay.
## Structure de l’API
L’API FedaPay est RESTful, conçue pour être simple, cohérente et performante. Les endpoints sont prévisibles, ce qui facilite leur implémentation et leur montée en charge.Chaque section de cette référence correspond à une fonctionnalité clé de l’API et fournit des exemples de code, des réponses attendues ainsi que des bonnes pratiques de gestion des erreurs.
### Authentication
Pour garantir la sécurité des transactions, tous les endpoints de l’API nécessitent une authentification par **token Bearer**.Vos clés API donnent accès aux données de votre compte : elles doivent donc être conservées de manière sécurisée. Utilisez l’environnement approprié (sandbox pour les tests, live pour la production).
```json theme={null}
"security": [
{
"bearerAuth": []
}
]
```
## Démarrer avec l’API
1. **Choisissez votre environnement**: Utilisez le mode [sandbox](https://sandbox.fedapay.com/register) pour les tests et [live](https://live.fedapay.com/register) pour la production.
2. **Récupérez vos clés API** : Connectez-vous à votre tableau de bord FedaPay pour obtenir vos clés.
3. **Explorez les endpoints** : Consultez les sections Customer, Collect et Payouts pour commencer à construire votre flux de paiement.
## Pourquoi FedaPay ?
FedaPay permet aux entreprises de passer à l’échelle facilement tout en bénéficiant de solutions de paiement sécurisées, fiables et rapides. Que vous gériez des transactions unitaires ou des paiements en masse, l’API FedaPay garantit une expérience fluide et performante.Explorez la documentation et libérez tout le potentiel des paiements digitaux avec FedaPay.
Commencez dès maintenant par la [section Customer](/api-reference/customers/get-by-id) pour mettre en place votre premier parcours de paiement.
# Get all logs
Source: https://docs.fedapay.com/api-reference/logs/get-all
get /logs
# Get a logs
Source: https://docs.fedapay.com/api-reference/logs/get-by-id
get /logs/{id}
# Create a payout
Source: https://docs.fedapay.com/api-reference/payouts/create
post /payouts
This endpoint creates a new payout.
# Delete a payout
Source: https://docs.fedapay.com/api-reference/payouts/delete
delete /payouts/{id}
# Search your payouts
Source: https://docs.fedapay.com/api-reference/payouts/get-all
get /payouts/search
# Get a payout
Source: https://docs.fedapay.com/api-reference/payouts/get-by-id
get /payouts/{id}
# Update a payout
Source: https://docs.fedapay.com/api-reference/payouts/update
put /payouts/{id}
# Start payout
Source: https://docs.fedapay.com/api-reference/payouts/update-start
put /payouts/start
# Create a transaction
Source: https://docs.fedapay.com/api-reference/transactions/create
post /transactions
# Get the payment link for a transaction
Source: https://docs.fedapay.com/api-reference/transactions/create-token
post /transactions/{id}/token
# Delete a transaction
Source: https://docs.fedapay.com/api-reference/transactions/delete
delete /transactions/{id}
# Search your transactions
Source: https://docs.fedapay.com/api-reference/transactions/get-all
get /transactions/search
# Get a transaction
Source: https://docs.fedapay.com/api-reference/transactions/get-by-id
get /transactions/{id}
# Send payment to user
Source: https://docs.fedapay.com/api-reference/transactions/send-payment
post /transactions/{mode}
# Update a transaction
Source: https://docs.fedapay.com/api-reference/transactions/update
put /transactions/{id}
# Get all webhooks
Source: https://docs.fedapay.com/api-reference/webhooks/get-all
get /webhooks
# Get a webhook
Source: https://docs.fedapay.com/api-reference/webhooks/get-by-id
get /webhooks/{id}
# API, Évènements, Logs et Webhooks
Source: https://docs.fedapay.com/dashboard/fr/api-fr
Cette section regroupe les outils avancés permettant d’intégrer votre compte à des systèmes tiers, suivre les collectes en temps réel et inspecter les activités via les journaux (logs). Elle s’adresse autant aux utilisateurs techniques qu’aux gestionnaires souhaitant garder un œil sur leurs opérations.
### API – Gestion des Clés d’Intégration
Les **clés API** vous permettent d'intégrer vos services externes à la plateforme.
Deux types de clés sont disponibles :
* **Clé publique** : à utiliser côté client (navigateur ou application).
* **Clé secrète** : à conserver uniquement côté serveur.
Pour générer ou renouveler vos clés :
1-Accédez à la section **API**.
2-Cliquez sur “**Régénérer les clés API**” pour générer de nouvelles clés.
**Note de sécurité** : Ne partagez jamais votre clé secrète. Elle donne un accès total à votre compte via l’API.
### Évènements – Suivi en Temps Réel des Collectes
La **section Évènements** permet de consulter tous les événements générés par les paiements et collectes, par exemple :
* Paiement réussi
* Paiement échoué
* Collecte en attente
Chaque événement contient des détails précis sur l’opération concernée. Pour y accéder :
* Cliquez sur **Évènements** depuis le menu latéral ou depuis [la page Webhooks & Évènements](https://docs.fedapay.com/integration-api/fr/webhooks-fr).
### Logs – Historique des Activités
La **section Logs** fournit un historique complet des opérations liées à vos collectes, incluant :
* Le **statut** de chaque action
* Une **description claire** de ce qui s’est passé
* La **date et l’heure** de l’opération
1- Cliquez sur **Logs** dans le menu pour consulter l’activité.
2- Utilisez les filtres pour rechercher un log spécifique ou un intervalle de temps.
### Webhooks – Connexion avec vos Systèmes Externes
Les **Webhooks** vous permettent de recevoir des notifications automatiques lorsqu’un événement spécifique se produit (paiement réussi, échec, etc.). Pour configurer un webhook :
1- Accédez à **Webhooks** depuis le menu ou la section Évènements.
2- Cliquez sur **Ajouter un Webhook**.
3- Renseignez l’**URL de destination** et sélectionnez les types d’événements à surveiller.
# Paramètres d'entreprise
Source: https://docs.fedapay.com/dashboard/fr/business-fr
Les Paramètres d'entreprise de votre compte FedaPay vous permettent de configurer et valider vos informations pour recevoir des virements vers vos comptes bancaires, mobile money, ou cartes prépayées. Voici un guide structuré pour vous aider à naviguer dans cette section.
**Accéder aux Paramètres d'Entreprise**
Depuis le tableau de bord de votre compte FedaPay, rendez-vous dans l'onglet **Paramètres d'entreprise**.
Une interface avec cinq onglets principaux apparaîtra pour configurer différents types de comptes.

#### Compte
Cet onglet vous permet de gérer les détails généraux de votre compte FedaPay.
* **Intitulé du compte** : Modifiez le nom de votre compte FedaPay.
* **Pays et Fuseau horaire** : Sélectionnez le pays où est enregistré votre entreprise ainsi que votre fuseau horaire.
**Astuce** : N'oubliez pas de cliquer sur Enregistrer pour sauvegarder vos modifications.
#### Entreprise
Dans cet onglet, renseignez les informations nécessaires pour identifier votre entreprise et valider votre compte FedaPay.
* Nom de l'entreprise
* Adresse de l'entreprise
* Numéro d'enregistrement de l'entreprise
**Astuce** : Complétez tous les champs et cliquez sur Enregistrer pour que votre compte soit validé avec succès.
### Comptes Bancaires
Cet onglet vous permet d'ajouter les informations des comptes bancaires vers lesquels vous souhaitez récupérer vos gains par virements bancaires.
**Ajouter un Compte Bancaire :**
1. Cliquez sur Ajouter un compte bancaire.
2. Remplissez le formulaire avec les informations suivantes :
* **Nom de la banque**
* **Pays de la banque (où votre compte est domicilié)**
* **Intitulé du compte (comme indiqué sur votre RIB)**
* **Numéro de compte (IBAN) et Code SWIFT**

Après avoir renseigné ces informations, cliquez sur Suivant pour passer à l'étape des documents.
**Étape Documents :**
* Type de document d'identité (carte d'identité ou passeport)
* Document d'identité : Chargez une copie du document choisi.
* Relevé d'Identité Bancaire (RIB) : Chargez une copie de votre RIB.
Cliquez sur Envoyer pour soumettre les informations pour vérification. Votre compte bancaire aura le statut Non vérifié jusqu'à ce que les informations soient validées.
#### Comptes Mobile Money
Dans cet onglet, configurez les numéros de mobile money vers lesquels vous souhaitez récupérer vos gains.Actuellement, les méthodes de versement prises en charge pour les dépôts sont : MTN Bénin, MTN Cote d’ivoire, Moov Bénin, Moov Togo et Togocel
**Ajouter un Compte Mobile Money :**
* Cliquez sur Ajouter un compte mobile.
* Remplissez le formulaire avec les informations suivantes :
* Titulaire du compte mobile money (Nom et prénoms)
* Indicatif du pays et numéro mobile money

* Cliquez sur M'envoyer le code de vérification.
* Renseignez le code de vérification reçu par SMS dans l'espace dédié et cliquez sur Vérifier.
Une fois validé, votre compte mobile money sera marqué comme Vérifié.
### Préférences
Pour configurer vos préférences, accédez à **Paramètres d'entreprise>préférences** dans le tableau de bord. Vous verrez une interface avec cinq onglets principaux qui permettent de personnaliser différents aspects de votre compte : **Méthodes de Paiement**, **Frais**, **Devises**, **Notifications** et **Page de Paiement**.
* **Méthodes de Paiement** : Consultez la liste des modes de paiement disponibles via FedaPay et activez ceux que vous souhaitez proposer à vos clients.
* **Frais** : Choisissez comment gérer les frais de transaction. Cochez les cases des moyens de paiement pour lesquels vous voulez que les frais soient pris en charge par le client. Décochez les cases si vous préférez assumer ces frais.
* **Devises** : Activez les devises que vous souhaitez proposer. Les options disponibles incluent l'Euro (EUR), le Franc Guinéen (GNF), et le Franc CFA (XOF).
* **Notifications** : Personnalisez les notifications que vous souhaitez recevoir concernant les transactions.
Vous pouvez choisir d'être notifié lorsque qu'une transaction est :
* Approuvée
* Annulée
* Déclinée
* Transférée
* **Page de Paiement** : Personnalisez l'apparence et le contenu de votre page de paiement en cliquant sur le bouton **"Modifier"** disponible pour chaque élément de la page. Ajustez les couleurs, textes et autres éléments pour que votre page de paiement reflète votre marque.
Ces préférences vous permettent de configurer FedaPay selon vos besoins commerciaux spécifiques et d’améliorer l'expérience de paiement de vos clients.
# Collectes : Consultation et Gestion
Source: https://docs.fedapay.com/dashboard/fr/collects-fr
La **section Collectes** vous permet de **visualiser, organiser et gérer** l’ensemble de vos transactions, en temps réel.
### Vue d’ensemble des collectes
Les collectes sont automatiquement classées en trois catégories :
* **Tout** : toutes les transactions enregistrées
* **Réussies** : collectes complétées avec succès
* **En attente** : collectes créées, mais non encore réglées
### Créer une nouvelle collecte
Pour enregistrer une transaction manuellement :
1- Cliquez sur “**Ajouter une collecte**”.
2- Renseignez les champs requis
* **Client** (sélection à partir des clients enregistrés)
* **Montant** à collecter
* **Devise**
* **Description** (facultatif)
3- Cliquez sur “**Ajouter**” pour valider.
Une fois ajoutée, la collecte apparaît avec le statut “**En attente**”.
Vous pouvez ensuite **générer un lien de paiement** pour cette collecte et l’envoyer au client: [Comment générer un lien de paiement](https://support.fedapay.com/portal/fr/kb/articles/comment-g%C3%A9n%C3%A9rer-un-lien-de-paiement-20-3-2025)
### Consulter les collectes existantes
Pour accéder à vos transactions enregistrées :
1- Cliquez sur “**Collectes**” dans le menu principal.
2- Une liste de toutes les collectes s’affiche, avec :
* Le **montant**
* Le **nom du client**
* Le **statut**
* La **date de création**
Un aperçu rapide permet d’identifier les collectes à relancer ou à analyser.
**Modifier ou supprimer une collecte**
Pour une **collecte en attente**, vous pouvez :
* Cliquer sur “**Modifier les détails**” pour ajuster les champs (montant, description, etc.)
* Cliquer sur “**Supprimer**” pour l’effacer définitivement
Une fois la collecte **payée ou échouée**, elle ne peut plus être modifiée.
### Filtres et exportation
Utilisez les **filtres intelligents** pour trier vos collectes selon :
* **ID**
* **Référence**
* **Montant**
* **Statut**
* **Méthode de paiement**
Vous pouvez également **exporter vos collectes** au **format CSV**, pour un usage en comptabilité ou une analyse dans Excel
**À retenir**
* Créez et gérez vos collectes manuellement ou automatiquement.
* Surveillez l’évolution de vos transactions en temps réel.
* Personnalisez vos analyses avec les **filtres** et exports **CSV**.
# Clients : Gestion et Historique
Source: https://docs.fedapay.com/dashboard/fr/customer-fr
La section **Clients** de votre tableau de bord FedaPay vous permet de centraliser, consulter et gérer efficacement toutes les informations liées à vos clients.
### Ajouter un nouveau client
Pour enregistrer un client dans votre système :
1. Cliquez sur le bouton “Nouveau client”.
2. Remplissez le formulaire avec les informations demandées :
* Nom
* Adresse e-mail
* Numéro de téléphone
3. Cliquez sur **Créer** pour finaliser l’ajout.
Cette fonctionnalité est utile pour anticiper des collectes récurrentes ou pour préremplir les pages de paiement personnalisées.
### Modifier ou supprimer un client
Chaque client affiché dans la liste peut être :
* **Modifié** : cliquez sur l’icône en forme de crayon pour ajuster ses informations.
* **Supprimé** : cliquez sur la corbeille pour le retirer de votre base.
Une suppression est définitive et supprime également les liens directs avec les collectes. Utilisez avec précaution.
### Historique des collectes d’un client
En cliquant sur un client, vous accédez à son **historique détaillé** :
* Collectes associées
* Statuts des transactions
* Dates des événements
* Montants concernés
Cette vue est idéale pour suivre la fidélité d’un client ou résoudre des litiges liés à des paiements.
### Filtrage et exportation
Pour mieux organiser vos données :
* Utilisez le bouton “Filtrer” pour trier par :
* **Nom**
* **Adresse e-mail**
* **Date de création**
Exportez la liste complète de vos clients en **CSV** pour analyse ou intégration à vos outils de reporting.
L’exportation est disponible en un clic via le menu **Plus d’actions** (ou icône dédiée).
**Note:**
* La section **Clients** permet un **suivi individuel** précis de chaque utilisateur.
* Toutes les données peuvent être **modifiées, filtrées ou exportées** facilement.
* L’accès à l’historique aide à la **prise de décision commerciale** et au support client.
# Récupérer et gérer vos fonds FedaPay
Source: https://docs.fedapay.com/dashboard/fr/funds-fr
Cette section vous guide à travers le processus pour retirer vos fonds disponibles, les règles relatives aux devises, et la gestion de vos demandes de paiement via FedaPay. Voici comment accéder à vos fonds et effectuer un retrait, étape par étape.
#### Accéder aux Fonds Disponibles
Sur FedaPay, toutes les transactions marquées comme **"transférées"** sont disponibles sur votre balance FedaPay en fonction de la méthode de paiement utilisée (Mobile Money, carte bancaire, etc.).Pour retirer vos fonds, vous devez d'abord ajouter un compte bancaire ou un numéro Mobile Money.
**1-Ajouter un compte bancaire ou un numéro Mobile Money**
* Ajouter un compte bancaire : [Suivez ce guide](https://docs.fedapay.com/dashboard/fr/business-fr#comptes-bancaires)
* Ajouter un numéro Mobile Money : [Suivez ce guide](https://docs.fedapay.com/dashboard/fr/business-fr#comptes-mobile-money)
Une fois votre méthode de retrait ajoutée, vous pouvez initier un retrait.
**2-Effectuer un retrait depuis votre balance**
* Connectez-vous à votre tableau de bord FedaPay.
* Accédez à "Balance" pour voir les fonds disponibles:
* Sélectionnez la méthode de paiement et la devise.
* Cliquez sur "Demander un paiement".

* Remplissez le formulaire avec les informations suivantes :

* ✅ Montant (compris entre 1 000 et 500 000 XOF)
* ✅ Mode de paiement (Mobile Money ou compte bancaire)
* ✅ Description du retrait (facultatif)
* Cliquez sur "Créer" pour valider la demande.

**Informations importantes**
* Chaque balance est indépendante → Vous ne pouvez pas combiner plusieurs modes de paiement en un seul retrait.
* Les paiements par carte bancaire ne sont pas encore disponibles pour les retraits.
* Un délai de 72 heures est nécessaire avant qu’une transaction approuvée soit transférée sur votre balance
### Informations complémentaires sur les retraits FedaPay
Une fois que vous avez ajouté et vérifié un **numéro Mobile Money** ou un **compte bancaire** à votre compte FedaPay, vous pouvez initier des retraits.
**Vérification de sécurité lors du premier retrait :**
* Si vous initiez un retrait **dans les 10 jours suivant la vérification** de votre moyen de retrait, vous recevrez un **email de confirmation** afin de valider que l’opération est bien initiée par vous.
* Si le retrait est initié **après 10 jours**, vous ne recevrez pas d’email de confirmation supplémentaire.
**Conditions pour les retraits par virement bancaire :**
* Le montant du retrait doit être **supérieur ou égal à 53 500 XOF**.
* Si le montant est inférieur à ce seuil, **l’opération échouera automatiquement**.
⚠️ **Bonnes pratiques :**
* Vérifiez toujours que vos informations de retrait (numéro Mobile Money ou RIB bancaire) sont correctement saisies et à jour.
* Planifiez vos retraits en tenant compte des délais de vérification et des plafonds imposés par les opérateurs bancaires ou Mobile Money.
#### Gestion des Balances Multidevises
FedaPay crée une balance distincte pour chaque devise utilisée dans vos transactions (par exemple, une balance pour les transactions en Euro et une autre pour les transactions en Franc CFA). Cela signifie qu'il est impossible de fusionner les fonds de plusieurs balances pour une demande de virement.
**Note** : Bien que vous ne puissiez pas fusionner les fonds de différentes devises pour un virement, vous pouvez recevoir tous les virements sur un même compte bancaire, peu importe la devise, et votre banque effectuera la conversion nécessaire.
#### Suivi des Demandes de Paiement
Après avoir effectué votre demande de paiement, vous pouvez suivre son statut dans la section **Demandes de Paiement** de votre tableau de bord. Vous pouvez filtrer vos demandes par :
* ID de la demande
* Montant
* Statut
* Description
* Date de création
* Date d’approbation
Il existe également un bouton **Exporter en CSV** pour télécharger l’historique des demandes de paiement sous forme de fichier.
#### Procédure de Retrait
Voici les étapes à suivre pour retirer vos fonds :
Accédez à votre balance dans la devise correspondant à votre demande de retrait (par exemple, Euro ou Franc CFA).
Depuis votre tableau de bord, émettez une demande de virement vers le compte bancaire ou Mobile Money associé.
FedaPay vérifiera la demande et validera le retrait sous réserve de l’absence de contentieux liés aux transactions de la semaine précédente.
Une fois validée, la demande sera traitée et le virement sera effectué vers le compte ou portefeuille spécifié.
**Détails Importants à Retenir :**
* **Toutes les transactions marquées comme "Transférée" sont disponibles** sur la balance de votre compte marchand.
* **Un délai de 72 heures est requis** pour que les transactions approuvées soient transférées sur votre balance.
* **Les virements peuvent être effectués vers un compte bancaire, Mobile Money**.
## Devises Actuellement Disponibles
Pour le moment, FedaPay prend uniquement en charge le Franc CFA (XOF) pour les transactions. Une mise à jour progressive des devises disponibles est prévue. Si vous avez besoin d’une devise spécifique non disponible actuellement, contactez FedaPay pour en faire la demande.
**Devises supportées**
XOF
952
Franc CFA (UEMOA)
Communauté Financière Africaine BCEAO
# Vue Générale de vos Collectes
Source: https://docs.fedapay.com/dashboard/fr/home-fr
Dès votre connexion à votre tableau de bord FedaPay, la page Accueil vous offre une vue d’ensemble instantanée de votre activité financière.
Cette interface est conçue pour vous permettre de suivre vos performances en un coup d’œil grâce à des indicateurs clairs et dynamiques.
### Statistiques clés
En haut de page, vous trouverez trois indicateurs principaux qui résument votre activité récente :
* **Volume brut des collectes**: Affiche le montant total collecté sur la période sélectionnée.
* **Nombre de remboursements**: Indique le nombre total de remboursements effectués sur la période.
* **Collectes réussies**: Montre le volume des transactions finalisées avec succès..
**Astuce** : Utilisez les filtres de période (jour, semaine, mois, année) en haut à droite pour visualiser l’évolution de vos performances dans le temps.
### Informations sur les Paiements
Un peu plus bas, l’interface présente une analyse détaillée de vos paiements, ventilés **par méthode de paiement** (carte bancaire, mobile money, etc.).
Vous avez accès à :
* **Volume par méthode de paiement**: Comparez les montants collectés via chaque méthode. Idéal pour identifier les canaux les plus performants.
* **Nombre de paiements par méthode**: Visualisez la fréquence d’utilisation de chaque méthode de paiement.
Les données peuvent être filtrées sur différentes périodes :
**Hier, 7 derniers jours, mois dernier, ou année en cours.**
**Note**
* La page Accueil est votre hub de pilotage quotidien.
* Les données sont mises à jour en temps réel.
* Des filtres dynamiques permettent une analyse rapide par période.
* Toutes les sections incluent des représentations graphiques pour une meilleure lisibilité.
# Page de Paiement
Source: https://docs.fedapay.com/dashboard/fr/page-fr
La **section Page de Paiement** permet de créer et de gérer des pages de paiement personnalisées pour vos produits, services ou dons. Chaque page créée contiendra des informations essentielles telles que le nom, le montant, le statut et la date de la collecte.
### Créer une Nouvelle Page de Paiement
Pour ajouter une nouvelle page de paiement :
1-Cliquez sur “Ajouter une page”.
2-Remplissez les informations suivantes :
* **Nom de la page** : Donnez un titre à votre page de paiement.
* **Description** : Décrivez brièvement l’objet de la collecte.
* **Image** : Ajoutez une image pour personnaliser la page (facultatif).
3-Choisissez l'option de collecte :
* **Montant fixe** : Si vous souhaitez fixer un montant pour le paiement.
* **Numéros de téléphone** : Si vous préférez recueillir des numéros de téléphone des payeurs.

### Options Avancées
Pour personnaliser davantage votre page, vous avez accès à des **options avancées :**
* **Lien personnalisé** : Créez un lien unique pour partager votre page de paiement.
* **Message de paiement réussi** : Personnalisez le message qui apparaîtra après un paiement réussi.
* **Lien de retour** : Fournissez un lien de retour vers votre site ou une page spécifique après le paiement.
* **Informations supplémentaires** : Choisissez des informations supplémentaires à recueillir sur la page (par exemple, un code de réduction, une adresse, etc.).
Personnalisez également le type de collecte en fonction de vos besoins, tels que :
* **Créer votre propre modèle** : Pour un format personnalisé.
* **Événements et billets** : Organiser des paiements pour des événements spécifiques.
* **Accepter des dons** : Créer une page dédiée à la collecte de dons.
* **Vente de produits et services** : Mettre en place une page pour la vente en ligne.
### Gestion des Pages de Paiement
Une fois vos pages créées, vous pouvez facilement **trier** et **organiser** vos pages grâce à :
* Le **bouton Filtrer** qui vous permet de trier les pages par **Nom, Description, ou Lien personnalisé.**
**À retenir**
* Créez des **pages de paiement personnalisées** pour gérer vos collectes.
* Personnalisez chaque page avec des **options avancées** pour répondre à vos besoins.
* Organisez et filtrez **vos pages de collecte** pour un suivi optimal.
# Paiement : Programmer des Dépôts
Source: https://docs.fedapay.com/dashboard/fr/payout-fr
Avec FedaPay, vous pouvez non seulement recevoir des dépôts de vos clients, mais également en effectuer des dépôts vers ceux-ci depuis votre compte FedaPay. Ce service est conçu pour automatiser les opérations financières de votre entreprise, quelle que soit sa taille ou son secteur d'activité, qu'il s'agisse de régler des salariés, des fournisseurs ou des partenaires via des virements ponctuels ou programmés.
### Activer la fonctionnalité Payout sur votre compte FedaPay
La fonctionnalité Payout vous permet d’effectuer des dépôts (versements) directement vers des comptes Mobile Money depuis votre solde FedaPay.
**Comment activer Payout ?**
Pour activer cette fonctionnalité, vous devez envoyer une demande par email à [support@fedapay.com](mailto:support@fedapay.com)
incluant :
1- Les informations de votre compte FedaPay :
* Nom du compte
* Référence du compte
* Adresse email associée
2- La raison pour laquelle vous souhaitez activer Payout (obligatoire).
Notre équipe examinera votre demande et vous notifiera une fois l’activation effectuée.
Pour plus de détails, vous pouvez consulter l’article de notre base de connaissances
: [**Comment effectuer un dépôt (Payout) avec FedaPay**](https://support.fedapay.com/portal/fr/kb/articles/comment-effectuer-un-d%C3%A9p%C3%B4t-payout-avec-fedapay-20-3-2025)
**Règles importantes à connaître**
* Vous ne pouvez pas effectuer plus de 3 dépôts (Payouts) vers un même numéro Mobile Money en l’espace de 24 heures.
* Le montant d’un dépôt ne peut pas excéder 1 000 000 XOF.
**⚠️ Bonnes pratiques :**
* Assurez-vous que le numéro Mobile Money destinataire est actif et valide avant d’initier un Payout.
* Tenez compte des plafonds journaliers fixés par les opérateurs Mobile Money pour éviter tout rejet.
### Accéder à la Section Paiements
Rendez-vous dans le menu Paiements de votre tableau de bord pour consulter la liste des transactions ordonnées avec vos fonds disponibles, le statut des différents dépôts, ainsi que les dates de dépôt et de création.

Vous pouvez utiliser des filtres pour trier et rechercher facilement les dépôts effectués ou planifiés.
**Ajouter un Dépôt**
Pour ordonner un dépôt, deux options s'offrent à vous :
1. **Paiement unique**
* Cliquez sur **Ajouter un dépôt**.
* Indiquez le **bénéficiaire** et le **montant** à transférer.
* Validez en cliquant sur **Ajouter**.
2. **Paiement multiple**
* Idéal pour gérer plusieurs dépôts vers un même destinataire ou différents destinataires, à la même date ou à des dates différentes.
* Préparez un fichier CSV contenant les informations des dépôts, avec les colonnes suivantes :
* Nom, prénom, e-mail, numéro de téléphone, montant.
* Téléchargez un exemple de fichier [ici](https://dev-api.fedapay.com/assets/payouts_sample_fr.csv).
* Une fois le fichier CSV rempli, cliquez sur **Importer un CSV** et sélectionnez votre fichier pour charger la liste des dépôts.
### Envoi de Dépôt
Une fois les dépôts importés, ils apparaîtront avec le statut **En attente**. Utilisez les filtres pour afficher uniquement les dépôts en attente d'envoi.
***Options d'Envoi de Dépôt***
**Envoi unique**
* Cliquez sur **Envoyer** à côté d'un dépôt spécifique.
* Choisissez entre **Envoyer maintenant** ou **Programmer l'envoi** à une date et heure spécifiques.

**Envoi multiple**
* Sélectionnez plusieurs dépôts en cochant les cases correspondantes ou cochez **Tout sélectionner** pour inclure tous les dépôts d'une page.
* Cliquez sur **Envoyer** pour initier l'envoi des dépôts sélectionnés.
**Vous aurez les options suivantes pour les dépôts sélectionnés :**
* **Envoyer maintenant** : pour un envoi immédiat.
* **Envoyer tous les paiements à une même date** : idéal pour organiser un versement global à une date précise.
* **Envoyer tous les paiements à des dates différentes** : programmez chaque dépôt selon les dates assignées dans le fichier CSV.
# Gestion du Profil et Sécurité
Source: https://docs.fedapay.com/dashboard/fr/profile-fr
Cette section vous permet de configurer votre compte utilisateur et de renforcer la sécurité de vos accès. Elle se divise en deux onglets principaux : **Profil** et **Activités de connexion**.
### Profil – Personnalisation et Sécurité du Compte
Depuis votre interface, cliquez sur votre **nom ou avatar** en haut à droite de l’écran, puis sélectionnez **Paramètres**. Dans l’onglet **Profil**, vous pouvez :
* Modifier vos **informations personnelles** : prénom, nom, langue d’affichage.
* Changer votre **mot de passe**.
* Activer la **vérification en deux étapes (2FA)** pour sécuriser vos connexions.
**Astuce sécurité** : Activez 2FA pour recevoir un code de confirmation par SMS ou via une application (comme Google Authenticator).
### Activités de Connexion – Suivi des Accès au Compte
L’onglet **Activités de connexion** vous donne un aperçu complet des dernières tentatives de connexion à votre compte. Pour chaque activité, vous verrez :
* **Statut de la tentative** : ✅ Succès (vert) / ⚠️ Échec (jaune)
* **Ville / Région / Pays**
* **Date et heure**
Vous pouvez affiner votre recherche avec les filtres intégrés :
* **IP**
* **Localisation** (ville, région, pays)
**Bon à savoir** : En cas de tentative suspecte, changez immédiatement votre mot de passe et activez la 2FA si ce n’est pas encore fait.
# Remboursements : Suivi et Filtrage
Source: https://docs.fedapay.com/dashboard/fr/refunds-fr
Dans la session **Remboursements**, retrouvez toutes les informations concernant vos remboursements, telles que :
* **Montant remboursé**
* **Bénéficiaire**
* **Statut**
* **Date de remboursement et Date de création**
#### Comment initier un remboursement ?
Pour effectuer un remboursement depuis votre tableau de bord FedaPay, suivez ces étapes :
Si le statut est **Approuvé/transféré**, vous pouvez procéder au remboursement.
* L'adresse e-mail du client
* Une description du remboursement
***Note importante*** : Le remboursement est uniquement possible via **MTN Mobile Money**.
Vous pouvez également filtrer vos remboursements selon vos besoins en cliquant sur **Filtrer**, en sélectionnant vos critères (ID, référence, montant, statut, numéro de paiement, etc.), puis en cliquant sur **Envoyer**. Il est aussi possible d’**exporter les données en CSV** pour des analyses ultérieures.
# Retenues et Exports
Source: https://docs.fedapay.com/dashboard/fr/retenue-fr
### Retenue – Gestion des Fonds Bloqués
La section **Retenue** du tableau de bord permet de visualiser les transactions dont les fonds ont été temporairement bloqués à la suite d’une réclamation client (ex. : produit non reçu, service non conforme, etc.).
**Détails affichés pour chaque retenue** :
* **ID** : identifiant unique de la transaction concernée par la retenue.
* **Montant** : somme bloquée suite à la plainte du client.
* **Balance** : montant disponible restant sur le compte du marchand après application de la retenue.
* **Date de création** : date à laquelle la retenue a été appliquée.
La **retenue** est une mesure préventive de sécurité mise en place pour protéger les intérêts des clients.
Elle est levée manuellement ou automatiquement après résolution du litige, conformément aux politiques de médiation de FedaPay.
### Exports – Historique des Fichiers de Transactions
La section **Exports** vous permet d’accéder à l’historique des exports de transactions générés à partir de la section Transactions du tableau de bord.
**Informations disponibles pour chaque export** :
* **Nom** : nom attribué au fichier exporté (nom par défaut ou personnalisé).
* **Progression** : état du fichier en %
* **Date** : date et heure exactes de la demande d’export.
**Téléchargement** :
Une fois l'exportation finalisée, le fichier peut être téléchargé directement depuis cette section.
Vous pouvez filtrer les exports par date et nom pour retrouver facilement un fichier spécifique.
# Gestion des utilisateurs
Source: https://docs.fedapay.com/dashboard/fr/user-fr
Dans cette section, nous vous expliquons comment configurer et gérer les utilisateurs sur votre compte FedaPay. L'objectif est de vous permettre d'attribuer des rôles et des permissions spécifiques à vos collaborateurs pour sécuriser l'accès à votre compte et protéger vos données sensibles. Voici les étapes à suivre pour ajouter des utilisateurs, définir leurs rôles, et gérer leurs permissions.
Pour commencer, accédez à votre tableau de bord FedaPay et dirigez-vous vers la section **Paramètres d’Entreprise>Équipe**
Dans cette section, vous trouverez deux onglets : **Utilisateurs** et **'Invitations en attente'**.
Dans la section **Équipe**, cliquez sur **Ajouter un utilisateur**. Vous pourrez alors inviter vos collaborateurs à rejoindre votre compte FedaPay.

Chaque utilisateur doit avoir un rôle défini, en fonction de ses responsabilités. Voici les trois rôles disponibles, chacun avec des niveaux d'accès spécifiques :
* **Analyste**: Ce rôle est destiné aux membres de l'équipe chargés de suivre les performances financières de votre business. Ils peuvent consulter les rapports et évaluer les transactions.
* **Développeur** : Ce rôle est dédié aux membres techniques, tels que les programmeurs, responsables de l'intégration de l'API FedaPay ou de la configuration des paiements sur votre plateforme.
* **Administrateur** : Ce rôle vous est attribué en tant que propriétaire du compte. L'administrateur a un accès complet pour gérer tous les aspects du compte.

Entrez l’adresse e-mail du collaborateur que vous souhaitez ajouter à votre équipe, sélectionnez son rôle, puis cliquez sur **"Inviter"**.

Vous pouvez suivre les invitations en attente dans la section **Invitations en attente**. Une fois qu’un collaborateur accepte votre invitation, il apparaîtra dans la liste des utilisateurs dans la section **Équipe**.

Avec cette gestion des rôles et permissions, vous pouvez facilement attribuer des accès sécurisés à vos collaborateurs et protéger les données sensibles de votre entreprise.
# Gestion des clés API FedaPay
Source: https://docs.fedapay.com/integration-api/fr/api-manage-fr
Les clés API FedaPay sont des identifiants sensibles qui permettent d’accéder à votre compte et d’effectuer des opérations critiques (création de transactions, paiements, remboursements, payouts, etc.).À ce titre, elles doivent être protégées avec le même niveau d’exigence qu’un mot de passe administrateur.Une mauvaise gestion de vos clés API peut exposer votre entreprise à des risques majeurs : paiements frauduleux, fuite de données, pertes financières ou non-conformité réglementaire.
**Comprendre les risques liés aux clés API**
* Les clés publiques peuvent être utilisées côté client (front-end) et ne permettent que des actions limitées.
* Les clés secrètes, en revanche, donnent un accès complet à l’API FedaPay.Toute personne disposant de cette clé peut agir au nom de votre compte.
**FedaPay ne vous demandera jamais votre clé API secrète, que ce soit par e-mail, téléphone ou support client.**
## Bonnes pratiques pour protéger vos clés API secrètes
**1. Stockez vos clés dans un environnement sécurisé**
Les clés API secrètes doivent être stockées exclusivement dans :
* des variables d’environnement ;
* des services de gestion de secrets (Key Management System – KMS, vaults, secrets managers, etc.).
Évitez absolument :
* de les enregistrer en clair dans votre code source ;
* de les placer dans des fichiers locaux non sécurisés ;
* de les copier dans des outils collaboratifs non chiffrés.
Une fois générée, votre clé doit être immédiatement stockée de manière sécurisée et ne plus être exposée.
**2. Limitez strictement l’accès aux clés**
L’accès aux clés API secrètes doit être :
* réservé uniquement aux personnes et systèmes qui en ont réellement besoin ;
* encadré par une politique interne claire (qui peut créer, consulter ou remplacer une clé).
Nous recommandons de :
* revoir régulièrement les accès ;
* retirer les permissions inutiles ;
* auditer les usages internes en cas de doute.
**3. Ne partagez jamais vos clés de manière non sécurisée**
Ne partagez jamais vos clés API secrètes :
* par e-mail ;
* via des applications de messagerie instantanée ;
* dans des tickets de support ou captures d’écran.
Toute demande de clé API est un signal d’alerte potentiel.
**4. N’enregistrez jamais vos clés dans des dépôts de code**
Les dépôts Git (publics ou privés) sont une source fréquente de fuite de clés.
Même un dépôt privé peut être exposé :
* via les machines des développeurs ;
* par des outils tiers compromis ;
* ou par des erreurs de configuration.
Utilisez toujours des variables d’environnement et des fichiers ignorés par le versionnement (.env, secrets, etc.).
**5. N’intégrez jamais de clés secrètes dans des applications clientes**
Les clés API secrètes ne doivent jamais être intégrées dans :
* des applications mobiles ;
* du JavaScript côté navigateur ;
* des SDK distribués à des tiers.
Pour les usages côté client, utilisez exclusivement :
* les clés publiques prévues à cet effet ;
* ou des endpoints serveur intermédiaires sécurisés.
**6. Renouvelez régulièrement vos clés API**
La rotation des clés est une bonne pratique essentielle.Nous vous recommandons de :
* renouveler vos clés périodiquement, même sans incident ;
* mettre en place un processus clair de remplacement (ancienne → nouvelle clé).
Cela permet :
* d’identifier précisément où vos clés sont utilisées ;
* de réagir rapidement en cas de compromission ;
* de réduire l’impact d’un accès non autorisé.
**7. Surveillez les usages et comportements anormaux**
Surveillez régulièrement :
* les requêtes API effectuées avec vos clés ;
* l’utilisation des clés live dans des contextes inattendus (ex. environnement de test).
Assurez-vous notamment que :
* les clés sandbox sont utilisées uniquement en environnement de test ;
* les clés live ne sont pas exposées inutilement.
**8. Réagir en cas de clé API compromise**
Si vous pensez qu’une clé API a été exposée (publication accidentelle, fuite de code, activité suspecte) :
* Régénérez immédiatement la clé concernée depuis votre tableau de bord FedaPay.
* Remplacez la clé dans toutes vos intégrations.
* Désactivez l’ancienne clé dès que la nouvelle est opérationnelle.
* Analysez la cause de l’incident pour éviter qu’il ne se reproduise.
En cas de doute, il est toujours préférable de procéder à une rotation proactive des clés.
## Maintenir un haut niveau de sécurité dans le temps
La sécurité des clés API n’est pas une action ponctuelle, mais un processus continu.
Nous vous recommandons de :
* maintenir une documentation interne à jour ;
* former régulièrement vos équipes techniques ;
* revoir vos pratiques à chaque évolution de votre intégration.
## À retenir
Les clés API secrètes donnent un accès total à votre compte FedaPay.
Toute exposition peut entraîner des conséquences financières et réglementaires.
Une bonne gestion des clés protège à la fois votre entreprise et vos clients.
# Authentification
Source: https://docs.fedapay.com/integration-api/fr/authentication-fr
L'API de FedaPay vous permet d'intégrer facilement des solutions de paiement sur votre site web ou application. Elle vous offre des outils puissants pour gérer les transactions, suivre les paiements et interagir avec les clients de manière fluide et sécurisée, que vous soyez développeur ou chef d'entreprise.
Pour vous aider à profiter pleinement de nos services, l'intégration de FedaPay dans votre plateforme se déroule en trois étapes principales :
1. **Obtenez vos clés API** pour authentifier vos requêtes.
2. **Installez une librairie API** pour interagir avec FedaPay.
3. **Effectuez un test de requête API** pour valider l'intégration.
## Aperçu de l'API FedaPay
La solution de FedaPay vous permet de :
* **Créer des transactions** : gérez vos paiements et suivez leur statut.
* **Administrer les clients** : enregistrez les informations de vos clients pour des paiements récurrents ou des suivis faciles.
* **Configurer des notifications** : recevez des alertes en temps réel sur les changements d'état des transactions.
L'API de FedaPay prend en charge deux modes de collecte distincts :
* **Mode test** : pour simuler des transactions et tester votre intégration sans effectuer de paiements réels.
* **Mode live** : une fois votre intégration validée, vous pouvez passer en production pour gérer de véritables transactions.
Les objets créés en mode test (clients, transactions) sont totalement distincts de ceux créés en mode live. Il n'y a donc pas de risque de mélanger les données des deux environnements.
#### Voici les étapes à suivre pour intégrer FedaPay à votre application et commencer à effectuer des opérations en toute sécurité :
Chaque compte FedaPay est associé à deux clés API :
* **Clé de test** : pour effectuer des requêtes en mode test.
* **Clé live** : pour gérer les transactions réelles.
Ces clés sont essentielles pour que FedaPay authentifie vos requêtes. Sans clé ou avec une clé incorrecte, vos requêtes échoueront.
Vous pouvez récupérer vos clés API depuis le **tableau de bord** de votre compte FedaPay.
Une fois que vous avez obtenu vos clés et installé la librairie, il est temps d’effectuer un test pour valider votre intégration.
Voici un exemple de requête pour créer une opération de collecte de test au niveau de [L'API Reference](/api-reference/transactions/create)
FedaPay répondra avec un objet transaction contenant les détails de l'opération.
## Guide rapide d'intégration
1. **Créer un compte** sur FedaPay (test ou live).
2. **Obtenez vos clés API** depuis votre tableau de bord.
3. **Installez la librairie** correspondant à votre environnement de développement (PHP, Node.js, etc.).
4. **Effectuez une première requête** pour créer une transaction test et vérifier que tout fonctionne.
## Authentification de l’ API de FedaPay
L'authentification via l'API de FedaPay est une étape clé pour assurer la sécurité et l'intégrité de vos requêtes lors de l'interaction avec notre plateforme. Chaque requête envoyée à FedaPay doit être authentifiée avec vos clés API. Cela permet à FedaPay de vérifier que les requêtes proviennent d'une source autorisée.
#### Clés API : Types et Fonctionnement
Chaque compte FedaPay est fourni avec deux modes de clés API :
1. **Clés de test** : Utilisées dans les environnements de développement pour simuler des transactions sans répercussions financières. Elles vous permettent de vérifier que votre intégration fonctionne correctement.
2. **Clés en live** : Utilisées dans l'environnement de production pour gérer les transactions réelles.
Il est essentiel de ne pas mélanger ces deux modes de clés (clés de test et clés en live). Les objets (comme les collectes et les clients) créés en mode test ne peuvent pas être manipulés en mode live, et vice-versa.
En outre, il existe deux types de clés API dans chaque mode :
* **Clé publique** : Utilisée pour identifier votre compte FedaPay dans des environnements front-end (comme les applications mobiles ou les interfaces JavaScript). Elle ne donne pas accès à des actions critiques, mais permet de créer des tokens.
* **Clé secrète** : Doit rester confidentielle. Cette clé donne accès à toutes les fonctionnalités de l'API et permet d'exécuter des actions sensibles comme la création de transactions ou l'émission de remboursements. Assurez-vous de ne jamais exposer cette clé dans des environnements publics.
#### Obtenir vos Clés API
Vos clés API sont accessibles depuis votre tableau de bord FedaPay :
* Pour les tests, utilisez uniquement les **clés de test**. Cela permet de sécuriser vos clients réels en évitant toute modification accidentelle de leurs données pendant vos phases de développement.
* En production, passez aux **clés en live** une fois votre intégration validée.
#### Sécurisation des Clés API
La sécurité des clés API est primordiale pour protéger vos transactions et les informations de vos clients. Voici quelques bonnes pratiques à suivre :
* **Confidentialité des clés secrètes** : Ne partagez jamais vos clés secrètes et limitez leur accès uniquement aux systèmes et aux utilisateurs qui en ont besoin.
* **Stockage sécurisé** : Assurez-vous que vos clés API ne sont jamais incluses dans des systèmes de contrôle de version (comme Git), ou dans des fichiers qui pourraient être accessibles publiquement.
* **Régénération des clés** : Si vous soupçonnez qu'une de vos clés API a été compromise, régénérez-la immédiatement depuis le tableau de bord FedaPay. La clé compromise sera rendue inutilisable, et une nouvelle sera générée.
# Gestion des collectes
Source: https://docs.fedapay.com/integration-api/fr/collects-management-fr
L'API de FedaPay permet d’intégrer facilement des solutions de paiement sécurisées dans votre site web ou application. Ce guide vous expliquera en détail comment configurer et gérer la collecte de paiements à l’aide de l’API, de la création initiale à la finalisation du processus, en passant par les fonctionnalités avancées comme les paiements sans redirection. Que vous soyez développeur ou responsable de produits, vous trouverez ici tout le nécessaire pour utiliser FedaPay de manière optimale.
### Étapes pour Créer et Gérer une Collecte de Paiement
Les étapes de configuration d’une collecte se divisent en plusieurs processus essentiels.
La première étape consiste à envoyer une requête de création de collecte via l’API. Cette requête nécessite certains paramètres obligatoires :
* **description** : une brève description de l’objet de la collecte
* **amount** : le montant, toujours en nombre entier
* **currency** : la devise, indiquée par son numéro ou code ISO (référez-vous au Tableau des Devises FedaPay pour les détails)
* **callback\_url** : un lien de retour facultatif pour rediriger le client après le paiement
* **customer** : le client concerné par la collecte
Si le client n’est pas encore enregistré dans votre système, vous pouvez créer simultanément son profil en ajoutant des informations comme le nom, prénom, email, et numéro de téléphone.
#### Exemple de requête pour créer une collecte
```java Curl highlight={10,19} theme={null}
curl -X POST \
https://sandbox-api.fedapay.com/v1/transactions \
-H 'Authorization: Bearer TOKEN' \
-H 'Content-Type: application/json' \
-d '{
"description" : "Transaction for john.doe@example.com",
"amount" : 2000,
"currency" : {"iso" : "XOF"},
"callback_url" : "https://maplateforme.com/callback",
// Si le client n'existe pas encore
"customer" : {
"firstname" : "John",
"lastname" : "Doe",
"email" : "john.doe@example.com",
"phone_number" : {
"number" : "+22997808080",
"country" : "bj"
}
//Si le client existe déjà
"customer": { id: 1 }
}
}'
```
```javascript NodeJs highlight={9,18} theme={null}
const { FedaPay, Transaction } = require('fedapay');
FedaPay.setApiKey('YOUR_SECRET_API_KEY');
FedaPay.setEnvironment('sandbox');
const transaction = await Transaction.create({
description: 'Payment for order #1234',
amount: 1000,
currency: { iso: 'XOF' },
callback_url: 'https://example.com/callback',
// Si le client n'existe pas encore
customer : {
firstname : "John",
lastname : "Doe",
email : "john.doe@example.com",
phone_number : {
number : "+22997808080",
country : "bj"
}
//Si le client existe déjà
customer: { id: 1 }
});
```
```php PHP highlight={8,18} theme={null}
\FedaPay\Fedapay::setApiKey('YOUR_API_KEY');
\FedaPay\Fedapay::setEnvironment('sandbox');
$transaction = \FedaPay\Transaction::create([
'description' => 'Payment for order #1234',
'amount' => 1000,
'currency' => ['iso' => 'XOF'],
'callback_url' => 'https://example.com/callback',
// Si le client n'existe pas encore
'customer' => [
'firstname' => 'John',
'lastname' => 'Doe',
'email' => 'john.doe@example.com',
'phone_number' => [
'number' => '+22997808080',
'country' => 'bj'
]
]
//Si le client existe déjà
'customer' => ['id' => 1]
]);
```
```Ruby Ruby highlight={9,19} theme={null}
require 'fedapay'
FedaPay.api_key = 'YOUR_SECRET_API_KEY'
FedaPay.environment = 'sandbox'
transaction = FedaPay::Transaction.create(
description: 'Payment for order #1234',
amount: 1000,
currency: { iso: 'XOF' },
callback_url: 'https://example.com/callback',
#Si le client n'existe pas encore :
customer: {
firstname: 'John',
lastname: 'Doe',
email: 'john.doe@example.com',
phone_number: {
number: '+22997808080',
country: 'bj'
}
}
#Si le client existe déjà
customer: { id: 1 },
)
puts "Transaction successfully created : #{transaction.inspect}"
```
[Retrouvez plus d’informations dans notre Reference API](/api-reference/transactions/create)
Remplacez **YOUR\_SECRETE\_API\_KEY** par votre clé API et utilisez l’URL du serveur approprié (**sandbox** ou **live**).
Si le client est déjà enregistré, utilisez simplement son ID ou email pour l’associer à la collecte.
**Attention :**
Le paramètre **customer** n’est pas obligatoire. Cependant, lorsque vous créer une transaction avec un customer, assurez-vous que l’adresse email est unique. En effet, FedaPay considère qu’il s’agit du meme customer si les emails sont identique. Si vous envoyer la meme adresse email et que vous renseignez des nom, prénom et numéros de téléphone différents, FedaPay mettra simplement à jour le customer avec les nouvelles informations.
Une fois la requête envoyée, l'API renvoie un identifiant unique pour la collecte. Utilisez cet identifiant pour demander un lien et un token de paiement pour rediriger le client vers la page de paiement sécurisée.
```java cURL theme={null}
curl -X POST \
https://sandbox-api.fedapay.com/v1/transactions/ID/token \
-H 'Authorization: Bearer TOKEN' \
-H 'Content-Type: application/json'
```
```javaScript NodeJS theme={null}
const transaction = await Transaction.create({...})
const token = await transaction.generateToken();
return redirect(token.url);
```
```PHP PHP theme={null}
$transaction = \FedaPay\Transaction::create(array(...))
$token = $transaction->generateToken();
return header('Location: ' . $token->url);
```
```Ruby Ruby theme={null}
require 'fedapay'
# Configure FedaPay API credentials
FedaPay.api_key = 'YOUR_SECRET_API_KEY'
FedaPay.environment = 'sandbox' # or 'live'
# Créer une transaction
transaction = FedaPay::Transaction.create(
amount: 1000,
currency: { iso: 'XOF' },
customer: { id: 1 },
description: 'Payment for order #1234',
callback_url: 'https://example.com/callback'
)
puts "Transaction successfully created: #{transaction.id}"
# Générer un token de paiement
token = transaction.generate_token
#Afficher le lien sécurisé de paiement
puts "Redirect user to: #{token.url}"
```
Le lien ainsi généré peut être utilisé pour rediriger les utilisateurs vers la page de paiement de FedaPay.
Ce lien redirige votre client vers une page de paiement sécurisée, où il pourra finaliser la collecte. Si vous avez spécifié un **callback\_url**, votre client sera redirigé automatiquement à l’issue du paiement.
Le **callback\_url** permet de rediriger le client vers une page spécifique à la fin du paiement, avec le statut et l'ID de la collecte en paramètres. Par exemple :
* **Paiement approuvé** : `https://www.monsite.com/?id=258&status=approved`
* **Paiement annulé** : `https://www.monsite.com/?id=259&status=canceled`
**Attention** : Pour des raisons de sécurité, ne vous fiez pas au statut renvoyé par l'URL.
Effectuez toujours une vérification directe auprès de l’API pour obtenir le statut réel.
Pour récupérer les informations complètes d’une collecte, effectuez une requête avec l'ID de cette collecte.
#### Exemple de requête pour récupérer les détails d’une collecte
```java cURL theme={null}
/*Remplacez YOUR_SECRETE_API_KEY par la clé API secrète de votre compte sandbox ou live. Si vous utilisez votre compte live, vous devez remplacer le lien par https://api.fedapay.com/v1/transactions/ID */
curl -X GET \
https://sandbox-api.fedapay.com/v1/transactions/ID \
-H 'Authorization: Bearer TOKEN' \
-H 'Content-Type: application/json'
```
```javascript NodeJs theme={null}
const { FedaPay, Transaction } = require('fedapay');
/* Remplacez YOUR_SECRETE_API_KEY par votre véritable clé API */
FedaPay.setApiKey("YOUR_SECRETE_API_KEY");
/* Indiquez si vous souhaitez exécuter votre requête en mode test ou en mode live */
FedaPay.setEnvironment('sandbox'); //or setEnvironment('live');
/* Afficher les clients */
const transaction = await Transaction.retrieve(ID, params = {}, headers = {});
```
```php PHP theme={null}
\FedaPay\Fedapay::setApiKey(MY_API_KEY);
$customer = \FedaPay\Transaction::retrieve(ID, params = {}, header = {});
```
```Ruby Ruby theme={null}
require 'fedapay';
# configurer la bibliothèque FedaPay
FedaPay.api_key = '' # Votre clé API secrète
FedaPay.environment = '' # sandbox or live
transactions = FedaPay::Transaction.retrieve(ID);
```
[Retrouvez plus d’informations dans notre Reference API](/api-reference/transactions/get-by-id)
### Paiements sans Redirection
Pour offrir une expérience fluide sans redirection, vous pouvez intégrer directement le formulaire de paiement dans votre application pour certaines méthodes spécifiques (MTN Bénin, Moov Bénin, Moov Togo, et MTN Côte d’Ivoire). Ce mode de paiement est particulièrement utile pour les sites e-commerce qui souhaitent garder l'utilisateur sur leur plateforme tout au long du processus, sans redirection vers une autre page.
**Envoi d’un Paiement Mobile Sans Redirection**
Le processus de paiement mobile sans redirection se divise en deux étapes principales dans l'environnement **Live** ou **Sandbox** :
La première étape consiste à créer une collecte via l'API de FedaPay. Cela génère un **token** qui est nécessaire pour effectuer la transaction.
Une fois que vous avez le token de paiement, vous devez envoyer une requête à l'API FedaPay pour traiter le paiement. La requête se fait en utilisant une des [méthodes de paiement](/payment-methods/fr/payment-methods-fr) spécifiques
***Voici un exemple de code pour envoyer un paiement mobile sans redirection***
```java curl theme={null}
curl -X POST \
https://sandbox-api.fedapay.com/v1/METHODE_PAIEMENT \
-H 'Authorization: Bearer TOKEN' \
-H 'Content-Type: application/json'
-d '{
"token" : "TOKEN_DE_PAIEMENT",
"phone_number" = {
"number": "64000001",
"country":"bj"
}
}'
```
```javascript Node.js theme={null}
const { FedaPay, Transaction } = require('fedapay');
/* Configure your API key and environment */
FedaPay.setApiKey('YOUR_SECRET_API_KEY');
FedaPay.setEnvironment('sandbox'); // or 'live'
/* Create a transaction */
const transaction = await Transaction.create({
description: 'Payment for order #5678',
amount: 1000,
currency: { iso: 'XOF' },
callback_url: 'https://example.com/callback',
customer: { id: 1 }
});
console.log('Transaction created:', transaction.id);
/* Generate a payment token */
const token = transaction.generateToken().token;
/* Define payment method */
const mode = 'mtn'; // or 'moov', 'mtn_ci', 'moov_tg'
/* Optional phone number for the transaction */
const phone_number = {
number: '64000001',
country: 'bj'
};
/* Trigger payment using the token */
await transaction.sendNowWithToken(mode, token, phone_number);
console.log(`Payment initiated via ${mode} for transaction ${transaction.id}`);
/* Or trigger the payment in one step */
await transaction.sendNow(mode, phone_number);
```
```php PHP theme={null}
// Configure your API key and environment
\FedaPay\FedaPay::setApiKey('YOUR_SECRET_API_KEY');
\FedaPay\FedaPay::setEnvironment('sandbox'); // or 'live'
// Create a transaction
$transaction = \FedaPay\Transaction::create([
"description" => "Payment for order #5678",
"amount" => 1000,
"currency" => ["iso" => "XOF"],
"callback_url" => "https://example.com/callback",
"customer" => ["id" => 1]
]);
// Generate a payment token
$token = $transaction->generateToken()->token;
// Définir la méthode de paiement
$mode = 'METHODE_PAIEMENT'; // 'mtn', 'moov', 'mtn_ci', 'moov_tg'
// (Optional) Phone number linked to payment
$phone_number = [
"number" => "64000001",
"country" => "bj"
];
// Trigger payment with token
$transaction->sendNowWithToken($mode, $token, $phone_number);
// Or, trigger the payment in one step
$transaction->sendNow($mode, $phone_number);
```
```Ruby Ruby theme={null}
require 'fedapay'
# Configure FedaPay API credentials
FedaPay.api_key = 'YOUR_SECRET_API_KEY'
FedaPay.environment = 'sandbox' # or 'live'
# Create a transaction
transaction = FedaPay::Transaction.create(
amount: 1000,
currency: { iso: 'XOF' },
customer: { id: 1 },
description: 'Payment for order #5678',
callback_url: 'https://example.com/callback'
)
puts "Transaction created: #{transaction.id}"
# Generate a payment token
token_data = transaction.generate_token
token = token_data.token
# Define the payment method
mode = 'mtn' # or 'moov', 'mtn_ci', 'moov_tg'
# (Optional) Phone number for the payment
phone_number = {
number: '64000001',
country: 'BJ'
}
# Trigger immediate payment with the token
transaction.send_now_with_token(mode, token, phone_number)
puts "Payment initiated via #{mode} for transaction #{transaction.id}"
# Or trigger the payment in one step
transaction.send_now(mode, phone_number)
```
**Attention :**
Remplacez **METHODE\_PAIEMENT** par la [méthode de paiement](https://docs.fedapay.com/payment-methods/fr/payment-methods-fr#modes-de-paiement-disponibles-sans-redirection) choisie (par exemple **mtn\_open**, **moov**, etc.).
**VOTRE\_CLE\_API\_SECRETE** doit être remplacée par votre clé API secrète (en mode **sandbox** pour les tests ou en mode **live** pour les transactions en production).
Lorsque vous êtes prêt à passer en production, remplacez l'URL de **sandbox** par l'URL en mode **Live** :
* **Sandbox** : `https://sandbox-api.fedapay.com`
* **Live** : `https://api.fedapay.com/v1/transactions/ID`
***Important** : Veillez à tester minutieusement vos intégrations dans l'environnement **sandbox** avant de les déployer en production*
**Attention :**
Le paramètre ***phone\_number*** n’est pas obligatoire pour la requête d’envoie de notification de paiement. Cependant, s’il n’est pas mentionné, FedaPay essaiera d’envoyer la notification au numéro lié au client associé à la transaction lors de sa création.
**Remarque** : Le paiement sans redirection ne prend pas en charge tous les opérateurs. Consulter la section [Méthodes de Paiement](/payment-methods/fr/payment-methods-fr) pour en savoir un peu plus.
### Récupération Automatique du Statut d’une Collecte
Pour vérifier le statut final d’une collecte, surtout lors d’un paiement sans redirection :
* Envoyez une requête pour obtenir les détails de la collecte.
* **Implémentez un webhook** pour recevoir des notifications automatiques. [Consultez la section Webhooks pour plus de détails](/integration-api/fr/webhooks-fr).
### Cycle de Vie d’une Collecte : Les Statuts

Le diagramme ci-dessus illustre le cycle de vie complet d'une Collecte, de sa création jusqu'à son statut final.
Chaque collecte passe par différents statuts :
* **pending** : En attente (statut par défaut à la création)
* **approved** : Approuvée (paiement réussi)
* **declined** : Déclinée (interruption volontaire ou accidentelle par le client)
* **canceled** : Annulée (solde insuffisant ou autre problème de paiement)
* **refunded** : Remboursée (somme reversée au client)
* **transferred** : Transférée (montant transféré sur le compte marchand)
* **expired** : la collecte n’a pas été finalisée dans le délai imparti
Les statuts **canceled** et **declined** ne sont pas des statuts finaux une nouvelle tentative de paiement peut être relancée. Une collecte **pending** non finalisée expire automatiquement après 24 heures. Un remboursement peut être initié depuis **approved** ou **transferred** via une tentative de remboursement.
Pour consulter le statut en temps réel, rendez-vous dans le tableau de bord FedaPay sous la section **Collectes** ou utilisez l’API pour vérifier avec l'ID de la collecte.
### Ajouter des données personnalisées à vos transactions : merchant\_reference et custom\_metadata
Lorsque vous créez une transaction via l’API de FedaPay, il est souvent nécessaire d’y associer des informations propres à votre application. Cela vous permet de mieux suivre, analyser ou relier une transaction à un utilisateur ou une commande spécifique sur votre plateforme. FedaPay vous offre deux champs très utiles pour cela : **merchant\_reference** et **custom\_metadata**.
**merchant\_reference : Votre identifiant unique pour chaque transaction**
Le champ **merchant\_reference** vous permet d’attribuer à chaque transaction un identifiant unique défini par vous-même (par exemple : un ID de commande, un numéro de facture ou le code d’une session d’achat). Cet identifiant est stocké par FedaPay et peut ensuite être utilisé pour retrouver facilement la transaction via une API dédiée.
**Pourquoi l’utiliser ?**
* Vous avez une plateforme e-commerce ou une application mobile et souhaitez lier une transaction FedaPay à un paiement interne.
* Vous souhaitez retrouver rapidement une transaction en utilisant vos propres références, sans avoir à stocker l’ID généré par FedaPay.
* Vous voulez tracer plus facilement les paiements effectués par vos clients.
**Exemple : Créer une transaction avec merchant\_reference**
```java Curl theme={null}
curl -X POST \
https://sandbox-api.fedapay.com/v1/transactions \
-H 'Authorization: Bearer TOKEN' \
-H 'Content-Type: application/json' \
-d '{
"description" : "Transaction for john.doe@example.com",
"amount" : 2000,
"currency" : {"iso" : "XOF"},
"callback_url" : "https://maplateforme.com/callback",
"customer" : {
"email" : "john.doe@example.com",
},
"merchant_reference": "CMD-20250701-001"
}'
```
```javascript NodeJs theme={null}
const { FedaPay, Transaction } = require('fedapay');
// Configurer la clé API et l'environnement
FedaPay.setApiKey('YOUR_SECRET_API_KEY');
FedaPay.setEnvironment('sandbox'); // ou 'live'
// Créer une transaction avec merchant_reference et custom_metadata
const transaction = await Transaction.create({
description: 'Transaction for john.doe@example.com',
amount: 2000,
currency: { iso: 'XOF' },
callback_url: 'https://maplateforme.com/callback',
customer: {
email: 'john.doe@example.com'
},
merchant_reference: 'CMD-20250701-001',
custom_metadata: {
order_type: 'online',
promo_code: 'SUMMER2025'
}
});
console.log('Transaction created:', transaction.id);
```
```php PHP theme={null}
$transaction = \FedaPay\Transaction::create([
"description" => "Transaction for john.doe@example.com",
"amount" => 2000,
"currency" => ["iso" => "XOF"],
"callback_url" => "https://maplateforme.com/callback",
"customer" => [
"email" => "john.doe@example.com"
],
"merchant_reference" => "CMD-20250701-001",
"custom_metadata" => [
"order_type" => "online",
"promo_code" => "SUMMER2025"
]
]);
echo "Transaction created: " . $transaction->id;
```
```Ruby Ruby theme={null}
require 'fedapay'
# Configurer la clé API et l'environnement
FedaPay.api_key = 'YOUR_SECRET_API_KEY'
FedaPay.environment = 'sandbox' # ou 'live'
# Créer une transaction avec merchant_reference et custom_metadata
transaction = FedaPay::Transaction.create(
description: 'Transaction for john.doe@example.com',
amount: 2000,
currency: { iso: 'XOF' },
callback_url: 'https://maplateforme.com/callback',
customer: { email: 'john.doe@example.com' },
merchant_reference: 'CMD-20250701-001',
custom_metadata: {
order_type: 'online',
promo_code: 'SUMMER2025'
}
)
puts "Transaction created: #{transaction.id}"
```
Dans cet exemple, CMD-20250701-001 est la référence propre au marchand pour cette commande.
**Récupérer une transaction avec la référence marchand**
```java Curl theme={null}
curl -X GET \
https://sandbox-api.fedapay.com/v1/transactions/merchant/{reference}
\
-H 'Authorization: Bearer VOTRE_CLE_API_SECRETE' \
-H 'Content-Type: application/json'
```
```javascript NodeJs theme={null}
const { FedaPay, Transaction } = require('fedapay');
/* Replace YOUR_SECRET_API_KEY with your real API key */
FedaPay.setApiKey("YOUR_SECRET_API_KEY");
/* Specify whether you want to run your query in test or live mode */
FedaPay.setEnvironment('sandbox'); // or 'live'
/* Merchant reference to search */
const reference = 'CMD-20250701-001';
/* Retrieve transaction by merchant reference */
const transaction = await Transaction.retrieveByMerchantReference(reference);
console.log("Transaction found:", transaction.id);
```
```php PHP theme={null}
$merchant_reference = 'CMD-20250701-001';
$transaction = \FedaPay\Transaction::retrieveByMerchantReference($merchant_reference);
echo "Transaction found: " . $transaction->id;
```
```Ruby Ruby theme={null}
require 'fedapay'
FedaPay.api_key = 'YOUR_SECRET_API_KEY'
FedaPay.environment = 'sandbox' # or 'live'
reference = 'CMD-20250701-001'
transaction = FedaPay::Transaction.retrieve_by_merchant_reference(reference)
puts "Transaction found: #{transaction.id}"
```
**custom\_metadata : Ajouter des données personnalisées à vos transactions**
Avec le champ **custom\_metadata**, vous pouvez enregistrer des informations supplémentaires directement dans la transaction. Il peut s’agir, par exemple :
* Le numéro de la commande
* Du type de service acheté
* De l’identifiant de l’agent vendeur
* Ou toute autre donnée utile pour vous.
Ces données sont stockées sous forme de paires clé-valeur et restent attachées à la transaction, sans affecter son traitement.
**Pourquoi l’utiliser ?**
* Pour enrichir vos rapports internes ou automatiser certains traitements en récupérant vos propres données.
* Pour éviter de stocker des informations sensibles côté client.
* Pour gagner du temps lors du rapprochement comptable ou des vérifications manuelles.
**Exemple : Créer une transaction avec custom\_metadata**
```java Curl theme={null}
curl -X POST https://sandbox-api.fedapay.com/v1/transactions \
-H 'Authorization: Bearer TOKEN' \
-H 'Content-Type: application/json' \
-d '{
"description": "Abonnement premium",
"amount": 10000,
"currency": {"iso": "XOF"},
"callback_url": "https://votreapp.com/callback",
"customer": {
"email": "utilisateur@votreapp.com"
},
"custom_metadata": {
"client_id": "USER-14567",
"forfait": "premium",
"langue": "fr"
}
}'
```
```javascript NodeJs theme={null}
const { FedaPay, Transaction } = require('fedapay');
/* Replace YOUR_SECRET_API_KEY with your real API key */
FedaPay.setApiKey("YOUR_SECRET_API_KEY");
/* Specify whether you want to run your query in test or live mode */
FedaPay.setEnvironment('sandbox'); // or 'live'
/* Create a transaction with custom_metadata */
const transaction = await Transaction.create({
description: "Abonnement premium",
amount: 10000,
currency: { iso: "XOF" },
callback_url: "https://votreapp.com/callback",
customer: {
email: "utilisateur@votreapp.com"
},
custom_metadata: {
client_id: "USER-14567",
forfait: "premium",
langue: "fr"
}
});
console.log("Transaction created:", transaction.id);
```
```php PHP theme={null}
// Configurer la clé API et l'environnement
\FedaPay\FedaPay::setApiKey('YOUR_SECRET_API_KEY');
\FedaPay\FedaPay::setEnvironment('sandbox'); // ou 'live'
// Créer une transaction avec custom_metadata
$transaction = \FedaPay\Transaction::create([
"description" => "Abonnement premium",
"amount" => 10000,
"currency" => ["iso" => "XOF"],
"callback_url" => "https://votreapp.com/callback",
"customer" => [
"email" => "utilisateur@votreapp.com"
],
"custom_metadata" => [
"client_id" => "USER-14567",
"forfait" => "premium",
"langue" => "fr"
]
]);
echo "Transaction created: " . $transaction->id;
```
```Ruby Ruby theme={null}
require 'fedapay'
FedaPay.api_key = 'YOUR_SECRET_API_KEY'
FedaPay.environment = 'sandbox' # or 'live'
transaction = FedaPay::Transaction.create(
description: 'Abonnement premium',
amount: 10000,
currency: { iso: 'XOF' },
callback_url: 'https://votreapp.com/callback',
customer: {
email: 'utilisateur@votreapp.com'
},
custom_metadata: {
client_id: 'USER-14567',
forfait: 'premium',
langue: 'fr'
}
)
puts "Transaction created: #{transaction.id}"
```
**Bonnes pratiques** :
* Assurez-vous que la valeur de merchant\_reference est unique pour chaque transaction. Si la valeur de l’identifiant existe déjà, la création de la transaction échouera.
* Utilisez custom\_metadata uniquement pour des données non sensibles (évitez les mots de passe, données de carte, etc.).
* Ces champs sont facultatifs, mais très utiles pour automatiser vos flux métier et faciliter l’intégration avec vos outils internes.
# Gestion des clients
Source: https://docs.fedapay.com/integration-api/fr/customer-management-fr
La **gestion des clients** est une étape essentielle pour effectuer des transactions via la plateforme FedaPay. Chaque transaction est liée à un client, c’est pourquoi vous devez enregistrer et gérer vos clients dans le système avant de pouvoir initier une transaction.
## Création des clients
La création d’un client dans FedaPay se fait via une requête API qui permet d'ajouter les informations nécessaires sur votre client. Ces données sont utilisées lors des transactions pour identifier clairement l'utilisateur.
### Paramètres nécessaires
Lors de la création d’un client, vous devez fournir les informations suivantes :
* **Prénom (firstname)** : le prénom du client.
* **Nom (lastname)** : le nom de famille du client.
* **Email (email)** : l’adresse email du client, qui servira pour toute communication et confirmation.
* **Numéro de téléphone (phone\_number)** : facultatif, mais utile pour des transactions avec certains services (doit inclure l’indicatif du pays, ex. +229 pour le Bénin).
Ces informations sont obligatoires à l'exception du numéro de téléphone, mais il est conseillé de les fournir pour améliorer le suivi des interactions avec le client et les paiements.
**Exemple de requête API pour la création d’un client**
Vous pouvez ajouter un nouveau client en envoyant une requête à l’API FedaPay. Voici des exemples dans différents langages de programmation :
```java Curl theme={null}
curl --request POST \
--url https://sandbox-api.fedapay.com/v1/customers \
--header 'Authorization: Bearer ' \
--header 'Content-Type: application/json' \
--data '{
"email": "jsmith@example.com",
"phone_number": {
"number": 123,
"country": ""
},
"firstname": "",
"lastname": ""
}'
```
```javascript NodeJs theme={null}
const { FedaPay, Customer } = require('fedapay');
/* Replace YOUR_SECRETE_API_KEY with your real API key */
FedaPay.setApiKey("YOUR_SECRETE_API_KEY");
/* Specify whether you want to run your query in test or live mode */
FedaPay.setEnvironment('sandbox'); //or setEnvironment('live');
/* Create customer */
const customer = await Customer.create({
firstname: 'John',
lastname: 'Doe',
email: 'john@doe.com',
phone_number: {
number: '90090909',
country: 'BJ'
}
});
```
```Php PHP theme={null}
/* Replace YOUR_SECRETE_API_KEY with your secret API key */
\FedaPay\FedaPay::setApiKey("YOUR_SECRETE_API_KEY");
/* Specify whether you want to run your query in test or live mode */
\FedaPay\FedaPay::setEnvironment('sandbox'); //or setEnvironment('live');
/* Create customer */
\FedaPay\Customer::create(array(
"firstname" => "John",
"lastname" => "Doe",
"email" => "John.doe@gmail.com",
"phone_number" => [
"number" => "+22966666600",
"country" => 'bj' // 'bj' Benin code
]
));
```
```ruby Ruby theme={null}
require 'fedapay';
# configure FedaPay library
FedaPay.api_key = '' # Your secret api key
FedaPay.environment = '' # sandbox or live
phone = {
country: 'bj',
number: '66000001'
};
customer = FedaPay::Customer.create(
firstname: 'firstname',
lastname: 'lastname',
email: 'email@test.com',
phone_number: phone
);
```
### Points importants
* Assurez-vous de remplacer **YOUR\_SECRETE\_API\_KEY** par votre clé API secrète.
* Le lien d'API peut changer selon l'environnement. Utilisez **[https://api.fedapay.com/v1/customers](https://api.fedapay.com/v1/customers)** pour l'environnement live.
## Suivi des transactions des clients
Une fois vos clients créés, il est possible de contrôler leurs informations et d’effectuer des modifications ou des suppressions en fonction des besoins.
### Récupérer la liste des clients
Vous pouvez obtenir la liste complète des clients enregistrés sur votre compte FedaPay en envoyant une simple requête à l’API. Cela permet d’avoir un aperçu de tous les clients disponibles, de consulter leurs détails et de suivre leurs transactions.
**Exemple de requête pour récupérer les clients**
```java Curl theme={null}
curl --request GET \
--url https://sandbox-api.fedapay.com/v1/customers/{id} \
--header 'Authorization: Bearer '
```
```javascript NodeJs theme={null}
const { FedaPay, Customer } = require('fedapay');
/* Replace YOUR_SECRETE_API_KEY with your real API key */
FedaPay.setApiKey("YOUR_SECRETE_API_KEY");
/* Specify whether you want to run your query in test or live mode */
FedaPay.setEnvironment('sandbox'); //or setEnvironment('live');
/* Show customers */
const customer = await Customer.all( params = {}, headers = {} );
```
```php PHP theme={null}
\FedaPay\Fedapay::setApiKey(MY_API_KEY);
/**
* @var \FedaPay\FedaPayObject
*/
$response = \FedaPay\Customer::all();
$customers = $response->customers;
$meta = $response->meta;
```
```ruby Ruby theme={null}
require 'fedapay';
# configure FedaPay library
FedaPay.api_key = '' # Your secret api key
FedaPay.environment = '' # sandbox or live
customers = FedaPay::Customer.list;
```
### Mise à jour des informations client
Il peut arriver que vous ayez besoin de mettre à jour les informations d’un client (par exemple, une adresse email ou un numéro de téléphone incorrect). Pour ce faire, vous devez fournir l'identifiant du client et les nouvelles informations.
**Exemple de mise à jour**
```java Curl theme={null}
curl --request PUT \
--url https://sandbox-api.fedapay.com/v1/customers/{id} \
--header 'Authorization: Bearer ' \
--header 'Content-Type: application/json' \
--data '{
"email": "jsmith@example.com",
"phone_number": {
"number": 123,
"country": ""
},
"firstname": "",
"lastname": ""
}'
```
```javascript NodeJs theme={null}
const { FedaPay, Customer } = require('fedapay');
/* Replace YOUR_SECRETE_API_KEY with your real API key */
FedaPay.setApiKey("YOUR_SECRETE_API_KEY");
/* Specify whether you want to run your query in test or live mode */
FedaPay.setEnvironment('sandbox'); //or setEnvironment('live');
/* Modify customer */
const customer = await Customer.update(ID, params = {}, headers = {});
```
```php PHP theme={null}
\FedaPay\Fedapay::setApiKey(MY_API_KEY);
$customer = \FedaPay\Customer::retrieve(ID);
$customer->firstname = "Eric";
$customer->save();
// Or
$customer = \FedaPay\Customer::update(ID, [
"firstname" => "Eric"
]);
```
```ruby Ruby theme={null}
require 'fedapay';
# configure FedaPay library
FedaPay.api_key = '' # Your secret api key
FedaPay.environment = '' # sandbox or live
customer.firstname = 'My Firstname';
customer.save;
# or use this method below
customer.save fistname: 'My Firstname', lastname: 'My Lastname';
# Update a customer by id
customer = FedaPay::Customer.update ID, email: 'myemail@test.com';
```
### Suppression d’un client
Si un client n'est plus actif ou que vous souhaitez supprimer ses données de votre compte FedaPay, vous pouvez utiliser une requête API pour retirer ses informations.
**Exemple de suppression**
```java Curl theme={null}
curl --request DELETE \
--url https://sandbox-api.fedapay.com/v1/customers/{id} \
--header 'Authorization: Bearer '
```
```javascript NodeJs theme={null}
const { FedaPay, Customer } = require('fedapay');
/* Replace YOUR_SECRETE_API_KEY with your real API key */
FedaPay.setApiKey("YOUR_SECRETE_API_KEY");
/* Specify whether you want to run your query in test or live mode */
FedaPay.setEnvironment('sandbox'); //or setEnvironment('live');
/* Delete customer */
const customer = await Customer.delete(ID, params = {}, headers = {});
```
```php PHP theme={null}
\FedaPay\Fedapay::setApiKey(MY_API_KEY);
\FedaPay\Customer::delete(ID);
```
```ruby Ruby theme={null}
require 'fedapay';
# configure FedaPay library
FedaPay.api_key = '' # Your secret api key
FedaPay.environment = '' # sandbox or live
customer.delete;
```
# Librairies de FedaPay : Installation et Configuration
Source: https://docs.fedapay.com/integration-api/fr/librairies-fr
FedaPay offre une suite de librairies pour plusieurs langages de programmation populaires, facilitant l’intégration des solutions de paiement pour différents types de projets. Ces librairies permettent d'optimiser les paiements et de simplifier la gestion des transactions dans vos applications. Voici un guide d’installation et d’utilisation des librairies de FedaPay.
## Choisissez votre langage de programmation/framework
FedaPay propose des librairies dédiées pour les langages suivants, chaque librairie étant adaptée à des environnements spécifiques :
* **PHP** : Parfait pour les applications back-end, et s'intègre facilement aux frameworks comme Laravel ou Symfony.
* **Node.js** : Adapté aux applications côté serveur et aux API en JavaScript.
* **Ruby** : Conçu pour les applications Ruby, notamment avec le framework Ruby on Rails.
* **React.js** : Idéal pour les applications front-end interactives.
* **Angular** : Recommandé pour les projets d’applications front-end robustes.
**Conseil** : Assurez-vous de choisir la librairie qui correspond au langage de votre projet pour garantir une intégration optimale.
## Installation de la Librairie
Chaque librairie de FedaPay s'installe via un gestionnaire de paquets standard pour le langage choisi. Voici un aperçu des commandes d’installation pour PHP et Node.js :
```Typescript NodeJs theme={null}
npm install fedapay --save
```
```Php PHP theme={null}
composer require fedapay/fedapay-php
```
```Ruby Ruby theme={null}
$ gem install fedapay-ruby
```
```Javascript ReactJs theme={null}
npm install fedapay-reactjs --save
```
```Angular Angular theme={null}
npm install fedapay-angular --save
```
Pour les instructions complètes d'installation, consultez [les dépôts GitHub de chaque librairie FedaPay](https://github.com/fedapay).
## Utilisation des librairies avec les Clés API
Après l'installation, configurez la librairie avec vos clés API, qui permettent d’authentifier vos requêtes. Vous pouvez obtenir ces clés dans le tableau de bord FedaPay.
**Bonnes pratiques** : Utilisez des clés API distinctes pour les environnements de développement et de production. Cela garantit la sécurité de vos transactions et réduit le risque d’erreurs en production.
## Tester et Valider l'Intégration
Après la configuration, réalisez des tests dans un environnement de développement pour valider l'intégration. Par exemple, testez la création de transactions ou la récupération d’informations clients. Ceci permet de vérifier que votre intégration est correcte avant le déploiement en production.
**Astuce** : Testez toutes les fonctionnalités, et validez chaque étape pour éviter les erreurs.
Pour des détails sur chaque fonction, consultez la [référence API FedaPay](/api-reference/introduction), où vous pouvez explorer les paramètres et la structure des réponses pour chaque requête. Vous y trouverez également un environnement de test intégré, vous permettant d'essayer directement les requêtes et de voir les résultats en temps réel.
## Librairies Disponibles pour FedaPay
Pour intégrer facilement les solutions de paiement FedaPay dans vos applications, explorez nos [SDKs](/sdks/fr/overview-fr) disponibles pour divers langages et frameworks. Consultez la documentation complète pour chaque SDK sur la page SDKs dédiée pour plus d’informations
# Gestion des dépôts
Source: https://docs.fedapay.com/integration-api/fr/payouts-management-fr
Un dépôt est une opération qui permet de transférer de l'argent directement à partir de votre balance vers le compte d'un client. Cette fonctionnalité est conçue pour les entreprises qui ont besoin de gérer des paiements vers des clients spécifiques.
### Étapes pour la Création d’un Dépôt
La création d’un dépôt via l’API se déroule en plusieurs étapes. Chaque dépôt passe par différents processus qui doivent être respectés pour garantir le bon déroulement du transfert.
Pour commencer, vous devez envoyer une requête de création de dépôt via notre API. Les informations essentielles à fournir lors de cette requête incluent :
* **amount** : Le montant du dépôt, toujours indiqué en nombre entier.
* **currency** : La devise à utiliser pour le dépôt. Vous pouvez indiquer le code ISO de la devise choisie (par exemple, XOF pour le franc CFA).
* **customer** : Le client concerné par le dépôt. Si le client n'existe pas encore dans votre base de données, vous pouvez le créer en même temps que le dépôt en fournissant les informations suivantes : nom, prénom, adresse e-mail, et numéro de téléphone.
* **description (optionnel)** :Champ libre permettant de décrire l’objet ou l’usage du dépôt.Ce champ peut notamment servir à :
* préciser la nature de la transaction (ex. : aide familiale, paiement de service, achat de biens, etc.) ;
* répondre aux exigences réglementaires, notamment celles de la BCEAO relatives à la justification de l’usage des fonds ;
* faciliter le suivi, l’identification et l’analyse des transactions dans le dashboard et via l’API.
Le champ description est facultatif côté API, afin de garantir la compatibilité avec les intégrations existantes. Toutefois, il peut être requis dans certaines interfaces du dashboard pour améliorer la traçabilité des opérations.
#### Exemple de requête pour la création d’un dépôt
```java Curl theme={null}
curl -X POST \
https://sandbox-api.fedapay.com/v1/payouts \
-H 'Authorization: Bearer TOKEN' \
-H 'Content-Type: application/json' \
-d '{
"amount" : 2000,
"currency" : {"iso" : "XOF"},
"mode": "mtn_open" ,
"description" : "paiement de service", // Non obligatoire
"customer" : { // obligatoire.
"firstname" : "John",
"lastname" : "Doe",
"email" : "john.doe@example.com",
"phone_number" : {
"number" : "+22997808080",
"country" : "bj"
}
}
}'
```
```javascript NodeJs theme={null}
const { FedaPay, Payout } = require('fedapay');
FedaPay.setApiKey('YOUR_API_KEY');
FedaPay.setEnvironment('sandbox');
const payout = await Payout.create(
{
amount: 2000,
currency: { iso: "XOF" },
mode: "mtn_open", // Non obligatoire. FedaPay détectera l'operateur sinon.
description : "paiement de service", // Non obligatoire
customer: { // obligatoire.
firstname: "John",
lastname: "Doe",
email: "john.doe@example.com",
phone_number: {
number: "+22997808080",
country: "bj",
},
},
});
```
```php PHP theme={null}
\FedaPay\Fedapay::setApiKey(MY_API_KEY);
\FedaPay\Payout::create([
"amount" => 2000,
"currency" => ["iso" => "XOF"],
"mode" => "mtn_open", // Non obligatoire. FedaPay détectera l'operateur sinon.
"description" => "paiement de service", // Non obligatoire
"customer" => [ // Non obligatoire.
"firstname" => "John",
"lastname" => "Doe",
"email" => "john.doe@example.com",
"phone_number" => [
"number" => "+22997808080",
"country" => "bj",
],
],
]);
```
```Ruby Ruby theme={null}
require 'fedapay';
FedaPay.api_key = '';
FedaPay.environment = 'sandbox';
currency = { iso: 'XOF' };
payout = FedaPay::Payout.create({
amount: 1000,
currency: currency,
mode: "mtn_open", // Non obligatoire.
description: "paiement de service", // Non obligatoire
customer: { // Non obligatoire.
firstname: "John",
lastname: "Doe",
email: "john.doe@example.com",
phone_number: {
number: "+22997808080",
country: "bj",
},
},
});
```
[Retrouvez plus d’informations dans notre Reference API](/api-reference/payouts/create)
Un exemple de code est disponible pour simplifier la création d’un dépôt via l'API. Assurez-vous de remplacer **YOUR\_SECRETE\_API\_KEY** par votre clé privée sandbox ou live.
**Attention :**
Le paramètre **customer** n’est pas obligatoire. Cependant, lorsque vous créer une transaction avec un customer, assurez-vous que l’adresse email est unique. En effet, FedaPay considère qu’il s’agit du meme customer si les emails sont identique. Si vous envoyer la meme adresse email et que vous renseignez des nom, prénom et numéros de téléphone différents, FedaPay mettra simplement à jour le customer avec les nouvelles informations.
Après avoir créé un dépôt, il sera marqué comme "en attente". Vous devez ensuite procéder à son envoi. Deux options s’offrent à vous :
* Envoyer le dépôt immédiatement
* Planifier l'envoi pour plus tard
```java Curl theme={null}
curl -X PUT \
https://sandbox-api.fedapay.com/v1/payouts/start \
-H 'Authorization: Bearer TOKEN' \
-H 'Content-Type: application/json'
-d '{
"payouts" : [
{ "id": 23 }, // Envoie le dépôt instantanément
{ "id": 23, "phone_number": { "number": "66000001", "country": "BJ" } }, // Envoie le dépôt instantanément avec numéro de téléphone
{ "id": 24 , "scheduled_at": "2024-11-18 18:8:43"} // Envoie le dépôt plus tard
]
}'
```
```javascript NodeJs theme={null}
const payout = await Payout.create({...});
// Envoi du dépôt maintenant
await payout.sendNow();
// Envoi d'un dépôt sur numéro de téléphone autre que celui du customer
await payout.sendNow({
phone_number: {
number: "64000001",
country: "BJ"
}
});
// Envoi du dépôt plus tard
await payout.schedule("2024-11-18 18:8:43");
// Programmer un dépôt pour plus tard mais sur un autre numéro autre
// que celui du customer
await payout.schedule("2024-11-18 18:8:43", {
phone_number: {
number: "64000001",
country: "BJ"
}
});
// Programmer plusieurs envois
await Payout.scheduleAll([
{
id: 23, // Envoie le dépôt instantanément
scheduled_at: "2024-11-18 18:8:43" // Envoie le dépôt plus tard
},
{
id: 24, // Envoie le dépôt instantanément
scheduled_at: "2024-11-18 18:8:43" // Envoie le dépôt plus tard
},
{
id: 25,
scheduled_at: "2024-11-18 18:8:43",
phone_number: {
number: "64000001",
country: "BJ"
}
}
]);
// Envoyer tous les dépôts instantanément
await Payout.sendAllNow([
{ id: 23 },
{ id: 24 },
{
id: 24,
phone_number: {
number: "64000001",
country: "BJ"
}
}
]);
```
```php PHP theme={null}
$payout = \FedaPay\Payout::create(array(...));
// Envoi du dépôt maintenant
$payout->sendNow();
// Envoi d'un dépôt sur numéro de téléphone autre que celui du customer
$payout->sendNow([
"phone_number" => [
"number" => "64000001",
"country" => "BJ"
]
]);
// Programmer un dépôt pour plus tard
$payout->schedule("2024-11-18 18:8:43");
// Programmer un dépôt pour plus tard mais sur un autre numéro autre
// que celui du customer
$payout->schedule("2024-11-18 18:8:43", [
"phone_number" => [
"number" => "64000001",
"country" => "BJ"
]
]);
// Programmer plusieurs envoies
Payout::scheduleAll([
[
"id" => 23 // Envoie le dépôt instantanément
],
[
"id" => 24,
"scheduled_at" => "2024-11-18 18:8:43" // Envoie le dépôt plus tard
],
[
"id" => 25,
"scheduled_at" => "2024-11-18 18:8:43",
"phone_number" => [
"number" => "64000001",
"country" => "BJ"
]
]
]);
// Envoyer tous les paiements instantanément
Payout::sendAllNow([
[ "id" => 23 ],
[ "id" => 24 ],
[
"id" => 24,
"phone_number" => [
"number" => "64000001",
"country" => "BJ"
]
]
]);
```
```ruby Ruby theme={null}
payout = FedaPay::Payout.create({...});
# Envoi du dépôt maintenant
payout.sendNow();
# Envoi d'un dépôt sur numéro de téléphone autre que celui du customer
payout.sendNow({
phone_number: {
number: "64000001",
country: "BJ"
}
});
# Envoi du dépôt plus tard
payout.schedule("2024-11-18 18:8:43");
# Programmer un dépôt pour plus tard mais sur un autre numéro autre
# que celui du customer
payout.schedule("2024-11-18 18:8:43", {
phone_number: {
number: "64000001",
country: "BJ"
}
});
# Programmer plusieurs envois
FedaPay::Payout.scheduleAll([
{
id: 23, # Envoie le dépôt instantanément
scheduled_at: "2024-11-18 18:8:43" # Envoie le dépôt plus tard
},
{
id: 24, # Envoie le dépôt instantanément
scheduled_at: "2024-11-18 18:8:43" # Envoie le dépôt plus tard
},
{
id: 25,
scheduled_at: "2024-11-18 18:8:43",
phone_number: {
number: "64000001",
country: "BJ"
}
}
]);
# Envoyer tous les dépôts instantanément
FedaPay::Payout.sendAllNow([
{ id: 23 },
{ id: 24 },
{
id: 24,
phone_number: {
number: "64000001",
country: "BJ"
}
}
]);
```
Une fois le dépôt créé et/ou envoyé, vous pouvez consulter ses détails pour obtenir des informations spécifiques, telles que le statut ou l’historique du dépôt.
#### Exemple de requête pour récupérer les détails d'un dépôt
```java Curl theme={null}
/*Remplacez VOTRE_CLE_API_PRIVEE par la clé privée de votre compte sandbox ou live. Si vous utilisez votre compte live, vous devez remplacer le lien par https://api.fedapay.com/v1/payouts/ID */
curl -X GET \
https://sandbox-api.fedapay.com/v1/payouts/ID \
-H 'Authorization: Bearer TOKEN' \
-H 'Content-Type: application/json'
```
```javascript NodeJs theme={null}
const { FedaPay, Payout } = require('fedapay');
/* Remplacez YOUR_SECRETE_API_KEY par votre véritable clé API */
FedaPay.setApiKey("YOUR_SECRETE_API_KEY");
/* Indiquez si vous souhaitez exécuter votre requête en mode test ou en direct */
FedaPay.setEnvironment('sandbox'); //or setEnvironment('live');
/* Afficher un depot */
const payout = await Payout.retrieve(params = {}, headers = {});
```
```php PHP theme={null}
\FedaPay\Fedapay::setApiKey(MY_API_KEY);
$customer = \FedaPay\Payout::retrieve(ID, params = {}, header = {});
```
```Ruby Ruby theme={null}
require 'fedapay';
# configurer la bibliothèque FedaPay
FedaPay.api_key = '' # Votre clé API secrète
FedaPay.environment = '' # sandbox or live
payouts = FedaPay::Payout.retrieve(ID);
```
[Retrouvez plus d’informations dans notre Reference API](/api-reference/payouts/get-by-id)
Récupérez les informations d’un dépôt spécifique en utilisant son identifiant unique (ID). Remplacez **ID** dans l'URL par l'identifiant du dépôt que vous souhaitez consulter.
### Cycle de Vie des Dépôts
Lorsqu'un dépôt est créé, il passe par plusieurs statuts :
* **pending (En attente)** : Statut initial après la création du dépôt.
* **started (Démarré)** : Le dépôt a été validé et l’envoi est en cours de démarrage.
* **processing (En cours d'envoi)** : Le dépôt est en cours de traitement et d’envoi vers le destinataire.
* **sent (Envoyé)** : Le dépôt a été envoyé avec succès au destinataire.
* **failed (Échoué)** : L’envoi du dépôt a échoué, pour des raisons qui peuvent varier (erreur technique, problème avec la méthode de versement, etc.).
Vous pouvez suivre l'évolution du statut de vos dépôts à partir du tableau de bord FedaPay dans le menu Dépots.
### Méthodes de Versement Disponibles
Actuellement, [les méthodes de versement](/payment-methods/fr/payment-methods-fr) prises en charge pour les dépôts sont disponibles dans plusieurs pays de la sous-région
Ces méthodes permettent d'envoyer facilement des fonds vers différents pays d'Afrique de l'Ouest.
### Ajouter des données personnalisées (custom\_metadata) à vos dépôts
Lorsque vous effectuez un **dépôt** à partir de votre solde FedaPay vers un compte Mobile Money (MTN Bénin, MTN Cote d’ivoire, Moov Bénin, Moov Togo et Togocel), vous pouvez y joindre des informations personnalisées grâce au champ **custom\_metadata**.
Cela vous permet d’associer à chaque opération des éléments utiles pour votre activité, comme un identifiant utilisateur, le motif du transfert, une référence de service.
**À quoi sert custom\_metadata dans un dépôt ?**
Que vous soyez une plateforme de services, un opérateur de cashback, une marketplace ou une solution de paiement pour marchands, le champ **custom\_metadata** vous permet de :
* Garder une trace précise de l’opération du côté de votre système.
* Automatiser vos processus internes, en rattachant un dépôt à un utilisateur, un événement ou une commande.
* Faciliter les audits et les rapprochements comptables grâce à des données personnalisées stockées au bon endroit.
* Gagner du temps : plus besoin de croiser manuellement les ID FedaPay avec ceux de votre système.
**Exemple : effectuer un dépôt avec des métadonnées personnalisées**
Voici une requête de dépôt (payout) avec un champ custom\_metadata renseigné :
```java Curl theme={null}
curl -X POST \
-H 'Authorization: Bearer TOKEN' \
-H 'Content-Type: application/json' \
-d '{
"amount": 3000,
"currency": {"iso": "XOF"},
"description": "Paiement de la commission d’un agent terrain",
"receiver": {
"name": "Koffi Kodjo",
"phone_number": "+22961234567",
"provider": "mtn"
},
"custom_metadata": {
"agent_id": "AGT-0032",
"mois": "Juillet",
"type": "commission"
}
}'
```
```javascript NodeJs theme={null}
const { FedaPay, Payout } = require('fedapay');
/* Replace YOUR_SECRET_API_KEY with your real API key */
FedaPay.setApiKey("YOUR_SECRET_API_KEY");
/* Specify whether you want to run your query in test or live mode */
FedaPay.setEnvironment('sandbox'); // or 'live'
/* Create a payout with custom metadata */
const payout = await Payout.create({
amount: 3000,
currency: { iso: "XOF" },
description: "Paiement de la commission d’un agent terrain",
receiver: {
name: "Koffi Kodjo",
phone_number: "+22961234567",
provider: "mtn"
},
custom_metadata: {
agent_id: "AGT-0032",
mois: "Juillet",
type: "commission"
}
});
console.log("Payout created:", payout.id);
```
```php PHP theme={null}
// Configurer la clé API et l'environnement
\FedaPay\FedaPay::setApiKey('YOUR_SECRET_API_KEY');
\FedaPay\FedaPay::setEnvironment('sandbox'); // ou 'live'
// Créer un dépôt avec des métadonnées personnalisées
$payout = \FedaPay\Payout::create([
"amount" => 3000,
"currency" => ["iso" => "XOF"],
"description" => "Paiement de la commission d’un agent terrain",
"receiver" => [
"name" => "Koffi Kodjo",
"phone_number" => "+22961234567",
"provider" => "mtn"
],
"custom_metadata" => [
"agent_id" => "AGT-0032",
"mois" => "Juillet",
"type" => "commission"
]
]);
echo "Payout created: " . $payout->id;
```
```Ruby Ruby theme={null}
require 'fedapay'
FedaPay.api_key = 'YOUR_SECRET_API_KEY'
FedaPay.environment = 'sandbox' # or 'live'
payout = FedaPay::Payout.create(
amount: 3000,
currency: { iso: 'XOF' },
description: 'Paiement de la commission d’un agent terrain',
receiver: {
name: 'Koffi Kodjo',
phone_number: '+22961234567',
provider: 'mtn'
},
custom_metadata: {
agent_id: 'AGT-0032',
mois: 'Juillet',
type: 'commission'
}
)
puts "Payout created: #{payout.id}"
```
**À savoir**
* Le champ custom\_metadata accepte une structure JSON (paires clé-valeur).
* Utilisez des clés simples et explicites (ex. : type, mois, client\_id).
* Il est totalement facultatif, mais fortement recommandé pour une gestion structurée.
* Évitez d’y mettre des informations sensibles ou confidentielles (comme des mots de passe ou des numéros de carte).
### Merchant\_reference : votre identifiant unique pour chaque payout
Le champ merchant\_reference vous permet d’attribuer à chaque opération de payout (transfert d’argent du compte marchand FedaPay vers un numéro Mobile Money) un identifiant unique défini par vous-même.
Cet identifiant est enregistré par FedaPay et peut ensuite être utilisé pour retrouver ou tracer facilement un payout via une API dédiée.
**Pourquoi l’utiliser ?**
* **Suivi précis des transferts sortants** : Idéal si vous gérez de nombreux paiements vers des fournisseurs, partenaires, livreurs ou utilisateurs.
* **Traçabilité interne** : Permet de lier un payout FedaPay à un paiement interne (par exemple un remboursement, une commission ou un versement).
* **Recherche simplifiée** : Vous pouvez retrouver un payout à tout moment via son merchant\_reference, sans avoir à stocker l’ID généré par FedaPay.
* **Audit & reporting** : Très utile pour générer des rapports ou assurer la conformité comptable et financière de vos flux sortants.
**Exemple : Créer un payout avec merchant\_reference**
```java Curl theme={null}
curl -X POST https://sandbox-api.fedapay.com/v1/payouts \
-H 'Authorization: Bearer YOUR_SECRET_API_KEY' \
-H 'Content-Type: application/json' \
-d '{
"amount": 5000,
"currency": {"iso": "XOF"},
"description": "Paiement fournisseur Mars 2025",
"recipient": {
"name": "Kossi Agbo",
"phone_number": {
"number": "97000001",
"country": "bj"
}
},
"merchant_reference": "PAY-20250315-002"
}'
```
```javascript NodeJs theme={null}
const { FedaPay, Payout } = require('fedapay');
/* Replace YOUR_SECRET_API_KEY with your real API key */
FedaPay.setApiKey("YOUR_SECRET_API_KEY");
/* Set environment */
FedaPay.setEnvironment('sandbox'); // or 'live'
/* Create a payout with merchant_reference */
const payout = await Payout.create({
amount: 5000,
currency: { iso: 'XOF' },
description: 'Paiement fournisseur Mars 2025',
recipient: {
name: 'Kossi Agbo',
phone_number: { number: '97000001', country: 'bj' }
},
merchant_reference: 'PAY-20250315-002'
});
console.log("Payout created:", payout.id);
```
```php PHP theme={null}
\FedaPay\FedaPay::setApiKey('YOUR_SECRET_API_KEY');
\FedaPay\FedaPay::setEnvironment('sandbox'); // ou 'live'
$payout = \FedaPay\Payout::create([
"amount" => 5000,
"currency" => ["iso" => "XOF"],
"description" => "Paiement fournisseur Mars 2025",
"recipient" => [
"name" => "Kossi Agbo",
"phone_number" => [
"number" => "97000001",
"country" => "bj"
]
],
"merchant_reference" => "PAY-20250315-002"
]);
echo "Payout created: " . $payout->id;
```
```Ruby Ruby theme={null}
require 'fedapay'
FedaPay.api_key = 'YOUR_SECRET_API_KEY'
FedaPay.environment = 'sandbox' # or 'live'
payout = FedaPay::Payout.create(
amount: 5000,
currency: { iso: 'XOF' },
description: 'Paiement fournisseur Mars 2025',
recipient: {
name: 'Kossi Agbo',
phone_number: { number: '97000001', country: 'bj' }
},
merchant_reference: 'PAY-20250315-002'
)
puts "Payout created: #{payout.id}"
```
**Récupérer un payout avec la référence marchand**
```java Curl theme={null}
curl -X GET \
https://sandbox-api.fedapay.com/v1/payouts/merchant/PAY-20250315-002 \
-H 'Authorization: Bearer YOUR_SECRET_API_KEY' \
-H 'Content-Type: application/json'
```
```javascript NodeJs theme={null}
const { FedaPay, Payout } = require('fedapay');
FedaPay.setApiKey("YOUR_SECRET_API_KEY");
FedaPay.setEnvironment('sandbox');
const reference = 'PAY-20250315-002';
const payout = await Payout.retrieveByMerchantReference(reference);
console.log("Payout found:", payout.id);
```
```php PHP theme={null}
$merchant_reference = 'PAY-20250315-002';
$payout = \FedaPay\Payout::retrieveByMerchantReference($merchant_reference);
echo "Payout found: " . $payout->id;
```
```Ruby Ruby theme={null}
require 'fedapay'
FedaPay.api_key = 'YOUR_SECRET_API_KEY'
FedaPay.environment = 'sandbox' # or 'live'
reference = 'PAY-20250315-002'
payout = FedaPay::Payout.retrieve_by_merchant_reference(reference)
puts "Payout found: #{payout.id}"
```
**Bonnes pratiques :**
* Utilisez un format structuré pour vos références, ex. PAY-YYYYMMDD-XXX.
* Ne réutilisez jamais une même merchant\_reference pour plusieurs payouts.
* Vous pouvez également combiner merchant\_reference et custom\_metadata pour ajouter des détails (ID employé, campagne, projet...).
### Support
Si vous avez des questions ou rencontrez des difficultés avec les dépôts, n'hésitez pas à contacter notre support technique à l’adresse : [`support@fedapay.com`](mailto:support@fedapay.com)
# Envoi de requêtes
Source: https://docs.fedapay.com/integration-api/fr/sending-requests-fr
L'intégration de la solution de paiement de FedaPay repose sur l'envoi de requêtes HTTPS à ses serveurs. Pour vous assurer que votre plateforme fonctionne correctement en mode test comme en production, il est essentiel de comprendre comment ces requêtes doivent être structurées et à quelles réponses vous pouvez attendre.
## Structure des requêtes HTTPS
Lorsque vous interagissez avec l'API de FedaPay, vos requêtes HTTPS doivent suivre une structure spécifique pour être traitées correctement. FedaPay fournit deux environnements : un environnement de test et un environnement live. Chaque environnement a son propre ensemble de clés API (test et live), et chaque clé API doit être utilisée en fonction de l'environnement dans lequel vous opérez.
### Méthodes HTTPS supportées
L'API FedaPay supporte plusieurs méthodes HTTP, dont les principales sont :
* **POST** : Pour envoyer des données et créer de nouvelles ressources (par exemple, une nouvelle transaction).
* **GET** : Pour récupérer des informations ou des ressources existantes (par exemple, les détails d’une transaction).
* **PUT** : Utilisé pour mettre à jour une ressource existante avec de nouvelles informations (par exemple, mettre à jour les détails d'une transaction).
* **DELETE** : Utilisé pour supprimer une ressource existante (par exemple, annuler une transaction).
### URL des serveurs
Utilisé pour effectuer des tests sans impact réel sur votre compte.
```bash theme={null}
https://sandbox-api.fedapay.com
```
Utilisé pour traiter les transactions réelles.
```bash theme={null}
https://api.fedapay.com
```
### Authentification
Vous devez inclure votre clé API dans l'en-tête HTTP de chaque requête. Selon que vous êtes en mode test ou live, vous utiliserez l'une des deux clés :
Authorization: Bearer VOTRE\_CLÉ\_API
## Mode Test vs Mode Live
### Mode Test
Avant de passer en mode Live, il est recommandé de tester votre intégration en mode test. Ce mode vous permet de simuler différentes opérations de paiement sans effectuer de transactions réelles. Vous devez créer un compte test, et utiliser les clés API test pour adresser vos requêtes à l'environnement de test.
* **Clés API Test** : Ces clés ne peuvent être utilisées que sur le serveur de test.
* **Transactions de test** : Simulez des transactions avec des cartes et des numéros de téléphone fictifs pour voir comment votre système réagit.
### Mode Live
Une fois que vous avez validé vos tests, vous pouvez passer en production en utilisant vos clés API live. Ce mode permet de réaliser des transactions réelles avec vos clients.
## Numéros de test Mobile Money
Pour vos tests d’intégration, FedaPay met à votre disposition un mode de paiement unique appelé **momo\_test**.Ce mode simplifie les essais de transactions en sandbox, sans dépendre des serveurs de test spécifiques à un opérateur (MOOV, MTN, etc.), désormais supprimés.
**Fonctionnement du mode de test**
* Mode de test actif : **momo\_test** .
* Scénario de succès : utilisez uniquement les numéros **64000001** et **66000001** .
* Scénario d’échec : utilisez n’importe quel autre numéro et le système simulera un paiement échoué selon les paramètres définis dans votre environnement sandbox.
## Réponses de l'API
Chaque requête que vous envoyez à l'API FedaPay reçoit une réponse, que vous soyez en mode test ou live. Ces réponses sont formatées en JSON et contiennent des informations importantes sur le résultat de votre requête.
### Réponse réussie (200)
Une réponse réussie est généralement un code HTTP 200. Elle inclut les détails de la ressource créée ou consultée.
### Réponse en cas d'erreur
Si une erreur survient (mauvaise clé API, requête mal formée, etc.), l'API renvoie un code d’erreur spécifique (par exemple, 400, 401, 404, 500).
## Gestion des erreurs
Pour une gestion optimale de vos transactions, voici quelques pratiques recommandées en cas d’erreurs :
* **400 Bad Request** : Vérifiez que vos paramètres sont bien formatés et conformes aux spécifications de l'API.
* **401 Unauthorized** : Assurez-vous que vous utilisez la clé API correcte (test ou live) et qu'elle est valide.
* **404 Not Found** : Vérifiez que l'URL que vous utilisez est correcte et que la ressource existe.
* **500 Internal Server Error** : Ces erreurs proviennent de l'API FedaPay. Si elles persistent, contactez l'assistance.
Testez rigoureusement votre intégration avec FedaPay avant de passer en mode live est essentiel pour garantir un fonctionnement fluide. Utilisez les clés API appropriées, suivez la structure des requêtes et tenez compte des réponses de l'API pour assurer une intégration réussie.
# Webhooks et Evénements
Source: https://docs.fedapay.com/integration-api/fr/webhooks-fr
## Gestion des événements
Les événements sont des actions importantes qui se produisent dans votre compte FedaPay, comme la création d'une transaction ou la mise à jour d'un client. Comprendre comment fonctionnent ces événements vous permet de mieux gérer vos transactions et d’offrir une meilleure expérience à vos clients.
Chaque fois qu'un événement se produit, FedaPay le signale en temps réel via des **notifications d'événements**. Ces notifications peuvent être utilisées pour suivre et réagir à ce qui se passe dans votre compte, comme lorsqu'un paiement est approuvé ou un client est modifié.
#### Cycle de vie des transactions
Les transactions sur FedaPay suivent un cycle de vie, et chaque étape de ce cycle génère un événement particulier. Voici comment ça se passe :
1. **Création de la transaction** : Une fois que le client est créé, vous pouvez lui attribuer une transaction. Cela déclenche l'événement **transaction.created**.
2. **Suivi des transactions** : Une transaction peut évoluer de plusieurs façons :
* **transaction.approved** : La transaction a été approuvée, ce qui signifie que le paiement a été validé.
* **customer.created** : Lorsqu’un nouveau client est ajouté à votre compte, cela génère l’événement
* **transaction.declined**: Le paiement a échoué ou a été refusé.
* **transaction.canceled** : La transaction a été annulée avant sa finalisation.
* **transaction.transferred** : Les fonds de la transaction ont été transférés au compte prévu (par exemple, vers un compte bancaire ou mobile money).
3. À chaque changement de statut, un nouvel événement est généré pour vous tenir informé. Par exemple, dès qu'une transaction est mise à jour, l’événement **transaction.updated** est déclenché.
#### Cycle de vie des clients
Les clients peuvent également faire l'objet d'événements spécifiques :
* **customer.updated** : Le profil du client a été modifié (par exemple, son nom ou son adresse e-mail).
* **customer.deleted** : Le client a été supprimé de votre compte.
#### Comment utiliser les événements ?
Chaque événement contient des informations détaillées sur ce qui vient de se passer. Vous pouvez consulter tous ces événements dans la section **Événements** de votre tableau de bord FedaPay. Cela vous permet d'avoir un historique complet de toutes les actions importantes sur votre compte.

#### Pourquoi est-ce important ?
La gestion des événements vous aide à :
* **Suivre vos paiements** : Vous êtes informé en temps réel de l’état de chaque transaction.
* **Administrer vos clients** : Vous pouvez suivre les modifications apportées aux profils de vos clients.
* **Automatiser vos processus** : Grâce à la notification des événements, vous pouvez automatiser certaines tâches sur votre site, comme envoyer un e-mail de confirmation après un paiement réussi.
# Introduction aux Webhooks
Les **Webhooks** sont des notifications automatiques que FedaPay envoie à votre application ou site web lorsque des événements importants se produisent sur votre compte. Par exemple, vous pouvez recevoir un webhook lorsqu'une transaction est réussie ou contestée.
Ces notifications sont particulièrement utiles car elles vous permettent de rester informé en temps réel, sans avoir à vérifier manuellement ce qui se passe sur votre compte FedaPay.
#### Pourquoi utiliser des Webhooks ?
Les Webhooks sont essentiels pour être alerté rapidement des actions importantes sur votre compte, comme :
* Des paiements réussis ou échoués
* Des remboursements
* Des transactions contestées
#### Comment fonctionnent les Webhooks ?
Chaque fois qu'un événement se produit (par exemple, un paiement accepté), FedaPay crée un **objet événement (Event)**. Cet objet contient toutes les informations pertinentes sur l'événement, comme le type d'événement (paiement réussi) et les détails associés.
Ensuite, FedaPay envoie cet objet à l'URL de votre choix (appelée **point de terminaison**) via une requête HTTP. C’est comme si FedaPay vous envoyait un message pour vous informer de ce qui s’est passé.
## Configuration des Webhooks
Pour recevoir des Webhooks, vous devez configurer une URL sur votre site qui pourra recevoir ces notifications. Suivez ces étapes :
* Connectez-vous à votre compte **FedaPay**.
* Accédez à la section **Webhooks** depuis le menu de votre tableau de bord.
* Cliquez sur **Créer un Webhook** ou **Nouveau Webhook**.
* Un formulaire s’ouvre avec plusieurs champs à renseigner:
**Saisir l’URL de destination**
* Entrez l’URL de votre site où vous souhaitez recevoir les notifications.
* Assurez-vous que cette URL est prête à traiter les Webhooks envoyés par FedaPay.
**Paramètres optionnels**
* **Désactiver la vérification SSL sur les requêtes HTTP** (optionnel)
* **Désactiver le Webhook lorsque l’application génère des erreurs** (optionnel)
**Ajouter des en-têtes HTTP**
* Vous pouvez spécifier des en-têtes personnalisés en ajoutant des **clés et valeurs**.
* Cliquez sur le bouton **"+"** pour ajouter plusieurs en-têtes si nécessaire.
**Choisir les types d’événements**
* **Recevoir tous les événements** (par défaut, vous recevrez toutes les notifications).
* **Sélectionner les événements spécifiques** (vous pouvez choisir uniquement ceux qui vous intéressent parmi la liste des événements disponibles).
**Finalisation et activation**
* Vérifiez que toutes les informations sont correctes.
* Cliquez sur **Créer** pour enregistrer et activer le Webhook.
Une fois vos Webhooks créés, vous pouvez :
* **Modifier** : Changez l'URL ou les événements que vous souhaitez suivre.
* **Supprimer** : Si vous n’avez plus besoin de ce Webhook, vous pouvez le supprimer.
* **Consulter les détails** : Vous pouvez voir toutes les informations sur le Webhook en question (URL, événements suivis, etc.).
## Stratégie d’envoi des événements des Webhooks
Lorsque vous définissez un point de terminaison webhook, FedaPay vous enverra les événements liés à ce point de terminaison lorsque ceux-ci seront déclenchés sur FedaPay.
* FedaPay enverra une requête HTTP de type POST avec les données de l’événement.
* FedaPay attend en retour une réponse avec un statut **2xx**.
* Toute réponse différente d'un statut 2xx est considérée comme un échec.
#### Nouvelles tentatives automatiques
FedaPay exécute chaque envoi d’événement webhook dans des tâches concurrentes.
* En cas d’échec de la tache d’exécution, FedaPay réessaiera au maximum **9 fois** à des intervalles exponentiels.
* Le temps d’attente pour réessayer ne dépasse pas **2 minutes**.
* Après 10 essais sans succès, le webhook est automatiquement **désactivé** pour éviter une surcharge de la queue.
* Vous pouvez prévenir la désactivation en décochant l’option **Désactiver le webhook lorsque l'application génère des erreurs** dans votre tableau de bord.
il est préférable de bien faire le suivi de votre système et de prévenir les erreurs éventuelles. Suivez également nos recommandations pour une bonne implémentation de votre service
#### Redéclenchement manuel
* Allez dans **Logs** de la page de votre webhook.
* Cliquez sur le bouton **Re-déclencher**.
## Bonnes pratiques pour l'utilisation des Webhooks
#### Gérer les événements en double
Les points de terminaison webhook peuvent parfois recevoir le même événement plusieurs fois. Vous pouvez éviter le traitement des événements en double en suivant les indications suivantes :
* Enregistrez les identifiants des événements déjà traités pour ne pas les re-traiter.
* Utilisez l’identifiant de l’objet dans **object** ainsi que **name** pour identifier les doublons.
#### Écouter uniquement les types d’événements requis
* Configurez vos points de terminaison pour ne recevoir que les événements nécessaires.
* Évitez d’écouter tous les événements pour ne pas surcharger votre serveur.
* Modifiez les événements reçus via le tableau de bord.
#### Gérer les événements de manière asynchrone
Pour éviter les problèmes de mise à l’échelle et garantir la stabilité de votre service, suivez ces recommandations :
* **Utilisez une file d’attente asynchrone** pour traiter les événements webhook sans bloquer votre système.
* **Évitez le traitement synchrone**, qui peut ralentir votre infrastructure et causer des échecs en cas de forte charge.
* **Anticipez les pics de trafic**, notamment lors des renouvellements d’abonnements en masse, pour éviter la surcharge des serveurs.
* **Contrôlez le débit de traitement** en ajustant la consommation des événements en fonction des capacités de votre système.
#### Recevoir des événements avec un serveur HTTPS
Pour garantir la sécurité des webhooks, assurez-vous que votre serveur respecte les exigences suivantes :
* **Utilisation d’une URL HTTPS** : FedaPay vérifie la sécurité de la connexion avant d’envoyer les webhooks.
* **Certificat SSL valide** : Votre serveur doit être correctement configuré avec un certificat valide pour éviter tout rejet de connexion.
* **Compatibilité TLS** : Seules les versions **TLS v1.2 et v1.3** sont prises en charge par FedaPay.
#### Vérifier que les événements sont envoyés par FedaPay
* FedaPay envoie les webhooks depuis une **liste définie d’adresses IP**.
* Faites uniquement confiance aux événements provenant de ces adresses.
* Chaque webhook est signé par FedaPay via l’en-tête **X-FEDAPAY-SIGNATURE**.
* Vous pouvez vérifier ces signatures en utilisant :
* Les bibliothèques officielles de FedaPay.
* Une vérification manuelle avec votre propre solution.
**Récupération du secret du point de terminaison**
* Accédez à **Workbench → Onglet Webhooks**.
* Sélectionnez le point de terminaison et cliquez sur **Click to reveal**.
* FedaPay génère une **clé secrète unique** pour chaque point de terminaison :
* **Différente entre le mode test et le mode live.**
* **Unique pour chaque point de terminaison utilisé.**
**Vérification de la signature**
* Lorsqu’un Webhook est envoyé, FedaPay **inclut une signature** dans l’en-tête de la requête.
* Cette signature est présente dans l’en-tête **X-FEDAPAY-SIGNATURE**.
* Pour vérifier que le message est authentique :
1- **Utilisez la clé secrète** de votre Webhook (récupérable dans les paramètres du tableau de bord).
2- **Utilisez cette clé pour vérifier la signature** et vous assurer que le Webhook provient bien de FedaPay.
**Outils pour vérifier les signatures**
* Pour s’assurer que les Webhooks reçus **proviennent bien de FedaPay** et n’ont pas été altérés, il est essentiel de **vérifier leur signature**.
* FedaPay simplifie ce processus grâce à ses **bibliothèques officielles**.
* Voici un exemple de code montrant comment vérifier la signature dans un projet Node.js ou PHP
```javascript NodeJs theme={null}
const { Webhook } = require('fedapay')
// You can find your endpoint's secret key in your webhook settings
const endpointSecret = 'wh_sandbox...';
// This example uses Express to receive webhooks
const app = require('express')();
// Use body-parser to retrieve the raw body as a buffer
const bodyParser = require('body-parser');
// Match the raw body to content type application/json
app.post('/webhook', bodyParser.raw({type: 'application/json'}), (request, response) => {
const sig = request.headers['x-fedapay-signature'];
let event;
try {
event = Webhook.constructEvent(request.body, sig, endpointSecret);
} catch (err) {
response.status(400).send(`Webhook Error: ${err.message}`);
}
// Handle the event
switch (event.name) {
case 'transaction.created':
// Transaction créée
break;
case 'transaction.approved'':
// Transaction approuvée
break;
case 'transaction.canceled'':
// Transaction annulée
break;
default:
console.log(`Unhandled event type ${event.type}`);
}
// Return a response to acknowledge receipt of the event
response.json({received: true});
});
app.listen(4242, () => console.log('Running on port 4242'));
```
```php PHP theme={null}
// You can find your endpoint's secret key in your webhook settings
$endpoint_secret = 'wh_dev.......';
$payload = @file_get_contents('php://input');
$sig_header = $_SERVER['HTTP_X_FEDAPAY_SIGNATURE'];
$event = null;
try {
$event = \FedaPay\Webhook::constructEvent(
$payload, $sig_header, $endpoint_secret
);
} catch(\UnexpectedValueException $e) {
// Invalid payload
http_response_code(400);
exit();
} catch(\FedaPay\Error\SignatureVerification $e) {
// Invalid signature
http_response_code(400);
exit();
}
// Handle the event
switch ($event->name) {
case 'transaction.created':
// Transaction créée
break;
case 'transaction.approved':
// Transaction approuvée
break;
case 'transaction.canceled':
// Transaction annulée
break;
default:
http_response_code(400);
exit();
}
http_response_code(200);
```
* Une **attaque par nouvelle tentative** consiste à retransmettre un webhook intercepté.
* FedaPay inclut un **horodatage (timestamp)** dans l’en-tête **X-FEDAPAY-SIGNATURE** pour empêcher ces attaques.
* L’horodatage est vérifié avec la signature :
* **Impossible de le modifier sans invalider la signature.**
* **Si l’horodatage est trop ancien, votre application peut rejeter le webhook.**
* À chaque réessai d’envoi (si le premier a échoué), **une nouvelle signature et un nouvel horodatage** sont générés.
* Votre point de terminaison doit répondre **rapidement** avec un code **2xx** avant d’exécuter des traitements lourds.
* Exemples :
* **Répondre 200 immédiatement.**
* **Effectuer ensuite les actions comme marquer une facture comme payée.**
# Raisons de rejet de mon compte FedaPay et comment les éviter
Source: https://docs.fedapay.com/introduction/fr/account-rejection-fr
Lors de la soumission de votre compte FedaPay pour validation, certaines informations ou pièces peuvent entraîner un rejet si elles sont incomplètes, incorrectes ou non conformes aux exigences réglementaires.Cette section vous explique les principales causes de rejet et les bonnes pratiques à suivre pour maximiser vos chances de validation dès la première soumission.
## 1. Adresse de l’entreprise insuffisamment détaillée
* **Cause fréquente de rejet**
L’adresse fournie est trop vague ou incomplète (ex. : uniquement une ville ou un quartier).
* **Ce que vous devez faire**
Renseignez une adresse détaillée de l’entreprise, incluant obligatoirement :
* la ville ;
* le quartier ;
* la maison (ou le nom du propriétaire) ;
* le lot ou carré, si disponible.
Cette précision permet de vérifier l’existence et la localisation réelle de l’activité.
## 2. Description des activités non conforme ou imprécise
* **Cause fréquente de rejet**
La description des activités ne correspond pas à la réalité légale de l’entreprise ou est trop générique.
* **Ce que vous devez faire**
Dans le champ Description détaillée des activités :
* décrivez précisément ce que vous vendez ou les services que vous proposez ;
* assurez-vous que la description est conforme à celle figurant sur votre RCCM, si vous en possédez un.
Une incohérence entre les activités déclarées et les documents officiels entraîne systématiquement un rejet.
## 3. Signature non conforme
* **Cause fréquente de rejet**
La signature fournie est illisible, numérique ou différente de celle figurant sur la pièce d’identité.
* **Ce que vous devez faire**
Votre signature doit être :
* manuscrite ;
* lisible ;
* réalisée au stylo bleu sur papier blanc ;
* strictement identique à celle figurant sur vos documents d’identité.
Cette exigence est essentielle pour la vérification d’identité et la conformité réglementaire.
## 4. Capital de l’entreprise incohérent
* **Cause fréquente de rejet**
Le capital déclaré ne correspond pas au RCCM ou est laissé vide.
* **Ce que vous devez faire**
* Indiquez un capital conforme à celui mentionné sur votre RCCM.
* Si aucun capital n’est indiqué sur vos documents officiels, renseignez 0.
## 5. Pièce d’identité invalide ou non conforme
* **Cause fréquente de rejet**
* Pièce expirée ;
* Pièce appartenant à une autre personne ;
* Absence de signature sur le document.
* **Ce que vous devez faire**
* Fournissez une pièce d’identité valide ;
* Assurez-vous qu’elle appartient bien au propriétaire du compte ;
* Vérifiez qu’elle comporte une signature visible pour comparaison.
## 6. Site web au format incorrect
* **Cause fréquente de rejet**
Le champ site web contient un texte simple (ex. : facebook.com/page) au lieu d’une URL valide.
* **Ce que vous devez faire**
Renseignez une URL complète et valide, par exemple : [https://www.monsite.com](https://www.monsite.com) .
## 7. IFU non adapté au pays sélectionné (zone UEMOA)
* **Cause fréquente de rejet**
Un identifiant fiscal incorrect ou non reconnu pour le pays choisi.
* **Ce que vous devez faire**
Après avoir sélectionné votre pays :
* [renseignez l’équivalent local de l’IFU, selon la réglementation du pays UEMOA concerné](https://docs.fedapay.com/introduction/fr/compte-fr#informations-fiscales-obligatoires-pour-les-comptes-fedapay) ;
* assurez-vous que l’identifiant correspond bien à votre entreprise ou à votre statut.
## Bonnes pratiques avant de soumettre votre compte
Avant de cliquer sur Soumettre pour validation, vérifiez que :
* toutes les informations sont complètes et cohérentes ;
* les documents sont lisibles, valides et à jour ;
* les champs obligatoires sont remplis conformément aux indications fournies.
Une soumission correcte réduit considérablement les délais de validation et évite les échanges supplémentaires avec le support client.
# Accepter des paiements avec Checkout.Js
Source: https://docs.fedapay.com/introduction/fr/checkoutjs-fr
## Pourquoi utiliser Checkout.js pour vos paiements en ligne ?
Checkout.js est un outil conçu pour faciliter l'intégration d'un formulaire de paiement sécurisé et rapide sur votre site web. Que vous soyez développeur ou non, cet outil vous permettra de collecter des paiements directement sur votre site en toute simplicité. Découvrez comment utiliser et personnaliser Checkout.js pour offrir une expérience de paiement fluide à vos utilisateurs.
***Avant de commencer, visionnez cette vidéo qui présente le mode d’intégration de Checkout.js*** :
## Méthodes d'intégration de Checkout.js
Checkout.js offre plusieurs options d'intégration pour répondre à différents besoins. Vous pouvez ajouter un bouton de paiement simple, plusieurs boutons de collecte, ou même intégrer le formulaire de paiement directement sur votre site pour éviter les redirections.
Commencez par ajouter un bouton simple sur votre page pour déclencher la collecte. Ce bouton permettra à l’utilisateur d’accéder à un formulaire de paiement où il pourra finaliser la transaction.
```javascript theme={null}
Intégrer Feda Checkout à mon site
```
[Cliquez ici pour tester](https://demo.fedapay.com/payment-button.html)
Vous pouvez personnaliser les détails de la collecte (montant, description, noms et adresse e-mail du client) pour adapter le formulaire de paiement à votre plateforme.
```javascript theme={null}
Intégrer Feda Checkout à mon site
```
[Cliquez ici pour tester](https://demo.fedapay.com/customize-form.html)
Pour permettre des collectes de différents montants, vous pouvez intégrer plusieurs boutons de paiement sur la même page.
```javascript theme={null}
Intégrer Feda Checkout à mon site
```
[Cliquez ici pour tester](https://demo.fedapay.com/add-multiple-buttons.html)
Si vous souhaitez déclencher la collecte par un événement spécifique, utilisez JavaScript pour activer le formulaire de paiement sur demande.
```javascript theme={null}
Intégrer Feda Checkout à mon site
```
[Cliquez ici pour tester](https://demo.fedapay.com/trigger-collection.html)
Pour une expérience utilisateur optimisée, vous pouvez intégrer le formulaire de collecte directement sur votre site, sans rediriger l'utilisateur.
```javascript theme={null}
Intégrer Feda Checkout à mon site
```
[Cliquez ici pour tester](https://demo.fedapay.com/payment-no-redirection.html)
## Personnalisation de l'interface et options avancées
Checkout.js permet de personnaliser les éléments visuels de votre formulaire pour qu’il corresponde à l’identité de votre plateforme. Vous pouvez notamment définir la couleur de l’arrière-plan, le texte du bouton de paiement, ou ajouter un logo.
***Modifier l'apparence et ajouter des détails supplémentaires***
* ***Clé publique** : `data-public-key`*
* ***Montant de la collecte** : `data-transaction-amount`*
* ***Description de la collecte** : `data-transaction-description`*
* ***Devise** : `data-currency-iso`*
* ***Texte du bouton** : `data-button-text`*
* ***Classe CSS du bouton** : `data-button-class`*
* ***Image et description du widget** : `data-widget-image, data-widget-description`*
## Méthode avec une balise form pour une intégration avancée
Checkout.js permet également l’intégration avec une balise form pour envoyer des données spécifiques après paiement.
```javascript theme={null}
```
[Cliquez ici pour tester](https://demo.fedapay.com/form-tag.html)
## Méthode de la classe FedaPay et attributs de configuration
***Checkout.js propose des options pour initialiser le composant de collecte avec plusieurs configurations :***
* **Attribut HTML**: `data-public-key`
* **Type**: *string*
* **Description**: La clé public FedaPay
* **Attribut HTML**: `data-environment`
* **Type**: *string*
* **Description**: L'environnement FedaPay. Les valeurs possibles sont **live et sandbox**.
* **Attribut HTML**: `data-trigger`
* **Type**: *string*
* **Description**: Le type d'événément qui déclenche l'ouverture de la boîte de dialogue de paiement. La valeur par défaut est **click**.
* **Attribut HTML**: `data-locale`
* **Type**: *string*
* **Description**: La langue de l'interface de paiement. La valeur par défaut est **fr**.
* **Attribut HTML**: `data-transaction-id`
* **Type**: *integer*
* **Description**: Si vous avez déjà créé la transaction, vous pouvez spécifier l'id de la collecte.
* **Attribut HTML**: `data-transaction-amount`
* **Type**: *integer*
* **Description**: Le montant de la transaction. La valeur par défaut est **100**.
* **Attribut HTML**: `data-transaction-description`
* **Type**: *string*
* **Description**: La description de la transaction.
* **Attribut HTML**: `data-transaction-custom_metadata`
* **Type**: *object*
* **Description**: Objet metadata de la transaction.
**Exemple JS:**
```
{
transaction:{
custom_metadata:{
foo: 'bar'
}
}
}
```
**Exemple HTML**
```
* **Attribut HTML**: `data-customer-email`
* **Type**: *string*
* **Description**: L'email du client
* **Attribut HTML**: `data-customer-firstname`
* **Type**: *string*
* **Description**: Le prénom du client
* **Attribut HTML**: `data-customer-lastname`
* **Type**: *string*
* **Description**: Le nom du client
* **Attribut HTML**: `data-customer-phone_number-number`
* **Type**: *string*
* **Description**: Le numéro de téléphone du client
* **Attribut HTML**: `data-customer-phone_number-country`
* **Type**: *string*
* **Description**: Le pays du téléphone du client
* **Attribut HTML**: `data-currency-iso`
* **Type**: *string*
* **Description**: Le code iso de la devise. La valeur par défaut est **XOF**
* **Attribut HTML**: `data-currency-code`
* **Type**: *string*
* **Description**: Le code de la devise
* **Attribut HTML**: `data-button-text`
* **Type**: *string*
* **Description**: Le text à afficher sur le bontton de paiement.
* **Attribut HTML**: `data-button-class`
* **Type**: *string*
* **Description**: La class css du bontton de paiement.
* **Attribut HTML**: `data-form_selector`
* **Type**: *string*
* **Description**: outre passer le selecteur de selecteur de la base formulaire. Si celui ci est bien indiqué, il sera utilisé pour trouver le formulaire à soumettre après paiement
* **Attribut HTML**: `data-submit_form_on_failed`
* **Type**: *boolean*
* **Description**: Indique si le formulaire (Lorsque le bouton de paiement ou l'élément embarqué a un parent direct qui est un formulaire) doit être soumis ou non lorsque le paiement échoue.
* **Type**:
```
function{ reason: number, transaction: object }
```
* **Description**: La fonction de retour lorsque la boîte de dialogue est fermée. Cette fonction prend deux arguments. Le premier est la raison de fermeture de la boîte de dialogue. Il peut être égal à FedaPay.CHECKOUT\_COMPLETED (lorsque le paiement est complet) ou FedaPay.DIALOG\_DISMISSED (lorsque la boîte de dialogue est fermée par l'utilisateur). Le deuxième argument est l'object transaction créé lors du paiement.
## Autorisation de domaine pour Checkout JS
Lors de la **première connexion** entre votre site marchand et la solution **FedaPay Checkout**, une **autorisation de domaine** est nécessaire. Cette étape permet de garantir que vos clients soient correctement redirigés vers votre page de paiement sécurisée, et non vers l’interface de création de compte FedaPay.
#### Pourquoi cette autorisation est nécessaire ?
Sans autorisation préalable de votre domaine :
* Vos clients seront redirigés vers l’interface d’inscription FedaPay,
* Ils **ne pourront pas finaliser leurs paiements**,
* Cela peut entraîner une perte de conversions.
### Étapes pour autoriser votre domaine
1. **Connectez-vous à votre compte FedaPay**
2. Cliquez sur votre **photo de profil** (en haut à droite)
3. Sélectionnez le menu **Applications**
4. Dans la section **Nom de domaine à autoriser**:
* Saisissez **le nom de domaine** de votre site marchand (ex. **votresite.com**)
* Cliquez sur le bouton **Autoriser**
Une fois cette étape terminée, votre domaine est approuvé pour l'utilisation de Checkout JS.
### Révocation d’un domaine (optionnelle)
Dans certains cas, vous pourriez vouloir retirer l'accès d'un domaine autorisé – par exemple :
* Si vous avez changé de site ou de domaine principal,
* Si vous avez détecté un usage non autorisé ou suspect.
Pour cela :
1. Rendez-vous toujours dans l’onglet **Applications**
2. Saisissez le domaine concerné dans le champ **Révoquer les accès au domaine suivant**
3. Cliquez sur le bouton **Révoquer les accès**
**Note** : Une fois la révocation effectuée, les paiements via ce domaine seront bloqués.
# Les types de comptes FedaPay
Source: https://docs.fedapay.com/introduction/fr/compte-fr
FedaPay met à votre disposition plusieurs types de comptes, adaptés aux besoins spécifiques de chaque utilisateur. Que vous soyez une **entreprise**, un **travailleur indépendant**, une **ONG**, une **institution gouvernementale** , que vous gériez une **marketplace** ou que vous soyez un **marchand physique** FedaPay vous offre une solution sur mesure pour encaisser vos paiements en toute simplicité et sécurité, voici un aperçu des options disponibles :
## Compte pour ONG
**Pour qui ?**
Ce compte est conçu pour les Organisations Non Gouvernementales (ONG) et les associations à but non lucratif.
**Pourquoi choisir ce compte ?**
* Aucune limite sur le montant des transactions, que ce soit par opération ou par semaine.
* Adapté aux besoins spécifiques des organisations humanitaires et associatives.
**Documents requis (KYB) :**
* Numéro d’enregistrement de l’ONG/association.
* Récépissé officiel de déclaration d’association/ONG.
* Nom du gérant de l’ONG/association.
* Pièce d’identité du Fondateur / Gérant / Directeur.
* Copie du document d’identité du Fondateur / Gérant / Directeur .
## Compte pour Travailleur Indépendant
**Pour qui ?**
Si vous êtes freelance ou prestataire de services et souhaitez recevoir des paiements en toute simplicité, ce compte est fait pour vous.
**Caractéristiques clés :**
* Limite de **10 transactions par semaine**.
* Montant autorisé par transaction : entre **100 XOF et 300 000 XOF**.
**Documents requis (KYC) :**
* Pièce d’identité du Fondateur / Gérant / Directeur.
* Copie du document d’identité.
* Numéro IFU (Identifiant Fiscal Unique).
* Document justificatif de l’IFU.
## Compte Business
**Pour qui ?**
Les entreprises légalement enregistrées qui souhaitent intégrer des paiements en ligne et gérer leur trésorerie efficacement.
**Pourquoi opter pour ce compte ?**
* Accès à **tous les modes de paiement** disponibles sur FedaPay.
* **Aucune limite** sur le montant des transactions.
**Documents requis (KYB) :**
* RCCM ou numéro d’enregistrement de l’entreprise.
* Document officiel RCCM ou justificatif d’enregistrement.
* Nom du gérant de l’entreprise.
* Pièce d’identité du Fondateur / Gérant / Directeur.
* Copie du document d’identité.
* Numéro IFU.
* Document justificatif de l’IFU.
## Compte pour le Gouvernement
**Pour qui ?**
Ce compte est destiné aux institutions gouvernementales et aux entités administratives.
**Pourquoi choisir ce compte ?**
* Aucune limite sur les transactions.
* Adapté aux opérations financières gouvernementales.
**Documents requis:**
Validation par l’équipe FedaPay.
## Compte TAP & GO
**Pour qui ?**
Marchands utilisant la solution TAP & GO pour accepter des paiements en boutique ou sur site.
**Conditions**
* Acceptation des paiements en présentiel (paiement en boutique).
* Aucune limite sur le nombre et le montant des transactions.
Possibilité de gestion des sous-comptes et commissions selon le profil.
**Documents requis (KYC digital)**
* RCCM ou numéro d’enregistrement de l’entreprise.(Non obligatoire)
* Document officiel RCCM ou justificatif d’enregistrement (si disponible).
* CIP du Fondateur / Gérant / Directeur.
* Document justificatif du CIP.
* Numéro IFU.
* Document justificatif de l’IFU.
* Nom du gérant de l’entreprise.
## Compte Marketplace
**Pour qui ?**
Ce compte est spécialement conçu pour les plateformes de type **marketplace**, qui connectent vendeurs et acheteurs et qui souhaitent automatiser la gestion des paiements et des commissions.
**Pourquoi choisir ce compte ?**
* Accepte **tous les moyens de paiement** (Mobile Money, cartes bancaires, etc.).
* **Aucune limite** sur le nombre et le montant des transactions.
* Fonctionnalité avancée : **gestion des sous-comptes et des commissions.**
**Documents requis (KYC) :**
* RCCM ou numéro d’enregistrement de l’entreprise.
* Document officiel RCCM ou justificatif d’enregistrement.
* Nom du gérant de l’entreprise.
* Pièce d’identité du Fondateur / Gérant / Directeur.
* Copie du document d’identité.
* Numéro IFU.
* Document justificatif de l’IFU.
**Fonctionnalité des sous-comptes**
Avec un compte **Marketplace**, vous avez la possibilité d’intégrer des **sous-comptes**, permettant de **répartir les paiements automatiquement** entre plusieurs parties.
**Exemple d'utilisation :**
Une marketplace met en relation plusieurs vendeurs. Lorsqu’un client achète un produit, une commission est prélevée pour la plateforme, et le reste du paiement est automatiquement transféré au vendeur concerné.
**Conditions pour activer les sous-comptes :**
* Disposer d’un compte Marketplace validé.
* Avoir au moins un sous-compte associé.
**Comment fonctionne la répartition des paiements ?**
Lorsque vous créez une transaction sur votre marketplace, vous pouvez spécifier comment le montant doit être divisé entre le **compte principal** et les **prestataires de services.**
**Exemple d’une requête API pour la répartition des commissions :**
```java Curl theme={null}
//Remplacez VOTRE_CLE_API_SECRETE par la clé API secrète de votre compte sandbox ou live. Si vous utilisez votre compte live, vous devez remplacer le lien par https://api.fedapay.com/v1/transactions
curl -X POST \
https://sandbox-api.fedapay.com/v1/transactions \
-H 'Authorization: Bearer VOTRE_CLE_API_SECRETE' \
-H 'Content-Type: application/json' \
-d '{
"description" : "Transaction for john.doe@example.com",
"amount" : 2000,
"currency" : {"iso" : "XOF"},
"callback_url" : "https://maplateforme.com/callback",
"customer" : {
"firstname" : "John",
"lastname" : "Doe",
"email" : "john.doe@example.com",
"phone_number" : {
"number" : "+22997808080",
"country" : "bj"
}
},
"sub_accounts_commisssions": [
{
"reference": "acc_xxxxxxxxx",
"amount": 1500
}
]
}'
```
```javascript NodeJs theme={null}
const { FedaPay, Transaction } = require('fedapay')
/* Remplacez VOTRE_CLE_API par votre véritable clé API */
FedaPay.setApiKey("VOTRE_CLE_API_SECRETE");
/* Précisez si vous souhaitez exécuter votre requête en mode test ou live */
FedaPay.setEnvironment('sandbox'); //ou setEnvironment('live');
/* Créer la transaction */
const transaction = await Transaction.create({
description: 'Description',
amount: 2000,
callback_url: 'https://maplateforme.com/callback',
currency: {
iso: 'XOF'
},
customer: {
firstname: 'John',
lastname: 'Doe',
email: 'john.doe@example.com',
phone_number: {
number: '97808080',
country: 'BJ'
}
},
sub_accounts_commisssions: [
{
reference: 'acc_xxxxxxxxx',
amount: 1500
}
]
});
```
```php PHP theme={null}
/* Remplacez VOTRE_CLE_API par votre véritable clé API */
\FedaPay\FedaPay::setApiKey("VOTRE_CLE_API_SECRETE");
/* Précisez si vous souhaitez exécuter votre requête en mode test ou live */
\FedaPay\FedaPay::setEnvironment('sandbox'); //ou setEnvironment('live');
/* Créer la transaction */
\FedaPay\Transaction::create(array(
"description" => "Transaction for john.doe@example.com",
"amount" => 2000,
"currency" => ["iso" => "XOF"],
"callback_url" => "https://maplateforme.com/callback",
"customer" => [
"firstname" => "John",
"lastname" => "Doe",
"email" => "john.doe@example.com",
"phone_number" => [
"number" => "+22997808080",
"country" => "bj"
]
],
"sub_accounts_commisssions" => [
[
"reference" => "acc_xxxxxxxxx",
"amount" => 1500
]
]
));
```
Dans cet exemple, **1 500 XOF** seront transférés au sous-compte du prestataire de service **(acc\_xxxxxxxxx)**, tandis que le compte principal **gardera la différence** après déduction des frais de FedaPay.
**Attention :** Le montant total réparti doit être inférieur au montant de la transaction moins les commissions de FedaPay, sinon la transaction échouera.
**Vérifier une transaction et ses commissions**
Depuis votre **tableau de bord FedaPay**, vous pouvez suivre toutes les transactions avec répartition de commission en consultant leurs détails.
**Inviter un prestataire à rejoindre votre Marketplace**
Vous pouvez inviter un prestataire de services à rejoindre votre compte **FedaPay Marketplace** directement depuis votre tableau de bord.
**Étapes pour inviter une entreprise :**
**Automatiser l’ajout de sous-comptes via l’API**
FedaPay permet d’**automatiser** l’ajout de nouveaux prestataires en intégrant la fonctionnalité des sous-comptes directement dans votre système via l’API.
**Exemple de code pour automatiser l'ajout de sous-comptes :**
```java Curl theme={null}
//Remplacez VOTRE_CLE_API_SECRETE par la clé API secrète de votre compte sandbox ou live. Si vous utilisez votre compte live, vous devez remplacer le lien par https://api.fedapay.com/v1/auth/sub_account_invitations
curl -X POST \
https://sandbox-api.fedapay.com/v1/auth/sub_account_invitations \
-H 'Authorization: Bearer VOTRE_CLE_API_SECRETE' \
-H 'Content-Type: application/json' \
-d '{
"email" : "john.doe@example.com",
"full_name" : "Jonh Doe"
}'
```
FedaPay se charge alors de **vérifier et valider** les informations pour garantir la conformité aux normes KYC.
## Documents contractuels obligatoires
Pour tous les comptes concernés (ONG, Travailleur Indépendant, Business, Marketplace), les documents contractuels suivants sont requis :
* Engagement sur l’honneur
* Conditions générales d’utilisation
* Contrat de prestation de service avec FedaPay
Ces documents sont disponibles en téléchargement sur la plateforme.Ils doivent être :
* téléchargés ;
* signés ;
* scannés ;
* téléversés dans les champs prévus à cet effet.
**Spécificité TAP & GO**
Les documents contractuels sont remplis et signés physiquement sur site lors de l’enrôlement.
## Passage d'un compte individuel à un compte Business sur FedaPay
Si vous possédez un **Compte pour Travailleur Indépendant** (compte individuel), vous pouvez le convertir en **Compte Business** en suivant ces étapes :
* Connectez-vous à votre compte **FedaPay**.
* Accédez aux paramètres de votre compte.
* Cliquez sur le bouton **Passer en Business**.
* Une interface s’affiche avec la liste des documents à fournir pour valider votre compte Business.
* Assurez-vous d’avoir tous les documents demandés avant de continuer.
* Cliquez sur **Oui, je veux passer en Business**.
* Remplissez le formulaire de demande en renseignant les informations nécessaires.
* Vérifiez que toutes les informations saisies sont correctes.
* Téléchargez les documents requis.
* Cliquez sur **Soumettre** pour envoyer votre demande.
## Informations fiscales obligatoires pour les comptes FedaPay
Lorsque vous créez ou mettez à jour un **compte FedaPay** (Travailleur indépendant, Business ou Marketplace), il est nécessaire de fournir les **informations fiscales exactes**, selon votre pays d’opération. Ces données sont nécessaires pour la vérification de votre identité légale et la conformité réglementaire.
**Documents fiscaux requis par pays**
**IFU** (Identifiant Fiscal Unique)
**IFU/NINEA** (Numéro d’Identification Nationale des Entreprises et Associations)
**Identifiant Financier Unique**
**IDU/NIF** (Identifiant Unique / Numéro d’Identification Fiscale)
**NIF** (Numéro d’Identification Fiscale)
**NIF** (Numéro d’Identification Fiscale)
**NIF** (Numéro d’Identification Fiscale)
**NIF** (Numéro d’Identification Fiscale)
**Assurez-vous que le document fiscal fourni est à jour et au nom exact de l’entité légale concernée.**
# Créer un compte
Source: https://docs.fedapay.com/introduction/fr/createaccount-fr
FedaPay vous offre une solution simple et rapide pour gérer les paiements en ligne. Que vous soyez un entrepreneur, une ONG, ou un travailleur indépendant, FedaPay facilite la collecte des paiements tout en assurant la sécurité de vos transactions. Suivez ce guide pour créer et activer votre compte, découvrir les cas d’usage de FedaPay, et renforcer la sécurité de votre compte.
### Créer un compte FedaPay (Test ou Live)
Rendez-vous sur [le site de FedaPay](https://www.fedapay.com) et cliquez sur "**S'inscrire**".
Entrez vos informations de base comme votre nom et adresse e-mail.
Vérifiez votre boîte de réception pour trouver l'e-mail de confirmation de FedaPay et cliquez sur le lien de validation que vous soyez en mode test(sandbox) ou live.
Après l'inscription, vous pouvez commencer immédiatement en mode Test pour explorer toutes les fonctionnalités sans frais réels.

### Validation du compte (pour les comptes Live uniquement)
Pour accepter des paiements réels, vous devrez activer votre compte Live. Voici comment procéder :
Connectez-vous à votre tableau de bord, accédez aux paramètres, et cliquez sur **Activer mon compte**.

Entrez le nom de votre organisation, votre domaine d'activité, et téléchargez les documents requis.
[Les documents requis pour chaque type de compte](https://docs.fedapay.com/introduction/fr/compte-fr#)

**Note** : L’équipe FedaPay examinera les informations et vous enverra une notification de validation. Si des informations manquent, vous serez contacté pour les fournir.
### Cas d’utilisation de FedaPay
Les cas d’usage suivants illustrent comment vous pouvez utiliser FedaPay pour collecter et déposer des paiements, selon les besoins de votre activité :
#### Collectes
***Scénario : Recevoir des paiements rapidement avec un lien de paiement***
Si vous avez besoin de recevoir de l'argent de vos clients sans passer par une intégration technique complexe, FedaPay propose une solution simple et efficace. En quelques minutes, vous pouvez générer un lien de paiement sécurisé à envoyer directement à vos clients.
**Étapes pour recevoir un paiement avec un lien de paiement :**
Dans votre tableau de bord FedaPay, ajoutez un nouveau client en remplissant les informations de base : nom, prénom et adresse email (l’email est unique et essentiel pour suivre les clients). Le numéro de téléphone est facultatif.
Une collecte représente le montant que vous attendez du client. Renseignez le montant de la collecte, ajoutez une description (obligatoire) et, si besoin, personnalisez le lien de retour après paiement.
Une fois la collecte créée, un lien de paiement sécurisé est automatiquement généré. Vous pouvez l'envoyer au client par email, WhatsApp, SMS, ou tout autre moyen de communication. Ce lien est valide pendant 24 heures et garantit une collecte sécurisée, traitée par FedaPay.
**Statuts de la collecte :**
* **pending** : En attente (statut par défaut à la création)
* **approved** : Approuvée (paiement réussi)
* **declined** : Déclinée (solde insuffisant ou problème de paiement)
* **canceled** : Annulée (interruption volontaire ou accidentelle par le client)
* **refunded** : Remboursée (somme restituée au client)
* **transferred** : Transférée (montant envoyé au compte marchand)
#### Dépôts
***Scénario : Comment une société de paris en ligne effectue le dépôt des gains d'un client ?***
Dans le cadre de versements de gains, les entreprises de paris en ligne peuvent utiliser FedaPay pour faciliter les dépôts vers leurs clients. Ce processus simplifie l'envoi des paiements, offrant aux clients une expérience sécurisée et rapide.
**Étapes pour réaliser un dépôt vers un client :**
Dans le tableau de bord FedaPay, la société de paris crée un dépôt pour le client gagnant, en spécifiant le montant du gain et le compte de destination du client.
Une fois le dépôt créé, son statut initial est **pending** (en attente). Après validation de la demande de dépôt, le statut passe à **started** (démarré), indiquant que l'envoi est en préparation.
FedaPay commence à traiter le dépôt. À cette étape, le statut passe à **processing** (en cours d'envoi), indiquant que le transfert est en train d’être finalisé.
Une fois le dépôt terminé, le statut passe à **sent** (envoyé), confirmant que le client a reçu son gain.
Si le dépôt échoue (erreur technique ou problème lié à la méthode de versement), le statut passe à **failed** (échoué). Dans ce cas, des actions de résolution peuvent être entreprises pour compléter l’envoi du paiement.
**Statuts du dépôt :**
* **pending** : En attente (statut initial après la création du dépôt)
* **started** : Démarré (le dépôt a été validé)
* **processing** : En cours d'envoi (dépôt en cours de traitement)
* **sent** : Envoyé (le dépôt a été effectué avec succès)
* **failed** : Échoué (l'envoi du dépôt n'a pas abouti en raison d'une erreur)
### Sécurité : Authentification à double facteur (2FA)
La sécurité est une priorité chez FedaPay. C’est pourquoi nous proposons l’authentification à double facteur (2FA) pour protéger votre compte et vos transactions. Activer le 2FA ajoute une couche supplémentaire de sécurité en exigeant un code d'authentification unique, en plus de votre mot de passe.
**Comment activer le 2FA :**
* Accédez à votre tableau de bord et allez dans les **paramètres de sécurité**.
* Cliquez sur **Activer le 2FA**.
* Suivez les instructions pour lier votre compte à une application d’authentification comme Google Authenticator.
* Chaque fois que vous vous connectez, vous devrez entrer un code unique généré par votre application 2FA.
***Astuce sécurité : Utilisez un mot de passe complexe et unique pour votre compte FedaPay, et évitez de le partager.***
### Prêt à commencer ?
Inscrivez-vous aujourd'hui pour découvrir les avantages de FedaPay et simplifier vos paiements en ligne. Que vous soyez un freelance, une ONG, ou une entreprise, FedaPay est l’outil idéal pour gérer vos transactions en toute sécurité.
[Créer un compte FedaPay maintenant](https://fedapay.com)
# Qu'est-ce que FedaPay
Source: https://docs.fedapay.com/introduction/fr/fedapay-fr
##### ***Bienvenue sur FedaPay : Simplifiez vos Paiements en Ligne !***
### Vue d'ensemble
**FedaPay** est une plateforme de paiement en ligne innovante, conçue pour répondre aux besoins des travailleurs indépendants, des entreprises, des plateformes e-commerce, des organisations non gouvernementales (ONG) et des structures gouvernementales. Grâce à son interface intuitive et à son intégration rapide, FedaPay facilite non seulement l’acceptation de paiements en ligne, mais aussi les dépôts vers les comptes Mobile Money des utilisateurs. La plateforme assure une gestion efficace et sécurisée des transactions, ainsi qu'un suivi fluide des flux financiers, rendant les opérations de paiement et de dépôt simples et fiables.
### Avantages
FedaPay offre une solution complète et flexible pour collecter des paiements en ligne, idéale pour différents types d’utilisateurs, comme les travailleurs indépendants, les petites entreprises ou les grandes structures. Voici les principaux avantages :
Plateforme adaptée pour les particuliers, entreprises, et ONG, permettant une gestion facile des transactions sans compétences techniques avancées.
Compatible avec des technologies courantes comme Node.js, PHP, Angular, Ruby, et React.js, pour une intégration fluide sur les sites web et les plateformes e-commerce.
Transactions sécurisées pour vous et vos clients, assurant la confidentialité et la sécurité des données.
Permet de personnaliser les options de paiement pour des flux adaptés à chaque activité (ex. travailleurs indépendants, commerces en ligne).
### Fonctionnalités principales
#### Collectes
FedaPay offre des solutions de paiement en ligne simples et sécurisées, facilitant la collecte de fonds de manière fluide et efficace avec vos clients.
* **Lien de Paiement** : Créez et partagez un lien de paiement unique pour permettre à vos clients de payer facilement sans intégration complexe.
* **Page de Paiement** : Configurez une page de paiement dédiée que vous pouvez personnaliser aux couleurs de votre marque.
* **Intégration FedaPay** : Ajoutez des solutions de paiement flexibles et simples à votre site web grâce à des **bibliothèques** disponibles pour divers langages et frameworks, ou optez pour une intégration via le [**widget FedaPay Checkout.js**](https://docs.fedapay.com/introduction/fr/checkoutjs-fr). Cette solution vous permet de choisir entre une intégration directe, pour un contrôle total et une personnalisation poussée, ou une intégration avec redirection, qui redirige vos clients vers une interface de paiement conviviale et rapide. Parfait pour les développeurs cherchant une expérience complète et adaptable aux besoins de leur site.
#### Dépôts
Les dépôts FedaPay permettent de transférer des fonds directement sur des comptes Mobile Money pour un accès facile aux liquidités, particulièrement utile pour les utilisateurs en Afrique où Mobile Money est très répandu.
**Note**: Les dépôts ne sont actuellement possibles que pour les comptes Mobile Money, permettant aux utilisateurs de recevoir facilement les fonds collectés via FedaPay sur leur téléphone mobile.
### Comment démarrer ?
C’est simple ! Inscrivez-vous sur notre plateforme et choisissez le mode de compte qui vous convient :
* [Compte Test (Sandbox)](https://sandbox.fedapay.com) : Vous souhaitez tester toutes les fonctionnalités de FedaPay sans engager de frais réels ? Idéal pour les développeurs et les entreprises qui veulent expérimenter avant de se lancer.
* [Compte Live](https://live.fedapay.com) : Prêt à accepter des paiements réels ? Passez en mode live et commencez à recevoir les paiements de vos clients en toute sécurité.
##### ***En quelques clics, acceptez les paiements !***
**Avec FedaPay**, gérer vos paiements en ligne n’a jamais été aussi simple. Que vous soyez un développeur cherchant à intégrer des solutions de paiement sur un site web, ou un entrepreneur souhaitant simplifier la gestion de vos transactions, FedaPay est l'outil parfait pour transformer vos opérations en ligne.
*Prêt à commencer ?* [Créez votre compte](https://www.fedapay.com) *dès aujourd'hui et rejoignez les milliers d’utilisateurs qui simplifient leur gestion de paiements grâce à FedaPay.*
# Concepts clés
Source: https://docs.fedapay.com/introduction/fr/keyconcepts-fr
### Clé API
**La clé API** est comme un mot de passe secret qui permet à votre site web ou application de communiquer de manière sécurisée avec FedaPay. Lorsque vous créez un compte FedaPay, vous obtenez un jeu de clés : une clé privée et une clé publique.
* **Clé privée** : Elle doit être strictement confidentielle et est utilisée pour authentifier toutes les actions sensibles, comme les transactions et la gestion des fonds sur votre compte. La clé privée est essentielle pour l'intégration directe de FedaPay dans vos systèmes, garantissant une communication sécurisée.
* **Clé publique** : Elle est utilisée pour des actions moins critiques, comme afficher des informations ou initier des paiements. Cette clé permet, par exemple, d'intégrer des solutions prêtes à l'emploi .
Ces deux clés permettent à votre système de communiquer avec FedaPay de manière sécurisée et fiable.
### Client
**Un client** est une personne ou une entreprise qui vous paie pour un produit ou un service que vous proposez. Avec FedaPay, vous avez la possibilité de suivre et de gérer les informations de vos clients, notamment leurs noms, adresses e-mail, numéros de téléphone, et l'historique de leurs transactions.
### Paiement
**Un paiement** est l'acte par lequel un client transfère des fonds au commerçant en échange d'un bien ou d'un service. Cela peut se faire par différents moyens, tels que la carte de crédit, le mobile money. Du point de vue du marchand, un paiement est la réception de fonds qui conclut une transaction, garantissant ainsi le règlement de l'achat.
### Transaction
**Une transaction** désigne spécifiquement un échange financier entre un client et un commerçant, souvent matérialisé par un paiement. Chaque fois qu'un client paie pour un produit ou service, une transaction est enregistrée.
### Webhooks
**Les Webhooks** sont des notifications automatiques que FedaPay envoie à votre site web pour vous informer qu'une action, comme un paiement réussi ou un remboursement, a eu lieu. Il est important de noter que les événements que votre système doit "écouter" sont choisis préalablement par le marchand. Cela signifie que le marchand détermine quelles actions déclenchent des notifications. Les Webhooks permettent à votre système de réagir automatiquement aux événements, simplifiant ainsi la gestion des transactions.
### Dépôt
**Un dépôt** C'est un versement effectué depuis le compte FedaPay du marchand vers le compte mobile money du client. Cela permet au marchand de transférer des fonds disponibles sur son compte FedaPay directement vers un client, facilitant ainsi les paiements ou remboursements de manière simple et sécurisée.
### Collecte
**Une collecte** fait référence à l'ensemble du processus de réception d'argent, généralement dans le cadre d'une vente ou d'un service. Une collecte implique le suivi des paiements que vous attendez de vos clients.
### Tableau de bord (Dashboard)
**Le tableau de bord** est l'interface en ligne où vous pouvez gérer toutes vos transactions, visualiser vos paiements et bien plus encore. C’est votre centre de contrôle pour tout ce qui concerne FedaPay.
### Librairie
**Une librairie** est un ensemble d'outils qui simplifie l'intégration de FedaPay à votre site web ou application. En utilisant une librairie de FedaPay pour des langages comme PHP ou JavaScript, vous pouvez gérer facilement les paiements sans avoir à tout programmer de zéro.
### Réponse API
C'est le message que FedaPay vous renvoie après que vous ayez fait une demande via l'API (par exemple, pour créer une transaction). Il vous informe si l'opération a réussi ou non, et fournit des détails comme l’état du paiement.
# Bubble
Source: https://docs.fedapay.com/libraries/fr/bubble-fr
Vous utilisez **Bubble** pour créer une application ou un site web sans coder ? Grâce au **plugin FedaPay**, vous pouvez accepter facilement des paiements par carte bancaire (Visa, MasterCard) et Mobile Money dans plusieurs pays d’Afrique de l’Ouest — sans rediriger vos utilisateurs vers une autre page.Voici les étapes pour intégrer le plugin FedaPay dans votre projet :
### Étape 1 : Installer le plugin FedaPay
1- Ouvrez l'éditeur de votre application **Bubble**.
2- Allez dans l’onglet **Plugins** (menu de gauche).
3- Cliquez sur **Add plugins**, puis recherchez **FedaPay Payment Gateway**.
4- Cliquez sur **Install** pour l’ajouter à votre application.
**Astuce** : Une fois installé, vous verrez le plugin dans la liste **Installed plugins**.
### Étape 2 : Configurer les clés API FedaPay
1- Dans l’onglet **Plugins**, cliquez sur **FedaPay Payment Gateway**.
2- Renseignez les **clés API** :
* Clé Sandbox si vous êtes en mode test
* Clé Live si vous êtes prêt à recevoir de vrais paiements
Vous trouverez vos clés dans [votre compte FedaPay](https://live.fedapay.com/login) → Paramètres API.
### Étape 3 : Ajouter l’élément FedaPay à votre page
1- Dans l’onglet **Design** de Bubble, cherchez **FedaPay Payment Gateway** dans les éléments visuels.
2- Glissez-déposez cet élément n’importe où sur votre page.
**Pourquoi cet élément est nécessaire** ?
Même s’il peut être invisible pour vos utilisateurs, cet élément permet à Bubble d’activer la fenêtre de paiement. **Ne le supprimez pas**.
### Étape 4 : Créer un bouton pour déclencher le paiement
1- Ajoutez un **bouton** (ex. : “Payer maintenant”) dans l’éditeur.
2- Cliquez dessus, puis sur **Add/Edit Workflow**.
3- Dans le workflow, ajoutez l’action **Open Checkout** (de l’élément FedaPay).
4- Complétez les champs :
* **Amount (Requis)** : le montant à payer (ex. 1000)
* **Description (facultatif)** : “Paiement de commande #123”
* **Firstname / Lastname (facultatif)**
* **Phone number** (facultatif, utile pour Mobile Money)
**Conseil** : Vous pouvez utiliser les champs de votre formulaire utilisateur pour remplir automatiquement ces données.
### Étape 5 : Gérer le succès du paiement
Une fois que l'utilisateur finalise le paiement via FedaPay, l'événement **checkout\_completed** est déclenché automatiquement dans Bubble.
**Que faire après le paiement ?**
Vous pouvez utiliser cet événement dans votre **workflow** pour :
* Enregistrer la transaction dans votre base de données
* Envoyer un email de confirmation
* Afficher un message de réussite à l’utilisateur
**Comment configurer cela dans Bubble ?**
1- Allez dans l’onglet **Workflow** de votre application Bubble.
2- Cliquez sur le bouton bleu "**New**"
3- Dans la section "**Elements**", sélectionnez **A FedaPay Payment Gateway checkout is completed**.
**Données disponibles après paiement** :
Vous pouvez récupérer ces informations dans votre workflow :
* transaction\_id
* amount
* customer\_email
* customer\_firstname
* customer\_lastname
### Étape 6 : Tester le plugin dans une app de démonstration
Envie de voir à quoi ça ressemble avant de l’implémenter vous-même ?
Consultez l’éditeur de démo ici : [Lien vers l’application de démonstration](http://bubble.io/page?id=payment-gateway-78241\&tab=Design\&name=index)
### À propos des données collectées
Le plugin FedaPay collecte uniquement les informations saisies par l'utilisateur lors du paiement (prénom, nom, email). Ces données vous sont renvoyées après paiement pour vous permettre de :
* Créer ou mettre à jour un profil utilisateur
* Envoyer une confirmation
* Faire de l’analyse de données
### Où trouver le plugin dans Bubble ?
Il faut cliquez sur le lien suivant : [FedaPay Payment Gateway](https://bubble.io/plugin/fedapay-payment-gateway-1744967327162x196581148574351360)
# Feda Give pour WordPress
Source: https://docs.fedapay.com/libraries/fr/give-fr
Grâce à **Feda Give**, vous pouvez facilement collecter des dons via Mobile Money et cartes de crédit sur votre site WordPress. Suivez ce guide simple pour installer et configurer le plugin.
Avant de commencer, assurez-vous d'installer deux plugins essentiels :
1. **Give** – le plugin principal pour gérer les dons, que vous pouvez télécharger gratuitement [ici](https://wordpress.org/plugins/give/?utm_source=give\&utm_medium=marketing\&utm_campaign=download).
2. **Feda Give** – le plugin de paiement FedaPay pour les dons, disponible [ici](https://www.fedapay.com/produit/feda-give/?v=ddd70bbaf5be).
Une fois les deux plugins installés et activés, suivez ces étapes :
1. **Accédez aux paramètres de Give** en allant dans **Dons** > **Paramètres** dans le tableau de bord WordPress.

2. Cliquez sur l'onglet **Devise** dans les paramètres généraux.
3. Définissez FCFA (XOF) comme devise par défaut, car Feda Give ne supporte que cette devise pour le moment.


4. Enregistrez les modifications.
Après avoir configuré la devise, activez FedaPay comme passerelle de paiement :
1. Cliquez sur l'onglet **Passerelles de paiements** dans les paramètres de Give.
2. Cochez la case à côté de **FedaPay** pour l'activer.
3. Cliquez sur la section **FedaPay** qui apparaît après activation.

Pour que FedaPay fonctionne correctement, vous devez connecter vos comptes FedaPay en utilisant vos **clés API secrètes**.
1. Connectez-vous à vos comptes **FedaPay Sandbox** et **Live** pour récupérer les clés API secrètes.
* **sk\_sandbox** pour votre compte test.
* **sk\_live** pour votre compte réel (live).

2. Copiez et collez la clé API secrète **test** dans le champ correspondant lorsque vous utilisez le mode test.
3. Faites de même avec la clé API secrète **live** pour recevoir de vrais dons une fois que vous êtes prêt à passer en mode réel.
**Remarque** : Utilisez la clé test lorsque le mode test est activé pour éviter de recevoir des paiements réels.

4. Enregistrez vos modifications.
Une fois la configuration terminée, vous êtes prêt à créer votre formulaire de dons.
1. Cliquez sur **Dons** > **Ajouter un formulaire** pour créer un formulaire de collecte de dons via Give.

2. Personnalisez votre formulaire en fonction de vos besoins.
Votre intégration de **Feda Give** est maintenant complète ! Vous pouvez désormais collecter des dons via Mobile Money et cartes de crédit sur votre site WordPress.
# Odoo
Source: https://docs.fedapay.com/libraries/fr/odoo-fr
Ce module permet d’ajouter **FedaPay** comme fournisseur de paiement natif dans votre environnement **Odoo**, afin d'accepter en toute sécurité les paiements par carte bancaire et Mobile Money via FedaPay Checkout. Il es Compatible avec les modules eCommerce et Invoicing d’Odoo.
**Pourquoi choisir FedaPay ?**
* Aucun frais d’installation ni abonnement
* Vous ne payez que si vous recevez un paiement
* Règlements automatiques tous les 3 jours vers votre compte bancaire ou portefeuille Mobile Money
* Infrastructure rapide, fiable et sécurisée
### Installation & Configuration
1. Installer le module **FedaPay Payment Provider**
Dans votre interface Odoo :
* Accédez au menu Apps
* Recherchez et installez le module **FedaPay Payment Provider**
* Vérifiez que tous les modules requis sont bien activés (eCommerce, Invoicing)
2. Accéder à la configuration du Prestataire de services de paiement
Selon votre cas d’usage (site e-commerce ou facturation) :
* Rendez-vous dans **Website → Configuration → Payment Providers**
ou
**Invoicing → Configuration → Payment Providers**
* Dans la liste, cliquez sur **FedaPay** pour ouvrir sa fiche de configuration
3. Configurer FedaPay dans Odoo
a) Mode de fonctionnement
* Test : pour simuler les transactions sans impact réel
* Live : pour accepter des paiements réels
Activez uniquement le mode Live une fois les tests concluants.
b) Onglet "Credentials"
Entrez votre clé secrète API FedaPay, en fonction du mode choisi (Test ou Live)
c) Onglet "Configuration"
* Sélectionnez un journal comptable auquel rattacher les transactions (ex. Banque, Mobile Money)
* Cliquez sur "**Save**" pour enregistrer vos paramètres.
### Démo & Cas d’usage
1. Paiement via un site eCommerce Odoo
Une fois FedaPay configuré :
* L’utilisateur ajoute des produits à son panier
* Lors du paiement, l’option FedaPay apparaît comme méthode disponible
2. Redirection vers FedaPay Checkout
* L’utilisateur est automatiquement redirigé vers la page sécurisée de FedaPay
* Il saisit ses informations de paiement (Mobile Money ou carte)
3. Confirmation du paiement
Après une transaction réussie :
* L’utilisateur est renvoyé vers la page de confirmation de paiement Odoo
* Le statut de la commande est mis à jour automatiquement
4. Paiement d’une facture via Sign & Pay
Pour les factures générées via le module Invoicing :
* Le client reçoit un lien avec l’option **Sign & Pay**
* Il clique sur **Pay** avec FedaPay
5. Traitement et confirmation
* Le client est redirigé vers FedaPay pour le paiement
* Après paiement, il revient automatiquement sur Odoo avec confirmation
**Bonnes pratiques** :
* Activez les **Webhooks** depuis le tableau de bord de votre compte FedaPay pour une synchronisation parfaite des statuts de paiement.
### Ressources complémentaires
Module disponible sur l’Odoo [App Store – payment\_fedapay](https://apps.odoo.com/apps/modules/18.0/payment_fedapay)
# OpenCart
Source: https://docs.fedapay.com/libraries/fr/opencart-fr
Intégrer FedaPay à votre boutique OpenCart est facile grâce à notre plugin. Suivez ces étapes simples pour installer et configurer FedaPay et commencer à accepter les paiements.
Téléchargez le plugin FedaPay pour OpenCart en cliquant [ici](https://www.fedapay.com/produit/plugin-fedapay-pour-opencart/?v=ddd70bbaf5be).

**Étapes d'installation :**
1. Accédez à votre **tableau de bord OpenCart**.
2. Cliquez sur **Extensions** > **Installer**.

3. Cliquez sur le bouton **Upload** pour téléverser le plugin que vous avez téléchargé.

**Important** : Ne changez pas le nom du fichier du plugin (fedapay.ocmod.zip) lors du téléversement, sinon l'installation échouera.
4. Une fois l'ajout terminé, cliquez sur le sous-menu **Extensions** pour voir la liste des extensions disponibles.

5. Filtrez par catégorie **Payments** (Paiements).

6. Trouvez **FedaPay** dans la liste des moyens de paiement.

7. Cliquez sur le bouton vert pour installer FedaPay.

Une fois installé, vous devez configurer FedaPay pour qu'il fonctionne avec votre boutique.
1. Cliquez sur le bouton bleu **Configurer** pour accéder aux réglages de FedaPay.

2. Activez FedaPay en passant le \**Status* de "Disabled" à "Enabled".

3. Choisissez l'environnement selon vos besoins :
* **Sandbox** si vous voulez tester avec un compte test.
* **Live** pour commencer à accepter des paiements réels avec votre compte FedaPay.

4. Selon l'environnement choisi, copiez et collez la **clé API secrète** de votre compte FedaPay.
* Si vous avez choisi **Sandbox**, copiez la clé API de votre compte FedaPay Sandbox.
* Si vous avez choisi **Live**, copiez la clé API de votre compte FedaPay Live.

5. **Sort Order** : Ce champ vous permet de définir l'ordre d'affichage de FedaPay si vous avez plusieurs options de paiement. Remplissez ce champ selon vos préférences.
6. Cliquez sur le bouton de sauvegarde en haut à droite pour enregistrer vos réglages.

FedaPay supporte uniquement le **FCFA** comme devise. Vous devez donc l'ajouter et la définir comme devise par défaut.
**Étapes pour ajouter le FCFA :**
1. Cliquez sur **System** > **Localisation** > **Currencies**.

2. Cliquez sur le bouton bleu **Ajouter une devise**.

3. Remplissez les informations pour le **FCFA** (nom, symbole, taux de conversion) et sauvegardez.

**Définir le FCFA comme devise par défaut :**
1. Allez dans **System** > **Settings**.

2. Cliquez sur le bouton d'édition pour accéder aux paramètres de votre boutique.

3. Allez dans l'onglet **Local**, puis dans l'option **Currency**, sélectionnez **FCFA** dans la liste des devises.

4. Cliquez sur **Sauvegarder**.
Votre boutique OpenCart est maintenant prête à accepter les paiements via FedaPay !
# Prestashop
Source: https://docs.fedapay.com/libraries/fr/prestashop-fr
Intégrer FedaPay à votre boutique PrestaShop est simple grâce à notre plugin dédié. Suivez ce guide pour installer et configurer rapidement FedaPay afin de commencer à accepter des paiements en ligne en toute simplicité.
Vous pouvez télécharger le plugin FedaPay pour PrestaShop en cliquant [ici](https://www.fedapay.com/produit/plugin-fedapay-pour-prestashop/?v=ddd70bbaf5be).

**Étapes d'installation :**
1. Accédez à votre tableau de bord PrestaShop.
2. Cliquez sur **Modules** > **Module Manager**.

3. Cliquez sur **Installer un module**.

4. Téléversez le fichier du plugin que vous avez téléchargé.

Une fois le plugin téléversé, l'installation démarre automatiquement. Vous recevrez une notification de succès dès que l’installation sera terminée.

Après l'installation, cliquez sur **Configurer** pour accéder aux paramètres de FedaPay.

Vous pouvez configurer le plugin pour fonctionner en **mode test (sandbox)** ou en **mode live** selon vos besoins :
**Mode Test (Sandbox) :**
* Connectez-vous à votre compte **FedaPay Sandbox**.
* Allez dans le menu **API** et copiez la clé secrète de test (**sk\_sandbox**).
* Collez cette clé dans le champ correspondant sur PrestaShop.

**Mode Live :**
* Connectez-vous à votre compte **FedaPay Live**.
* Allez dans le menu **API** et copiez la clé secrète live (**sk\_live**).
* Collez cette clé dans le champ correspondant sur **PrestaShop**.

FedaPay prend en charge uniquement le **FCFA** pour le moment. Vous devez donc configurer cette devise par défaut dans PrestaShop.
**Étapes pour ajouter le FCFA :**
1. Allez dans **International** > **Localization**.

2. Cliquez sur l'onglet **Currencies**.

3. Cliquez sur **Ajouter une devise**.

4. Choisissez **FCFA** dans la liste déroulante.
5. Définissez le taux de conversion en Euro (si nécessaire).

Une fois que vous avez ajouté le **FCFA**, il apparaîtra dans la liste des devises de votre boutique.

**Définir le FCFA comme devise par défaut :**
1. Retournez dans **Localisation**.
2. Faites défiler la page jusqu'aux paramètres des devises.
3. Choisissez le **FCFA** comme devise par défaut.

Une fois toutes les étapes précédentes terminées, votre boutique PrestaShop est configurée pour accepter les paiements via FedaPay.
# Configuration du plugin WHMCS pour FedaPay
Source: https://docs.fedapay.com/libraries/fr/whmcs-fr
**WHMCS** est un système d'automatisation d'hébergement web simple à utiliser. Si vous gérez un site d'hébergement web avec WHMCS, **FedaPay** propose un plugin d'intégration pour collecter des paiements en toute simplicité. Voici comment l'installer et le configurer.
Avant de commencer, suivez ces étapes simples pour installer le plugin :
1. **Créez un compte FedaPay** en vous inscrivant [ici](https://live.fedapay.com/register).
2. **Téléchargez le plugin WHMCS** pour FedaPay disponible sur GitHub [ici](https://github.com/fedapay/whmcs-fedapay).
3. Une fois téléchargé, vous devrez **copier les fichiers** dans les dossiers de votre système WHMCS.
**Structure des fichiers à copier :**
```
modules/fedapay/
callback/fedapay.php
fedapay-php/
fedapay.php
```
* Copiez le dossier **fedapay-php/** et le fichier **fedapay.php** dans le dossier **modules/gateways/** de votre installation WHMCS.
* Copiez le contenu du dossier **callback/** dans **modules/gateways/callback/**.
Une fois les fichiers du plugin installés, suivez les étapes ci-dessous pour configurer FedaPay dans WHMCS :
**Étape 1 : Accéder aux paramètres de paiement**
* Dans votre tableau de bord WHMCS, allez dans **Setup** > **Payments** > **Payment Gateways**.


* Cliquez sur l'onglet **All Payment Gateways** pour voir la liste complète des passerelles de paiement disponibles.

* Dans la liste, sélectionnez **FedaPay** pour l'activer.
**Étape 2 : Activer et configurer FedaPay**
* Cochez la case **Show on Order Form** pour permettre à vos clients de voir FedaPay sur le formulaire de commande.
* Si vous êtes en mode test, cochez la case **Sandbox Mode**. Sinon, laissez cette case décochée pour les transactions réelles.
**Étape 3 : Récupérer et entrer vos clés API**
* Connectez-vous à vos comptes **FedaPay Sandbox** (test) et **FedaPay Live** (réel).
* Copiez les **clés API secrètes** pour chaque mode :
* **sk\_sandbox** pour le mode test.
* **sk\_live** pour le mode réel.

* Collez ces clés dans les champs correspondants dans WHMCS.
**Étape 4 : Enregistrer les modifications**
Cliquez sur **Enregistrer** pour sauvegarder vos modifications.
Pour permettre à vos clients de payer en **FCFA (XOF)**, vous devez ajouter cette devise dans WHMCS.
* Dans le menu **Payments**, cliquez sur **Currencies**.
* Modifiez la devise par défaut ou ajoutez **XOF** comme nouvelle devise.


Vous avez maintenant terminé la configuration de FedaPay pour WHMCS. Votre passerelle de paiement est prête à recevoir des paiements via Mobile Money et cartes de crédit.
# WooCommerce
Source: https://docs.fedapay.com/libraries/fr/woocommerce-fr
Intégrer FedaPay à votre boutique WooCommerce est simple grâce à notre plugin dédié pour WordPress. Suivez ce guide pour installer et configurer le plugin afin de commencer à accepter des paiements en ligne rapidement.
Vous pouvez télécharger le plugin FedaPay :
* Directement depuis ce [Lien](https://wordpress.org/plugins/woo-gateway-fedapay/)
* Ou depuis votre tableau de bord WordPress, en allant dans **Extensions** > **Ajouter** et en recherchant **"FedaPay WooCommerce"**.

Une fois le plugin installé, activez-le en cliquant sur **Activer**. Ensuite, dirigez-vous vers les paramètres de WooCommerce pour finaliser la configuration.
Pour configurer FedaPay, allez dans le tableau de bord WordPress puis cliquez sur :
* **WooCommerce**
* **Réglages**
* **Paiements**
Dans cette section, vous verrez tous les moyens de paiement disponibles. Tout en bas, vous trouverez **FedaPay**.

Cliquez sur **Configuration** à côté de FedaPay pour ouvrir les options de configuration.
Voici les principaux paramètres à configurer :
* **Activer FedaPay**: Cochez cette option pour activer FedaPay et recevoir des paiements en direct.
* **Mode Test (sandbox)** : Cochez cette case uniquement si vous effectuez des tests. Laissez-la décochée lorsque vous passez en mode live pour accepter les paiements réels.

Pour utiliser FedaPay, vous devez entrer vos clés API (privées) pour les environnements test et live. Voici comment les récupérer :
1. Connectez-vous à votre compte FedaPay.
2. Accédez à votre **tableau de bord** FedaPay.
3. Trouvez les clés API de vos comptes **Sandbox** (test) et **Live** (production).
* La clé privée pour le mode **live** commence par **sk\_live**.
* La clé privée pour le mode **sandbox** (test) commence par **sk\_sandbox**.
4. Copiez ces clés et collez-les dans les champs correspondants dans les paramètres WooCommerce.

Une fois les clés API correctement entrées, cliquez sur **Enregistrer les modifications** pour finaliser la configuration.
Félicitations, votre passerelle FedaPay est maintenant configurée et prête à être utilisée pour accepter les paiements de vos clients directement depuis votre boutique WooCommerce !

Avec ces étapes simples, vous pouvez maintenant profiter des paiements en ligne rapides et sécurisés grâce à FedaPay sur votre boutique WooCommerce.
# Méthodes de Paiement avec FedaPay
Source: https://docs.fedapay.com/payment-methods/fr/payment-methods-fr
## Collectes
#### Modes de Paiement disponibles
MTN, Moov, Celtiis, BMO, Coris Money
Mixx By Yas, Moov
MTN
Airtel
Free Sénégal
Visa/MasterCard
#### Modes de Paiement disponibles sans Redirection
Dans ce mode, les utilisateurs restent sur le site ou l’application pour finaliser leur paiement, sans être redirigés vers une autre interface de paiement. Ce mode est idéal pour un flux utilisateur fluide et rapide.
`MTN`,
`Moov`,
`Celtiis``Moov`,
`Mixx By Yas``MTN``Airtel Niger``Free Sénégal`
## Dépôts
`MTN`,
`Moov`,
`Celtiis``Mixx By Yas``MTN`Tous les modes de paiement disponibles au niveau des dépôts sont Sans redirection .
# Angular SDK
Source: https://docs.fedapay.com/sdks/fr/angular-fr
**L'Angular SDK de FedaPay** permet d’intégrer rapidement des paiements dans des applications front-end robustes, avec une gestion simplifiée des interactions API.
### Installation
***Ajoutez la librairie avec npm***
```typescript theme={null}
npm install fedapay-angular --save
```
### Cas d'usage
Ce cas d'usage illustre comment intégrer et configurer facilement le bouton et le widget de paiement FedaPay dans une application Angular pour gérer des transactions sécurisées en ligne.
```typescript theme={null}
import { Component } from '@angular/core';
import { CheckoutOptions } from 'fedapay-angular';
@Component({
selector: 'app-root',
templateUrl: './app.component.html',
styleUrls: ['./app.component.scss']
})
export class AppComponent {
checkoutButtonOptions: CheckoutOptions = {
transaction: {
amount: 100,
description: 'Airtime'
},
currency: {
iso: 'XOF'
},
button: {
class: 'btn btn-primary',
text: 'Payer 100 FCFA'
},
onComplete(resp) {
const FedaPay = window['FedaPay'];
if (resp.reason === FedaPay.DIALOG_DISMISSED) {
alert('Vous avez fermé la boite de dialogue');
} else {
alert('Transaction terminée: ' + resp.reason);
}
console.log(resp.transaction);
}
};
checkoutEmbedOptions: CheckoutOptions = {
transaction: {
amount: 100,
description: 'Airtime'
},
currency: {
iso: 'XOF'
}
};
}
```
***Explorez plus d'exemples sur [le dépôt GitHub Angular SDK de FedaPay](https://github.com/FedaPay/fedapay-angular).***
Voici :
Code source de l’application de démonstration : [sample-angular](https://github.com/fedapay-samples/sample-angular)
Démo en ligne : [angularsample](https://angularsample.fedapay.com/)
Assurez-vous d'utiliser la clé publique appropriée en fonction de votre environnement :
* Pour l'environnement **sandbox** (test), utilisez la clé publique de votre compte sandbox.
Pour l'environnement **live** (production), utilisez la clé publique de votre compte live.
Lors de l'intégration de FedaPay dans une application Angular, assurez-vous que l'objet global **FedaPay** est correctement chargé dans le navigateur avant d'utiliser des callbacks comme **onComplete**. Si vous rencontrez des problèmes, vérifiez que le script FedaPay est inclus dans le fichier **angular.json** sous la section **scripts**. Par exemple :
```typescript theme={null}
"scripts": [
"node_modules/fedapay-angular/dist/fedapay.js"
]
```
# Node.js SDK
Source: https://docs.fedapay.com/sdks/fr/nodejs-fr
**La librairie Node.js de FedaPay** offre une gestion simplifiée des paiements pour les applications JavaScript côté serveur, idéale pour les API REST et les applications Node.js.
### Installation
***Utilisez npm pour installer la librairie :***
```javascript theme={null}
npm install fedapay --save
```
### Cas d'usage
#### exemple de création de client :
```javascript theme={null}
const { FedaPay, Customer } = require('fedapay');
/* Replace YOUR_SECRETE_API_KEY with your real API key */
FedaPay.setApiKey("YOUR_SECRETE_API_KEY");
/* Specify whether you want to run your query in test or live mode */
FedaPay.setEnvironment('sandbox'); //or setEnvironment('live');
/* Create customer */
const customer = await Customer.create({
firstname: 'John',
lastname: 'Doe',
email: 'john@doe.com',
phone_number: {
number: '90090909',
country: 'BJ'
}
});
```
#### exemple de création d’une transaction
```javascript theme={null}
const { FedaPay, Transaction } = require('fedapay');
FedaPay.setApiKey('YOUR_SECRET_API_KEY');
FedaPay.setEnvironment('sandbox');
const transaction = await Transaction.create({
description: 'Payment for order #1234',
amount: 1000,
currency: { iso: 'XOF' },
callback_url: 'https://example.com/callback',
mode: 'mtn_open',
customer: { id: 1 }
});
```
Pour aller plus loin avec l’intégration Node.js, explorez les ressources suivantes :
Le dépôt GitHub officiel : [fedapay-node](https://github.com/FedaPay/fedapay-node)
La Référence API : [api-reference](https://docs.fedapay.com/api-reference/introduction)
Code source de l’application de démonstration : [node-sample](https://github.com/fedapay-samples/sample-node)
Démo en ligne : [nodesample](https://nodesample.fedapay.com)
Ces ressources vous offrent une base solide pour intégrer FedaPay dans vos projets Node.js, avec des exemples concrets et prêts à l’emploi.
# Aperçu des SDKs FedaPay
Source: https://docs.fedapay.com/sdks/fr/overview-fr
Découvrez les SDKs de FedaPay conçus pour des intégrations de paiements fluides. Avec plusieurs SDKs côté serveur et front-end, les développeurs peuvent gérer facilement les transactions et personnaliser les fonctionnalités de paiement selon leurs besoins.
## SDKs côté serveur
Les SDKs côté serveur permettent aux développeurs backend d'intégrer efficacement les fonctionnalités de FedaPay à leurs applications. Ces bibliothèques offrent des outils pour gérer les clients, effectuer des transactions et interagir avec l'API FedaPay.
Une bibliothèque complète pour les développeurs PHP, compatible avec des frameworks tels que Laravel et Symfony.
Conçu pour les environnements JavaScript côté serveur, ce SDK simplifie les interactions avec l'API dans les applications Node.js.
Adapté aux développeurs Ruby et Ruby on Rails, ce SDK facilite l'intégration avec l'API et la gestion des paiements.
## SDKs Web
Les SDKs front-end permettent aux développeurs d'intégrer aisément des options de paiement à leurs applications web tout en tirant parti des widgets et interfaces préconçus.
Une bibliothèque React pour intégrer le bouton et le widget de paiement FedaPay, idéale pour les applications web modernes.
Conçu pour les projets Angular, ce SDK garantit une intégration fluide des fonctionnalités de paiement FedaPay grâce à des composants adaptés.
***Cliquez sur un SDK pour consulter sa documentation, ses instructions d'installation et ses cas d'utilisation adaptés à vos besoins de développement.***
# PHP SDK
Source: https://docs.fedapay.com/sdks/fr/php-fr
La Librairie PHP de FedaPay permet une intégration fluide avec des applications back-end développées en PHP, offrant des outils pour gérer les transactions et interagir avec l'API FedaPay. Compatible avec les frameworks populaires tels que Laravel et Symfony.
### Installation
Pour installer la librairie FedaPay avec Composer, utilisez la commande suivante :
```Php theme={null}
composer require fedapay/fedapay-php
```
### Cas d'usage :
#### exemple d'implémentation pour créer un client :
```php theme={null}
/* Remplacez YOUR_SECRETE_API_KEY par votre clé API secrète */
\FedaPay\FedaPay::setApiKey("YOUR_SECRETE_API_KEY");
/* Indiquez si vous souhaitez exécuter votre requête en mode test ou en live */
\FedaPay\FedaPay::setEnvironment('sandbox'); //or setEnvironment('live');
/* Créer un client */
\FedaPay\Customer::create(array(
"firstname" => "John",
"lastname" => "Doe",
"email" => "John.doe@gmail.com",
"phone_number" => [
"number" => "+22966666600",
"country" => 'bj' // 'bj' Benin code
]
));
```
#### exemple d’implémentation pour créer une transaction :
```php theme={null}
\FedaPay\Fedapay::setApiKey('YOUR_API_KEY');
\FedaPay\Fedapay::setEnvironment('sandbox');
$transaction = \FedaPay\Transaction::create([
'description' => 'Payment for order #1234',
'amount' => 1000,
'currency' => ['iso' => 'XOF'],
'callback_url' => 'https://example.com/callback',
'mode' => 'mtn_open',
'customer' => ['id' => 1]
]);
```
Pour aller plus loin dans l’intégration avec PHP, consultez les ressources suivantes :
Le dépôt GitHub officiel : [fedapay-php](https://github.com/FedaPay/fedapay-php)
La Référence API : [api-reference](https://docs.fedapay.com/api-reference/introduction)
Code source de l’application de démonstration : [php-sample](https://github.com/fedapay-samples/sample-php)
Démo en ligne : [phpsample](https://phpsample.fedapay.com)
Ces ressources vous guideront étape par étape pour intégrer FedaPay efficacement dans vos projets PHP.
# React.js SDK
Source: https://docs.fedapay.com/sdks/fr/reactjs-fr
**La librairie React.js** de FedaPay permet une intégration rapide des paiements dans des interfaces interactives, idéale pour des projets modernes.
### Installation
***Ajoutez la librairie avec npm:***
```javascript theme={null}
npm install fedapay-reactjs --save
```
### Cas d'usage
Ce cas d’usage montre comment intégrer le bouton et le widget de paiement FedaPay dans une application React en utilisant la bibliothèque **fedapay-reactjs**.
```javascript theme={null}
import React, { Component } from 'react';
import { FedaCheckoutButton, FedaCheckoutContainer } from 'fedapay-reactjs';
export default class App extends Component {
PUBLIC_KEY = 'pk_sandbox_XXXXXX';
checkoutButtonOptions = {
public_key: this.PUBLIC_KEY,
transaction: {
amount: 100,
description: 'Airtime'
},
currency: {
iso: 'XOF'
},
button: {
class: 'btn btn-primary',
text: 'Payer 100 FCFA'
},
onComplete(resp) {
const FedaPay = window['FedaPay'];
if (resp.reason === FedaPay.DIALOG_DISMISSED) {
alert('Vous avez fermé la boite de dialogue');
} else {
alert('Transaction terminée: ' + resp.reason);
}
console.log(resp.transaction);
}
};
checkoutEmbedOptions = {
public_key: this.PUBLIC_KEY,
transaction: {
amount: 100,
description: 'Airtime'
},
currency: {
iso: 'XOF'
}
};
render() {
return (
)
}
}
```
***Retrouvez plus d'informations dans [le dépôt GitHub React.js SDK de FedaPay](https://github.com/FedaPay/fedapay-reactjs).***
Voici :
Code source de l’application de démonstration : [sample-react](https://github.com/fedapay-samples/sample-react)
Démo en ligne : [reactsample](https://reactsample.fedapay.com)
NB:
Assurez-vous d'utiliser la **clé publique** appropriée en fonction de votre environnement :
* Pour l'environnement **sandbox** (test), utilisez la clé publique de votre compte sandbox.
* Pour l'environnement **live** (production), utilisez la clé publique de votre compte live.
Dans une application React, la manipulation directe de **l'objet global FedaPay** peut provoquer des erreurs si le composant se monte ou se démonte avant que la transaction soit terminée. Pour éviter cela :
* Ajoutez des vérifications pour gérer correctement le cycle de vie des composants.
* Veillez à inclure le script FedaPay via un CDN dans le fichier HTML principal (souvent **public/index.html**) si nécessaire.
***Exemple d'inclusion dans public/index.html :***
```javascript theme={null}
```
# Ruby SDK
Source: https://docs.fedapay.com/sdks/fr/ruby-fr
FedaPay propose une **librairie Ruby** intégrée pour interagir avec son API, particulièrement utile dans des projets Ruby on Rails.
### Installation
***Ajoutez la gemme suivante à votre fichier Gemfile***
```ruby theme={null}
$ gem install fedapay-ruby
```
### Cas d'usage
#### exemple de cas pour créer un client
```ruby theme={null}
require 'fedapay';
# configure FedaPay library
FedaPay.api_key = '' # Your secret api key
FedaPay.environment = '' # sandbox or live
phone = {
country: 'bj',
number: '66000001'
};
customer = FedaPay::Customer.create(
firstname: 'firstname',
lastname: 'lastname',
email: 'email@test.com',
phone_number: phone
);
```
#### exemple de cas pour créer une transaction
```ruby theme={null}
require 'fedapay'
FedaPay.api_key = 'YOUR_SECRET_API_KEY'
FedaPay.environment = 'sandbox'
transaction = FedaPay::Transaction.create(
amount: 1000,
currency: { iso: 'XOF' },
customer: { id: 1 },
description: 'Payment for order #1234',
callback_url: 'https://example.com/callback',
mode: 'mtn_open'
)
puts "Transaction successfully created : #{transaction.inspect}"
```
Pour intégrer FedaPay avec Ruby, consultez les ressources ci-dessous :
Le dépôt GitHub officiel : [fedapay-ruby](https://github.com/FedaPay/fedapay-ruby)
La Référence API : [api-reference](https://docs.fedapay.com/api-reference/introduction)
Code source de l’application de démonstration : [ruby-sample](https://github.com/fedapay-samples/sample-ruby)
Démo en ligne : [rubysample](https://rubysample.fedapay.com)
Ces ressources proposent des cas d’usage concrets pour vous aider à intégrer FedaPay dans vos projets Ruby de manière fluide et rapide.
# Bonnes pratiques
Source: https://docs.fedapay.com/security/fr/best-practices-fr
La sécurité des transactions et la protection des données clients sont essentielles pour maintenir la confiance de vos utilisateurs et garantir l'intégrité de votre plateforme de paiement. Voici un guide complet pour renforcer la sécurité de vos applications et respecter les meilleures pratiques en matière de stockage de données sensibles.
## Sécurisation des Applications
En plus des mesures de sécurité intégrées par FedaPay, il est important que chaque utilisateur de notre service renforce la sécurité de son application ou de sa plateforme. La mise en place de protocoles tels que **TLS/HTTPS** et le respect de bonnes pratiques de cryptage sont cruciaux pour protéger les données de vos clients.
### Utilisation du TLS/HTTPS pour la Transmission des Données
**TLS (Transport Layer Security)** est le protocole qui garantit la sécurité des communications entre le navigateur du client et votre serveur. Initialement, SSL (Secure Sockets Layer) remplissait cette fonction, mais il a été remplacé par TLS pour une meilleure sécurité.
### Pourquoi utiliser TLS/HTTPS ?
* **Chiffrement des Données** : TLS chiffre toutes les informations échangées entre le client et le serveur, assurant que les données sensibles ne sont pas interceptées par des tiers.
* **Authentification du Serveur** : TLS vérifie que le client communique bien avec le serveur authentique et non avec un imposteur.
**Exemple :** Les pages de paiement doivent obligatoirement utiliser TLS 1.2 ou une version plus récente. Ce protocole sécurise le flux de données et renforce la confiance des clients, ce qui peut même contribuer à améliorer les taux de conversion.
### Mise en Place de TLS/HTTPS
Un certificat numérique, délivré par une autorité de certification (CA), est nécessaire pour configurer TLS. Ce certificat garantit aux utilisateurs l’authenticité de votre serveur.
**Options de certificats :**
* [Let’s Encrypt](https://letsencrypt.org/) : Gratuit
* [DigiCert](https://www.digicert.com/) : Payant, recommandé pour des options avancées
* [NameCheap](https://www.namecheap.com/) : Offrant des certificats adaptés aux petites et moyennes entreprises
Une fois le certificat obtenu, configurez votre serveur pour l’utiliser. Consultez les guides d’installation de l’autorité de certification que vous avez choisie pour garantir une configuration correcte.
Utilisez des outils tels que le SSL Labs Server Test pour vous assurer que votre configuration TLS est sécurisée.
## Sécurité des Comptes : Chiffrement des Mots de Passe et Gestion des Identifiants
La protection des mots de passe utilisateurs est essentielle pour sécuriser vos comptes et protéger vos clients contre les accès non autorisés.
### Importance du Chiffrement des Mots de Passe
Stocker les mots de passe en texte clair dans une base de données est une pratique risquée et fortement déconseillée. Utilisez un hachage pour garantir la confidentialité des mots de passe et protéger vos utilisateurs contre les attaques.
**Exemple :** Dans un système multi-niveaux où chaque utilisateur a des privilèges distincts, un accès non autorisé peut compromettre la sécurité des informations sensibles (ex. : un technicien ne devrait pas avoir le même accès qu’un directeur).
### Protection par Hachage et Salage des Mots de Passe
1. **Utilisation de “Salts”** : Un salt (ou graine) est une clé ajoutée au mot de passe avant le hachage. Cela rend chaque hachage unique, même pour des mots de passe identiques.
2. **Hachage des Mots de Passe :** Utilisez des algorithmes de hachage tels que **SHA-256** au lieu de **MD5** ou **SHA1**, qui sont aujourd’hui vulnérables.
**Exemple :** Lorsqu’un utilisateur crée un compte, générez un salt unique, combinez-le avec le mot de passe, puis hachez le résultat. En stockant le hash et le salt, vous complexifiez considérablement les attaques par rainbow tables.
### Recommandations pour le Choix du Mot de Passe
* Utilisez un mot de passe fort d'au moins 8 caractères incluant lettres majuscules, minuscules, chiffres, et symboles.
* Ne réutilisez pas le même mot de passe pour plusieurs comptes.
* Modifiez régulièrement vos mots de passe pour minimiser les risques.
## Mise en Place de Questions Secrètes pour une Sécurité Renforcée
Les questions secrètes sont un moyen de protection supplémentaire pour vérifier l'identité de l'utilisateur en cas de récupération de mot de passe.
### Comment Choisir des Questions Secrètes
* Choisissez des questions dont les réponses sont difficiles à deviner et uniquement connues par l’utilisateur.
* Conservez une option pour mettre à jour les questions secrètes via le tableau de bord pour une sécurité supplémentaire.
**Exemple :** Choisissez deux questions dans la liste fournie dans votre profil de sécurité et assurez-vous que les réponses sont confidentielles et non évidentes.
## Bonnes Pratiques Supplémentaires
1. **Ne jamais partager vos identifiants** : Évitez de communiquer votre mot de passe à qui que ce soit.
2. **Utiliser des Authentifications Multifactorielle (MFA)** : Intégrer une solution de double authentification renforce significativement la sécurité des comptes.
3. **Surveillance des Comptes** : Activez des notifications de connexion pour alerter les utilisateurs en cas d’accès suspect.
## Conseils de Sécurité pour Protéger Votre Compte Marchand FedaPay
La sécurité de votre compte marchand est essentielle pour éviter les accès non autorisés et protéger les données de vos transactions. Voici des recommandations pratiques pour renforcer la sécurité de votre compte et limiter les risques d'intrusion.
### Créez un Mot de Passe Sécurisé
* Choisissez un mot de passe d’au moins 8 caractères, intégrant chiffres, lettres majuscules et minuscules. Un mot de passe complexe est plus difficile à deviner.
* Évitez de réutiliser le même mot de passe pour plusieurs comptes. En cas de fuite d’informations sur un autre service, un mot de passe unique pour chaque compte limitera les risques d’accès à votre compte FedaPay.
### Gardez Votre Mot de Passe Confidentiel
* Ne jamais partagez votre mot de passe avec autrui, même avec des personnes de confiance.
* Si vous devez conserver votre mot de passe, utilisez un gestionnaire de mots de passe sécurisé.
### Protégez Vos Appareils
Assurez-vous que vos ordinateurs, tablettes et smartphones sont protégés par un **pare-feu**, un **filtre anti-spam**, un **antivirus** et un **anti-espion**. Ces outils vous aideront à bloquer les tentatives d'intrusion.
### Restez Vigilant Face aux Emails Non Sollicités
* Méfiez-vous des courriels et spams inattendus. Ne cliquez jamais sur des liens ou pièces jointes provenant de sources inconnues.
* Évitez de répondre aux emails demandant de confirmer des informations sensibles, comme vos identifiants ou vos informations financières.
* Supprimez immédiatement tout email qui vous promet un gain ou une sélection pour un concours auquel vous n’avez jamais participé.
## Politique de Gestion des Fraudes
Malgré les mesures de sécurité, des incidents de fraude peuvent survenir. FedaPay a mis en place une politique de gestion des fraudes pour protéger à la fois les marchands et leurs clients.
### Exemples de Fraudes Possibles
* **Transactions non autorisées** : Un accès frauduleux a permis de réaliser des transactions depuis le compte d’un client.
* **Responsabilité déclinée** : Un client affirme ne pas être responsable d’un achat réalisé via votre site.
* **Problème de livraison** : Le client n’a pas reçu son achat dans les délais convenus.
* **Produit défectueux** : Un client insatisfait d’un produit ou service, car celui-ci est défectueux, demande un remboursement.
### Notre Engagement de Protection
FedaPay a conçu une politique pour gérer ces cas, protégeant ainsi vos intérêts tout en assurant la satisfaction de vos clients. Cette approche favorise une résolution équitable pour toutes les parties concernées, aidant à maintenir la confiance et à résoudre les litiges de manière transparente et efficace.
# Fraudes et sécurité
Source: https://docs.fedapay.com/security/fr/fraud-security-fr
Chez FedaPay, la sécurité des transactions est une priorité. Nous mettons en place des mesures rigoureuses pour détecter, prévenir et gérer les fraudes, tout en assurant la protection des données de nos marchands et clients. Grâce à des mécanismes de contrôle et des partenariats avec des institutions financières fiables, nous veillons à ce que chaque transaction se déroule en toute confiance.
## Détection et gestion des fraudes
### Côté marchand
* **Vérification des transactions :** Chaque transaction est soigneusement analysée par le système FedaPay pour détecter toute activité suspecte.
* **Authentification du marchand :** Lorsqu'un marchand fait une demande de paiement, FedaPay s'assure que la demande provient bien du propriétaire du compte.
* **Gestion des fonds :** L'argent des marchands est conservé en toute sécurité par une institution financière partenaire. Il n'est transféré vers le compte bancaire ou le compte mobile money du marchand qu'à la demande de celui-ci.
### Côté acheteur
* **Vérification des informations bancaires :** Lorsqu'un client effectue un achat avec une carte de crédit, FedaPay collabore avec une **banque partenaire** pour vérifier l'authenticité des informations de la carte. Si les informations sont incorrectes, la transaction est automatiquement refusée.
* **Sécurité des transactions mobiles :** Pour les achats via numéro mobile, toutes les transactions respectent les **normes de sécurité imposées par la BCEAO** (Banque Centrale des États de l'Afrique de l'Ouest). Le client doit également valider chaque transaction en saisissant son **code PIN secret**.
## Mesures de sécurité
FedaPay s'engage à offrir des solutions robustes pour protéger à la fois les marchands et les acheteurs contre les fraudes. Voici les mesures clés :
* **Protection des données :** Les informations sensibles (comme les coordonnées bancaires) sont protégées par des systèmes de chiffrement pour éviter toute fuite.
* **Authentification à Double Facteur (2FA) :** Une couche supplémentaire qui exige que l'utilisateur confirme son identité via un deuxième moyen, tel qu'un code envoyé par SMS, une application d'authentification, ou un e-mail de vérification. Ce mécanisme réduit considérablement le risque d'accès non autorisé en exigeant une preuve d'identité supplémentaire.
* **Suivi des transactions en temps réel :** Chaque transaction est surveillée en temps réel, permettant d'identifier rapidement toute activité suspecte et de prendre les mesures appropriées.
* **Collaboration avec des institutions financières :** FedaPay travaille main dans la main avec des banques et des institutions reconnues pour assurer la sécurité et la conformité des paiements, tant pour les transactions par carte que par mobile.
Grâce à ces processus, FedaPay garantit un environnement de paiement sûr et sécurisé, protégeant à la fois les marchands et les acheteurs contre les fraudes potentielles.
# Documentation Utilisateur – TAP & GO
Source: https://docs.fedapay.com/tap-go/fr/docs-fr
### Qu’est-ce que TAP & GO ?
### À quoi sert TAP & GO ?
Avec TAP & GO, vous pouvez :
* encaissez vos clients facilement via QR Code, USSD ou NFC, sans terminal physique ni équipement coûteux;
* offrir une expérience de paiement simple, rapide et moderne;
* encaisser même **sans connexion internet** via le USSD;
* suivre votre historique de transactions en temps réel;
* recevoir vos paiements automatiquement sur votre compte Mobile Money dans les 24h;
* moyens de paiement disponibles (Bénin) : Mobile Money (MTN Money, Moov Money, Celtiis Cash, BMO, Coris Money, MyFeda) et Cartes bancaires ( Visa, Mastercard).
### Qui peut utiliser TAP & GO et comment ?
**1. Si vous avez déjà un compte FedaPay (marchands en ligne ou e-commerçants)**
TAP & GO devient une fonctionnalité supplémentaire à activer dans votre tableau de bord FedaPay.Elle vous permet d’encaisser vos clients par QR Code ou USSD.
**Activation :**
* Connectez-vous à votre tableau de bord FedaPay.
* Rendez-vous dans le menu de votre tableau de bord pour activer TAP & GO.
* Contactez le support à l’adresse : [support@fedapay.com](mailto:support@fedapay.com) pour finaliser l’activation.
Une fois activée, une interface d’encaissement par QR Code et USSD s’ajoute à votre tableau de bord.
**2. Si vous êtes un commerçant physique**
(boutique, restaurant, station-service, pharmacie…)
Vous serez équipé d’un Kit TAP & GO contenant :
* Un support en plexiglas noir ou transparent à poser sur le comptoir ou à coller sur une vitrine.
* Vos codes QR, USSD et le tag NFC personnalisés pour recevoir des paiements.
**Le processus d’inscription est assisté sur le terrain par un agent FedaPay.**
**Étapes d’enrôlement :**
1- **Installation** : L’agent installe l’application TAP & GO sur votre téléphone
2- **Authentification** : Il se connecte avec son identifiant sécurisé (ID Agent)
3- **Inscription** :
* Vous fournissez une adresse e-mail valide.
* Vous soumettez vos documents KYC (RCCM, IFU, pièce d'identité).
4- **Validation** : FedaPay valide manuellement votre compte en back office.
5- **Confirmation** : Vous recevez un mail ou une notification une fois votre compte activé.
Utilisation quotidienne :
* Vous encaissez par QR Code, USSD ou NFC.
* Vous recevez une **notification en temps réel** à chaque paiement.
* Consultez votre solde et l’historique des paiements dans l’application.
* **Les fonds sont automatiquement transférés** sur votre compte Mobile Money dans les 24h.
**3. Si vous êtes un travailleur indépendant ou professionnel mobile**
(Zemidjan, couturier, technicien, coiffeur…)
Vous recevez une carte compacte TAP & GO, format carte de visite, à garder toujours sur vous. Elle contient :
* Votre QR Code
* Un code USSD
* Le tag NFC
Comment vous inscrire ?
* Vous êtes accompagné par un agent FedaPay pour créer votre compte.
* L’enrôlement se fait via l’application TAP & GO.
* Vous fournissez votre IFU et une pièce d’identité.
* Une fois votre compte validé, vous pouvez commencer à encaisser immédiatement
### À propos de l’application TAP & GO
L’application mobile est :
* Exclusivement installée par les agents FedaPay.
* Conçue pour les commerçants physiques et travailleurs indépendants.
* Permet de :
* encaisser par QR Code, USSD et NFC;
* suivre votre historique de paiements;
* consulter votre solde en temps réel.
* Optimisée pour des téléphones simples.
* Très intuitive même pour ceux peu à l’aise avec la technologie.
Téléchargez dès maintenant l’application TAP & GO sur Android via [ce lien](https://play.google.com/store/apps/details?id=com.fedapay.tapgo).
Téléchargez dès maintenant l’application TAP & GO sur App store via [ce lien](https://apps.apple.com/app/tap-go/id6751598570).
### En cas de souci lors d’un paiement
Si un client effectue un paiement et que l’argent est bien débité mais que la transaction n’apparaît pas comme approuvée dans votre application TAP & GO :
1- Rafraîchissez l’application et attendez quelques minutes.
2- Si le statut reste inchangé, vous pouvez valider manuellement la transaction dans l’application.
3- Prenez une capture d’écran du message de paiement du client.
4- Décrivez brièvement le problème et soumettez une réclamation directement via l’application .
# Foire aux questions (FAQ) – TAP & GO
Source: https://docs.fedapay.com/tap-go/fr/faq-fr
### C’est quoi TAP & GO ?
TAP & GO, c’est un terminal de paiement 100 % virtuel développé par FedaPay. Il vous permet d’encaisser vos clients via **QR Code**, **USSD** ou **NFC**, sans appareil coûteux ni connexion internet obligatoire grâce au paiement par USSD. Un simple téléphone suffit, même un téléphone non-smartphone. C’est simple, sécurisé et accessible à tous.
### Est-ce que j’ai besoin d’un terminal ou d’un appareil spécial ?
Non, c’est tout l’avantage. TAP & GO ne nécessite aucun terminal physique. Vous recevez un support de paiement (plaque ou carte) avec vos codes QR, USSD et NFC. Pas d’équipement à acheter ni à louer.
### Qui peut utiliser TAP & GO ?
Tout le monde :
* Les **marchands déjà inscrits sur FedaPay** (e-commerçants, vendeurs en ligne…)
* Les **boutiques physiques** (épiceries, prêt-à-porter, pharmacies, bars, restaurants…)
* Les **artisans et professionnels mobiles** (Zemidjans, coiffeurs, plombiers, couturiers…)
### Comment je reçois TAP & GO si je suis commerçant sur le terrain ?
Un agent FedaPay vient à vous. Il installe l’application TAP & GO sur votre téléphone, vous enregistre, et vous remet votre kit de paiement (plaque ou carte). En moins de 15 minutes, vous êtes prêt à encaisser vos clients.
### Et si j’ai déjà un compte FedaPay ?
Bonne nouvelle : TAP & GO est déjà disponible dans votre tableau de bord. Il vous suffit d’activer la fonctionnalité. Pas besoin d’installer une nouvelle application. Vous pouvez ensuite encaisser via code QR ou USSD, et même commander un support(Kit ou carte) de paiement si besoin.
### Est-ce que mes clients doivent s’inscrire ?
Pas du tout. Vos clients peuvent vous payer avec les moyens de paiement habituels : MTN Money, Moov Money, Celtiis, MyFeda, BMO, Coris Money, ou même avec leur carte bancaire VISA ou Mastercard. Ils n’ont rien à installer ni à créer comme compte.
### Et s’ils n’ont pas Internet ?
Aucun souci. Grâce au paiement par USSD, vos clients peuvent payer même sans connexion ni smartphone. C’est ce qui rend TAP & GO unique : une solution vraiment inclusive.
### L’application mobile est-elle obligatoire ?
* Oui, si vous êtes une boutique physique ou un artisan : vous utilisez l’application TAP & GO pour suivre vos transactions, recevoir les notifications, consulter votre solde, etc.
* Non, si vous êtes déjà marchand FedaPay et que vous utilisez le tableau de bord en ligne : tout se passe depuis votre interface, sans application à télécharger.
### Quels documents dois-je fournir ?
Cela dépend de votre profil :
* Boutique, restaurant, pharmacie: RCCM + IFU + pièce d’identité
* Artisan, taximan, coiffeur: IFU + pièce d’identité
Ces documents sont téléversés via l’application TAP & GO, avec l’aide de l’agent FedaPay.
### Combien coûte TAP & GO ?
L’installation, l’application et le support de paiement sont entièrement gratuits. Vous ne payez pas de frais d’équipement.
### Quand est-ce que je reçois l’argent de mes ventes ?
Vous recevez vos paiements sur votre compte FedaPay, puis vos fonds sont automatiquement reversés sur votre compte Mobile Money dans un délai maximum de 24 heures (J+1).
### Puis-je suivre mes paiements ?
Oui. L’application TAP & GO (ou votre tableau de bord FedaPay si vous êtes un e-commerçant) vous permet de suivre en temps réel :
* vos transactions
* votre solde
* vos paiements reçus
* votre historique
### Et si mon téléphone est éteint ?
Pas de panique. Vos paiements sont quand même enregistrés. Dès que vous rallumez votre téléphone, vous recevez la notification et pouvez voir les détails dans l’application.
### Que faire si un client effectue un paiement et il est débité, mais la transaction est non approuvée chez vous ?
Cela peut arriver dans certains cas. Voici ce que vous pouvez faire :
1- Réactualisez votre application
2- Attendez quelques minutes
3- Si rien ne change, prenez une capture du message de paiement du client et envoyez une réclamation depuis l’app avec une courte description
Nos équipes vérifient et traitent rapidement votre demande.
### Puis-je perdre mes données si je change de téléphone ?
Non. Votre compte est sécurisé. Il vous suffit d’installer à nouveau l’application TAP & GO sur votre nouveau téléphone et de vous reconnecter avec votre e-mail.
### Est-ce que je peux avoir une formation ?
Oui. Lors de l’enrôlement, l’agent FedaPay vous forme en direct. Une vidéo explicative vous est également envoyée pour revoir les étapes tranquillement.
### Comment TAP & GO évite les fraudes ?
Chaque support de paiement est unique et sécurisé, associé à votre compte. L’enrôlement ne peut se faire qu’avec un ID agent FedaPay. Aucune inscription n’est possible sans un agent agréé. Et aucun agent ne vous demandera votre mot de passe.
### Et si j’ai un problème ?
Notre support client TAP & GO est disponible : [support@fedapay.com](mailto:support@fedapay.com)
### Y a-t-il une commission prélevée sur chaque paiement ?
Oui. Comme pour toutes les transactions traitées sur TAP & GO, une commission standard de 1,6 % est prélevée automatiquement sur chaque paiement reçu via Mobile Money (MTN Benin, Moov Benin et Celtis).
* Cette commission est directement déduite du montant encaissé, aucune action n’est nécessaire de votre part.
* Vous recevez le montant net, visible immédiatement dans votre solde TAP & GO.
# Get all balances
Source: https://docs.fedapay.com/api-reference/balances/get-all
get /balances
# Get a balance
Source: https://docs.fedapay.com/api-reference/balances/get-by-id
get /balances/{id}
Retrieves a single balance by ID
# Get all currencies
Source: https://docs.fedapay.com/api-reference/currencies/get-all
get /currencies
# Get a currency
Source: https://docs.fedapay.com/api-reference/currencies/get-by-id
get /currencies/{id}
# Get all events
Source: https://docs.fedapay.com/api-reference/events/get-all
get /events
# Get a event
Source: https://docs.fedapay.com/api-reference/events/get-by-id
get /events/{id}
Retrieves a single event by ID
# Get all logs
Source: https://docs.fedapay.com/api-reference/logs/get-all
get /logs
# Get a logs
Source: https://docs.fedapay.com/api-reference/logs/get-by-id
get /logs/{id}
# Create a payout
Source: https://docs.fedapay.com/api-reference/payouts/create
post /payouts
This endpoint creates a new payout.
# Delete a payout
Source: https://docs.fedapay.com/api-reference/payouts/delete
delete /payouts/{id}
# Search your payouts
Source: https://docs.fedapay.com/api-reference/payouts/get-all
get /payouts/search
# Get a payout
Source: https://docs.fedapay.com/api-reference/payouts/get-by-id
get /payouts/{id}
# Update a payout
Source: https://docs.fedapay.com/api-reference/payouts/update
put /payouts/{id}
# Start payout
Source: https://docs.fedapay.com/api-reference/payouts/update-start
put /payouts/start
# Create a transaction
Source: https://docs.fedapay.com/api-reference/transactions/create
post /transactions
# Get the payment link for a transaction
Source: https://docs.fedapay.com/api-reference/transactions/create-token
post /transactions/{id}/token
# Delete a transaction
Source: https://docs.fedapay.com/api-reference/transactions/delete
delete /transactions/{id}
# Search your transactions
Source: https://docs.fedapay.com/api-reference/transactions/get-all
get /transactions/search
# Get a transaction
Source: https://docs.fedapay.com/api-reference/transactions/get-by-id
get /transactions/{id}
# Send payment to user
Source: https://docs.fedapay.com/api-reference/transactions/send-payment
post /transactions/{mode}
# Update a transaction
Source: https://docs.fedapay.com/api-reference/transactions/update
put /transactions/{id}
# Get all webhooks
Source: https://docs.fedapay.com/api-reference/webhooks/get-all
get /webhooks
# Get a webhook
Source: https://docs.fedapay.com/api-reference/webhooks/get-by-id
get /webhooks/{id}