Ir al contenido principal

🛠️ Cómo Construir una Integración de Pagos Personalizada

Guía para desarrolladores: conecta tu propia pasarela de pago al ecosistema de CRMHUB con soporte para checkouts, suscripciones y métodos guardados.

🛠️ Cómo Construir una Integración de Pagos Personalizada

Si eres desarrollador y quieres conectar tu propia pasarela de pago al ecosistema de CRMHUB, esta guía explica cómo construir un proveedor de pagos personalizado compatible con checkouts, suscripciones y métodos de pago guardados en todas las subcuentas.


🧩 Componentes Principales

  • App del Marketplace: el contenedor de tu integración, con OAuth, permisos (scopes) y páginas personalizadas.

  • Proveedor de Pagos Personalizado: la configuración que declara qué tipos de pago soportas.

  • queryUrl: el endpoint de tu backend que maneja las operaciones del lado del servidor (verificación, reembolsos, gestión de suscripciones).

  • paymentsUrl: la URL pública del iframe de checkout donde el cliente paga.

  • Página personalizada: la interfaz donde el usuario ingresa sus claves API y credenciales.


🛠️ Pasos de Integración

Paso 1: Crea tu App en el Marketplace

Configura los permisos OAuth necesarios (pagos/órdenes, suscripciones, transacciones, proveedor personalizado, productos), la URL de redirección tras la autenticación, tus claves de cliente (guardadas de forma segura en tu backend), la URL de webhook para eventos de instalación/desinstalación y la clave SSO para desencriptar los tokens de autenticación.

Paso 2: Autenticación e Instalación

Intercambia el código de OAuth por tokens de acceso y crea la configuración pública del proveedor vía API con nombre, descripción, logo, queryUrl y paymentsUrl. Gestiona los webhooks del ciclo de vida de la app.

Paso 3: Configuración de Prueba y Producción

Los usuarios ingresan sus credenciales a través de tu página personalizada. Llama al API de configuración de conexión para guardar las claves de prueba y producción, y define tu proveedor como predeterminado en Pagos > Integraciones.

Paso 4: Implementación del iFrame de Checkout

Secuencia de eventos:

  1. Emite custom_provider_ready cuando el iframe carga.

  2. Recibe payment_initiate_props con los detalles del pago.

  3. Procesa el pago y emite una respuesta de éxito, error o cancelación.

  4. CRMHUB llama a tu endpoint verify para confirmar la transacción.

La respuesta de éxito debe incluir el chargeId de tu pasarela; la de error, un mensaje visible para el usuario; y el endpoint de verificación debe devolver el estado (exitoso, fallido o pendiente).

Paso 5: Métodos de Pago Guardados y Suscripciones

  • Declara addCardOnFileSupported: true en el evento ready.

  • Maneja setup_initiate_props para guardar tarjetas.

  • Implementa en tu queryUrl los endpoints: list_payment_methods (métodos guardados de un contacto), charge_payment (cobrar un método guardado fuera de sesión), create_subscription y cancel_subscription.

Paso 6: Reembolsos

Gestiona las solicitudes de tipo "refund" con monto, transactionId y chargeId. Soporta reembolsos parciales.

Paso 7: Webhooks

Envía webhooks al endpoint de CRMHUB para eventos de suscripción (en periodo de prueba, activa, actualizada, cobrada) y eventos de pago (capturado), incluyendo un snapshot con estado, montos y marcas de tiempo.


⚠️ Notas Importantes

  • Responsabilidad del ciclo de cobro: los proveedores personalizados deben gestionar sus propios ciclos de facturación, cobrar a los clientes y notificar a CRMHUB vía webhooks.

  • La verificación es la fuente de verdad: la respuesta de verify, no los webhooks, es lo que establece inicialmente el estado de una suscripción.

  • Cualquier lenguaje: puedes usar cualquier lenguaje que soporte peticiones HTTP y JSON.

  • Modo de prueba disponible: simula pagos en sandbox antes de salir a producción.


💡 Buenas Prácticas

  • Registra (log) todas las peticiones a tu queryUrl, webhooks y respuestas de API para facilitar la depuración.

  • Usa todos los identificadores disponibles (transactionId, chargeId, subscriptionId) para conciliar pagos.

  • Implementa un manejo de errores y monitoreo robusto.

  • Prueba los flujos de principio a fin en modo de prueba antes de lanzar a producción.

¿Ha quedado contestada tu pregunta?