Francophone West African payment gateway for small merchants and digital entrepreneurs. Supports mobile money (MTN, Moov) and card payments in XOF/XAF across Benin, Côte d'Ivoire, Senegal, and more.
FedaPay is an all-in-one payment aggregator designed for West African businesses, entrepreneurs, and NGOs. It integrates bank card payments and mobile money services, enabling secure transactions across Francophone Africa with a focus on small merchants and digital entrepreneurs.
Supported Countries: Benin, Burkina Faso, Côte d'Ivoire, Mali, Niger, Senegal, Togo, and Guinea Primary Currency: XOF (West African CFA Franc), with XAF support in select regions Payment Methods: Mobile money (MTN, Moov, Togocel), bank cards (Visa, Mastercard)
FedaPay uses Bearer token authentication with API keys stored in your FedaPay dashboard.
All requests require the Authorization header with Bearer token format:
Authorization: Bearer sk_test_YOUR_SECRET_KEY
<?php
\FedaPay\Fedapay::setApiKey('sk_test_YOUR_SECRET_KEY');
\FedaPay\Fedapay::setEnvironment('sandbox'); // or 'production'
const FedaPay = require('fedapay');
FedaPay.setApiKey('sk_test_YOUR_SECRET_KEY');
FedaPay.setEnvironment('sandbox');
curl -H "Authorization: Bearer sk_test_YOUR_SECRET_KEY" \
https://sandbox-api.fedapay.com/v1/transactions
https://sandbox-api.fedapay.com/v1 (testing, no real charges)https://api.fedapay.com/v1 (live transactions)Always test thoroughly in sandbox before switching to production.
Sandbox: https://sandbox-api.fedapay.com/v1
Production: https://api.fedapay.com/v1
Create a new transaction to initiate a payment.
Endpoint: POST /transactions
Request:
{
"description": "Order #12345 - Purchase",
"amount": 10000,
"currency": {
"iso": "XOF"
},
"callback_url": "https://yoursite.com/payment-callback",
"mode": "mtn_open",
"customer": {
"id": 1
}
}
Key Parameters:
description (string): Payment description shown to customeramount (integer): Amount in XOF francs (whole units). XOF centimes are not used in practice; treat every unit as one franc. 5000 = 5,000 XOF.currency.iso (string): Currency code (XOF, XAF)callback_url (string): URL to redirect after payment completionmode (string): Payment method (see Payment Methods section)customer (object): Customer ID or inline customer details
id (integer): Existing customer ID, or create inline:firstname (string): Customer first namelastname (string): Customer last nameemail (string): Customer emailphone_number (string): Customer phone numberSuccessful Response (201 Created):
{
"id": 12345,
"status": "pending",
"description": "Order #12345 - Purchase",
"amount": 10000,
"currency": {
"iso": "XOF",
"name": "CFA Franc"
},
"mode": "mtn_open",
"reference": "TX-20240115-ABC123",
"customer": {
"id": 1,
"firstname": "John",
"lastname": "Doe",
"email": "[email protected]"
},
"created_at": "2024-01-15T10:30:00Z"
}
Get details about a specific transaction.
Endpoint: GET /transactions/{id}
Response:
{
"id": 12345,
"status": "approved",
"description": "Order #12345 - Purchase",
"amount": 10000,
"currency": {
"iso": "XOF"
},
"mode": "mtn_open",
"reference": "TX-20240115-ABC123",
"approved_at": "2024-01-15T10:35:00Z",
"customer": {
"id": 1,
"firstname": "John",
"lastname": "Doe"
}
}
Retrieve paginated list of transactions.
Endpoint: GET /transactions
Query Parameters:
limit (integer): Max results per page (default: 20, max: 100)page (integer): Page number (default: 1)sort (string): Sort field (e.g., -created_at for descending)Response:
{
"data": [
{
"id": 12345,
"status": "approved",
"amount": 10000,
"currency": { "iso": "XOF" }
}
],
"meta": {
"total": 150,
"current_page": 1,
"per_page": 20,
"last_page": 8
}
}
Endpoint: POST /customers
{
"firstname": "John",
"lastname": "Doe",
"email": "[email protected]",
"phone_number": "+22960000000",
"metadata": {
"merchant_id": "12345"
}
}
Response:
{
"id": 1,
"firstname": "John",
"lastname": "Doe",
"email": "[email protected]",
"phone_number": "+22960000000",
"created_at": "2024-01-15T10:00:00Z"
}
Endpoint: GET /customers/{id}
FedaPay supports the following payment modes (varies by country):
| Mode | Description | Countries |
|---|---|---|
mtn_open | MTN Mobile Money | Benin |
moov | Moov Mobile Money | Benin, Togo |
mtn_ci | MTN Mobile Money | Côte d'Ivoire |
moov_tg | Moov Mobile Money | Togo |
sbin | SBIC Bank | Benin |
togocel | Togocel Mobile Money | Togo |
airtel_ne | Airtel Mobile Money | Niger |
free_sn | Free Money | Senegal |
mtn_open_gn | MTN Mobile Money | Guinea |
No-Redirect Modes: Direct payment possible with MTN Benin, Moov Benin, Moov Togo, and MTN Côte d'Ivoire without redirecting to FedaPay's payment page.
FedaPay sends real-time notifications to your application when transaction events occur.