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 SMS arrive sur votre téléphone. Pas une notification push d'une application, pas une fenêtre contextuelle qui disparaît quand vous balayez l'écran — un simple SMS, le genre qui tient en 160 caractères, livré dans votre boîte de réception de messages au milieu de tout le reste. Ce SMS est le reçu. Et dans un pays où M-Pesa a traité 37,15 milliards de transactions d'une valeur de 38 290 milliards KSh au cours de l'exercice 2025, 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.
Points clés à retenir
- 37,15 milliards de transactions M-Pesa au cours de l'exercice 2025, 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 modèles différents.
- Ce seul SMS contient trois montants KSh qui se ressemblent à première vue — montant de la transaction, frais et limite quotidienne — 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 tableur en fonction de ce que signifient les données — Code de transaction, Montant, Contrepartie — et non de leur emplacement à l'écran, et les cinq formats SMS se réduisent à 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 à 11:52.
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 est celui 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 d'argent internationaux arrivant via les partenaires M-Pesa Global comme Western Union ou WorldRemit.
Dépôt et retrait
Un dépôt d'espèces (dépôt chez 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 à 9:14.
Nouveau solde M-PESA : Ksh8 450,00.Le format est similaire à 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 « Retrait » et affichent le montant déduit ainsi que les frais de l'agent.
Le point clé à retenir pour les 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 quand la transaction a eu lieu. 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 derniers 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 Numéro de caisse et système Paybill 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 apparaît déjà sur le système de confirmation du commerçant.
Si vous construisez un tableur à partir de SMS M-Pesa — que ce soit pour des transactions Envoyer de l'argent, Payer une facture ou Acheter des biens — le code de transaction est la 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. Dans un SMS d'envoi d'argent, cela apparaît comme « Ksh150,00 envoyé à ». Pour un paiement de facture, « Ksh4 000,00 envoyé à ». Pour un argent reçu, « Vous avez reçu Ksh50,00 ». C'est le champ que vous souhaitez pour votre feuille de calcul.
- Coût de la transaction — les frais déduits pour le transfert. Indiqué sur une ligne ou une phrase distincte : « Coût de la transaction, Ksh6,00 ». Cela ne fait pas partie du montant transféré. Pour les envois d'argent supérieurs à 500 KSh, les frais varient de 6 KSh à 110 KSh 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 (« Votre nouveau solde M-PESA est de Ksh1 205,10 »). Ceci 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 transférez le SMS à des fins de vérification professionnelle, le solde peut révéler plus d'informations que la contrepartie n'a besoin d'en connaître.
Noms, numéros de caisse et comptes professionnels
Le champ de la 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 | JEAN DUPONT 0722000000 |
| Payer une facture | Nom de l'entreprise + « AC for account [numéro] » | KCB Paybill AC for account 1137238445 |
| Acheter des biens (caisse) | Nom du commerçant uniquement | Naivas Supermarket |
| Argent reçu | Nom de l'expéditeur + numéro de téléphone | MICHEL FEDERSEN 254729901555 |
Pour une feuille de calcul capturant toutes les transactions M-Pesa d'une entreprise, la colonne de la contrepartie devrait prendre en charge quatre formats différents : un nom de personne avec numéro de téléphone, un nom d'entreprise avec une référence de compte, un nom de commerçant seul, ou un nom d'expéditeur. Une règle d'extraction basée sur la position — comme « prendre le texte après 'envoyé à' et avant 'le' » — fonctionne pour Envoyer de l'argent, mais échoue pour Payer une facture (où le texte inclut « AC for account ») et pour Argent reçu (où la structure est « reçu de » et non « envoyé à »). L'extraction sémantique — définir 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 son sens, et non par sa position par rapport à des mots-clés fixes.
Des SMS et captures d'écran à un tableur
La diversité des formats de M-Pesa — cinq modèles de SMS pour cinq types de transactions — en fait un cas d'essai particulièrement pertinent pour illustrer 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 deviendra obsolète dès qu'un nouveau type de transaction sera introduit, ou 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 » à « T »).
Extraction de colonnes personnalisées — où vous définissez les colonnes souhaitées (Code de transaction, Montant, Contrepartie, Date) et 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 préciser de quel type de transaction il s'agit.
Le flux de travail pratique est le suivant : enregistrez ou transférez vos confirmations SMS M-Pesa — ou prenez des captures d'écran du fil de discussion SMS ou du détail de transaction de l'application M-Pesa Super App — et téléchargez-les ensemble. Nommez vos colonnes Code de transaction, Montant, Contrepartie 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é — nul besoin de les trier d'abord par type.
Pour les entreprises kényanes, l'utilisation en aval est simple. Les données extraites peuvent être directement intégrées dans Zoho Books, qui propose une intégration native M-Pesa pour les comptes kényans, ou dans 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 modèle 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 contrepartie, une ligne de frais qui ressemble à un second montant — disparaissent une fois l'extraction effectuée par le sens plutôt que par la position.
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.