Cómo aceptar pagos QR en tu app móvil (Flutter o React Native)
Acepta pagos QR en tu app móvil con un backend que crea el cobro y un webhook que confirma el pago.
Acepta pagos QR en tu app móvil con un backend que crea el cobro y un webhook que confirma el pago.
Integrar pagos QR app móvil Flutter o React Native es una de las decisiones más inteligentes para cualquier comercio electrónico peruano en 2026. Con la interoperabilidad del BCRP ya consolidada, aceptar pagos con Yape, Plin y cualquier billetera interoperable directamente desde tu aplicación nativa no solo reduce fricciones, sino que elimina los contracargos y la validación manual de capturas. En este artículo aprenderás cómo implementarlo con un backend propio, sin depender de SDK móviles oficiales, usando la API REST de una pasarela peruana como TAYPI.
El comercio móvil en Perú crece de forma acelerada, y los usuarios esperan pagar sin salir de la app. Con la infraestructura de pagos interoperables del BCRP, el cobro por QR dejó de ser exclusivo de terminales físicos. Ahora puedes embeber un QR dinámico dentro de tu propia app y ofrecer una experiencia de pago de bajo roce.
Las ventajas de integrar pagos QR en tu app son claras:
Si desarrollas con Flutter o React Native, la integración se basa en consumir una API REST y escuchar notificaciones mediante webhooks, lo que te da control total sin depender de librerías de terceros que se vuelvan obsoletas.
Antes de escribir código, es fundamental entender el flujo de un cobro QR dinámico en una app móvil peruana. A diferencia de un QR estático reutilizable, el QR que usarás es único por cada transacción y tiene un tiempo de vida limitado.
El proceso general es este:
POST /api/v1/payments).checkout_url).Todo esto ocurre sin que el cliente tenga que ingresar datos de tarjeta, crear una cuenta adicional o compartir información sensible con tu app. Es el mismo principio de seguridad que usa la interoperabilidad QR del BCRP.
Ni Flutter ni React Native tienen un SDK oficial de la pasarela peruana TAYPI. Esto no es una limitación: significa que integrarás directamente la API REST desde el backend de tu comercio, que es la práctica más segura y escalable.
Tu app móvil nunca debe exponer las claves de API ni firmar peticiones HMAC directamente. En su lugar, sigue esta arquitectura:
Cuando llames al endpoint POST /api/v1/payments desde tu backend, deberás incluir al menos:
PEN).La respuesta incluirá el qr_image (que puedes mostrar directamente en un widget Image.memory de Flutter o un componente Image de React Native) y el checkout_url, que sirve como respaldo si el QR falla al escanear. Para entender mejor cómo los webhooks cierran este ciclo, consulta nuestra guía completa de webhooks de pagos en tiempo real.
Centralizar la lógica de pago en el backend te protege de:
Además, cumplir con la idempotencia en APIs de pago es mucho más sencillo desde el servidor.
El verdadero poder de los pagos QR en tiempo real está en la confirmación instantánea mediante webhooks. Cuando el cliente completa el pago desde su billetera, la CCE valida la transacción y la pasarela te notifica de inmediato.
Tu backend debe exponer un endpoint HTTPS (por ejemplo, POST /api/webhooks/taypi) que reciba un JSON con el estado del cobro. La pasarela de pagos, como TAYPI, usa firma HMAC-SHA256 para que puedas verificar que la notificación es auténtica y no ha sido manipulada.
El proceso de verificación es:
X-Taypi-Signature.Puedes profundizar en este tema en nuestro artículo sobre cómo verificar firmas HMAC-SHA256 en tu backend.
Tu backend debe estar preparado para recibir al menos estos eventos:
Cuando recibes pay.confirmed, tu app puede reflejar el éxito del pago al instante sin que el usuario tenga que reintentar nada. La experiencia de compra se vuelve fluida y confiable.
Ambos frameworks te permiten crear una app nativa de alta calidad. Como la integración de pagos QR ocurre del lado del backend, no hay diferencia técnica entre ellos para consumir el QR o escuchar el webhook. Sin embargo, ciertos factores pueden inclinar tu decisión.
| Aspecto | Flutter | React Native |
|---|---|---|
| Lenguaje | Dart | JavaScript / TypeScript |
| Renderizado de QR | Widget Image.memory a partir de base64 | Componente Image con URI base64 |
| Conexión con backend | HTTP (dart:convert + http) | Fetch API o Axios |
| Manejo de estado de pago | Provider, Riverpod, Bloc | Context API, Redux, Zustand |
| Curva de aprendizaje | Moderada (widget tree) | Baja si ya dominas React |
| Ecosistema fintech | Comunidad en crecimiento | Amplio, con librerías maduras para HTTP |
La elección depende más de las habilidades de tu equipo y de la experiencia de usuario que quieras construir. En ambos casos, la clave está en diseñar correctamente el backend que se comunica con la pasarela de pagos QR interoperable. Los pagos QR interoperables en Perú funcionan exactamente igual sin importar el framework del frontend.
Una de las capacidades más potentes que puedes añadir a tu app móvil es Yape On File, disponible para comercios peruanos que quieran llevar la conversión al siguiente nivel. Con esta funcionalidad reduces la fricción de pago y habilitas cobros recurrentes automáticos.
La pasarela gestiona los reintentos de forma inteligente. Si una suscripción falla por saldo insuficiente, el sistema puede reintentar por partes (por ejemplo, 50% + 50%) según las reglas que tú configures. Tú decides si cobrar solo el 100% o recuperar al menos el 50% fraccionado, y cuántos reintentos permitir.
Todo esto sin que el cliente haga nada adicional y sin que la pasarela consulte o verifique su saldo (solo intenta el cobro). La desafiliación es inmediata y el cliente mantiene el control total desde su Yape.
Este tipo de integración es ideal para apps de membresías, plataformas de cursos, SaaS, delivery recurrente y cualquier negocio por suscripción que quiera eliminar el abandono de carrito por fricción de pago. Si ya tienes clara la integración técnica, puedes crear tu cuenta gratis en TAYPI y solicitar la activación de Yape On File para tu comercio.
Al integrar pagos en una app móvil, la seguridad no es negociable. Estás manejando transacciones financieras respaldadas por la infraestructura del BCRP y supervisadas por la SBS mediante una EEDE regulada. Tu implementación debe estar a la altura.
Idempotency-Key única para evitar duplicados por reintentos de red.La pasarela que elijas debe cumplir con el marco regulatorio peruano:
Si quieres profundizar en estos requisitos, te recomendamos leer seguridad en pagos digitales: lo que todo comercio debe saber y qué es PLAFT y por qué tu pasarela debe cumplirla.
No. La integración se hace mediante la API REST de la pasarela, que consumes desde el backend de tu comercio. No existe un SDK móvil oficial de TAYPI ni es necesario para implementar pagos QR en Flutter o React Native. El QR se muestra como imagen base64 usando widgets estándar, y los webhooks confirman el pago por el lado del servidor.
La confirmación es inmediata (menos de 2 segundos en la mayoría de casos). La pasarela verifica la transacción contra la entidad financiera y dispara el webhook en tiempo real. El QR expira en 15 minutos si no se paga.
Sí, porque el QR es una imagen inerte; no expone información sensible del comercio ni del cliente. Toda la lógica de seguridad (autenticación, firma HMAC, idempotencia, validación) ocurre en tu backend y en la comunicación server-to-server con la pasarela.
Sí, usando Yape On File. El cliente afilia su Yape una sola vez y luego puede pagar suscripciones recurrentes en un clic, sin escanear QR cada vez. La pasarela gestiona los cobros automáticos y los reintentos inteligentes según las reglas que definas.
La comisión es del 2.50% + S/ 0.20 + IGV por cada cobro confirmado. En una transacción de S/ 100, la comisión total es de aproximadamente S/ 3.19, y recibes S/ 96.81 en tu cuenta bancaria al día siguiente. No hay costos de instalación, mensualidades ni permanencia.
Integrar pagos QR app móvil Flutter o React Native no requiere magia negra ni SDK especializados. Con una arquitectura backend sólida, consumo de API REST, un buen manejo de webhooks y la infraestructura de pagos interoperables del BCRP, puedes ofrecer una experiencia de pago instantánea, sin tarjetas y sin contracargos.
La fórmula es simple: tu backend crea el cobro y recibe la confirmación; tu app solo muestra el QR o activa el pago en un clic si usas Yape On File. El resto lo maneja la pasarela, que verifica la transacción contra el sistema financiero y te liquida al día siguiente.
Si estás desarrollando una app de delivery, un marketplace, una plataforma educativa o cualquier comercio móvil en Perú, los pagos QR son la ruta más limpia para aumentar la conversión y reducir la fricción. Revisa la documentación para developers, explora cómo funciona el pago con QR interoperable, y comienza a probar en sandbox.
¿Listo para integrar pagos QR en tu app Flutter o React Native? Crea tu cuenta gratis en TAYPI y accede a las claves de prueba para empezar a desarrollar hoy mismo.
Crea tu cuenta gratis y genera tu primer QR en minutos.
Abrir cuenta gratis