Documentação da API
Integre o khelp aos seus sistemas com a API de parceiros.
A API do khelp permite que a sua organização acesse os próprios dados (doações, cadastros, campanhas) por integração máquina-a-máquina, com chave de API e escopos de permissão. Cada chave enxerga apenas os dados da sua organização.
Autenticação
Envie sua chave no cabeçalho Authorization como Bearer token. Gere e gerencie chaves no painel, em Configurações → Chaves de API. A chave secreta aparece uma única vez na criação — guarde-a com segurança e nunca a exponha no navegador.
curl https://www.khelp.com.br/api/v1/doacoes \
-H "Authorization: Bearer khl_live_..."Endpoints
Os endpoints retornam JSON e já vêm filtrados pela sua organização — você nunca vê dados de outra. A leitura exige os escopos :read; a criação de cadastro exige o escopo cadastros:write, que você marca ao gerar a chave.
GET /api/v1/doacoesLista as doações da sua organização.GET /api/v1/doacoes/{id}Consulta uma doação específica pelo identificador.GET /api/v1/cadastrosLista os cadastros (doadores e contatos).POST /api/v1/cadastrosCria um cadastro. Campos: nome e email (obrigatórios), telefone, tipo_pessoa, tipos, cidade, estado, pais.GET /api/v1/campanhasLista as campanhas.GET /api/v1/recorrenciasLista as doações recorrentes. Filtro opcional: ?status=active.
curl -X POST https://www.khelp.com.br/api/v1/cadastros \
-H "Authorization: Bearer khl_live_..." \
-H "Content-Type: application/json" \
-d '{"nome":"Maria Silva","email":"maria@exemplo.com","tipos":["doador"]}'Paginação
Use os parâmetros limite (máx. 100, padrão 50) e offset. A resposta traz um envelope com os dados e o bloco paginacao (limite, offset, total, tem_mais).
curl "https://www.khelp.com.br/api/v1/cadastros?limite=50&offset=0" \
-H "Authorization: Bearer khl_live_..."{
"dados": [ /* ... */ ],
"paginacao": { "limite": 50, "offset": 0, "total": 128, "tem_mais": true }
}Limites de uso
Cada chave tem um teto de requisições por minuto (padrão 120). As respostas trazem os cabeçalhos X-RateLimit-Limit e X-RateLimit-Remaining. Ao exceder, a API responde 429 com Retry-After. Precisa de um limite maior? Fale com o suporte.
Erros
Erros retornam um JSON { "erro": "<código>" } com o status HTTP adequado: 401 (chave ausente/inválida), 403 (escopo insuficiente), 404 (recurso não encontrado), 429 (limite excedido).
Webhooks
Em vez de consultar a API repetidamente, receba eventos (doação paga, recorrência) no seu endpoint. Cadastre a URL no painel, em Configurações → Webhooks. Cada entrega é assinada — verifique a assinatura antes de confiar no conteúdo.
Khelp-Signature: t=<unix>,v1=<hex>
import { createHmac } from 'crypto'
// req.rawBody = bytes EXATOS recebidos (não o JSON re-serializado)
function verificar(rawBody, header, segredo) {
const partes = Object.fromEntries(header.split(',').map(p => p.split('=')))
const t = Number(partes.t)
if (Math.abs(Date.now() / 1000 - t) > 300) return false // ±5 min
const esperado = createHmac('sha256', segredo)
.update(`${t}.${rawBody}`).digest('hex')
return esperado === partes.v1
}Eventos disponíveis
Escolha quais eventos cada endpoint recebe. A entrega é reenviada automaticamente em caso de falha, e cada evento carrega um identificador estável — trate o recebimento como idempotente e ignore repetições do mesmo evento.
doacao.pagaUma doação foi confirmada como paga (avulsa ou parcela de uma recorrência).recorrencia.criadaUma doação recorrente foi ativada — a primeira cobrança foi paga.recorrencia.canceladaUma doação recorrente foi cancelada, seja pelo doador, pela organização ou pelo meio de pagamento.webhook.testeEvento de teste, enviado por você pelo painel para conferir a integração.
Versionamento e depreciação
A API é versionada na URL (/api/v1). Mudanças compatíveis entram na v1 sem aviso; mudanças que quebram entram numa nova versão (v2). Endpoints em depreciação enviam o cabeçalho Sunset com a data de desligamento, com antecedência.
Começar
Crie sua primeira chave no painel, em Configurações → Chaves de API, e faça a primeira chamada com o exemplo acima.
Esta documentação evolui junto com a plataforma. Dúvidas sobre a integração? Fale com o suporte do khelp.