arrow_back Volver al Blog 10 min de lectura
INTEGRACIONES

Integración del Botón de Pago Nuvei: Cobros Seguros en Ecuador

calendar_today May 24, 2026 person Jean Piguave
Imagen de portada de Integración del Botón de Pago Nuvei: Cobros Seguros en Ecuador

Integrar pasarelas de pago y cobros con tarjeta en Ecuador ha sido tradicionalmente un desafío de desarrollo complejo. Las regulaciones de la Superintendencia de Bancos y los requerimientos de procesadores locales como Medianet o Datafast imponen altos estándares de cumplimiento. Sin embargo, Nuvei (con su infraestructura de tecnología robusta heredada de Kushki en la región) ha revolucionado esto ofreciendo una solución moderna, ágil y de alta disponibilidad.

¿Qué es el Botón de Pago Nuvei y cómo funciona?

Para evitar violar el cumplimiento normativo estricto de **PCI-DSS** (que prohíbe terminantemente almacenar, procesar o transmitir números de tarjetas de crédito en servidores que no estén certificados), Nuvei utiliza un flujo de trabajo basado en **Tokenización por Campos Alojados**:

Paso 1: Inicializar la Interfaz con Nuvei Checkout

Para iniciar el proceso de checkout en nuestro cliente, importamos la librería de Nuvei/Kushki y creamos el formulario seguro. Esto inyecta iFrames protegidos para el número de tarjeta, CVV y fecha de expiración.

HTML
<!-- Contenedor del Formulario de Pago Seguro de Nuvei -->
<div id="nuvei-checkout-container"></div>

<!-- Importar Script oficial de Nuvei/Kushki -->
<script src="https://cdn.kushkipagos.com/kushki.min.js"></script>
<script>
  const kushki = new Kushki({
    merchantId: 'TU_PUBLIC_MERCHANT_ID', // Tu clave pública provista por Nuvei
    inTestEnvironment: true // Modo sandbox/UAT en desarrollo
  });

  // Ejemplo de solicitud de tokenización al hacer submit
  kushki.requestToken({
    amount: '29.99',
    currency: 'USD'
  }, (response) => {
    if (response.token) {
      // Transmitir token generado de manera segura al backend
      enviarTokenAlServidor(response.token);
    } else {
      alert('Fallo en la autenticación de la tarjeta: ' + response.error.message);
    }
  });
</script>

Paso 2: Procesamiento del Cargo en el Backend (Node.js)

Una vez que nuestro backend recibe el token, realizamos una solicitud POST autenticada a la API de Nuvei utilizando la clave privada de comercio (Private Merchant ID). Es aquí donde se define el desglose de impuestos requerido en Ecuador (como el cálculo del IVA 15% o 0% e ICE).

TYPESCRIPT
import axios from 'axios';

interface PagoNuveiInput {
  token: string;
  monto: number;
  correoCliente: string;
}

export async function procesarCobroNuvei({ token, monto, correoCliente }: PagoNuveiInput) {
  try {
    // Endpoint de sandbox / pruebas (Kushki LATAM API)
    const urlNuvei = 'https://api-uat.kushkipagos.com/card/v1/charges';

    const response = await axios.post(
      urlNuvei,
      {
        token: token,
        amount: {
          subtotalIva0: monto, // En Ecuador, suscripciones digitales operan con IVA 0% o exento en SaaS
          iva: 0,
          subtotalIva: 0,
          ice: 0,
          currency: 'USD' // Moneda oficial en Ecuador
        },
        metadata: {
          description: 'Suscripción Premium Factuplan',
          email: correoCliente
        }
      },
      {
        headers: {
          'Private-Merchant-Id': process.env.NUVEI_PRIVATE_KEY, // Credencial de producción privada resguardada en variables de entorno
          'Content-Type': 'application/json'
        }
      }
    );

    if (response.data.status === 'approved') {
      return { success: true, transaccionId: response.data.ticketNumber };
    }
    return { success: false, error: response.data.error.message };
  } catch (error: any) {
    console.error('Error debitando en Nuvei:', error.response?.data || error.message);
    return { success: false, error: error.message };
  }
}

Doble Autenticación obligatoria: 3D Secure 2.0

Para evitar fraudes de tarjeta y contracargos (chargebacks) en comercios electrónicos ecuatorianos, Nuvei integra automáticamente **3D Secure 2.0 (3DS)**. Durante la tokenización, si el banco emisor local (por ejemplo, Banco Pichincha, Banco Guayaquil o PacifiCard) lo requiere, el usuario completará un paso de validación multifactor (como un código OTP enviado por SMS), garantizando una transacción 100% segura para ambas partes.

info

💡 RECOMENDACIÓN DE PRODUCCIÓN: Al igual que con cualquier API financiera, implementa registros de logs transaccionales robustos en tu base de datos antes de enviar la solicitud HTTP y realiza conciliaciones automáticas asíncronas para auditar cada centavo cobrado.

Caso de Estudio de Producción: Mi Experiencia en Tenvia (SaaS Multi-Tenant)

Durante el desarrollo de la aplicación móvil para Tenvia —un robusto ecosistema ecommerce tipo SaaS operando con arquitectura multi-tenant— nos enfrentamos a la implementación técnica de permitir a los usuarios vincular tarjetas bancarias para efectuar pagos recurrentes y suscripciones. En nuestra primera versión (v1), inyectamos un WebView seguro que desplegaba el formulario nativo de Nuvei, encargándose de capturar y tokenizar el plástico, y retornando el token de usuario correspondiente para validar y asociar la tarjeta. No obstante, nos topamos con dos retos sumamente interesantes y formativos en producción:

info

💡 APRENDIZAJE DE CAMPO: Este tipo de fricciones al integrar pasarelas bancarias y pasarelas de pago de alta seguridad son lecciones invaluables en la carrera de cualquier desarrollador. Nos enseña la importancia de auditar minuciosamente cada decimal y tener canales de comunicación rápidos con los clientes para el monitoreo de sus consolas administrativas de cobro.

info

🛡️ CONSEJO DE ARQUITECTURA (El 'yo de hoy' recomienda): Si tuviera que darle un consejo de oro al 'yo de ese momento' (o a cualquiera que integre Nuvei hoy en día), sería: registra de manera cruda y estructurada absolutamente todo. Almacena cada intento de asociación de tarjeta junto con la respuesta completa de la API de Nuvei en formato JSON dentro de una columna de metadatos (utilizando tipos como JSONB en bases de datos relacionales). Realiza exactamente el mismo registro con la respuesta obtenida en el instante de ejecutar el débito. Contar con esta bitácora histórica e inmutable de payloads financieros te ahorrará incontables horas de depuración en producción y facilitará cualquier proceso de conciliación bancaria ante discrepancias de cobros.

terminal

Escrito por Jean Piguave

Ingeniero de Software Senior y Arquitecto de Sistemas. Especializado en el diseño y despliegue de arquitecturas web transaccionales escalables y de alta disponibilidad.

Artículos Recomendados

¡Hablemos por WhatsApp!