Extracción de SMS de M-Pesa

Reconoce códigos de transacción, importes y contrapartes desde cualquier formato de SMS de M-Pesa

M-Pesa confirma cada transacción con uno de cinco plantillas SMS distintas: Enviar dinero, Pagar factura, Comprar bienes, Dinero recibido y Retiro. Define tus columnas una vez; la IA lee el código de transacción, el importe, la contraparte y la fecha de cada formato sin necesidad de una sola plantilla.

5-10 s por captura de SMS · Hasta un 99 % de precisión en texto impreso

Captura de SMS
5 formatos SMS
Procesamiento por lotes

Qué puedes extraer de un SMS de M-Pesa

Una confirmación de M-Pesa es un SMS simple de 160 caracteres, sin interfaz de app ni diseño visual. Con Extracción de Columnas Personalizadas, tú nombras los campos y la IA los encuentra en los cinco formatos por su significado, no por su posición.

Código de transacción

Un código de 10 caracteres que inicia cada SMS. Los primeros 3 caracteres codifican la fecha (T = 2025). Clave de conciliación para deduplicación y referencia ante KRA.

Importe (Ksh)

Formateado como Ksh1,500.00. La IA lo separa del costo de la transacción y del nuevo saldo —las otras dos cifras en Ksh del mismo mensaje— leyendo la etiqueta junto a cada uno.

Contraparte

Varía según el tipo de transacción: nombre completo en Enviar dinero, empresa con cuenta en Pagar factura, nombre del comercio en Comprar bienes, o remitente en Dinero recibido. La extracción semántica la identifica por su rol, no por una palabra clave.

Fecha y hora

Cada SMS incluye una marca de tiempo (on 23/6/25 at 3:41 PM) en Hora de África Oriental. Se guarda en el dispositivo de forma indefinida, siempre disponible para registros y conciliación.

M-Pesa no usa una pantalla de app — usa cinco plantillas de SMS

M-Pesa fue creado para un mercado donde no todo el mundo tiene un smartphone. El recibo es un SMS simple — sin interfaz visual — y los mismos cuatro campos se reorganizan en cinco formatos de mensaje. Las herramientas basadas en plantillas y el OCR de pantalla fallan porque esperan una estructura visual; esto es lo que se pierden.

Por qué M-Pesa rompe la extracción tradicional

01

Sin interfaz de app para anclar campos. Venmo y PayPal tienen pantallas visuales con pistas de diseño. El recibo de M-Pesa es un SMS sin formato — sin encabezados en negrita, sin color. Las herramientas de OCR diseñadas para interfaces de app fallan porque no hay nada que anclar visualmente.

02

Tres cifras Ksh, un mensaje — solo una es el importe. El importe transferido, el costo de la transacción y el nuevo saldo comparten el prefijo Ksh. Las reglas Regex que capturan "el número después de Ksh" suelen elegir la cifra incorrecta. Los desarrolladores que analizan SMS de M-Pesa con regex deben aislar la ocurrencia correcta de Ksh según el tipo de mensaje — una fragilidad que se rompe entre formatos.

03

El formato de la contraparte cambia según el tipo de transacción. "Enviado a JOHN DOE 0722000000" nombra a una persona. "Pagado a Naivas Supermarket" nombra a un comercio. "AC para cuenta 1137238445" es un Pago de factura. Una sola regla Regex no puede manejar los tres porque la estructura gramatical es diferente para cada formato.

Cómo la Lectura Semántica Extrae Cualquier SMS de M-Pesa

01

El código de transacción siempre es la primera palabra. Cada SMS de M-Pesa comienza con un código de 10 caracteres seguido de "Confirmed." La IA usa esta apertura consistente como ancla: lee el mensaje como texto, identifica el código por su posición y luego construye el resto de la extracción a partir de ahí.

02

Las etiquetas determinan qué significa cada cifra en Ksh. "Transaction cost, Ksh6.00" se etiqueta como tarifa. "New M-PESA balance is Ksh1,205.10" se etiqueta como saldo. Solo el valor precedido por "sent to" o "received" va a la columna Importe — tres cifras semánticamente diferentes resueltas sin asumir posiciones.

03

La contraparte se identifica por su rol semántico. Ya sea que el SMS diga "sent to JOHN DOE", "paid to Naivas Supermarket" o "received from MICHAEL FEDERSEN", la IA asigna la entidad al otro lado de la transacción a la columna Contraparte. Lee la relación, no la posición de una palabra clave específica.

"He estado notando algo al hablar con algunos negocios (escuelas, alquileres, equipos financieros pequeños) — la conciliación se vuelve muy complicada muy rápido cuando el volumen aumenta."

Discusión en r/nairobitechies sobre conciliación M-Pesa + bancaria

De Varios Formatos de SMS de M-Pesa a una Hoja de Cálculo Unificada

1

Sube Capturas de SMS de M-Pesa Juntas

Tienes una carpeta de confirmaciones de M-Pesa de la semana pasada: un recibo de Enviar dinero de un cliente, un SMS de Pagar factura del pago de la colegiatura, una confirmación de Comprar bienes del supermercado y una notificación de Dinero recibido de un proveedor. Cuatro formatos de SMS diferentes. Súbelos todos en un solo lote: capturas de pantalla JPG, PNG o WebP del hilo de SMS.

2

Define las Columnas una Vez: Código de Transacción, Importe, Contraparte, Fecha

Escribe las columnas que necesitas. La IA lee cada captura de SMS de forma independiente: encuentra el código de transacción de 10 caracteres como palabra inicial, aísla el importe transferido en Ksh (no la tarifa ni el saldo), identifica a la contraparte por su rol sin importar si el verbo es "enviado a", "pagado a" o "recibido de", y registra la fecha y la hora.

3

Obtén una Tabla Unificada: Sin Ordenar por Tipo

El procesamiento toma de 5 a 10 segundos por captura. El resultado es un archivo XLSX o CSV: cuatro filas, cuatro columnas (Código de Transacción, Importe, Contraparte, Fecha), una fila por tipo de transacción. Los formatos de Enviar dinero, Pagar factura, Comprar bienes y Dinero recibido produjeron la misma estructura limpia. Aproximadamente 18 veces más rápido que abrir cada SMS y escribir los valores a mano (~90s manual por SMS para 4 campos vs ~5s aquí).

Lo que obtienes — en los cinco formatos de SMS de M-Pesa:

Código de transacciónImporte (Ksh)ContraparteFecha
ABCDE123451,500.00JOHN DOE23/06/25
DY28XV6794,000.00KCB Paybill09/09/25
GH78KT901500.00Naivas Supermarket15/01/26

Cuándo funciona mejor y cuándo tener precaución

Conocer los límites de la extracción de capturas de SMS te ayuda a obtener resultados consistentes.

Cuándo funciona mejor

Capturas de pantalla directas de hilos de SMS o de la Super App. Las capturas de pantalla a resolución completa de la bandeja de entrada de mensajes o del historial de transacciones de la Super App alcanzan hasta un 99% de precisión. El texto SMS generado por máquina tiene alto contraste; el modelo lo maneja bien.

Tipos de transacción mixtos en un solo lote. Las capturas de pantalla de Enviar dinero, Pagar factura, Comprar bienes y Retiro se pueden subir juntas; no es necesario clasificarlas por tipo antes de procesarlas.

Conciliación histórica masiva. Decenas de confirmaciones de M-Pesa producen una sola hoja de cálculo ordenada, lista para importar a QuickBooks Kenya o Zoho Books.

Cuándo tener precaución

Capturas de pantalla reenviadas por WhatsApp o Messenger. Las plataformas de mensajería comprimen las imágenes. Las capturas reenviadas tienen menor resolución, lo que puede reducir la precisión a nivel de caracteres, especialmente en el código de transacción.

Límite de arquitectura: captura de pantalla de SMS, no fuente de datos SMS. Este método funciona con capturas de pantalla — recibos reenviados e imágenes que otros te envían — pero no puede analizar SMS directamente desde la base de datos de mensajes del teléfono. Complementa las herramientas de lectura de SMS, no las reemplaza.

Formatos de SMS de M-Pesa muy antiguos. Los códigos de transacción cambiaron del prefijo S al prefijo T en 2025. La IA maneja las variaciones conocidas, pero los formatos mucho más antiguos pueden producir resultados parciales.

Preguntas Frecuentes

¿Cómo distingue la IA entre el importe de la transacción, la comisión y el nuevo saldo en un SMS de M-Pesa?

Cada SMS de M-Pesa incluye tres cifras en Ksh. La IA lee la etiqueta que precede a cada valor: Ksh1,500.00 enviados a es el importe transferido; Coste de transacción, Ksh6.00 es la comisión; El nuevo saldo de M-PESA es Ksh1,205.10 es el saldo restante. Solo el valor que es el objeto de la transacción — precedido por verbos de acción como "enviados a", "pagados a" o "recibido" — va a la columna Importe. Esto evita la confusión que se produce al escanear el mensaje manualmente.

¿El código de transacción realmente codifica la fecha? ¿Y por qué es importante?

Sí. El primer carácter del código de transacción de M-Pesa representa el año (T = 2025, S = 2024, avanzando por el alfabeto), el segundo representa el mes y el tercero el día. Esto significa que el campo Código de transacción por sí solo puede confirmar la fecha de la transacción incluso si la marca de tiempo del SMS se recorta de la captura de pantalla. También sirve como clave de conciliación universal: dos SMS con el mismo código son la misma transacción, lo que lo convierte en el campo más fiable para la deduplicación y la referencia de KRA.

¿Puedo procesar capturas de pantalla de SMS simples y de la Super App de M-Pesa en el mismo lote?

Sí. La Super App de M-Pesa muestra los mismos datos — código de transacción, importe, contraparte, fecha — en una pantalla de confirmación visual. La IA maneja ambos formatos de entrada en un solo lote. La pantalla de la Super App puede mostrar el nombre del comerciante de forma más legible que el SMS, mientras que el SMS incluye el coste de la transacción y el nuevo saldo que la pantalla de la app a veces omite. Define tus columnas una vez; la IA se adapta a la fuente de cada captura de pantalla.

¿Puedo usar los datos extraídos para la declaración de impuestos de KRA?

KRA acepta los estados de cuenta de M-Pesa como documentación de respaldo para declaraciones de impuestos, particularmente para pequeñas empresas que operan principalmente a través de dinero móvil. Cada transacción está indexada por su Código de transacción, que vincula un pago específico con los registros de KRA. Para la declaración formal, aún necesitarás el estado de cuenta PDF completo de M-Pesa (disponible marcando *234# o a través de la Super App), pero los datos extraídos de SMS te proporcionan una hoja de cálculo funcional para la conciliación provisional y el seguimiento de gastos antes de que llegue el estado de cuenta oficial.

¿Qué pasa si necesito extraer datos de cien confirmaciones de M-Pesa a la vez?

El procesamiento por lotes admite múltiples capturas de pantalla en una sola carga. Sube todas las capturas de SMS juntas, define tus cuatro columnas — Código de transacción, Importe (Ksh), Contraparte, Fecha — y la IA procesa cada captura usando las mismas definiciones de columna. Ya sea que el lote contenga 10 o 100 confirmaciones de M-Pesa en formatos mixtos, el resultado es un único archivo de Excel con una fila por transacción, listo para importar a software de contabilidad o conciliar con tu libro mayor.

📮 contact email: [email protected]