Crear link de pago
Crea un link permanente que pagan muchas personas: un curso, una entrada, una donación. Cada pago es un cobro normal con payment_link_id.
POSThttps://api.kuti.pe/v1/payment-links
Monto fijo (FIXED) o libre (CUSTOMER_CHOOSES). Quien paga deja nombres, apellidos, correo y las preguntas del link; con eso se crea SU cobro, que vence en 30 minutos si no paga. Comparte url (o su QR) por WhatsApp, redes o impreso.
Parámetros del body
Campo
Descripción
titlestringrequerido
Lo que ve quien paga (3–120).Ej:
Taller de Excel — sábado 10ampricingstringrequerido
FIXED (monto fijo) o CUSTOMER_CHOOSES (quien paga elige: donaciones, montos libres).Ej:
FIXEDpayment_method_typesarrayrequerido
INTEROPERABLE_QR y/o BANK_TRANSFER. Al pagar solo se ofrecen los que sirven para ese monto (QR hasta S/ 500, banco desde S/ 50).Ej:
["INTEROPERABLE_QR", "BANK_TRANSFER"]amountstringopcional
Solo FIXED: el monto.Ej:
120.00min_amountstringopcional
Solo CUSTOMER_CHOOSES (obligatorio): monto mínimo.Ej:
10.00max_amountstringopcional
Solo CUSTOMER_CHOOSES (opcional): monto máximo.
suggested_amountsarrayopcional
Solo CUSTOMER_CHOOSES: hasta 4 montos sugeridos (botones).Ej:
["20.00", "50.00", "100.00"]slugstringopcional
Nombre en la URL (3–60: minúsculas, números, guiones), único en KUTI. Si no lo envías se genera del título. Si lo cambias, el anterior sigue funcionando.Ej:
taller-de-exceltemplatestringopcional
COURSE, EVENT, DONATION o GENERIC (default). Cambia el ícono y el texto del botón por defecto.
descriptionstringopcional
Texto bajo el título (hasta 1000).
image_urlstringopcional
Portada (https).
currencystringopcional
Default PEN.
category_idstringopcional
Categoría de cobro (cat_…).
expires_atstringopcional
Fecha límite para pagar (UTC ISO-8601). Después ya no acepta pagos.
customer_field_idsarrayopcional
Campos personalizados (cfd_…) que se le preguntan a quien paga, en orden. El link guarda una copia: si luego los editas o archivas, el link sigue preguntando lo mismo hasta que lo edites. Sin enviar (al crear) = los marcados "pedir también al pagar"; [] = solo nombre, apellido y correo.Ej:
["cfd_01J8Z3K4M5N6P7Q8R9S0T1U2V4"]button_labelstringopcional
Texto del botón de pago (hasta 30). Sin enviar = según la plantilla: Inscribirme, Comprar entrada, Donar o Pagar.Ej:
Inscribirmesuccess_messagestringopcional
Mensaje que ve quien paga al terminar (hasta 500).
success_button_labelstringopcional
Botón al terminar (hasta 40). Va junto con success_button_url.Ej:
Unirme al gruposuccess_button_urlstringopcional
Enlace del botón al terminar (http/https): grupo de WhatsApp, Zoom, Drive…Ej:
https://chat.whatsapp.com/AbCdEf123Language
Credentials
Header
Authorization
Secret key de developer · HTTP directo; SDK oficial → /sdks
Fetch Request
$ # Node 18+ fetch · SDK oficial: npm i @kuti-pe/node
const response = await fetch("https://api.kuti.pe/v1/payment-links", {
method: "POST",
headers: {
"Authorization": "Bearer kuti_live_…",
"Content-Type": "application/json"
},
body: JSON.stringify({
"title": "Taller de Excel — sábado 10am",
"template": "COURSE",
"pricing": "FIXED",
"amount": "120.00",
"payment_method_types": [
"INTEROPERABLE_QR",
"BANK_TRANSFER"
],
"customer_field_ids": [
"cfd_01J8Z3K4M5N6P7Q8R9S0T1U2V4"
],
"button_label": "Inscribirme",
"success_message": "¡Listo! Te esperamos el sábado a las 10am.",
"success_button_label": "Unirme al grupo",
"success_button_url": "https://chat.whatsapp.com/AbCdEf123"
})
});
const data = await response.json();
console.log(data);HTTP directo · este endpoint aún no está en el SDK v1 → /sdks
Response
Elige un ejemplo de respuesta:
application/json
201Created
{
"success": true,
"message": "Payment link created",
"data": {
"id": "plink_01J8Z3K4M5N6P7Q8R9S0T1U2V3",
"merchant_id": "mer_01J8Z3K4M5N6P7Q8R9S0T1U2V3",
"livemode": true,
"slug": "taller-de-excel",
"url": "https://pay.kuti.pe/l/taller-de-excel",
"title": "Taller de Excel — sábado 10am",
"description": "Tablas dinámicas y gráficos. Incluye certificado.",
"image_url": null,
"template": "COURSE",
"pricing": "FIXED",
"currency": "PEN",
"amount": "120.00",
"min_amount": null,
"max_amount": null,
"suggested_amounts": [],
"payment_method_types": [
"INTEROPERABLE_QR",
"BANK_TRANSFER"
],
"category_id": null,
"status": "ACTIVE",
"expires_at": null,
"customer_fields": [
{
"id": "cfd_01J8Z3K4M5N6P7Q8R9S0T1U2V4",
"key": "codigo_alumno",
"label": "Código de alumno",
"type": "TEXT",
"options": [],
"required": true,
"help_text": null
}
],
"button_label": "Inscribirme",
"success_message": "¡Listo! Te esperamos el sábado a las 10am.",
"success_button_label": "Unirme al grupo",
"success_button_url": "https://chat.whatsapp.com/AbCdEf123",
"payments_count": 0,
"checkouts_count": 0,
"views_count": 0,
"amount_collected": "0",
"created_at": "2026-09-24T15:02:11.000Z",
"updated_at": "2026-09-25T09:40:03.000Z"
}
}