Pasarelas de pago: evaluación para ConTodo (Perú)
Pasarelas de pago para ConTodo
Estado: en evaluación. Las comisiones son referenciales (cambian por negociación y volumen); verificar tarifas vigentes con cada proveedor antes de decidir.
ConTodo necesita cobrar en dos frentes distintos, y conviene resolverlos por separado:
- Suscripción del SaaS (B2B, recurrente): lo que paga el cliente por usar ConTodo (cobro mensual/anual, idealmente automático con tarjeta).
- Cobros transaccionales del negocio del cliente (B2B2C): lo que el cliente cobra a SUS clientes dentro del sistema (POS de pollería, membresía de gym, bidón de agua, reserva de cancha, cita médica). Aquí en Perú Yape y Plin son imprescindibles.
1. Comparativa de opciones (Perú)
| Pasarela | Métodos | Suscripción recurrente | Yape/Plin | Comisión aprox.* | Notas |
|---|---|---|---|---|---|
| Culqi | Tarjeta, Yape, cuotas | Sí (tokenización) | Sí (Yape) | ~3.44% + S/ comisión | API muy usada en Perú; buena DX. (Ya usado en [[project_licitaperu_alertas_saas]]). |
| Izipay | Tarjeta, Yape, Plin, QR, link | Sí | Sí (Yape y Plin) | ~2.99–3.5% | Fuerte en retail/POS físico + online; respaldo bancario. |
| Niubiz (VisaNet) | Tarjeta, Yape, link, POS | Sí | Sí | Negociable por volumen | El más grande en adquirencia; integración algo más pesada. |
| Mercado Pago | Tarjeta, Yape, efectivo, cuotas, checkout | Sí (preapproval) | Sí | ~3.49–4.5% | Cobertura LATAM (útil para expansión); checkout listo. |
| PagoEfectivo | Efectivo/banca (CIP) | No (es 1 pago) | — | Por transacción | Complemento para no bancarizados. |
| Yape / Plin (directo) | Billetera P2P/cobros | No nativo | Es Yape/Plin | Bajo / QR | Ideal para micronegocios; integración de cobros vía API empresarial o QR. |
| dLocal / PayU | Multimétodo LATAM | Sí | Según país | Enterprise | Para escalar a varios países LATAM con un solo integrador. |
| Stripe | Tarjeta global, Billing | Sí (Billing top) | No (no local PE) | ~2.9% + $ | Excelente para suscripciones, pero no soporta soles/Yape nativo; sirve para clientes internacionales. |
*Referencial — confirmar con cada proveedor.
2. Recomendación
Frente 1 — Suscripción del SaaS: empezar con Culqi o Izipay (tokenización de tarjeta + cobro recurrente, en soles). Si más adelante hay clientes fuera de Perú, sumar Stripe Billing solo para ese segmento.
Frente 2 — Cobros del negocio del cliente: priorizar Yape + Plin + tarjeta vía Izipay o Culqi, con PagoEfectivo como respaldo para no bancarizados. Para POS físico (pollería, gym), Izipay/Niubiz tienen ventaja por sus terminales.
Para LATAM (futuro): evaluar dLocal/PayU/Mercado Pago como integrador multi-país, así no se rehace la integración por cada país.
Arquitectura sugerida: capa de pagos abstracta
No casarse con una sola pasarela. Crear un adaptador de pagos (interfaz común: cobrar, suscribir, reembolsar, webhook) con implementaciones por proveedor. Así se cambia o se agrega pasarela sin tocar el resto del ERP — y cada cobro confirmado dispara el registro de venta + comprobante electrónico SUNAT en el core.
3. Conciliación y trazabilidad: ¿de dónde vino cada pago?
El reto real no es cobrar, es saber de qué app/negocio/cliente vino cada sol cuando todo aterriza en una cuenta (Yape, Plin, BCP, IBK, Mercado Pago). La plataforma es la fuente de la verdad: genera la referencia antes de que el dinero se mueva, y luego cuadra el abono contra esa referencia.
3.1 El prefijo / referencia de cobro (la clave)
Cada cobro nace en ConTodo con un código único que viaja con el pago y permite rastrearlo:
CT-<APP>-<TENANT>-<correlativo>
| Ejemplo | Significado |
|---|---|
CT-AGUA-0007-000123 | ConTodo · app Agua · empresa 0007 · cobro 123 |
CT-GYM-0042-000789 | ConTodo · app Gym · empresa 0042 · cobro 789 |
CT-SAAS-0042-000045 | Suscripción del propio SaaS de la empresa 0042 |
Ese código es la fuente de la verdad. El truco es lograr que regrese con el dinero. Hay tres formas, de la más automática a la más manual:
| Cómo cobras | Cómo viaja la referencia | Conciliación |
|---|---|---|
| Pasarela (Culqi/Izipay/MP) | Como metadata / external_reference del cargo | Automática: la pasarela te manda un webhook con la referencia → ConTodo marca el cobro como pagado solo |
| QR dinámico (Yape/Plin/Izipay) | El QR codifica el monto + la referencia | Semi-automática: al escanear, el cobro queda identificado |
| Yape/Plin/transferencia manual | El cliente escribe la referencia en la glosa/mensaje | Manual: cuadras por referencia, o por monto+fecha+nombre si no la pusieron |
3.2 Cómo "aterriza" el dinero (dos mundos)
- Con pasarela: el dinero no cae directo a tu banco; primero queda en el saldo de la pasarela, que luego te hace una liquidación (payout) a una cuenta bancaria, ya neta de comisión. Concilias contra el reporte de la pasarela (que sí trae el detalle por cobro), no contra el extracto suelto. → Mucho más fácil y trazable.
- Sin pasarela: el dinero cae directo a tu Yape/Plin/cuenta, pero solo ves monto + nombre + glosa. Por eso la glosa con la referencia (o un QR dinámico) es obligatoria; si no, conciliar es a mano.
3.3 Cuentas de recaudación (registrar dónde aterriza)
En ConTodo se registran las cuentas de recaudación y cada cobro sabe (o se concilia) a cuál aterrizó:
| Cuenta | Tipo | Identificador | Uso |
|---|---|---|---|
| Plin – 99xxxxxxx | Billetera | celular | Cobros chicos / delivery |
| Yape – 98xxxxxxx | Billetera | celular | Cobros chicos |
| BCP – Cta. cte. | Banco | CCI | Transferencias / liquidación pasarela |
| Interbank – Cta. | Banco | CCI | Alterna |
| Mercado Pago | Saldo MP | cuenta MP | Checkout online + payout |
Así un reporte responde: "el cobro CT-GYM-0042-000789 (S/120) aterrizó en BCP el 07/06".
3.4 Módulo de Conciliación (lo que falta construir)
- Registro de cuentas de recaudación (Yape/Plin/BCP/IBK/MP).
- Estado de cada cobro: Pendiente → Pagado → Conciliado (u Observado).
- Matching automático por referencia (webhook) y manual por monto+fecha (cuando es Yape/Plin a pelo).
- Importar extracto/reporte (CSV de la pasarela o del banco) y cuadrar contra los cobros.
- Reporte: ingresos por app / por tenant / por cuenta, y comisión por método.
3.5 Nota importante (tributario/legal)
Si todo el dinero de los clientes cae a tu cuenta y luego repartes, te conviertes en recaudador de terceros (implicancias tributarias y de SUNAT). Alternativas más limpias: que cada negocio tenga su propia cuenta/subcuenta en la pasarela (split payment / marketplace en Mercado Pago, Izipay o dLocal), o cobrar solo tu comisión de SaaS y que el cobro al consumidor final vaya directo a la cuenta del cliente. Definir esto antes de elegir pasarela.
4. Criterios de decisión (checklist)
- Comisión efectiva por método (tarjeta vs Yape/Plin) y por volumen.
- Soporte real de suscripción recurrente (tokenización, reintentos, dunning).
- Yape y Plin nativos (no opcional en Perú).
- Tiempo de payout (abono) y requisitos KYC/contrato.
- Calidad de API, webhooks y sandbox; documentación.
- Split de pagos / marketplace (relevante si ConTodo cobra comisión sobre transacciones del cliente).
- Soporte y contracargos; cobertura multi-país para expansión LATAM.
Próximo paso: pedir tarifas vigentes a Culqi e Izipay, validar suscripción recurrente y Yape/Plin, y prototipar el adaptador de pagos con una de ellas en sandbox.