Saltar a contenido

latam_payments SDK

Vertivo utiliza el SDK latam_payments para procesar todos los pagos de la plataforma. Este SDK abstrae multiples pasarelas de pago latinoamericanas detras de una interfaz unificada.

Prioridad #1 del Roadmap

Sin billing integrado, revenue = $0. La integracion de latam_payments (VRTV-5) es el bloqueante absoluto de T0.

Arquitectura

graph TD
    APP[Flutter App] --> SDK[latam_payments SDK]
    SDK --> ONVO[OnvoPay\nCR + PA]
    SDK --> TILO[Tilopay\nCR + PA]
    SDK --> WOMPI[Wompi\nCO]
    SDK --> SPEI[SPEI\nMX]
    SDK --> PIX[PIX\nBR]
    SDK --> OXXO[OXXO\nMX]

    ONVO --> |Tarjetas, SINPE| PROC[Procesamiento]
    TILO --> |Tarjetas, SINPE| PROC
    WOMPI --> |Tarjetas, PSE, Nequi| PROC
    SPEI --> |Transferencia bancaria| PROC
    PIX --> |Transferencia instantanea| PROC
    OXXO --> |Pago en efectivo| PROC

Pasarelas por Pais

Pais Pasarela Metodos de Pago Estado
Costa Rica OnvoPay, Tilopay Tarjetas (Visa/MC/AMEX), SINPE Movil Prioritario (T0)
Panama OnvoPay, Tilopay Tarjetas, ACH Prioritario (T0)
Colombia Wompi Tarjetas, PSE, Nequi, Bancolombia T0
Mexico SPEI, OXXO Transferencia bancaria, pago en efectivo T1
Brasil PIX Transferencia instantanea T1

Flujos de Pago

Suscripcion SaaS

Usuario → Selecciona plan → Ingresa metodo de pago → latam_payments.createSubscription()
→ Pasarela cobra → Webhook confirma → Backend activa plan → App refleja upgrade

Compra de Hardware

Usuario → Agrega Vertivo Home al carrito → Checkout → latam_payments.createPayment()
→ Pasarela cobra → Webhook confirma → Backend crea orden → Fulfillment envia

Caja Vertivo (Marketplace)

Robot calcula necesidades → Sugiere Caja → Usuario confirma → latam_payments.createSubscription()
→ Cobro mensual automatico → Fulfillment prepara caja → Logistica last-mile entrega

Interfaz del SDK

// Patron Adapter — cambio de proveedor sin impacto
abstract class PaymentGateway {
  Future<PaymentResult> createPayment(PaymentRequest request);
  Future<SubscriptionResult> createSubscription(SubscriptionRequest request);
  Future<void> cancelSubscription(String subscriptionId);
  Future<PaymentStatus> getPaymentStatus(String paymentId);
}

// Implementaciones por pasarela
class OnvoPayGateway implements PaymentGateway { ... }
class TilopayGateway implements PaymentGateway { ... }
class WompiGateway implements PaymentGateway { ... }

Guardrails

latam_payments Only

No integrar Stripe ni PayPal como pasarela primaria. Usar exclusivamente el SDK latam_payments con pasarelas locales. Esto es un guardrail del SRD.

Referencia

El SDK de referencia esta en: altrupets-monorepo/apps/mobile/lib/core/payments/latam_payments.dart


Issue: VRTV-5 | Tier: T0 | Estimacion: 8 pts