YapeListener

Captura automatica de pagos Yape (Bolivia) · boliviaimpuestos.com

V2 — Marzo 2026

Descargar APK

YapeListener V2 (Recomendado) V1 (Legacy)

V2 soluciona la censura de notificaciones sensibles en Android 15+

Que es YapeListener

App Android que captura automaticamente las notificaciones de pago de Yape Bolivia (BCP) y las envia a tu servidor via HTTP POST. Ideal para automatizar la verificacion de pagos en tu sistema.

Yape (pago recibido)

Android genera notificacion

YapeListener captura el monto y remitente

HTTP POST al servidor configurado

Tu sistema procesa el pago

Diferencia entre V1 y V2

CaracteristicaV1V2
NotificationListener SI SI
AccessibilityService NO SI
Lectura de ventana (Window Content) NO SI
Android 14 e inferior OK OK
Android 15+ (notif. sensibles) FALLA montos >1000 Bs OK

El problema de Android 15

Desde Android 15, Google introdujo "Enhanced Notification Protection": las notificaciones de apps financieras (como Yape) son marcadas como sensibles y su contenido se oculta de servicios de terceros.

Que ve el NotificationListener

// Pago menor a ~1000 Bs (NO censurado)
title: "Yape"
text: "Juan te envio Bs 50.00"

// Pago mayor a ~1000 Bs (CENSURADO en Android 15)
title: "Sensitive notification content hidden"
text: null

Como lo soluciona V2

El AccessibilityService de V2 usa una estrategia dual:

  1. Primero intenta leer la notificacion por el metodo clasico (evento)
  2. Si detecta censura ("Sensitive notification content hidden"), activa la lectura de ventana
  3. Recorre el arbol de nodos de accesibilidad del SystemUI para leer el texto visible de la notificacion (que NO esta censurado para el usuario)
  4. Extrae el monto con regex y lo envia al servidor
Clave: Android censura el contenido para apps de terceros, pero el texto que el usuario ve en pantalla esta intacto. V2 lee directamente de la pantalla.

Instalacion paso a paso

1
Descargar e instalar el APK
Descarga YapeListenerV2.apk en el celular. Si pide permiso para instalar de fuentes desconocidas, acepta.
2
Permiso de notificaciones
Abre la app y toca "Activar permiso de notificaciones". Busca Yape Listener en la lista y activalo.
Apps sideloaded en Android 13+: Si la app no aparece en la lista, ve a Ajustes > Apps > Yape Listener > Info > Permitir ajustes restringidos.
3
Permiso de accesibilidad (V2)
Toca "Activar Accesibilidad". Busca Yape Listener y activalo. Esto permite leer el contenido de ventana cuando las notificaciones estan censuradas.
4
Configurar URL y token
Ingresa la URL de tu servidor y el token de seguridad. El servidor recibira un POST por cada pago detectado.
5
Iniciar captura
Toca "Iniciar captura". La app pedira desactivar el ahorro de bateria para funcionar en segundo plano.
6
Configurar bateria del fabricante
Sigue las instrucciones especificas de tu marca (Samsung, Xiaomi, Honor, etc.) para que la app no sea cerrada en segundo plano.

API del servidor (HTTP POST)

Cada pago detectado genera un POST a la URL configurada con estos parametros:

ParametroTipoDescripcion
tokenstringToken de seguridad configurado en la app
appstringSiempre "yape"
montostringMonto en formato "1500.00" (punto decimal)
mensajestringTexto completo de la notificacion
remitentestringNombre del remitente (o "desconocido")

Ejemplo de request

POST /pago.php HTTP/1.1
Content-Type: application/x-www-form-urlencoded
User-Agent: YapeListener/5.0

token=4804&app=yape&monto=1500.00&mensaje=Juan+te+envio+Bs+1500.00&remitente=Juan

Respuesta esperada

El servidor debe responder con HTTP 200. Cualquier otra respuesta activa el reintento via WorkManager (backoff de 15 segundos).

Endpoint de consulta

GET /api_pagos.php

// Devuelve JSON con todos los pagos registrados

Configuracion adicional Android 15 (ADB)

Si el AccessibilityService V2 no es suficiente, estos comandos ADB pueden ayudar:

# Desactivar proteccion de notificaciones sensibles
adb shell settings put secure enhanced_notifications 0

# Desactivar redaccion para listeners no confiables
adb shell device_config put systemui android.service.notification.redact_sensitive_notifications_from_untrusted_listeners false

# Desactivar redaccion de big text style
adb shell device_config put systemui android.service.notification.redact_sensitive_notifications_big_text_style false

# Desactivar Notification Assistant (Honor/Huawei)
adb shell settings put secure enabled_notification_assistant none

# Prevenir que el servidor sobreescriba la config
adb shell device_config set_sync_disabled_for_tests persistent
Nota: Los comandos device_config put pueden no funcionar en todos los fabricantes (Honor/Huawei los restringen). La solucion V2 con lectura de ventana funciona sin estos comandos.

Arquitectura del APK

ComponenteFuncion
MainActivity UI principal: config URL/token, permisos, inicio/parada de captura, log de actividad
YapeNotificationListener PRIMARIO NotificationListenerService con foreground service. Captura notificaciones de Yape. Funciona perfecto en Android 14 e inferior.
YapeAccessibilityService FALLBACK V2 AccessibilityService que lee el contenido visible de la ventana del SystemUI cuando las notificaciones estan censuradas.
SendPaymentWorker Worker de WorkManager para envio HTTP con reintentos automaticos (backoff lineal 15s)
BootReceiver Reinicia el servicio automaticamente al encender el telefono
KeepAliveService Watchdog que verifica que el listener siga activo

Flujo de captura V2

Notificacion de Yape llega

NotificationListener intenta leer
↓                ↓
Contenido OK     "Sensitive content hidden"
↓                ↓
Procesar pago    AccessibilityService V2
↓                ↓
HTTP POST      Lee ventana del SystemUI
                  ↓
              Extrae monto real visible
                  ↓
               HTTP POST

Solucion de problemas

"Sin monto" en el log

El texto de la notificacion no contiene un monto reconocible. Verifica que la notificacion sea de un pago recibido (no de publicidad u otro tipo).

"Sensitive notification content hidden"

La app se cierra en segundo plano

No llegan pagos al servidor

Datos tecnicos

Packagecom.boliviaimpuestos.yapelistener
Min SDK26 (Android 8.0)
Target SDK35 (Android 15)
Yape packagecom.bcp.bo.wallet
User-AgentYapeListener/5.0
Dependenciasandroidx.work:work-runtime:2.10.0
PermisosINTERNET, FOREGROUND_SERVICE, BIND_NOTIFICATION_LISTENER, BIND_ACCESSIBILITY_SERVICE, RECEIVE_BOOT_COMPLETED, WAKE_LOCK