La API REST es lo que Zapier, Make, n8n y tu propio código llaman para leer los eventos de tu cuenta y suscribirse a ellos. Habla JSON sobre HTTPS y cada petición lleva una clave API.
Cada endpoint vive bajo la URL base de abajo, seguida de la versión, por ejemplo /v1/me.
Los ejemplos de esta página leen la URL base de KADENS_API_URL y tu clave de KADENS_API_KEY, así que puedes pegarlos tal cual.
Las peticiones y respuestas son JSON. Envía Content-Type: application/json con cada petición que tenga cuerpo.
La versión forma parte de la ruta. Cada evento también lleva la versión de su formato en su campo version, actualmente 2026-10-01, para que tu código pueda saber qué forma recibió.
Cada petición necesita una clave API en la cabecera Authorization como un token Bearer. Cada endpoint indica el permiso que necesita.
Claves API y permisosLos errores usan códigos de estado HTTP estándar y un cuerpo JSON con el estado, un mensaje, la ruta y un id de petición que puedes citar a soporte.
| Estado | Significado |
|---|---|
400 | La consulta o el cuerpo no pasó la validación. Comprueba los campos contra esta referencia. |
401 | Falta la clave, tiene un formato incorrecto, está revocada o ha caducado. |
403 | La clave es válida pero le falta el permiso que necesita este endpoint. |
429 | Demasiadas peticiones. Espera el tiempo indicado en la cabecera Retry-After y vuelve a intentarlo. |
{
"statusCode": 401,
"message": "Missing or invalid API key",
"timestamp": "2026-10-01T10:00:00.000Z",
"path": "/api/v1/events",
"requestId": "req_7c1e0b"
}Los límites se cuentan por clave API. Superar cualquiera de ellos devuelve 429 hasta que se reinicie la ventana.
| Ventana | Límite |
|---|---|
Por segundo | 40 peticiones |
Cada 10 segundos | 250 peticiones |
Por minuto | 800 peticiones |
/v1/mePrueba la clave: devuelve la cuenta a la que pertenece y sus permisos. Funciona con cualquier clave válida.
curl "$KADENS_API_URL/v1/me" \
-H "Authorization: Bearer $KADENS_API_KEY"{
"entity": {
"id": "6f1c2d3e-4b5a-4c7d-8e9f-0a1b2c3d4e5f",
"name": "Barcelona Salsa Studio"
},
"apiKeyId": "9a8b7c6d-5e4f-4a3b-9c2d-1e0f9a8b7c6d",
"scopes": [
"webhooks.read",
"webhooks.write"
]
}/v1/event-typesPermiso: webhooks.readLista todos los tipos de eventos a los que puedes suscribirte, con una muestra de cada uno y los campos que contienen datos personales.
curl "$KADENS_API_URL/v1/event-types" \
-H "Authorization: Bearer $KADENS_API_KEY"{
"apiVersion": "2026-10-01",
"data": [
{
"type": "order.paid",
"family": "orders",
"descriptionKey": "Webhooks.events.order_paid",
"sample": {
"order": {
"id": "ord_91ac04",
"status": "paid",
"created_at": "2026-10-01T09:58:02Z",
"paid_at": "2026-10-01T10:00:00Z",
"event": {
"id": "evt_7f3c2a",
"name": "Salsa Congress Barcelona 2026"
},
"totals": {
"gross": {
"amount": 12000,
"currency": "EUR"
},
"fees": {
"amount": 600,
"currency": "EUR"
},
"net": {
"amount": 11400,
"currency": "EUR"
},
"tax": {
"amount": 2083,
"currency": "EUR"
}
},
"buyer": {
"entity_id": "ent_5b21",
"name": "Lucia Martin",
"email": "lucia@example.com"
},
"lines": [
{
"ticket_type_id": "tt_full_pass",
"name": "Full pass",
"quantity": 1,
"unit_price": {
"amount": 12000,
"currency": "EUR"
}
}
]
}
},
"personalDataPaths": [
"order.buyer.name",
"order.buyer.email"
]
}
]
}/v1/eventsPermiso: webhooks.readLista los eventos recientes, del más nuevo al más antiguo, en el mismo sobre que las entregas de webhooks. Las integraciones lo usan para mostrar datos de muestra.
curl "$KADENS_API_URL/v1/events?type=order.paid&limit=10" \
-H "Authorization: Bearer $KADENS_API_KEY"{
"data": [
{
"id": "msg_2f8a1c7e",
"type": "order.paid",
"version": "2026-10-01",
"occurred_at": "2026-10-01T10:00:00Z",
"account": {
"id": "ent_1a0f",
"name": "Barcelona Salsa Studio"
},
"subject": {
"type": "order",
"id": "ord_91ac04",
"sequence": 2
},
"correlation_id": null,
"livemode": true,
"data": {
"order": {
"id": "ord_91ac04",
"status": "paid",
"created_at": "2026-10-01T09:58:02Z",
"paid_at": "2026-10-01T10:00:00Z",
"event": {
"id": "evt_7f3c2a",
"name": "Salsa Congress Barcelona 2026"
},
"totals": {
"gross": {
"amount": 12000,
"currency": "EUR"
},
"fees": {
"amount": 600,
"currency": "EUR"
},
"net": {
"amount": 11400,
"currency": "EUR"
},
"tax": {
"amount": 2083,
"currency": "EUR"
}
},
"buyer": {
"entity_id": "ent_5b21"
},
"lines": [
{
"ticket_type_id": "tt_full_pass",
"name": "Full pass",
"quantity": 1,
"unit_price": {
"amount": 12000,
"currency": "EUR"
}
}
]
}
}
}
],
"nextCursor": null,
"hasMore": false
}| Parámetro | Tipo | Descripción |
|---|---|---|
type | string | Solo eventos de este tipo. |
limit | integer | Cuántos eventos devolver, de 1 a 100. Por defecto, 25. |
cursor | string | El nextCursor de la página anterior, para leer la siguiente. |
/v1/webhooks/subscriptionsPermiso: webhooks.writeCrea un endpoint gestionado por la integración. Aparece como solo lectura en el panel. Devuelve 201 cuando crea la suscripción, y 200 con la existente cuando esa misma suscripción ya existe.
curl -X POST "$KADENS_API_URL/v1/webhooks/subscriptions" \
-H "Authorization: Bearer $KADENS_API_KEY" \
-H "Content-Type: application/json" \
-d '{"targetUrl":"https://hooks.example.com/kadens","eventTypes":["order.paid","attendee.checked_in"],"integration":"zapier","externalRef":"zap_812734"}'{
"id": "3d9f2b71-8c4e-4a6f-9b1d-5e7a0c2f8d14",
"created": true,
"targetUrl": "https://hooks.example.com/kadens",
"eventTypes": [
"order.paid",
"attendee.checked_in"
],
"integration": "zapier",
"externalRef": "zap_812734",
"apiVersion": "2026-10-01",
"secret": "whsec_Zk3v9QmT1rX8bLp2Wc6yHn4s",
"createdAt": "2026-10-01T10:00:00.000Z"
}| Campo | Tipo | Descripción |
|---|---|---|
targetUrlObligatorio | string | La dirección HTTPS a la que Kadens entrega los eventos. |
eventTypesObligatorio | string[] | Los tipos de eventos a entregar, de 1 a 50. Lee la lista en /v1/event-types. |
integrationObligatorio | string | Quién gestiona la suscripción: zapier, make, n8n u other. |
externalRef | string | Tu propio id para esta suscripción, hasta 255 caracteres. |
/v1/webhooks/subscriptions/:idPermiso: webhooks.writeElimina un endpoint creado por la integración. Devuelve 204 sin cuerpo.
curl -X DELETE "$KADENS_API_URL/v1/webhooks/subscriptions/3d9f2b71-8c4e-4a6f-9b1d-5e7a0c2f8d14" \
-H "Authorization: Bearer $KADENS_API_KEY"Las herramientas de automatización se conectan a Kadens con el patrón REST hooks: se suscriben cuando se activa un flujo de trabajo y se dan de baja cuando se desactiva.
Las suscripciones creadas de esta forma aparecen como solo lectura en tu panel, marcadas con la integración que las gestiona.
Cómo verificar firmas¿Te ha resultado útil?