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-keyde 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. 💳✅
