Dinheiro
A API REST é o que Zapier, Make, n8n e o seu próprio código chamam para ler os eventos da sua conta e para se inscrever neles. Ela fala JSON sobre HTTPS e toda requisição carrega uma chave de API.
Todo endpoint vive sob a URL base abaixo, seguida da versão, por exemplo /v1/me.
Os exemplos nesta página leem a URL base de KADENS_API_URL e a sua chave de KADENS_API_KEY, então você pode colá-los como estão.
Requisições e respostas são JSON. Envie Content-Type: application/json em toda requisição que tiver um corpo.
A versão faz parte do caminho. Cada evento também carrega a versão do seu formato no campo version, atualmente 2026-10-01, para que o seu código saiba qual formato recebeu.
Toda requisição precisa de uma chave de API no cabeçalho Authorization como um Bearer token. Cada endpoint lista a permissão que precisa.
Chaves de API e permissõesOs erros usam códigos de status HTTP padrão e um corpo JSON com o status, uma mensagem, o caminho e um id de requisição que você pode citar ao suporte.
| Status | Significado |
|---|---|
400 | A consulta ou o corpo não passou na validação. Confira os campos nesta referência. |
401 | A chave está ausente, mal formatada, revogada ou expirada. |
403 | A chave é válida, mas não tem a permissão que este endpoint precisa. |
429 | Muitas requisições. Aguarde o tempo indicado no cabeçalho Retry-After e tente novamente. |
{
"statusCode": 401,
"message": "Missing or invalid API key",
"timestamp": "2026-10-01T10:00:00.000Z",
"path": "/api/v1/events",
"requestId": "req_7c1e0b"
}Os limites são contados por chave de API. Ultrapassar qualquer um deles retorna 429 até a janela ser reiniciada.
| Janela | Limite |
|---|---|
Por segundo | 40 requisições |
A cada 10 segundos | 250 requisições |
Por minuto | 800 requisições |
/v1/meTesta a chave: retorna a conta a que ela pertence e as suas permissões. Funciona com qualquer chave 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-typesPermissão: webhooks.readLista todos os tipos de evento nos quais você pode se inscrever, com um exemplo de cada e os campos que contêm dados pessoais.
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/eventsPermissão: webhooks.readLista eventos recentes, dos mais novos aos mais antigos, no mesmo formato das entregas de webhook. As integrações usam isso para mostrar dados de exemplo.
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 | Descrição |
|---|---|---|
type | string | Apenas eventos deste tipo. |
limit | integer | Quantos eventos retornar, de 1 a 100. O padrão é 25. |
cursor | string | O nextCursor da página anterior, para ler a próxima. |
/v1/webhooks/subscriptionsPermissão: webhooks.writeCria um endpoint gerenciado pela integração. Ele aparece como somente leitura no painel. Retorna 201 quando cria a inscrição, e 200 com a existente quando a mesma inscrição já 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 | Descrição |
|---|---|---|
targetUrlObrigatório | string | O endereço HTTPS para o qual a Kadens entrega os eventos. |
eventTypesObrigatório | string[] | Os tipos de evento a entregar, de 1 a 50. Leia a lista em /v1/event-types. |
integrationObrigatório | string | Quem gerencia a inscrição: zapier, make, n8n ou other. |
externalRef | string | Seu próprio id para esta inscrição, com até 255 caracteres. |
/v1/webhooks/subscriptions/:idPermissão: webhooks.writeRemove um endpoint criado pela integração. Retorna 204 sem corpo.
curl -X DELETE "$KADENS_API_URL/v1/webhooks/subscriptions/3d9f2b71-8c4e-4a6f-9b1d-5e7a0c2f8d14" \
-H "Authorization: Bearer $KADENS_API_KEY"As ferramentas de automação se conectam à Kadens com o padrão REST hooks: elas se inscrevem quando um workflow é ativado e cancelam a inscrição quando é desativado.
Inscrições criadas desta forma aparecem como somente leitura no seu painel, marcadas com a integração que as gerencia.
Como verificar assinaturasIsso ajudou?