Crear endpoint
Registra una URL HTTPS para recibir eventos firmados de KUTI.
POSThttps://api.kuti.pe/v1/webhook-endpoints
signing_secret se devuelve SOLO en esta respuesta. El endpoint queda ligado al modo de tu API key (test o live). events: lista de tipos o ["*"] para todos. Idempotency-Key recomendada: un reintento devuelve el mismo endpoint y el mismo signing_secret, sin registrarlo dos veces.
Parámetros del body
Campo
Descripción
urlstringrequerido
URL HTTPS de tu servidor.Ej:
https://merchant.example.com/webhooks/kutieventsarrayrequerido
Tipos a suscribir, o ["*"] para todos.Ej:
["payment.succeeded", "payment.failed"]descriptionstringopcional
Etiqueta interna.Ej:
ProducciónLanguage
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/webhook-endpoints", {
method: "POST",
headers: {
"Authorization": "Bearer kuti_live_…",
"Content-Type": "application/json",
"Idempotency-Key": "550e8400-e29b-41d4-a716-446655440051"
},
body: JSON.stringify({
"url": "https://merchant.example.com/webhooks/kuti",
"description": "Producción",
"events": [
"payment.succeeded",
"payment.failed"
]
})
});
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": "Webhook endpoint created",
"data": {
"id": "we_01J8Z3K4M5N6P7Q8R9S0T1U2V3",
"url": "https://merchant.example.com/webhooks/kuti",
"description": "Producción",
"enabled_events": [
"payment.succeeded",
"payment.failed"
],
"status": "ENABLED",
"livemode": true,
"signing_secret": "whsec_a1b2c3d4e5f6…",
"created_at": "2026-09-04T10:48:59.556906Z"
}
}