Blog

Pagos en línea: cómo integrar una pasarela correctamente

Guía técnica y comercial: seguridad PCI-DSS, webhooks, conciliación y evitar fraude.

Pagos en línea

¿Por qué una pasarela de pago profesional importa?

Integrar pagos no es solo "poner un botón de Comprar". Es un sistema completo que debe:

  • Ser seguro: cumplir PCI-DSS, encriptación, tokens. Una brecha de seguridad te puede costar S/ 500K+ en multas SUNAT + demandas.
  • Ser confiable: transacciones no se pierden, no hay duplicados, los rechazos se manejan correctamente.
  • Ser compatible: con tu ERP, contabilidad, conciliación bancaria. Si no coinciden, es un caos operativo.
  • Ser rápido: aprobaciones en menos de 1 segundo. Si demoras 5 segundos, cliente piensa que falló y recarga.
  • Estar regulado: en Perú, SUNAT exige auditoría de todas las transacciones. Tu pasarela debe permitir eso.

El costo de hacerlo mal: Una distribuidora online facturó S/ 5M en el año. Operaba sin pasarela profesional (aceptaba transferencias manualmente). Problemas:

  • Fraude: cliente "compra" pero cancela la transferencia. Género S/ 200K en pérdidas.
  • Reconciliación manual: 40 horas/mes de trabajo administrativo (S/ 8,000/mes).
  • Caídas sin aviso: el banco saturaba la cuenta, pedidos no se confirmaban.
  • Auditoría SUNAT: les pidió trazabilidad de cada transacción. No la tenían. Multa de S/ 80K.

Una pasarela de pago profesional le habría costado S/ 500/mes. Habría ahorrado S/ 288K en ese año.

¿Cuál es el flujo correcto de un pago?

Esto es lo que debe suceder DETRÁS de escenas cuando el cliente presiona "Comprar":

  1. Cliente completa datos: monto, tarjeta (o Yape/Plin), nombre.
  2. Tu web envía al servidor: datos cifrados (HTTPS/SSL) hacia tu backend, NO directamente a la pasarela.
  3. Tu backend valida: ¿monto está correcto? ¿moneda es soles? ¿cliente existe?
  4. Tu backend llama a la pasarela: "Autoriza este pago por S/ 500" (siempre desde servidor a servidor, nunca cliente a pasarela).
  5. Pasarela autoriza o rechaza: respuesta en 1-2 segundos.
  6. Pasarela envía webhook: "Pago aprobado" a tu servidor (esto es crítico).
  7. Tu servidor recibe webhook: confirma la orden, genera factura, envía email al cliente.
  8. Tu servidor responde al cliente: "Compra exitosa, tu pedido es #12345".
  9. Pasarela deposita dinero: 1-3 días después en tu cuenta bancaria.
  10. Tu backend concilia: ¿el monto que llegó al banco coincide con la suma de aprobados? Debería ser sí.

Si faltas uno de estos pasos, todo se cae. Por eso lo correcto es usar una pasarela profesional y documentada.

Las pasarelas más usadas en Perú (comparación)

Pasarela Mejor para Tarjetas Billeteras digitales Comisión (aprox) Documentación
Niubiz (Visanet) E-commerce, retail. Lo "seguro" en Perú Visa, Mastercard, Amex Billetera Niubiz, BNPL 2.8-3.5% + S/ 0.50 Muy buena, soporte 24/7
Izipay (Desarrollo) E-commerce, suscripciones, PYME Visa, Mastercard, Diners Izipay Wallet, Plin 2.5-3.2% + S/ 0.30 Excelente, API clara
Stripe SaaS, startups, internacionales Visa, Mastercard, Amex, Discover Apple Pay, Google Pay 3.0% + $0.30 (en USD) Excelente, testing fácil
PayPal Tiendas pequeñas, libertadores Tarjeta directa o cartera PayPal PayPal Wallet 3.9% + $0.30 Muy amigable, pero limited en Perú
Mercado Pago Vendedores pequeños, Mercado Libre Tarjeta, transferencia Dinero en cuenta ML 4.0-5.0% Buena para principiantes
YuanPay Negocios con clientes chinos Unionpay (China) WeChat Pay, Alipay 3.5% + S/ 0.50 Especializada

Mi recomendación para PYMES peruanas:

  • E-commerce, retail: Niubiz o Izipay (ambas locales, soporte rápido).
  • Suscripciones, SaaS: Stripe (mejor para pagos recurrentes).
  • Principiante con presupuesto bajo: Mercado Pago (más simple, menos configuración).
  • Múltiples canales: integra 2 (Niubiz principal + Stripe de backup).

Los 5 pilares de una integración segura

1. Tokenización y PCI-DSS: Nunca almacenes datos de tarjeta

El error: Guardar números de tarjeta en tu base de datos. Esto viola PCI-DSS (estándar de seguridad de la industria) y te expone a multas masivas.

Lo correcto: La pasarela te da un "token" que representa la tarjeta. TÚ almacenas el token, no el número. El token no sirve para nada sin la pasarela.

Flujo:

  • Cliente ingresa tarjeta en formulario encriptado de pasarela.
  • Pasarela devuelve token: "tok_1234abcd...".
  • Tu backend guarda el token asociado al cliente.
  • Próxima compra, usas el token para autorizar (sin pedir tarjeta de nuevo).
  • El token es seguro, la tarjeta nunca tocó tu servidor.

Cumplimiento: Con tokenización, no almacenas datos de tarjeta, entonces no necesitas estar bajo PCI-DSS nivel 1 (caro). Con nivel 3 (más barato) es suficiente.

2. Webhooks y Idempotencia: Evita duplicados y pérdidas

El problema: Tu backend recibe "Pago aprobado" de la pasarela. Lo procesa. Pero la red falla, el webhook se reenvía. Ahora procesaste el pago DOS VECES.

La solución (idempotencia): Cada transacción tiene un ID único. Tu backend verifica: "¿Ya procesé esta transacción?" Si sí, ignora el webhook duplicado.

Pseudocódigo:

webhook_recibido(transaccion_id, monto, cliente_id):
  if ya_existe(transaccion_id):
    return "OK" (sin procesar de nuevo)
  
  if valida_monto(monto) and valida_cliente(cliente_id):
    crear_pedido(cliente_id, monto)
    enviar_email()
    guardar_transaccion(transaccion_id)
    return "OK"
  else:
    return "ERROR"
            

Resultado: Aunque el webhook llegue 5 veces, procesas solo 1 vez. Cero duplicados.

3. Validación de montos y moneda: Evita fraude

El ataque: Cliente coloca un artículo de S/ 500 en carrito. Modifica el HTML (o API) y baja el monto a S/ 50. Envía la transacción. Si no validas, paga S/ 50 en lugar de S/ 500.

La solución: Tu backend calcula el monto esperado:

monto_esperado = sumar_items_carrito() + impuestos - descuentos
monto_recibido = request.data.get("monto")

if monto_esperado != monto_recibido:
  rechaza_pago("Montos no coinciden")
            

También verifica moneda: si esperas "PEN" pero llega "USD", algo está mal.

4. Manejo de errores: Reintentos y estados pendientes

Problemas reales:

  • Conexión falla entre tu servidor y pasarela (timeout).
  • Pasarela responde "Intenta de nuevo más tarde".
  • Cliente toma la decisión: ¿reintento automático o espero?

La solución correcta:

  • Transacciones "pendientes": Si no hay respuesta clara, marca como "pendiente", no como "fallida".
  • Reintentos automáticos: Cada 30 segundos, máximo 3 veces, después espera.
  • Notificación al usuario: "Tu pago está siendo procesado. Te confirmaremos en 5 minutos."
  • Reconciliación nightly: De noche, consulta pasarela: "¿Qué pasó con la transacción X?"

Resultado: Cero dinero "colgado" sin confirmación, cero clientes confundidos.

5. Logs y auditoría: Cumple SUNAT

Requisito SUNAT: Toda transacción debe tener trazabilidad: quién, qué, cuándo, por cuánto, resultado.

¿Qué loguear?

  • Timestamp exacto (zona horaria).
  • ID de cliente y pedido.
  • Monto y moneda.
  • Método de pago (Visa, Plin, etc.).
  • Resultado: "autorizado", "rechazado", "fraude detectado".
  • IP del cliente (para auditoría de fraude).
  • ID de transacción de pasarela.

Dónde guardar: BD principal + backup en el cloud. Si SUNAT audita, debes poder mostrar TODOS los pagos del año con detalles.

Conciliación bancaria: El paso que nadie entiende (pero es crítico)

El problema: Tu sistema dice que aprobaste S/ 500K en pagos. El banco deposita S/ 480K. ¿Dónde están los S/ 20K faltantes? Problema operativo serio.

Las causas típicas:

  • Rechazos (chargebacks) de cliente: "Yo no autorizo este pago" (0.5-2% típico).
  • Devoluciones: cliente pide reembolso (3-5% típico).
  • Comisiones: pasarela cobra 2.8-3.5% del monto.
  • Impuestos: si incluyes IGVV, debe ir aparte.
  • Conversión de moneda: USD a PEN varía diariamente.

El proceso correcto de conciliación (diaria):

Concepto De pasarela De banco Diferencia permitida
Transacciones aprobadas S/ 50,000 N/A (ves después) 0%
Menos: comisiones (3%) -S/ 1,500 -S/ 1,500 ±S/ 50
Menos: chargebacks (2%) -S/ 1,000 -S/ 1,000 0% (debe coincidir)
Neto depositado esperado S/ 47,500 S/ 47,500 ±S/ 100
Neto depositado real N/A S/ 47,480 -
Diferencia a investigar S/ 20 (posiblemente impuesto retenido o costo extra) -

Herramientas para conciliación:

  • Niubiz/Izipay: Dashboard diario con descargable (CSV/Excel).
  • Automático: API para descargar reportes programáticamente y reconciliar en tu sistema (ideal).
  • Manual: Descargar CSV de pasarela + CSV de banco + comparar en Excel (lo hace la mayoría, ineficiente).

Caso real: E-commerce de ropa (Lima, 40 empleados)

ANTES (sin pasarela profesional):

  • Aceptaban transferencias bancarias solo (cliente iniciaba transferencia, después compraba).
  • 50% de clientes potenciales se iban por falta de pago inmediato.
  • Fraude: cliente iniciaba transferencia, nunca llegaba. Pédida S/ 500-1,000/mes.
  • Reconciliación manual: 30 horas/mes de trabajo administrativo.
  • Sin auditoría SUNAT de pagos: riesgo regulatorio.
  • Conversión de carrito a compra: 0.8%.

IMPLEMENTACIÓN (Izipay integrada en 2 semanas):

  • Integración API con su Shopify.
  • Tarjetas (Visa, Mastercard), billeteras (Plin, Yape), transferencia bancaria.
  • Webhooks configurados para confirmación automática de órdenes.
  • Logs y auditoría cumpliendo SUNAT.
  • Reconciliación automática diaria.

DESPUÉS (3 meses):

  • Aceptan múltiples métodos de pago.
  • 95% de pagos se confirman en menos de 2 segundos.
  • Fraude casi cero (validación de montos + logs).
  • Conciliación automática: 10 minutos/día (vs 30 horas manual).
  • Pasó auditoría SUNAT sin observaciones.
  • Conversión de carrito a compra: 3.2% (aumentó 4x).
  • Ticket promedio subió 12% (clientes compraban más con confianza).

Impacto financiero:

  • Ingresos adicionales/mes: (3.2% - 0.8%) × 2,000 visitantes × S/ 400 = S/ 192,000.
  • Ahorro operativo/mes: 30 horas × S/ 20/hora = S/ 600.
  • Costo Izipay/mes: comisión 2.8% sobre S/ 600K = S/ 16,800.
  • Margen neto/mes: S/ 192,000 + S/ 600 - S/ 16,800 = S/ 175,800.
  • ROI: implementación costó S/ 12,000 (pago único). Se pagó en 4 días.

Seguridad: Amenazas y cómo prevenirlas

1. Manipulación de montos (ya mencionada).

Cliente cambia "S/ 500" a "S/ 50" en el navegador. Prevención: valida SIEMPRE en servidor.

2. Man-in-the-Middle (intercesor de tráfico).

Atacante intercepta la comunicación cliente-servidor. Prevención: HTTPS/SSL obligatorio (candado en navegador). Certificado válido.

3. SQL Injection en logs.

Atacante inyecta código SQL en datos del cliente para acceder a BD. Prevención: prepared statements, ORM (Hibernate, Sequelize), validación de entrada.

4. Chargebacks y fraude amigo.

Cliente compra, recibe producto, después dice "Yo no lo pedí" y disputa. Banco devuelve dinero. Prevención: firma digital de cliente, email de confirmación (prueba), logs detallados.

5. Falta de rate limiting.

Atacante prueba 1,000 números de tarjeta por segundo. Prevención: limita intentos (máximo 3 fallos por tarjeta/hora), bloquea IPs sospechosas, usa reCAPTCHA.

Hoja de ruta: Implementar pasarela de pago en 6 semanas

Semana 1: Selección y negociación

  • Contacta 2-3 pasarelas (Niubiz, Izipay, Stripe).
  • Negocia comisiones (ofrecen descuentos por volumen).
  • Obtén sandbox (ambiente de pruebas gratuito).

Semana 2-3: Desarrollo e integración

  • Desarrollador integra API de pasarela en tu web/app.
  • Configura webhooks.
  • Implementa validaciones, logs, auditoría.

Semana 4: Testing

  • Test en sandbox (pago aprobado, rechazado, timeout).
  • Test de fraude (manipular montos, etc.).
  • Test de conciliación (comparar con banco simulado).

Semana 5: Capacitación

  • Entrenar equipo de operaciones: cómo consultar reportes, identificar problemas.
  • Documentar: qué hacer si pago falla, cómo re-procesar, escaladas.

Semana 6: Go live

  • Cambiar a ambiente de producción.
  • Monitoreo intenso primeros 2 días.
  • Soporte disponible 24/7 por si hay emergencia.

Costo de implementación típica para PYME

Componente Descripción Costo (S/) Tipo
Desarrollo e integración 80-100 horas de desarrollador S/ 8,000 - 12,000 Pago único
Certificado SSL (HTTPS) Obligatorio para PCI-DSS S/ 300 - 1,000/año Anual
PCI-DSS compliance (nivel 3-4) Auditoría + certificación S/ 1,500 - 5,000/año Anual
Comisiones (sobre ventas) 2.5-3.5% + S/ 0.30 por transacción Depende de volumen Variable
Chargebacks (si aplica) 0.5-2% típico, depende industria Depende de volumen Variable
Soporte técnico (primera línea) Soporte de pasarela (incluido generalmente) S/ 0 - 2,000/mes Mensual
Mantenimiento y actualizaciones Pequeño equipo para fixes, nuevas pasarelas S/ 1,000 - 3,000/mes Mensual
TOTAL AÑO 1 Escenario típico PYME S/ 1-3M ventas S/ 28,000 - 45,000 -

ROI típico: Si aumentas conversión 1-2% (frecuente después de integrar pagos profesionales), el costo se paga en 1-2 meses de ingresos adicionales.

Errores comunes al integrar pasarelas

1. No usar HTTPS.

Cliente ve "conexión no segura". No compra. Además, viola PCI-DSS. Solución: certificado SSL, siempre HTTPS.

2. Almacenar datos de tarjeta.

Multiplicas riesgo de hacking 100x. Multa SUNAT enorme. Solución: solo usa tokens de pasarela.

3. Confiar en cliente para validar monto.

Cliente manipula y paga menos. Solución: SIEMPRE valida en servidor.

4. No configurar webhooks.

Pago se aprueba en pasarela pero tu sistema no se entera. Cliente no recibe confirmación. Solución: webhooks obligatorios, con retry.

5. Sin logs de auditoría.

SUNAT audita, no puedes demostrar trazabilidad. Multa. Solución: loguea TODO.

6. No tener plan B.

Pasarela cae, pierdes todas las ventas. Solución: tener 2 pasarelas integradas (fallover automático).

Conclusión: Pagos profesionales son imprescindibles en 2026

Si aún aceptas solo transferencias manuales, estás perdiendo dinero y exposición legal. Una pasarela de pago profesional:

  • Te permite aceptar tarjetas, billeteras digitales, más métodos.
  • Aumenta conversión (clientes compran más rápido).
  • Reduce fraude (validaciones automáticas).
  • Facilita conciliación (automática, no manual).
  • Cumple regulaciones (SUNAT, PCI-DSS).
  • Se paga solo en 1-2 meses con aumento de ventas.

Checklist: ¿Estás listo para integrar pasarela?

  • ¿Tienes un sitio web o app donde vender?
  • ¿Esperas 100+ transacciones/mes?
  • ¿Tienes equipo técnico o presupuesto para contratar?
  • ¿Puedes invertir S/ 8K-12K en desarrollo?
  • ¿Estás dispuesto a cumplir PCI-DSS?

Si contestaste sí a 4 de 5, es hora de integrar una pasarela profesional. El ROI será positivo casi inmediatamente.