Chargement…

Une seule API de paiement. Toute l'Afrique mobile money.

Faites des affaires avec l'Afrique : encaissez par mobile money depuis votre site ou votre application. Hostafri conçoit aussi vos sites, applications et plateformes sur mesure.

Nos projets déjà réalisés

  • Logo BecciPay
  • Logo VNUM
  • 12pays couverts
  • 32services mobile money
  • 7devises prises en charge
  • 1requête pour encaisser

Une seule requête

Une requête envoie la demande de paiement sur le téléphone de votre client. Vous suivez le résultat par webhook ou par interrogation du statut.

Panafricain

Une intégration et un tableau de bord pour collecter dans 12 pays d'Afrique centrale, de l'Ouest et de l'Est, avec les opérateurs locaux.

Testez sans risque

Avec une clé de test, la collecte est simulée : aucun client n'est débité. Un paiement échoué n'est jamais facturé.

Nous couvrons 12 pays, et ce n'est pas fini.

  • Drapeau : Congo-BrazzavilleCongo-Brazzaville
  • Drapeau : RD CongoRD Congo
  • Drapeau : CamerounCameroun
  • Drapeau : BéninBénin
  • Drapeau : TogoTogo
  • Drapeau : SénégalSénégal
  • Drapeau : Burkina FasoBurkina Faso
  • Drapeau : Côte d'IvoireCôte d'Ivoire
  • Drapeau : TanzanieTanzanie
  • Drapeau : RwandaRwanda
  • Drapeau : OugandaOuganda
  • Drapeau : ZambieZambie

Connectez-vous aux principaux opérateurs mobile money avec une seule intégration

  • Logo Airtel Money
  • Logo Celtiis
  • Logo Free Money
  • Logo M-Pesa
  • Logo Moov Africa
  • Logo MTN MoMo
  • Logo Orange Money
  • Logo Telecel
  • Logo Tigo
  • Logo Togocom
  • Logo Vodacom
  • Logo Wave
  • Logo Yas
  • Logo Zamtel

Commencez à encaisser en quatre étapes

De la clé d'API au premier paiement, tout est décrit dans la documentation.

  1. Récupérez vos clés

    Une clé de test (pk_test_) et une clé live (pk_live_). La clé live demande un compte vérifié (KYC).

    >> Créer un compte
  2. Autorisez votre serveur

    Ajoutez son adresse IP dans Paramètres, Adresses IP autorisées. C'est obligatoire, même pour la clé de test.

  3. Envoyez la requête

    Un POST en JSON, avec la clé dans l'en-tête Authorization. Voir l'exemple dans la documentation.

    >> Exemple de requête
  4. Suivez le résultat

    Le client confirme sur son téléphone. Vous recevez un webhook, ou vous interrogez le statut.

    >> La réponse de l'API

Des services numériques pour chaque étape de votre croissance

Nous concevons des outils fiables et pratiques pour vous aider à vendre, gérer vos opérations et toucher plus de clients.

Création de sites web

Sites vitrines professionnels, boutiques e-commerce, catalogues, portails et espaces clients adaptés aux téléphones et ordinateurs.

  • Site vitrine
  • E-commerce
  • Catalogue
  • SEO

Applications mobiles

Applications Android et iOS avec comptes utilisateurs, tableaux de bord, notifications, paiements et fonctionnalités adaptées à votre activité.

  • Android
  • iOS
  • Notifications
  • Comptes clients

Plateformes et logiciels sur mesure

Développement de plateformes de gestion, marketplaces, logiciels métiers, espaces administrateurs et systèmes automatisés.

  • Dashboard
  • Marketplace
  • Automatisation
  • API

Paiements et intégration Mobile Money

Intégrez les paiements à votre site ou application, initiez des collectes et suivez les transactions à l'aide de notre API Hostafri Pay.

  • MTN MoMo
  • Airtel Money
  • API REST
  • Webhooks

Hébergement et noms de domaine

Mettez votre projet en ligne avec un hébergement web, un nom de domaine et une adresse email professionnelle.

  • Hébergement
  • Domaine
  • Email pro
  • Maintenance

Conseil et accompagnement technique

Nous vous aidons à structurer votre projet, choisir les technologies adaptées, améliorer vos outils et assurer leur évolution.

  • Conseil
  • Maintenance
  • Sécurité
  • Support

Un accompagnement clair, de la conception au lancement

Chaque projet sur mesure avance par étapes, avec des échanges réguliers et des validations.

  1. Écoute et cadrage

    Nous comprenons vos objectifs, vos utilisateurs et les fonctionnalités nécessaires.

  2. Proposition

    Nous définissons la solution, le calendrier et le budget de votre projet.

  3. Développement

    Nous réalisons votre solution et vous permettons de suivre son avancement.

  4. Lancement et suivi

    Nous mettons le projet en ligne et vous accompagnons pour la suite.

Écran de programmation d'une API

La technologie doit simplifier votre quotidien

Nous concevons nos solutions en tenant compte des usages réels des entreprises et des utilisateurs africains : priorité au mobile, intégration des paiements locaux et simplicité d'utilisation.

  • Une approche adaptée à l'Afrique

    Des expériences pensées pour le mobile et les moyens de paiement utilisés localement.

  • Des solutions évolutives

    Des outils conçus pour accompagner le développement de votre activité.

  • Un interlocuteur technique

    Un accompagnement de la définition du besoin à la mise en production.

  • Un écosystème de services

    Développement, hébergement, intégration et solutions de paiement réunis.

Des tarifs de collecte clairs, pays par pays.

Une commission, incluse dans le montant collecté. Vous recevez le montant moins la commission. Un paiement échoué n'est pas facturé.

Collecte par mobile money, via Hostafri Pay
PaysDeviseCommissionPrécisions
Drapeau : Congo-BrazzavilleCongo-Brazzaville XAF 3,5 % Déduite du montant collecté.
Drapeau : RD CongoRD Congo CDF 3,5 % Déduite du montant collecté.
Drapeau : CamerounCameroun XAF 3,5 % Déduite du montant collecté.
Drapeau : BéninBénin XOF 3,2 % Déduite du montant collecté.
Drapeau : TogoTogo XOF 0,5 % Le client paie en plus 3 % de frais opérateur, affichés sur son téléphone.
Drapeau : SénégalSénégal XOF 0,5 % Le client paie en plus 3 % de frais opérateur, affichés sur son téléphone.
Drapeau : Burkina FasoBurkina Faso XOF 0,5 % Le client paie en plus 3 % de frais opérateur, affichés sur son téléphone.
Drapeau : Côte d'IvoireCôte d'Ivoire XOF 0,5 % Le client paie en plus 3 % de frais opérateur, affichés sur son téléphone.
Drapeau : TanzanieTanzanie TZS 3,2 % Déduite du montant collecté.
Drapeau : RwandaRwanda RWF 3,5 % Déduite du montant collecté.
Drapeau : OugandaOuganda UGX 3,2 % Déduite du montant collecté.
Drapeau : ZambieZambie ZMW 3,5 % Déduite du montant collecté.

Le calcul

Montant crédité = montant collecté − (montant collecté × commission). Le détail figure dans chaque réponse de l'API : fee et net_amount.

Pour tester sans risque

Avec une clé de test, la collecte est simulée : aucun client n'est débité et rien n'est crédité sur votre portefeuille.

Sites, applications, plateformes

Nos projets sur mesure sont chiffrés en FCFA après cadrage. Demander un devis

Encaissez par mobile money en une requête.

L'API de collecte envoie une demande de paiement sur le téléphone de votre client. Voici tout ce qu'il faut pour initier une collecte.

Développeur intégrant une API de paiement

Initier une collecte

Envoyez la requête depuis votre serveur, jamais depuis un navigateur ou une application mobile : votre clé doit rester secrète.

POST https://hostafri.com/api/v1/collect
curl -X POST https://hostafri.com/api/v1/collect \
  -H "Authorization: Bearer pk_live_votre_cle" \
  -H "Content-Type: application/json" \
  -d '{
    "operator": "MTN_CG",
    "phone": "242064435000",
    "amount": 5000,
    "description": "Commande 1001",
    "reference": "CMD-1001"
  }'
Gardez votre clé côté serveur. Placez-la dans une variable d'environnement. Si elle est exposée, révoquez-la et créez-en une nouvelle.

Les champs de la requête

ChampObligatoireDescription
operatorOuiCode de l'opérateur au format RÉSEAU_PAYS, par exemple MTN_CG ou AIRTEL_CG. La liste complète est plus bas.
phoneOuiNuméro mobile money du client. Règles selon le pays, ci-dessous.
amountOuiMontant dans la devise du pays, de 1 à 100 000 000.
descriptionNonLibellé du paiement, 60 caractères au plus.
referenceNonVotre référence unique, de 1 à 100 caractères (lettres, chiffres, _ . : -). Renvoyer la même référence ne crée pas de doublon.
otpSelon l'opérateurCode OTP du client, de 4 à 8 chiffres. Exigé pour ORANGE_BF et WAVE_BF.
countryNonCode pays à 2 lettres. Il se déduit de operator ; s'il est envoyé, il doit correspondre.
customer_name, return_urlNonNom du client et adresse HTTPS de retour après paiement, utilisés par certains opérateurs.

Le numéro de téléphone

La règle dépend du pays du client. Les espaces, le signe + et le 00 initial sont acceptés.

Indicatif obligatoire

Congo-Brazzaville, RD Congo, Cameroun, Bénin, Tanzanie, Rwanda, Ouganda, Zambie.

Le client saisit son numéro avec l'indicatif du pays. Sans indicatif, la requête est refusée avec l'erreur invalid_phone.

242 06 443 50 00

Avec ou sans indicatif

Togo, Sénégal, Burkina Faso, Côte d'Ivoire.

Les deux formes sont acceptées. Sans indicatif, il est ajouté automatiquement. Les chiffres du numéro ne sont jamais modifiés.

07 12 34 56 78 225 07 12 34 56 78

Pays et codes opérateurs

Le code se compose du réseau et du pays : MTN_CG pour MTN au Congo-Brazzaville, AIRTEL_CD pour Airtel en RD Congo. Vous ne pouvez collecter que dans les pays où vous avez un portefeuille actif.

PaysDeviseIndicatifCodes à envoyer dans operator
Drapeau : Congo-BrazzavilleCongo-Brazzaville XAF +242
  • MTN_CG MTN MoMo
  • AIRTEL_CG Airtel Money
Drapeau : RD CongoRD Congo CDF +243
  • AIRTEL_CD Airtel Money
  • ORANGE_CD Orange Money
  • VODA_CD Vodacom
Drapeau : CamerounCameroun XAF +237
  • MTN_CM MTN MoMo
  • ORANGE_CM Orange Money
Drapeau : BéninBénin XOF +229
  • MTN_BJ MTN MoMo
  • MOOV_BJ Moov Money
Drapeau : TogoTogo XOF +228
  • MOOV_TG Moov Money
  • TOGOCOM_TG Togocom
Drapeau : SénégalSénégal XOF +221
  • ORANGE_SN Orange Money
  • WAVE_SN Wave
  • FREE_SN Free Money
Drapeau : Burkina FasoBurkina Faso XOF +226
  • MOOV_BF Moov Money
  • ORANGE_BF Orange Money, avec OTP
  • WAVE_BF Wave, avec OTP
Drapeau : Côte d'IvoireCôte d'Ivoire XOF +225
  • MTN_CI MTN MoMo
  • MOOV_CI Moov Money
  • ORANGE_CI Orange Money
  • WAVE_CI Wave
Drapeau : TanzanieTanzanie TZS +255
  • AIRTEL_TZ Airtel Money
  • VODA_TZ Vodacom
  • TIGO_TZ Tigo
  • HALO_TZ Halotel
Drapeau : RwandaRwanda RWF +250
  • MTN_RW MTN MoMo
  • AIRTEL_RW Airtel Money
Drapeau : OugandaOuganda UGX +256
  • MTN_UG MTN MoMo
  • AIRTEL_UG Airtel Money
Drapeau : ZambieZambie ZMW +260
  • MTN_ZM MTN MoMo
  • AIRTEL_ZM Airtel Money
  • ZAMTEL_ZM Zamtel

La liste à jour est aussi disponible par l'API : GET /api/v1/collect?operators=all.

La réponse

Une collecte créée renvoie le code HTTP 201 et son identifiant. Le statut est d'abord pending : le client doit confirmer sur son téléphone. Il passe ensuite à success (le portefeuille est crédité) ou failed. Si payment_url est renseigné, redirigez le client vers cette adresse pour finaliser le paiement.

Réponse, HTTP 201
{
  "success": true,
  "livemode": true,
  "data": {
    "id": "col_9f3a6c1d2b4e5f708192a3b4",
    "reference": "CMD-1001",
    "transaction_reference": "DEP261030095907A1B2C3",
    "livemode": true,
    "status": "pending",
    "amount": 5000,
    "fee": 75,
    "net_amount": 4925,
    "currency": "XAF",
    "country": "CG",
    "operator": "MTN_CG",
    "phone": "********5000",
    "credited": false,
    "payment_url": null,
    "failure_reason": null,
    "message": "Collecte initiée : en attente de la confirmation du client sur son téléphone.",
    "created_at": "2026-10-30T09:59:07Z"
  }
}

Pour connaître l'état d'une collecte, appelez GET /api/v1/collect?id=col_… ou GET /api/v1/collect?reference=CMD-1001, avec la même clé.

Webhooks

Hostafri appelle votre URL HTTPS à chaque étape : collect.initiated, collect.success et collect.failed. Sans réponse 2xx de votre part, l'envoi est retenté jusqu'à 6 fois sur environ 14 heures. Vérifiez toujours la signature de l'en-tête X-Hostafri-Signature (HMAC SHA-256 de l'horodatage, d'un point, puis du corps reçu, avec votre secret de webhook).

Vérifier la signature en PHP
<?php
$secret  = getenv('HOSTAFRI_WEBHOOK_SECRET');
$payload = file_get_contents('php://input');

// En-tête : "t=1761818347,v1=ab12…"
[$t, $v1] = array_map(
    fn($p) => explode('=', $p, 2)[1],
    explode(',', $_SERVER['HTTP_X_HOSTAFRI_SIGNATURE'] ?? 't=,v1=')
);
$attendu = hash_hmac('sha256', $t . '.' . $payload, $secret);

if (!hash_equals($attendu, $v1)) {
    http_response_code(400);
    exit;
}

$evenement = json_decode($payload, true);   // $evenement['type'] : collect.success, collect.failed…
http_response_code(200);
Codes d'erreur

Toute erreur renvoie {"success": false, "error": {"code": "…", "message": "…"}}.

HTTPCodeCause et solution
401invalid_api_keyClé absente, révoquée ou mal formée. Envoyez-la dans Authorization: Bearer ….
403ip_not_allowedL'IP de votre serveur n'est pas autorisée. Le message indique l'adresse à ajouter.
403kyc_not_verified, key_not_verifiedClé live : le compte ou la clé n'est pas encore vérifié.
422invalid_operatorCode inconnu, ou pays qui ne correspond pas au code.
422wallet_not_foundVous n'avez pas de portefeuille actif pour ce pays.
422invalid_phoneNuméro invalide, ou indicatif manquant dans un pays qui l'exige.
422otp_requiredL'opérateur exige un code OTP dans le champ otp.
422invalid_amountMontant hors limites ou trop faible une fois la commission déduite.
422provider_rejectedL'opérateur a refusé le paiement (numéro, solde, montant).
409reference_conflictCette référence a déjà servi avec un autre montant ou un autre opérateur.
429too_many_pendingTrop de collectes en attente pour ce numéro. Patientez avant de réessayer.
202warningService de paiement momentanément indisponible. La collecte est créée et son résultat arrive par webhook.

Prêt à vous connecter à l'Afrique ?

Créer mon compteNous contacter

Construisons votre prochaine solution

Expliquez-nous votre besoin. Notre équipe pourra échanger avec vous sur les fonctionnalités, les délais et les prochaines étapes.

Votre message sera préparé dans WhatsApp avant envoi.