Ir al contenido

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
title
stringrequerido
Lo que ve quien paga (3–120).Ej: Taller de Excel — sábado 10am
pricing
stringrequerido
FIXED (monto fijo) o CUSTOMER_CHOOSES (quien paga elige: donaciones, montos libres).Ej: FIXED
payment_method_types
arrayrequerido
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"]
amount
stringopcional
Solo FIXED: el monto.Ej: 120.00
min_amount
stringopcional
Solo CUSTOMER_CHOOSES (obligatorio): monto mínimo.Ej: 10.00
max_amount
stringopcional
Solo CUSTOMER_CHOOSES (opcional): monto máximo.
suggested_amounts
arrayopcional
Solo CUSTOMER_CHOOSES: hasta 4 montos sugeridos (botones).Ej: ["20.00", "50.00", "100.00"]
slug
stringopcional
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-excel
template
stringopcional
COURSE, EVENT, DONATION o GENERIC (default). Cambia el ícono y el texto del botón por defecto.
description
stringopcional
Texto bajo el título (hasta 1000).
image_url
stringopcional
Portada (https).
currency
stringopcional
Default PEN.
category_id
stringopcional
Categoría de cobro (cat_…).
expires_at
stringopcional
Fecha límite para pagar (UTC ISO-8601). Después ya no acepta pagos.
customer_field_ids
arrayopcional
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_label
stringopcional
Texto del botón de pago (hasta 30). Sin enviar = según la plantilla: Inscribirme, Comprar entrada, Donar o Pagar.Ej: Inscribirme
success_message
stringopcional
Mensaje que ve quien paga al terminar (hasta 500).
success_button_label
stringopcional
Botón al terminar (hasta 40). Va junto con success_button_url.Ej: Unirme al grupo
success_button_url
stringopcional
Enlace del botón al terminar (http/https): grupo de WhatsApp, Zoom, Drive…Ej: https://chat.whatsapp.com/AbCdEf123

Language

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"
  }
}