Ir al contenido
KUTI

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
url
stringrequerido
URL HTTPS de tu servidor.Ej: https://merchant.example.com/webhooks/kuti
events
arrayrequerido
Tipos a suscribir, o ["*"] para todos.Ej: ["payment.succeeded", "payment.failed"]
description
stringopcional
Etiqueta interna.Ej: Producción

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