Captures d'écran de paiement M-Pesa : extraire
le montant et le code de transaction
Chaque transaction M-Pesa se termine de la même manière : un message texte arrive sur votre téléphone. Pas une notification push d'une application, pas une fenêtre contextuelle qui disparaît lorsque vous balayez l'écran — un simple SMS, le genre qui tient en 160 caractères, livré dans votre boîte de réception avec tout le reste. Ce SMS est le reçu. Et dans un pays où M-Pesa a traité 37.15 billion transactions d'une valeur de KSh 38.29 trillion en FY2025, selon le rapport annuel de Safaricom, ce message de 160 caractères transporte plus de données financières que la plupart des relevés bancaires. Le défi est que M-Pesa n'envoie pas le même SMS pour chaque transaction — il envoie cinq formats différents selon le type de paiement effectué, et les champs dont vous avez besoin se trouvent à des endroits différents dans chacun d'eux.

À retenir
- 37.15 billion transactions M-Pesa en FY2025, et chaque reçu est un simple SMS — pas une confirmation d'application — avec les données dont vous avez besoin organisées selon cinq schémas différents.
- Ce même SMS contient trois montants Ksh qui semblent identiques à première vue — montant de la transaction, frais et plafond journalier — ainsi qu'un champ de contrepartie qui change complètement d'identité entre Envoyer de l'argent, Payer une facture et Acheter des biens.
- Définissez les colonnes de votre feuille de calcul selon ce que signifient les données — code de transaction, montant, contrepartie — et non selon leur position à l'écran, et les cinq formats SMS se fondent en un seul export sans aucun modèle ni règle.
Pourquoi M-Pesa est différent : le SMS fait office de reçu
La plupart des applications de paiement — Venmo, PayPal, WeChat Pay — affichent votre confirmation dans l'interface de l'application. Vous faites une capture d'écran. M-Pesa fonctionne différemment car il a été conçu pour un marché où tout le monde n'a pas de smartphone. Le service a été lancé en 2007 via des codes USSD composés sur des téléphones basiques. Aujourd'hui, l'application M-Pesa Super App compte 4,7 millions d'utilisateurs mensuels, mais la confirmation par SMS reste le document universel — elle atteint tous les téléphones, à chaque fois, quel que soit l'appareil. En mars 2026, M-Pesa comptait 40 millions de clients actifs mensuels au Kenya, Safaricom détenant 89,1 % du marché de l'argent mobile dans le pays. Le SMS n'est pas une simple notification de courtoisie. C'est le reçu.
Chaque SMS M-Pesa se termine par la mention "PIN YAKO SIRI YAKO" (en kiswahili : « Votre code PIN est votre secret ») — un rappel de sécurité de Safaricom qui figure sur les messages de confirmation depuis des années. C'est aussi un repère fiable : quel que soit le type de transaction à l'origine du message, ce pied de page vous indique que le SMS est légitime et complet. Entre le code de transaction d'ouverture et cette ligne de clôture se trouvent toutes les informations dont vous avez besoin — montant, contrepartie, code de transaction, date — mais leur disposition varie selon l'opération effectuée.
Les cinq types de transactions courants — Envoyer de l'argent, Payer une facture, Acheter des biens (Numéro de caisse), Argent reçu, et Dépôt/Retrait — produisent chacun un modèle de SMS distinct. Comprendre le format auquel vous avez affaire et l'emplacement de chaque champ dans ce format fait la différence entre extraire des données en quelques secondes et chercher un numérique dans un bloc de texte.
Les cinq types de transactions et leurs formats de SMS
Chaque SMS M-Pesa commence par un code alphanumérique de 10 caractères suivi de « Confirmed. » — cette ouverture commune est l'ancrage structurel le plus fiable pour tous les types de messages. La suite varie selon le type de transaction.
Envoyer de l'argent (Transfert client)
Le type de transaction le plus courant. Vous envoyez de l'argent à un autre utilisateur M-Pesa enregistré. Le SMS se lit comme suit :
ABCDE12345 Confirmé. Ksh150,00 envoyé à JOHN DOE 0722000000
le 23/06/23 à 15h41. Nouveau solde M-PESA : Ksh1 205,10.
Frais de transaction : Ksh6,00.Trois champs apparaissent séquentiellement : le montant (Ksh150,00), le nom complet et le numéro de téléphone du destinataire (JOHN DOE 0722000000), ainsi que la date et l'heure. Les frais de transaction sont indiqués séparément — ils ne font pas partie du champ du montant.
Payer une facture
Utilisé pour payer des entreprises, des services publics, des écoles et des agences gouvernementales via un numéro Paybill enregistré. Le format du SMS change pour inclure le nom de l'entreprise et la référence du compte :
DY28XV679 Confirmé. Ksh4 000,00 envoyé à KCB Paybill AC
pour le compte 1137238445 le 09/09/23 à 23h31.
Nouveau solde M-PESA : Ksh22,00.Ici, la contrepartie n'est pas une personne mais un nom d'entreprise (KCB Paybill) associé à un numéro de compte. La mention « pour le compte » distingue ce message d'un message « Envoyer de l'argent ». Si vous extrayez le champ de la contrepartie, vous avez besoin à la fois du nom de l'entreprise et de la référence du compte — ensemble, ils identifient qui a reçu le paiement et sous quel identifiant client.
Acheter des biens (Numéro de caisse / Paiement marchand)
Lorsque vous payez dans un magasin, un supermarché ou un restaurant en utilisant un Numéro de caisse (également appelé Lipa na M-Pesa, ou « Payez avec M-Pesa »), le format omet la clause « pour le compte » qui apparaît dans les messages « Payer une facture » :
GH78KT901 Confirmé. Ksh500,00 payé à Naivas Supermarket
le 15/01/25 à 10h15. Nouveau solde M-PESA : Ksh3 400,00.
Frais de transaction : Ksh0,00.Notez le changement de verbe : « payé à » au lieu de « envoyé à ». Le destinataire est le nom du commerçant enregistré auprès du Numéro de caisse. Pas de référence de compte, pas de numéro de téléphone — seulement le nom du magasin ou de l'entreprise. Pour la plupart des paiements de détail au Kenya — d'une duka (magasin local) à une chaîne de supermarchés — c'est le format que suivra votre SMS.
Argent reçu
Lorsque quelqu'un vous envoie de l'argent, le SMS adopte un format orienté destinataire :
BS49OR201 Confirmé. Vous avez reçu Ksh50.00 de
MICHAEL FEDERSEN 254729901555 le 15/10/24 à 11h52.
Nouveau solde M-PESA : Ksh100.00.La contrepartie ici est l'expéditeur, affiché avec son nom complet et son numéro de téléphone. Le montant correspond à ce que l'expéditeur a transféré (il a payé les frais de transaction, pas vous). Le même format est utilisé pour les transferts internationaux arrivant via les partenaires M-Pesa Global comme Western Union ou WorldRemit.
Dépôt et retrait
Le dépôt d'espèces (dépôt auprès d'un agent) génère un message tel que :
DF34QR567 Confirmé. Vous avez reçu Ksh3 000,00 de
HENRY KAMAU 254701234567 le 12/4/26 à 9h14.
Nouveau solde M-PESA : Ksh8 450,00.Le format reprend celui d'Argent reçu, mais la source « de » est l'agent qui a facilité le dépôt. Les messages de retrait d'espèces incluent le mot « Withdraw » et affichent le montant débité ainsi que les frais de l'agent.
Le point clé commun aux cinq formats : le code de transaction est toujours le premier mot du message. Cette cohérence en fait le champ d'ancrage idéal pour l'extraction — quel que soit le type de transaction, vous savez exactement où il commence.
Le code de transaction : une clé de 10 caractères qui encode la date

Le code de transaction M-Pesa — une chaîne comme TB17CVOCY9 — est bien plus qu'un simple numéro de reçu aléatoire. Sa structure révèle le moment de la transaction. Les trois premiers caractères encodent la date : la première lettre représente l'année (T = 2025, S = 2024, R = 2023, Q = 2022 — en parcourant l'alphabet), le deuxième caractère encode le mois et le troisième le jour. Le quatrième caractère est toujours un chiffre, et les six restants sont générés aléatoirement. Le système peut générer environ 21,8 milliards de codes uniques par jour, et avec une capacité annuelle de 8 000 milliards de codes, les doublons sont pratiquement impossibles.
Pour les entreprises kényanes, le code de transaction est la clé de rapprochement universelle. Chaque système de Numéro de caisse et de Payer une facture M-Pesa enregistre les paiements reçus par ce code. Le service client de Safaricom l'utilise pour tracer les transactions. La KRA (Autorité fiscale kényane) accepte les relevés M-Pesa — qui indexent chaque transaction par ce code — comme pièces justificatives pour les déclarations fiscales. Et sur le plan juridique, comme l'ont noté les avocats de MMTK Law dans Business Daily Africa, en vertu de la Loi de 2019 sur la protection des données, « le code de transaction est le seul détail dont un commerçant a strictement besoin » car il figure déjà sur le système de confirmation du commerçant.
Si vous construisez une feuille de calcul à partir de SMS M-Pesa — qu'il s'agisse de transactions Envoyer de l'argent, Payer une facture ou Acheter des biens — le code de transaction est la seule colonne qui sera renseignée pour chaque ligne. Tous les autres champs (contrepartie, montant, date) sont également présents dans chaque format, mais le code de transaction est le champ qui permet de dédupliquer : deux SMS avec le même code correspondent à la même transaction, même si quelqu'un vous a transféré deux fois la même capture d'écran.
Montants en KES : ce que le SMS affiche réellement
Chaque montant M-Pesa est précédé de Ksh (shilling kényan), formaté avec une virgule comme séparateur de milliers et deux décimales : Ksh1 500,00, Ksh38 290,50, Ksh4 000,00. Cette partie est cohérente. Mais le SMS comporte trois champs de quantité différents qu'il est facile de confondre si vous parcourez le message rapidement :

- Montant de la transaction — la valeur transférée. Sur un SMS Envoyer de l'argent, cela apparaît comme « Ksh150,00 envoyés à ». Sur Payer une facture, « Ksh4 000,00 envoyés à ». Sur Argent reçu, « Vous avez reçu Ksh50,00 ». C'est le champ que vous voulez pour votre feuille de calcul.
- Coût de la transaction — les frais déduits pour le transfert. Indiqués sur une ligne ou une phrase séparée : « Coût de la transaction, Ksh6,00. » Ne font pas partie du montant transféré. Sur Envoyer de l'argent au-dessus de KSh 500, les frais vont de KSh 6 à KSh 110 selon la tranche.
- Limite quotidienne disponible — « Le montant que vous pouvez transacter dans la journée est de 289 950,00. » Il s'agit d'un plafond, pas d'un solde. Facile à confondre avec un solde de compte si vous ne lisez que les premiers caractères du nombre.
Le SMS M-Pesa affiche également votre nouveau solde après chaque transaction (« Nouveau solde M-PESA : Ksh1 205,10 »). Cela est utile pour le suivi personnel, mais contient des données financières protégées par la Loi de 2019 sur la protection des données — si vous partagez ou transmettez le SMS pour une vérification professionnelle, le solde peut révéler plus que ce que la contrepartie a besoin de savoir.
Noms, numéros de caisse et comptes professionnels
Le champ « contrepartie » est l'endroit où la diversité des formats de M-Pesa est la plus visible. Il change complètement d'identité selon le type de transaction :
| Type de transaction | Apparence de la contrepartie dans le SMS | Exemple |
|---|---|---|
| Envoyer de l'argent | Nom complet + numéro de téléphone | JOHN DOE 0722000000 |
| Payer une facture | Nom de l'entreprise + « AC pour compte [numéro] » | KCB Paybill AC for account 1137238445 |
| Acheter des biens | Nom du commerçant uniquement | Naivas Supermarket |
| Argent reçu | Nom de l'expéditeur + numéro de téléphone | MICHAEL FEDERSEN 254729901555 |

Pour une feuille de calcul regroupant toutes les transactions M-Pesa d'une entreprise, la colonne « contrepartie » devrait pouvoir accueillir quatre formats différents : le nom d'une personne avec son numéro de téléphone, un nom d'entreprise avec une référence de compte, un nom de commerçant seul, ou le nom d'un expéditeur. Une règle d'extraction basée sur la position — par exemple « prendre le texte après "envoyé à" et avant "le" » — fonctionne pour Envoyer de l'argent mais échoue sur Payer une facture (où le texte inclut « AC pour compte ») et sur Argent reçu (où la structure est « reçu de » et non « envoyé à »). L'extraction sémantique — définissant la colonne comme « la personne ou l'entité de l'autre côté de cette transaction » — gère les quatre formats, car elle identifie la contrepartie par le sens, et non par sa position par rapport à des mots-clés fixes.
Des SMS et captures d'écran à une feuille de calcul
La diversité des formats de M-Pesa — cinq modèles de SMS pour cinq types de transactions — en fait un cas de test particulièrement pertinent pour comprendre comment l'extraction de données de paiement devrait fonctionner. Un système qui vous oblige à créer un modèle distinct pour Envoyer de l'argent, Payer une facture, Acheter des biens et Argent reçu tombera en panne dès qu'un nouveau type de transaction sera introduit, ou dès que le format des SMS évoluera (comme ce fut le cas en 2025 lorsque les codes de transaction sont passés du préfixe « S » au préfixe « T »).
Extraction de colonnes personnalisées — où vous définissez les colonnes souhaitées (Code de transaction, Montant, Contrepartie, Date) et où l'IA localise chaque valeur en comprenant sa signification plutôt que sa position sur la page — résout ce problème en considérant la variation de format comme non pertinente. Que le SMS indique « envoyé à », « payé à », « reçu de » ou « AC pour compte », le moteur lit le rôle sémantique de chaque texte et le fait correspondre à la bonne colonne. Vous n'avez pas besoin de lui indiquer le type de transaction concerné.
Le flux de travail pratique se présente ainsi : enregistrez ou transférez vos confirmations SMS M-Pesa — ou prenez des captures d'écran du fil SMS ou des détails de transaction de la M-Pesa Super App — et téléversez-les ensemble. Une capture d'écran M-Pesa de la confirmation de la Super App ne nécessite aucune configuration distincte — les colonnes sont définies par leur signification, et non par le format du message, elle est donc traitée dans le même lot que les SMS. Nommez vos colonnes Transaction Code, Amount, Counterparty et Date. Le résultat est une ligne par transaction, chaque ligne contenant les valeurs extraites du format SMS réellement utilisé pour cette transaction. Un lot de 50 paiements M-Pesa mélangeant des messages Envoyer de l'argent, Payer une facture et Acheter des biens produit un tableau unique et unifié — sans avoir à les trier par type au préalable.
Pour les entreprises kényanes, l'utilisation en aval est simple. Les données extraites peuvent alimenter directement Zoho Books, qui propose une intégration native M-Pesa pour les comptes kényans, ou QuickBooks Kenya pour les entreprises qui l'utilisent. De nombreuses PME et comptables tiennent également un registre Google Sheets — parfois en parallèle d'autres méthodes de paiement mobile — et la même structure de colonnes fonctionne pour tous. Si votre entreprise reçoit également des paiements via GCash ou PayNow, par exemple, le schéma montant-code de transaction-contrepartie-date est identique. Les différences de format qui semblent déroutantes — cinq modèles de SMS, quatre types de contreparties, une ligne de frais qui ressemble à un second montant — disparaissent une fois l'extraction effectuée par signification plutôt que par position. L'extracteur de données à partir de captures d'écran de paiement applique ce même schéma de colonnes à GCash, PayNow et toutes les autres plateformes de paiement en un seul lot.
FAQ
Quelles informations contient un SMS de confirmation M-Pesa ?
Chaque SMS M-Pesa comprend un code de transaction de 10 caractères, le montant en shillings kényans (KSh), le nom de la contrepartie et/ou le compte professionnel, la date et l'heure, votre nouveau solde M-Pesa et le coût de la transaction (frais). Des champs supplémentaires comme la limite de transaction quotidienne restante apparaissent sur certains types de messages. Le code de transaction est toujours le premier mot du message, suivi de « Confirmed. » — ce format est cohérent pour tous les types de transactions.
Puis-je extraire des données d'une capture d'écran de l'application M-Pesa Super App plutôt que du SMS ?
Oui. L'application M-Pesa Super App affiche les mêmes champs — code de transaction, montant, contrepartie, date — dans un écran de confirmation visuel. Le numéro de téléphone et le nom du commerçant peuvent être plus lisibles sur l'écran de l'application que dans le SMS (l'application ne tronque pas les noms comme le SMS le fait parfois). À des fins de rapprochement, envisagez d'extraire le code de transaction de l'écran de l'application Super App, où il est affiché comme un champ clairement étiqueté, et de le recouper avec le SMS pour vérification.
Que faire si le SMS a été supprimé — puis-je toujours accéder aux données de transaction ?
Composez le *234# et sélectionnez « Mon compte », puis « Relevé M-Pesa », puis « Mini-relevé » pour recevoir vos cinq dernières transactions par SMS. Pour un relevé complet couvrant jusqu'à 12 mois, utilisez le même menu pour demander un relevé PDF envoyé par e-mail à votre adresse e-mail enregistrée. Le relevé est protégé par mot de passe utilisant votre numéro de carte d'identité nationale comme mot de passe par défaut. Safaricom fournit également l'historique des transactions via l'application M-Pesa Super App dans la section « Transactions » ou « Relevé ».
M-Pesa fonctionne-t-il avec des logiciels de comptabilité comme QuickBooks ou Zoho Books ?
Oui. Zoho Books dispose d'une intégration native M-Pesa pour les comptes kényans, vous permettant de rapprocher automatiquement les paiements M-Pesa Paybill des factures. QuickBooks Kenya est largement utilisé, bien qu'il n'offre pas d'intégration native M-Pesa — les données extraites des SMS ou des captures d'écran peuvent être importées au format CSV. Des plateformes kényanes locales comme ZYNO Books et ERPNext offrent des flux de travail de rapprochement M-Pesa intégrés, que de nombreux comptables kényans jugent mieux adaptés au paysage de conformité local, y compris aux exigences de KRA (Autorité fiscale kényane) eTIMS.
Le code de transaction M-Pesa suffit-il pour déclarer ses impôts auprès du KRA ?
Le KRA accepte les relevés M-Pesa comme pièces justificatives pour la déclaration fiscale, en particulier pour les petites entreprises qui opèrent principalement via l'argent mobile. Chaque transaction est indexée par son code de transaction, et le relevé fournit une piste d'audit complète. Pour une déclaration fiscale formelle, le KRA exige généralement le relevé M-Pesa complet (qui peut être demandé au format PDF auprès de Safaricom en composant le *234#) plutôt que des codes SMS individuels. Cependant, le code de transaction lui-même est ce qui lie un paiement spécifique à un enregistrement spécifique dans le relevé, ce qui en fait la référence essentielle pour tout audit ou enquête ultérieur.