Plateforme de paiement · Afrique de l'Ouest
L'API de paiement
de la Guinée.
Orange Money, MTN Money, cartes Visa et Mastercard — derrière une seule API. Pour les marchands qui veulent encaisser sans intégrer dix opérateurs.
Sandbox ouverte
Sans engagement,
sans frais cachés.
Inscription immédiate, clés sandbox prêtes à l'emploi, contrat marchand activé en quelques jours après KYC.
Latence p99
< 300ms
temps de réponse moyen
12,4M
disponible aujourd'hui
Activité en direct
Live-
OM+500k
INV-0142
Conakry
-
MT+250k
INV-0141
Kindia
-
+1,5M
INV-0140
Visa
4
pays · 3 devises
# Authentification HMAC-SHA256, idempotente, sandbox
curl -X POST https://sandbox-api.saalapay.com/api/v1/payments/initiate \
-H "X-SP-CLIENT-ID: pk_sandbox_..." \
-H "X-SP-SIGNATURE: $SIGNATURE" \
-H "Idempotency-Key: $UUID" \
-d '{ "amount": 500000, "currency": "GNF", "method": "MOBILE_MONEY", "provider": "orange_money" }'
Pour qui ?
Une API,
trois usages très concrets.
Frais T2 2026
847 / 1 200 parentsEncaissé
211,7M GNF
Restant
88,3M GNF
Derniers paiements
- Diallo Aïssata · Orange +250k
- Camara Mohamed · MTN +250k
- Barry Mariama · Visa +250k
École Lumière — Conakry
Encaisser les frais de scolarité
sans courir après les parents.
Chaque trimestre, l'École Lumière facture 1 200 familles. Avant SaalaPay, le secrétariat encaissait en espèces, perdait des reçus, passait deux semaines à pointer les retards. Aujourd'hui, chaque parent paie depuis son téléphone, le wallet de l'école se crédite automatiquement.
- Lien de paiement par parent — Envoyé par SMS ou WhatsApp avec montant et échéance pré-remplis.
- Réconciliation automatique — Chaque paiement reçu rapproché de la facture, zéro saisie manuelle.
- Sous-wallets par classe — Cantine, transport, papeterie — ventilation native, sans table externe.
Pagne wax bleu indigo
2 yards · 100% coton
185 000 GNF
Mode de paiement
→ Webhook reçu payment.succeeded
POST /shop/orders/482/confirm · 142ms · 200 OK
Boutique Niani — Marché de Madina
Vendre en ligne sans renoncer
au Mobile Money.
Niani vend des pagnes wax depuis son site WooCommerce. Ses clients sont à Conakry, à Dakar, à Paris — chacun avec sa méthode préférée. Une seule intégration SaalaPay : Orange Money pour les locaux, Visa pour la diaspora, MTN pour les voisins.
- Plug-in WooCommerce ou REST — Intégration en 50 lignes, ou plug-in officiel maintenu par l'équipe.
- Webhooks idempotents — Pas de double-confirmation, même si le webhook arrive deux fois.
- GNF · XOF · EUR convertibles — Au taux du jour, traçé sur chaque transaction.
Campagne Ramadan 2026
Cantine scolaire pour 380 enfants
Objectif
50M
Collecté
38,4M
Donateurs
412
Audit log immuable
- 14:32 · don.received · 50 000 GNF · Diaspora-FR
- 14:31 · don.received · 25 000 GNF · Conakry
- 14:28 · don.received · 100 000 GNF · Anonyme
- 14:24 · don.received · 10 000 GNF · Conakry
Action Santé Guinée — Conakry
Collecter des dons,
tracer chaque centime.
Une ONG ne peut pas se permettre de perdre un donateur faute de moyen de paiement. Action Santé Guinée collecte sur Mobile Money pour la base locale, par carte pour la diaspora. Chaque transaction écrit une ligne dans un journal immuable — auditable au centime près.
- Pages de collecte hébergées — Campagne ponctuelle ou récurrente, partageables par lien.
- Audit log immuable — Snapshots avant/après par mouvement, export CSV en un clic.
- Tarif préférentiel association — Commission réduite sur les dons éligibles.
Production-grade
Pensé pour tenir la charge
et survivre aux pannes opérateurs.
Auth HMAC-SHA256
Signature sur chaque requête, fenêtre anti-replay 60s, rotation à chaud.
Idempotence native
Header Idempotency-Key respecté, même appel = même réponse, toujours.
Webhooks signés
HMAC + déduplication par event-id côté SaalaPay, bouton rejouer dispo.
Ledger immuable
Snapshots avant/après par mouvement, intégrité vérifiée à chaque écriture.
Rate limiting natif
Limites par clé, par IP, par endpoint. Lua atomique côté Redis.
Secrets chiffrés
libsodium XSalsa20-Poly1305 sur les clés et secrets en base.
Pour les développeurs
Une API REST
sans surprise.
Pas de SDK obligatoire. Vous appelez un endpoint, vous recevez une réponse JSON déterministe, vous écoutez un webhook signé. C'est tout.
-
Authentification HMAC-SHA256
Signature sur chaque requête, fenêtre anti-replay de 60 secondes, rotation de clés à chaud.
-
Idempotence native
Header Idempotency-Key pris en charge — le même appel donne la même réponse.
-
Webhooks signés et rejouables
Signature HMAC, déduplication serveur, bouton « rejouer » dans le dashboard.
-
Sandbox illimitée
Sous-domaine isolé (sandbox-api.saalapay.com), clés distinctes du live.
# Authentification HMAC-SHA256, idempotente, sandbox
curl -X POST https://sandbox-api.saalapay.com/api/v1/payments/initiate \
-H "X-SP-CLIENT-ID: pk_sandbox_..." \
-H "X-SP-SIGNATURE: $SIGNATURE" \
-H "X-SP-TIMESTAMP: $TIMESTAMP" \
-H "Idempotency-Key: $UUID" \
-H "Content-Type: application/json" \
-d '{
"amount": 500000,
"currency": "GNF",
"method": "MOBILE_MONEY",
"provider": "orange_money",
"customer_phone": "+224611223344"
}'
// Pas de SDK obligatoire — fetch standard suffit
const res = await fetch('https://sandbox-api.saalapay.com/api/v1/payments/initiate', {
method: 'POST',
headers: {
'X-SP-CLIENT-ID': process.env.SP_CLIENT_ID,
'X-SP-SIGNATURE': signature,
'X-SP-TIMESTAMP': timestamp,
'Idempotency-Key': crypto.randomUUID(),
'Content-Type': 'application/json',
},
body: JSON.stringify({
amount: 500000,
currency: 'GNF',
method: 'MOBILE_MONEY',
provider: 'orange_money',
}),
});
const { id, status, redirect_url } = await res.json();
// Avec n'importe quel client HTTP (cURL, Guzzle, fetch...)
$ch = curl_init('https://sandbox-api.saalapay.com/api/v1/payments/initiate');
curl_setopt_array($ch, [
CURLOPT_POST => true,
CURLOPT_RETURNTRANSFER => true,
CURLOPT_HTTPHEADER => [
'X-SP-CLIENT-ID: ' . $clientId,
'X-SP-SIGNATURE: ' . $signature,
'X-SP-TIMESTAMP: ' . $timestamp,
'Idempotency-Key: ' . bin2hex(random_bytes(16)),
'Content-Type: application/json',
],
CURLOPT_POSTFIELDS => json_encode([
'amount' => 500000,
'currency' => 'GNF',
'method' => 'MOBILE_MONEY',
'provider' => 'orange_money',
]),
]);
$payment = json_decode(curl_exec($ch), true);
Estimation
Combien ça coûte
sur votre volume ?
Tarifs publics, sans engagement. Au-delà de 50 M XOF/mois, un contrat négocié peut s'appliquer.
≈ 10 M GNF · 117 € · 76 700 XOF
Coût total estimé
287 500 GNF
soit 2,88% du volume
FAQ
Les questions qui reviennent
Combien de temps pour intégrer ?
Que se passe-t-il si l'opérateur Mobile Money tombe ?
Comment se passent les versements ?
SaalaPay est-il agréé par la BCRG ou la BCEAO ?
Quels pays au-delà de la Guinée ?
Y a-t-il un environnement de test ?
Une question qui n'est pas listée ? Contactez l'équipe
Encaissez ce trimestre,
pas dans six mois.
Sandbox immédiate à l'inscription, contrat marchand activé en quelques jours après vérification KYC. Aucun frais d'installation.