Ir al contenido principal

🚀 Conecta Zolutium con Khipu y genera cobros automáticamente desde un formulario

Convierte los datos de tus formularios de Zolutium en solicitudes de pago de Khipu mediante un Custom Webhook, utilizando montos dinámicos, datos del contacto y la API de Khipu.

Esta integración permite que un contacto complete un formulario en Zolutium y que, automáticamente, se genere un cobro en Khipu utilizando la información registrada en el contacto.

El flujo que desarrollaremos será:

Formulario Zolutium
⬇️
Workflow
⬇️
Custom Webhook
⬇️
API de Khipu
⬇️
Cobro creado automáticamente
⬇️
Khipu genera el enlace de pago


🛠️ Cómo desarrollar la integración

Preparar los datos que enviaremos desde Zolutium

Antes de crear el webhook, debemos asegurarnos de que el formulario capture correctamente la información que necesitaremos para generar el cobro.

Como mínimo recomendamos tener:

  • Nombre.

  • Correo electrónico.

  • Total a pagar.

Por ejemplo, podemos crear un campo personalizado llamado:

Total a pagar

El valor almacenado debe ser únicamente numérico.

✅ Correcto:

256000
15000
1000

❌ Evita formatos como:

$256.000
256.000 CLP
$ 15000

Para un cobro de $256.000 pesos chilenos, Zolutium debe almacenar:

256000

Khipu se encargará de mostrarlo posteriormente con el formato monetario correspondiente.


🔑 Generar una API Key en Khipu

Ingresa a tu cuenta de Khipu y dirígete a:

Opciones de la cuenta

Busca la sección:

Para integrar Khipu a tu sitio web

Dentro de esta sección encontrarás información relacionada con la integración mediante API.

Busca el apartado de:

API Keys

Selecciona:

Nueva API Key

Puedes utilizar un alias que te permita reconocer fácilmente para qué será utilizada.

Por ejemplo:

ZOLUTIUM - KHIPU

Si la integración será permanente, puedes dejar desmarcada la opción:

Expirar de forma automática

Luego selecciona:

Guardar

Khipu mostrará la nueva API Key.

🔐 Importante: guarda esta llave inmediatamente en un lugar seguro.

La API Key es una credencial privada y no debe publicarse ni compartirse en capturas.

Si una API Key queda expuesta accidentalmente, lo recomendable es:

  • Expirar la llave comprometida.

  • Generar una nueva API Key.

  • Reemplazarla posteriormente dentro de Zolutium.


⚙️ Crear el Workflow en Zolutium

Ahora ingresamos a nuestra subcuenta de Zolutium.

Dirígete a:

Automatizaciones → Workflows

Crea un nuevo Workflow.

Como activador puedes utilizar:

Formulario enviado / Form Submitted

Selecciona el formulario que deseas conectar con Khipu.

El flujo comenzará así:

Formulario enviado         ↓ Crear pago en Khipu

🔗 Agregar el Custom Webhook

Debajo del activador selecciona:

+ Añadir acción

Busca:

Custom Webhook

Puedes colocarle un nombre como:

CREATE PAYMENT KHIPU

o:

Crear pago Khipu

Esto facilitará identificar la acción posteriormente dentro de los registros de ejecución.


💳 Configurar la solicitud hacia Khipu

Dentro del Custom Webhook configura los siguientes valores.

Método

POST

URL

https://payment-api.khipu.com/v3/payments

Autorización

Selecciona:

None

En esta configuración la autenticación se realizará mediante la API Key enviada como encabezado.


🔐 Configurar el encabezado x-api-key

En:

Encabezados

agrega un nuevo elemento.

Como nombre coloca:

x-api-key

Como valor coloca la API Key generada anteriormente en Khipu.

Conceptualmente debe quedar:

x-api-key → [TU API KEY DE KHIPU]

⚠️ Recuerda que esa llave debe mantenerse privada.


📦 Definir el tipo de contenido

En:

Tipo de contenido

selecciona:

application/json

Esto indica que enviaremos los datos hacia Khipu utilizando formato JSON.


🧪 Realizar primero una prueba sencilla

Antes de utilizar campos dinámicos, recomendamos probar la conexión utilizando un monto fijo.

En:

Cuerpo del mensaje

coloca:

{   "subject": "Pago de servicio",   "amount": 1000,   "currency": "CLP" }

Esta solicitud intentará crear un pago de:

$1.000 CLP

Esto permite comprobar primero que:

  • La URL es correcta.

  • La API Key funciona.

  • Zolutium puede comunicarse con Khipu.

  • Khipu acepta la solicitud.

  • Se genera correctamente el pago.


✅ Probar el Workflow

Guarda la acción.

Luego utiliza:

Probar flujo de trabajo

Selecciona un contacto de prueba.

Después dirígete a:

Registros de ejecución

Busca la acción:

CREATE PAYMENT KHIPU

Selecciona:

Ver detalles

Cuando la integración funciona correctamente deberías encontrar:

Estado del evento: Success

y una respuesta con:

status: 200

Además, Khipu debería devolver información como:

payment_id payment_url app_url transfer_url simplified_transfer_url

Una respuesta exitosa puede verse conceptualmente así:

{   "status": 200,   "data": {     "payment_id": "xxxxxxxx",     "payment_url": "https://khipu.com/payment/info/xxxxxxxx",     "app_url": "...",     "transfer_url": "...",     "simplified_transfer_url": "..."   } }

Cuando aparece:

payment_id

y:

payment_url

✅ significa que Khipu creó correctamente la solicitud de pago.


🇨🇱 Configuración para cobros en Chile

Si la cuenta será utilizada exclusivamente para Chile, configura:

"currency": "CLP"

CLP corresponde al peso chileno.

Por ejemplo:

{   "subject": "Pago de servicio",   "amount": 10000,   "currency": "CLP" }

creará un cobro de:

$10.000 CLP


🔄 Convertir el monto fijo en un monto dinámico

Una vez comprobado que el cobro de prueba funciona, podemos dejar de utilizar:

"amount": 1000

y utilizar un campo personalizado de Zolutium.

Por ejemplo, si nuestro campo se llama:

Total a pagar

Zolutium puede generar un Custom Value como:

{{contact.total_a_pagar}}

El JSON quedaría:

{   "subject": "Pago de servicio",   "amount": "{{contact.total_a_pagar}}",   "currency": "CLP",   "transaction_id": "{{contact.id}}",   "payer_name": "{{contact.name}}",   "payer_email": "{{contact.email}}",   "send_email": true }

Con esto, cada contacto podrá tener un monto diferente.

Por ejemplo:

Contacto A Total a pagar: 15000

Khipu generará:

$15.000 CLP

Mientras que:

Contacto B Total a pagar: 256000

generará:

$256.000 CLP


👤 Enviar también los datos del contacto

Además del monto podemos enviar información adicional.

Nombre

"payer_name": "{{contact.name}}"

Correo

"payer_email": "{{contact.email}}"

Identificador de la operación

"transaction_id": "{{contact.id}}"

Esto permite utilizar el ID del contacto de Zolutium como referencia para relacionar posteriormente el cobro con el contacto correspondiente.


📧 Solicitar el envío del pago por correo

Podemos agregar:

"send_email": true

De esta manera incluimos dentro de la solicitud los datos necesarios para que Khipu gestione el envío relacionado con el pago.

El JSON final puede quedar:

{   "subject": "Pago de servicio",   "amount": "{{contact.total_a_pagar}}",   "currency": "CLP",   "transaction_id": "{{contact.id}}",   "payer_name": "{{contact.name}}",   "payer_email": "{{contact.email}}",   "send_email": true }

🔍 Verificar el resultado directamente en Khipu

Después de realizar una prueba, ingresa a:

Khipu → Cobros enviados

Ahí podrás verificar si el pago fue creado.

Por ejemplo, si el contacto tenía:

Total a pagar: 256000

deberías encontrar un nuevo cobro por:

$256.000

Si el monto coincide, la integración dinámica está funcionando correctamente. 🎯


❓ Preguntas frecuentes y solución de errores

¿Por qué Zolutium muestra Success pero Khipu no creó el pago?

Esto puede ocurrir cuando Zolutium logró ejecutar técnicamente el webhook, pero la respuesta obtenida no corresponde a una creación de pago válida.

No debes revisar únicamente:

Success

También debes entrar en:

Registros de ejecución → Ver detalles

y comprobar que aparezca:

status: 200

junto con:

payment_id payment_url

El verdadero indicador de que el pago fue creado es la existencia del payment_id.


¿Por qué recibo una página de Khipu en lugar de un payment_id?

Un síntoma típico es encontrar dentro de la respuesta textos como:

Iniciar sesión Productos Pagos Instantáneos Tarifas Seguridad

Esto significa que Zolutium recibió una página HTML del sitio de Khipu en vez de una respuesta de la API.

¿Cómo solucionarlo?

Verifica que estés utilizando exactamente:

https://payment-api.khipu.com/v3/payments

y no una dirección perteneciente al sitio web tradicional de Khipu.

Para crear el pago también debes utilizar:

POST

¿Qué significa el error 404 Page Not Found?

El error:

404 page not found

significa que el servidor recibió la solicitud, pero la ruta utilizada no existe.

Revisa:

Método

POST

URL

https://payment-api.khipu.com/v3/payments

También asegúrate de que no existan:

  • Espacios adicionales.

  • Caracteres incorrectos.

  • URLs incompletas.

  • Mezclas entre rutas antiguas y rutas actuales.


¿Qué significa 405 Method Not Allowed?

El error:

405 Method Not Allowed

significa que la URL existe, pero estás utilizando un método HTTP que ese endpoint no permite.

Por ejemplo, para comprobar la conexión mediante el listado de bancos se puede utilizar:

GET

con:

https://payment-api.khipu.com/v3/banks

Pero si utilizas:

POST

sobre esa misma ruta, puedes obtener:

405 Method Not Allowed

Para crear pagos debes regresar a:

POST

y:

https://payment-api.khipu.com/v3/payments

¿Cómo puedo comprobar si mi API Key realmente funciona?

Puedes realizar una prueba temporal utilizando un webhook con:

Método

GET

URL

https://payment-api.khipu.com/v3/banks

Autorización

None

Encabezado

x-api-key → [TU API KEY]

No necesitas enviar JSON.

Si la conexión funciona, obtendrás:

Success status: 200

junto con información de bancos disponibles.

En una cuenta chilena pueden aparecer instituciones como:

  • Banco Estado.

  • Santander.

  • Banco Falabella.

  • Banco de Chile.

  • Scotiabank.

  • Entre otros.

Si recibes esta información, puedes confirmar que:

Zolutium ↓ API Key ↓ Khipu

se están comunicando correctamente.


¿Por qué Khipu sigue cobrando $1.000 si ya cambié el monto?

Generalmente esto ocurre porque la primera prueba se realizó utilizando:

"amount": 1000

Los cobros que ya fueron creados no cambian cuando modificamos posteriormente el Workflow.

Debes realizar una nueva ejecución después de cambiar el valor.

Si ahora tienes:

"amount": "{{contact.total_a_pagar}}"

abre el contacto utilizado para la prueba y comprueba el valor almacenado.

Por ejemplo:

Total a pagar: 256000

Guarda el contacto y vuelve a ejecutar el Workflow.

El nuevo cobro debería aparecer como:

$256.000

Los cobros anteriores de $1.000 continuarán apareciendo porque fueron creados antes del cambio.


¿Qué pasa si tengo los campos “Total” y “Total a pagar”?

Es importante seleccionar el Custom Value correcto.

Por ejemplo, un contacto podría tener:

Total a pagar: 250

y:

Total: 630

Si el webhook utiliza:

{{contact.total_a_pagar}}

se enviará el contenido de:

Total a pagar

y no el valor almacenado en:

Total

Siempre verifica qué campo personalizado estás insertando dentro del JSON.


Zolutium agrega automáticamente comillas al monto, ¿debo quitarlas?

Cuando insertas algunos Custom Values dentro del editor JSON, Zolutium puede colocar automáticamente:

"amount": "{{contact.total_a_pagar}}"

En nuestras pruebas esta estructura fue aceptada correctamente por Khipu.

Por lo tanto, si Zolutium coloca las comillas automáticamente y la prueba devuelve:

Success status: 200 payment_id

no es necesario modificarlas.

La mejor forma de comprobarlo es realizar una prueba con un monto conocido.

Por ejemplo:

Total a pagar: 2560

Si Khipu genera:

$2.560

el campo está funcionando correctamente.


¿Qué ocurre si Total a pagar está vacío?

Si el contacto no tiene valor en:

Total a pagar

la solicitud puede intentar enviar un monto vacío.

Esto puede generar errores.

Una buena práctica es agregar una condición antes del webhook:

Formulario enviado         ↓ ¿Total a pagar tiene valor?         ↓ Sí         ↓ Crear pago Khipu

Así evitamos ejecutar solicitudes sin monto.


¿Puedo colocar $15.000 directamente en Total a pagar?

No es recomendable.

Evita:

$15.000
15.000 CLP
$ 15,000

Utiliza:

15000

De esta forma el valor enviado hacia Khipu será más limpio y consistente.


¿Qué hago si mi API Key quedó visible en una captura?

🔐 Si una API Key quedó expuesta, no continúes utilizando esa misma credencial.

Ingresa a Khipu y:

  • Expira la API Key expuesta.

  • Genera una nueva.

  • Guarda la nueva llave en un lugar seguro.

  • Reemplázala en el encabezado x-api-key de Zolutium.

Nunca publiques capturas donde aparezca la llave completa.


¿Debo usar Basic Auth?

Para la configuración descrita en este artículo utilizamos:

Autorización: None

y enviamos la API Key mediante:

x-api-key

Por lo tanto, la estructura utilizada es:

POST https://payment-api.khipu.com/v3/payments  Autorización: None  Header: x-api-key → API KEY  Content-Type: application/json

¿Cómo sé definitivamente que la integración quedó funcionando?

Comprueba estas tres cosas:

En Zolutium

Debe aparecer:

Success

En la respuesta del webhook

Debes encontrar:

status: 200 payment_id payment_url

En Khipu

Ingresa a:

Cobros enviados

y verifica que exista el nuevo cobro con el monto correspondiente al contacto.

Si las tres comprobaciones son correctas:

🎉 Tu integración Zolutium → Khipu está funcionando correctamente.


🚀 Resultado final

Con esta configuración puedes automatizar un proceso como:

Cliente completa formulario            ↓ Zolutium registra los datos            ↓ Workflow se activa            ↓ Zolutium toma Total a pagar            ↓ Custom Webhook envía los datos            ↓ Khipu crea el cobro            ↓ Khipu genera payment_id            ↓ Khipu genera payment_url

A partir de aquí puedes ampliar todavía más la automatización para lograr un proceso como:

Formulario ↓ Crear cobro ↓ Enviar enlace al cliente ↓ Cliente realiza el pago ↓ Confirmar pago ↓ Actualizar oportunidad ↓ Agregar etiqueta PAGADO ↓ Enviar confirmación por WhatsApp

De esta manera, Zolutium y Khipu pueden trabajar juntos para automatizar gran parte del proceso de cobro desde que el cliente completa el formulario hasta la generación de su enlace de pago. 💳✅

¿Ha quedado contestada tu pregunta?