/openapi.jsonEsta especificação
curl -X GET 'https://app.kivorh.com.br/api/public/v1/openapi.json'{}Desenvolvedores
Conecte seus sistemas a pessoas, colaboradores, EPI, assinaturas e recrutamento, com acesso restrito ao seu grupo.
Crie uma chave em Configurações › Integrações › API e webhooks. O endereço base é:
https://app.kivorh.com.br/api/public/v1curl -H "Authorization: Bearer <chave>" https://app.kivorh.com.br/api/public/v1/pingEnvie Authorization: Bearer kv_…. A chave vale para todas as empresas do grupo e age como o administrador responsável.
| Escopo | O que libera | Módulo necessário |
|---|---|---|
empresas:read | Empresas e filiais do cliente, com códigos e CNPJ. | Nenhum |
pessoas:read | Pessoas, vínculos e estrutura (cargos, departamentos, locais), sem dados sensíveis. | colaboradores |
pessoas:write | Admitir, atualizar, movimentar, desligar e reativar | colaboradores |
dados_sensiveis:read | CPF, RG, PIS, CTPS, nascimento, endereço, raça/cor e deficiência (eSocial) e salário | colaboradores |
dados_bancarios:read | Banco, agência, conta e Pix | colaboradores |
epi:read | Itens de EPI e entregas registradas. | epi |
epi:write | Registrar entregas de EPI para colaboradores. | epi |
assinaturas:read | Modelos, documentos, situação das assinaturas e arquivos PDF. | assinatura |
assinaturas:write | Criar e enviar documentos, cancelar, lembrar e gerar links de assinatura. | assinatura |
recrutamento:read | Vagas e candidaturas. | recrutamento |
eventos:read | Fila de eventos do cliente (os mesmos enviados por webhook). | Nenhum |
Todas as falhas usam { erro, mensagem, detalhes? }.
| Status | erro | Quando acontece |
|---|---|---|
| 401 | nao_autenticado | Chave ausente, inválida, expirada ou revogada |
| 403 | sem_permissao | Escopo ausente, módulo inativo ou responsável sem acesso |
| 404 | nao_encontrado | Registro não encontrado no grupo |
| 409 | conflito | O estado atual impede a ação |
| 422 | dados_invalidos | Campos ou formatos inválidos |
| 429 | limite_excedido | Mais de 120 chamadas no minuto |
| 500 | erro_interno | Falha interna sem detalhes técnicos |
{
"erro": "conflito",
"mensagem": "A pessoa já tem vínculo ativo.",
"detalhes": {
"conflito": "segundo_vinculo_nao_confirmado",
"vinculos_existentes": []
}
}Use pagina, por_pagina (até 100) e atualizado_desde para sincronização incremental.
{
"cliente": 12,
"pagina": 1,
"por_pagina": 50,
"total": 1,
"dados": []
}Em POSTs compatíveis, envie Idempotency-Key. Por 24 horas, repetir a chave com o mesmo corpo devolve a resposta original e o header Idempotent-Replayed: true. Outro corpo retorna 422.
x-ratelimit-*.Retry-After: 60.GET /assinaturas/consumo. Quando a franquia do mês acaba, POST /assinaturas/documentos responde 422 com a mensagem pronta.O Kivo envia o evento por POST e espera um 2xx em até 10 segundos. As novas tentativas ocorrem em 1 min, 5 min, 30 min, 2 h, 6 h, 12 h e 24 h. Depois de 50 falhas seguidas e 3 dias sem sucesso, o webhook é desativado. Eventos podem chegar repetidos ou fora de ordem: deduplique pelo id. Como alternativa, consulte GET /eventos?apos=.
Valide Kivo-Assinatura: t=<unix>,v1=<hex> com o segredo inteiro, incluindo whsec_, sobre t + "." + corpo bruto, usando comparação em tempo constante e tolerância de 5 minutos.
const raw = await request.text();
const pares = Object.fromEntries(header.split(',').map(p => p.split('=')));
const t = Number(pares.t);
if (!Number.isFinite(t) || Math.abs(Date.now() / 1000 - t) > 300) throw Error('Expirada');
const esperado = Buffer.from(createHmac('sha256', segredoInteiro)
.update(t + '.' + raw).digest('hex'), 'hex');
const recebido = Buffer.from(pares.v1 ?? '', 'hex');
if (recebido.length !== esperado.length || !timingSafeEqual(recebido, esperado)) throw Error('Inválida');$raw = file_get_contents('php://input');
parse_str(str_replace(',', '&', $_SERVER['HTTP_KIVO_ASSINATURA']), $p);
if (!isset($p['t'], $p['v1']) || abs(time() - (int)$p['t']) > 300) { http_response_code(401); exit; }
$expected = hash_hmac('sha256', $p['t'].'.'.$raw, $segredoInteiro);
if (!hash_equals($expected, $p['v1'])) { http_response_code(401); exit; }| Evento | Descrição |
|---|---|
| Novo vínculo cadastrado (admissão), por tela, importação ou API. |
| Dados do vínculo alterados. Traz só os nomes dos campos alterados. |
| Movimentação aplicada: promoção, reajuste, transferência, jornada, afastamento. |
| Vínculo desligado. |
| Vínculo desligado voltou a ficar ativo. |
| Vínculo excluído (cadastrado por engano). |
| Pessoa nova no cadastro do grupo. |
| Dados pessoais alterados. Traz só os nomes dos campos alterados. |
| Documento enviado para assinatura. |
| Um signatário assinou (colaborador, testemunha ou empresa). |
| Todos assinaram e o PDF final com selo está disponível. |
| Um signatário recusou o documento. |
| Documento cancelado pelo RH ou pela API. |
| Prazo de assinatura encerrado sem todas as assinaturas. |
| Entrega de EPI registrada. |
| Ficha da entrega assinada. |
| Entrega de EPI cancelada. |
| Devolução de um item de EPI registrada. |
| Vaga criada. |
| Situação da vaga mudou (aberta, fechada, rascunho). |
| Nova candidatura em uma vaga. |
| Candidatura mudou de etapa ou de situação (inclusive contratado). |
| Enviado só pelo botão de teste do webhook. |
/openapi.jsoncurl -X GET 'https://app.kivorh.com.br/api/public/v1/openapi.json'{}/pingcurl -X GET 'https://app.kivorh.com.br/api/public/v1/ping' \
-H 'Authorization: Bearer <chave>'{}/empresasEscopo exigido: empresas:read
curl -X GET 'https://app.kivorh.com.br/api/public/v1/empresas' \
-H 'Authorization: Bearer <chave>'{
"cliente": 12,
"pagina": 1,
"por_pagina": 50,
"total": 1,
"dados": [
{
"id": "00000000-0000-0000-0000-000000000000"
}
]
}/cargosEscopo exigido: pessoas:read
curl -X GET 'https://app.kivorh.com.br/api/public/v1/cargos' \
-H 'Authorization: Bearer <chave>'{
"cliente": 12,
"pagina": 1,
"por_pagina": 50,
"total": 1,
"dados": [
{
"id": "00000000-0000-0000-0000-000000000000"
}
]
}/centros-custoEscopo exigido: pessoas:read
curl -X GET 'https://app.kivorh.com.br/api/public/v1/centros-custo' \
-H 'Authorization: Bearer <chave>'{
"cliente": 12,
"pagina": 1,
"por_pagina": 50,
"total": 1,
"dados": [
{
"id": "00000000-0000-0000-0000-000000000000"
}
]
}/departamentosEscopo exigido: pessoas:read
curl -X GET 'https://app.kivorh.com.br/api/public/v1/departamentos' \
-H 'Authorization: Bearer <chave>'{
"cliente": 12,
"pagina": 1,
"por_pagina": 50,
"total": 1,
"dados": [
{
"id": "00000000-0000-0000-0000-000000000000"
}
]
}/equipesEscopo exigido: pessoas:read
curl -X GET 'https://app.kivorh.com.br/api/public/v1/equipes' \
-H 'Authorization: Bearer <chave>'{
"cliente": 12,
"pagina": 1,
"por_pagina": 50,
"total": 1,
"dados": [
{
"id": "00000000-0000-0000-0000-000000000000"
}
]
}/locaisEscopo exigido: pessoas:read
curl -X GET 'https://app.kivorh.com.br/api/public/v1/locais' \
-H 'Authorization: Bearer <chave>'{
"cliente": 12,
"pagina": 1,
"por_pagina": 50,
"total": 1,
"dados": [
{
"id": "00000000-0000-0000-0000-000000000000"
}
]
}/pessoasEscopo exigido: pessoas:read
| Nome | Local | Tipo | Descrição |
|---|---|---|---|
pagina | query | integer | — |
por_pagina | query | integer | — |
situacao | query | string | — |
busca | query | string | — |
cpf | query | string | — |
atualizado_desde | query | string (date-time) | — |
ordem | query | string | — |
curl -X GET 'https://app.kivorh.com.br/api/public/v1/pessoas' \
-H 'Authorization: Bearer <chave>'{
"cliente": 12,
"pagina": 1,
"por_pagina": 50,
"total": 1,
"dados": [
{
"id": "00000000-0000-0000-0000-000000000000"
}
]
}/pessoas/{id}Escopo exigido: pessoas:read
| Nome | Local | Tipo | Descrição |
|---|---|---|---|
id | path | string (uuid) | — |
curl -X GET 'https://app.kivorh.com.br/api/public/v1/pessoas/<id>' \
-H 'Authorization: Bearer <chave>'{}/pessoas/{id}Escopo exigido: pessoas:write
| Nome | Local | Tipo | Descrição |
|---|---|---|---|
id | path | string (uuid) | — |
| Campo | Tipo | Obrigatório | Descrição |
|---|---|---|---|
nome_social | string | Não | — |
email_pessoal | string | Não | — |
telefone | string | Não | — |
telefone_alternativo | string | Não | — |
estado_civil | string | Não | — |
endereco_cep | string | Não | — |
endereco_logradouro | string | Não | — |
endereco_numero | string | Não | — |
endereco_complemento | string | Não | — |
endereco_bairro | string | Não | — |
endereco_cidade | string | Não | — |
endereco_uf | string | Não | — |
curl -X PATCH 'https://app.kivorh.com.br/api/public/v1/pessoas/<id>' \
-H 'Authorization: Bearer <chave>' \
-H 'Content-Type: application/json' \
-d '{"telefone":"(11) 99999-0000","endereco_cidade":"São Paulo"}'{}/colaboradoresEscopo exigido: pessoas:read
| Nome | Local | Tipo | Descrição |
|---|---|---|---|
pagina | query | integer | — |
por_pagina | query | integer | — |
empresa_id | query | string (uuid) | — |
status | query | string | — |
cargo_id | query | string (uuid) | — |
departamento_id | query | string (uuid) | — |
pessoa_id | query | string (uuid) | — |
matricula | query | string | — |
cpf | query | string | — |
busca | query | string | — |
atualizado_desde | query | string (date-time) | — |
ordem | query | string | — |
curl -X GET 'https://app.kivorh.com.br/api/public/v1/colaboradores' \
-H 'Authorization: Bearer <chave>'{
"cliente": 12,
"pagina": 1,
"por_pagina": 50,
"total": 1,
"dados": [
{
"id": "00000000-0000-0000-0000-000000000000"
}
]
}/colaboradoresEscopo exigido: pessoas:write
| Nome | Local | Tipo | Descrição |
|---|---|---|---|
Idempotency-Key | header | string | Repetir a mesma chave com o mesmo corpo devolve a resposta original (header Idempotent-Replayed: true). |
| Campo | Tipo | Obrigatório | Descrição |
|---|---|---|---|
empresa_id | string (uuid) | Sim | — |
nome_completo | string | Sim | — |
cpf | string | Sim | — |
data_admissao | string (date) | Sim | — |
matricula | string | Não | — |
cargo_id | string (uuid) | Não | — |
departamento_id | string (uuid) | Não | — |
regime | string | Não | — |
salario | number | Não | — |
carga_horaria_semanal | number | Não | — |
status | string | Não | — |
categoria_trabalhador | string | Não | — |
tipo_duracao_contrato | string | Não | — |
email_pessoal | string (email) | Não | — |
telefone | string | Não | — |
data_nascimento | string (date) | Não | — |
confirmar_segundo_vinculo | boolean | Não | Confirme quando a pessoa já tem outro vínculo ativo |
curl -X POST 'https://app.kivorh.com.br/api/public/v1/colaboradores' \
-H 'Authorization: Bearer <chave>' \
-H 'Content-Type: application/json' \
-d '{"empresa_id":"00000000-0000-0000-0000-000000000000","nome_completo":"Maria Souza","cpf":"12345678909","data_admissao":"2026-10-01"}'{}/colaboradores/{id}Escopo exigido: pessoas:read
| Nome | Local | Tipo | Descrição |
|---|---|---|---|
id | path | string (uuid) | — |
curl -X GET 'https://app.kivorh.com.br/api/public/v1/colaboradores/<id>' \
-H 'Authorization: Bearer <chave>'{}/colaboradores/{id}Escopo exigido: pessoas:write
| Nome | Local | Tipo | Descrição |
|---|---|---|---|
id | path | string (uuid) | — |
| Campo | Tipo | Obrigatório | Descrição |
|---|---|---|---|
email_corporativo | string | Não | — |
gestor_id | string (uuid) | Não | — |
numero_folha | string | Não | — |
codigo_holerite | string | Não | — |
numero_identificador | string | Não | — |
observacoes | string | Não | — |
curl -X PATCH 'https://app.kivorh.com.br/api/public/v1/colaboradores/<id>' \
-H 'Authorization: Bearer <chave>' \
-H 'Content-Type: application/json' \
-d '{"email_corporativo":"texto","gestor_id":"00000000-0000-0000-0000-000000000000","numero_folha":"texto","codigo_holerite":"texto","numero_identificador":"texto","observacoes":"texto"}'{}/colaboradores/{id}/desligamentoEscopo exigido: pessoas:write
| Nome | Local | Tipo | Descrição |
|---|---|---|---|
id | path | string (uuid) | — |
Idempotency-Key | header | string | Repetir a mesma chave com o mesmo corpo devolve a resposta original (header Idempotent-Replayed: true). |
| Campo | Tipo | Obrigatório | Descrição |
|---|---|---|---|
data_desligamento | string (date) | Sim | — |
categoria | string | Sim | — |
motivo | string | Sim | — |
causa | string | Não | — |
aviso_previo_tipo | string | Não | — |
aviso_previo_dias | integer | Não | — |
aviso_previo_inicio | string (date) | Não | — |
ciente_estabilidade | boolean | Não | — |
justificativa_epi | string | Não | — |
curl -X POST 'https://app.kivorh.com.br/api/public/v1/colaboradores/<id>/desligamento' \
-H 'Authorization: Bearer <chave>' \
-H 'Content-Type: application/json' \
-d '{"data_desligamento":"2026-10-01","categoria":"texto","motivo":"texto","causa":"texto","aviso_previo_tipo":"texto","aviso_previo_dias":1,"aviso_previo_inicio":"2026-10-01","ciente_estabilidade":true,"justificativa_epi":"texto"}'{}/colaboradores/{id}/movimentacoesEscopo exigido: pessoas:write
| Nome | Local | Tipo | Descrição |
|---|---|---|---|
id | path | string (uuid) | — |
Idempotency-Key | header | string | Repetir a mesma chave com o mesmo corpo devolve a resposta original (header Idempotent-Replayed: true). |
| Campo | Tipo | Obrigatório | Descrição |
|---|---|---|---|
tipo | string | Sim | promocao, reajuste, transferencia, jornada, afastamento, retorno… |
data_efeito | string (date) | Sim | — |
cargo_id | string (uuid) | Não | — |
departamento_id | string (uuid) | Não | — |
centro_custo_id | string (uuid) | Não | — |
local_trabalho_id | string (uuid) | Não | — |
equipe_id | string (uuid) | Não | — |
novo_salario | number | Não | — |
regime | string | Não | — |
carga_horaria_semanal | number | Não | — |
motivo | string | Não | — |
motivo_afastamento | string | Não | — |
previsao_retorno | string (date) | Não | — |
curl -X POST 'https://app.kivorh.com.br/api/public/v1/colaboradores/<id>/movimentacoes' \
-H 'Authorization: Bearer <chave>' \
-H 'Content-Type: application/json' \
-d '{"tipo":"texto","data_efeito":"2026-10-01","cargo_id":"00000000-0000-0000-0000-000000000000","departamento_id":"00000000-0000-0000-0000-000000000000","centro_custo_id":"00000000-0000-0000-0000-000000000000","local_trabalho_id":"00000000-0000-0000-0000-000000000000","equipe_id":"00000000-0000-0000-0000-000000000000","novo_salario":1,"regime":"texto","carga_horaria_semanal":1,"motivo":"texto","motivo_afastamento":"texto","previsao_retorno":"2026-10-01"}'{}/colaboradores/{id}/reativacaoEscopo exigido: pessoas:write
| Nome | Local | Tipo | Descrição |
|---|---|---|---|
id | path | string (uuid) | — |
Idempotency-Key | header | string | Repetir a mesma chave com o mesmo corpo devolve a resposta original (header Idempotent-Replayed: true). |
| Campo | Tipo | Obrigatório | Descrição |
|---|---|---|---|
motivo | string | Sim | — |
curl -X POST 'https://app.kivorh.com.br/api/public/v1/colaboradores/<id>/reativacao' \
-H 'Authorization: Bearer <chave>' \
-H 'Content-Type: application/json' \
-d '{"motivo":"texto"}'{}/epi/entregasEscopo exigido: epi:read
| Nome | Local | Tipo | Descrição |
|---|---|---|---|
pagina | query | integer | — |
por_pagina | query | integer | — |
empresa_id | query | string (uuid) | — |
colaborador_id | query | string (uuid) | — |
pessoa_id | query | string (uuid) | — |
status | query | string | — |
data_de | query | string (date) | — |
data_ate | query | string (date) | — |
atualizado_desde | query | string (date-time) | — |
curl -X GET 'https://app.kivorh.com.br/api/public/v1/epi/entregas' \
-H 'Authorization: Bearer <chave>'{
"cliente": 12,
"pagina": 1,
"por_pagina": 50,
"total": 1,
"dados": [
{
"id": "00000000-0000-0000-0000-000000000000"
}
]
}/epi/entregasEscopo exigido: epi:write
| Nome | Local | Tipo | Descrição |
|---|---|---|---|
Idempotency-Key | header | string | Repetir a mesma chave com o mesmo corpo devolve a resposta original (header Idempotent-Replayed: true). |
| Campo | Tipo | Obrigatório | Descrição |
|---|---|---|---|
colaborador_id | string (uuid) | Sim | — |
itens | lista de object | Sim | — |
empresa_id | string (uuid) | Não | — |
data_entrega | string (date) | Não | — |
tipo | string | Não | — |
almoxarifado_id | string (uuid) | Não | — |
observacoes | string | Não | — |
orientacoes_fornecidas | boolean | Não | — |
manual_entregue | boolean | Não | — |
treinamento_verificado | boolean | Não | — |
justificativa_sem_treinamento | string | Não | — |
orientacao_data | string (date) | Não | — |
orientacao_observacoes | string | Não | — |
curl -X POST 'https://app.kivorh.com.br/api/public/v1/epi/entregas' \
-H 'Authorization: Bearer <chave>' \
-H 'Content-Type: application/json' \
-d '{"colaborador_id":"00000000-0000-0000-0000-000000000000","itens":[{"epi_item_id":"00000000-0000-0000-0000-000000000000","quantidade":1,"lote_id":"00000000-0000-0000-0000-000000000000","unidade_serie_id":"00000000-0000-0000-0000-000000000000","motivo":"texto"}],"empresa_id":"00000000-0000-0000-0000-000000000000","data_entrega":"2026-10-01","tipo":"primeira_entrega","almoxarifado_id":"00000000-0000-0000-0000-000000000000","observacoes":"texto","orientacoes_fornecidas":true,"manual_entregue":true,"treinamento_verificado":true,"justificativa_sem_treinamento":"texto","orientacao_data":"2026-10-01","orientacao_observacoes":"texto"}'{}/epi/entregas/{id}Escopo exigido: epi:read
| Nome | Local | Tipo | Descrição |
|---|---|---|---|
id | path | string (uuid) | — |
curl -X GET 'https://app.kivorh.com.br/api/public/v1/epi/entregas/<id>' \
-H 'Authorization: Bearer <chave>'{}/epi/itensEscopo exigido: epi:read
| Nome | Local | Tipo | Descrição |
|---|---|---|---|
busca | query | string | — |
ativo | query | string | — |
curl -X GET 'https://app.kivorh.com.br/api/public/v1/epi/itens' \
-H 'Authorization: Bearer <chave>'{
"cliente": 12,
"pagina": 1,
"por_pagina": 50,
"total": 1,
"dados": [
{
"id": "00000000-0000-0000-0000-000000000000"
}
]
}/assinaturas/consumoEscopo exigido: assinaturas:read
curl -X GET 'https://app.kivorh.com.br/api/public/v1/assinaturas/consumo' \
-H 'Authorization: Bearer <chave>'{
"mes": "2026-09",
"inicio": "2026-09-01",
"reinicia_em": "2026-10-01",
"ilimitado": false,
"por_colaborador": 5,
"base_colaboradores": 40,
"base_origem": "contratados",
"adicionais": 0,
"excedente": "bloquear",
"franquia": 200,
"usados": 9,
"restantes": 191,
"excedentes": 0,
"percentual": 4.5,
"bloqueado": false,
"origens": {
"por_colaborador": "padrao",
"adicionais": "padrao",
"excedente": "padrao"
}
}/assinaturas/documentosEscopo exigido: assinaturas:read
| Nome | Local | Tipo | Descrição |
|---|---|---|---|
pagina | query | integer | — |
por_pagina | query | integer | — |
status | query | string | — |
colaborador_id | query | string (uuid) | — |
pessoa_id | query | string (uuid) | — |
empresa_id | query | string (uuid) | — |
modelo_id | query | string (uuid) | — |
origem | query | string | — |
criado_de | query | string (date) | — |
criado_ate | query | string (date) | — |
atualizado_desde | query | string (date-time) | — |
curl -X GET 'https://app.kivorh.com.br/api/public/v1/assinaturas/documentos' \
-H 'Authorization: Bearer <chave>'{
"cliente": 12,
"pagina": 1,
"por_pagina": 50,
"total": 1,
"dados": [
{
"id": "00000000-0000-0000-0000-000000000000"
}
]
}/assinaturas/documentosEscopo exigido: assinaturas:write
| Nome | Local | Tipo | Descrição |
|---|---|---|---|
Idempotency-Key | header | string | Repetir a mesma chave com o mesmo corpo devolve a resposta original (header Idempotent-Replayed: true). |
| Campo | Tipo | Obrigatório | Descrição |
|---|---|---|---|
colaborador_id | string (uuid) | Sim | — |
modelo_id | string (uuid) | Sim | — |
titulo | string | Não | Obrigatório quando o modelo não gera o documento |
arquivo_pdf_base64 | string | Não | PDF em base64 (até 5 MB e 30 páginas). Só para modelos sem texto. |
notificar | boolean | Não | Enviar e-mail ao colaborador (padrão true) |
signatarios_adicionais | lista de object | Não | — |
curl -X POST 'https://app.kivorh.com.br/api/public/v1/assinaturas/documentos' \
-H 'Authorization: Bearer <chave>' \
-H 'Content-Type: application/json' \
-d '{"colaborador_id":"00000000-0000-0000-0000-000000000000","modelo_id":"00000000-0000-0000-0000-000000000000","titulo":"texto","arquivo_pdf_base64":"texto","notificar":true,"signatarios_adicionais":[{"nome":"texto","email":"pessoa@empresa.com.br","cpf":"texto","funcao":"texto"}]}'{}/assinaturas/documentos/{id}Escopo exigido: assinaturas:read
| Nome | Local | Tipo | Descrição |
|---|---|---|---|
id | path | string (uuid) | — |
curl -X GET 'https://app.kivorh.com.br/api/public/v1/assinaturas/documentos/<id>' \
-H 'Authorization: Bearer <chave>'{}/assinaturas/documentos/{id}/arquivoEscopo exigido: assinaturas:read
| Nome | Local | Tipo | Descrição |
|---|---|---|---|
id | path | string (uuid) | — |
versao | query | string | — |
curl -X GET 'https://app.kivorh.com.br/api/public/v1/assinaturas/documentos/<id>/arquivo' \
-H 'Authorization: Bearer <chave>'/assinaturas/documentos/{id}/cancelamentoEscopo exigido: assinaturas:write
| Nome | Local | Tipo | Descrição |
|---|---|---|---|
id | path | string (uuid) | — |
Idempotency-Key | header | string | Repetir a mesma chave com o mesmo corpo devolve a resposta original (header Idempotent-Replayed: true). |
| Campo | Tipo | Obrigatório | Descrição |
|---|---|---|---|
motivo | string | Sim | — |
curl -X POST 'https://app.kivorh.com.br/api/public/v1/assinaturas/documentos/<id>/cancelamento' \
-H 'Authorization: Bearer <chave>' \
-H 'Content-Type: application/json' \
-d '{"motivo":"texto"}'{}/assinaturas/documentos/{id}/lembretesEscopo exigido: assinaturas:write
| Nome | Local | Tipo | Descrição |
|---|---|---|---|
id | path | string (uuid) | — |
Idempotency-Key | header | string | Repetir a mesma chave com o mesmo corpo devolve a resposta original (header Idempotent-Replayed: true). |
curl -X POST 'https://app.kivorh.com.br/api/public/v1/assinaturas/documentos/<id>/lembretes' \
-H 'Authorization: Bearer <chave>'{}/assinaturas/documentos/{id}/linksEscopo exigido: assinaturas:write
| Nome | Local | Tipo | Descrição |
|---|---|---|---|
id | path | string (uuid) | — |
| Campo | Tipo | Obrigatório | Descrição |
|---|---|---|---|
signatario_id | string (uuid) | Não | Testemunha na vez (vazio = colaborador) |
curl -X POST 'https://app.kivorh.com.br/api/public/v1/assinaturas/documentos/<id>/links' \
-H 'Authorization: Bearer <chave>' \
-H 'Content-Type: application/json' \
-d '{"signatario_id":"00000000-0000-0000-0000-000000000000"}'{}/assinaturas/modelosEscopo exigido: assinaturas:read
curl -X GET 'https://app.kivorh.com.br/api/public/v1/assinaturas/modelos' \
-H 'Authorization: Bearer <chave>'{
"cliente": 12,
"pagina": 1,
"por_pagina": 50,
"total": 1,
"dados": [
{
"id": "00000000-0000-0000-0000-000000000000"
}
]
}/recrutamento/candidaturasEscopo exigido: recrutamento:read
| Nome | Local | Tipo | Descrição |
|---|---|---|---|
pagina | query | integer | — |
por_pagina | query | integer | — |
vaga_id | query | string (uuid) | — |
status | query | string | — |
desde | query | string (date-time) | — |
curl -X GET 'https://app.kivorh.com.br/api/public/v1/recrutamento/candidaturas' \
-H 'Authorization: Bearer <chave>'{
"cliente": 12,
"pagina": 1,
"por_pagina": 50,
"total": 1,
"dados": [
{
"id": "00000000-0000-0000-0000-000000000000"
}
]
}/recrutamento/vagasEscopo exigido: recrutamento:read
| Nome | Local | Tipo | Descrição |
|---|---|---|---|
pagina | query | integer | — |
por_pagina | query | integer | — |
status | query | string | — |
atualizado_desde | query | string (date-time) | — |
curl -X GET 'https://app.kivorh.com.br/api/public/v1/recrutamento/vagas' \
-H 'Authorization: Bearer <chave>'{
"cliente": 12,
"pagina": 1,
"por_pagina": 50,
"total": 1,
"dados": [
{
"id": "00000000-0000-0000-0000-000000000000"
}
]
}/eventosEscopo exigido: eventos:read
| Nome | Local | Tipo | Descrição |
|---|---|---|---|
apos | query | string | — |
limite | query | integer | — |
tipos | query | string | — |
curl -X GET 'https://app.kivorh.com.br/api/public/v1/eventos' \
-H 'Authorization: Bearer <chave>'{
"cliente": 1,
"dados": [
{
"id": "evt_1024",
"tipo": "colaborador.admitido",
"criado_em": "2026-09-28T12:00:00Z",
"cliente": 12,
"empresa_id": "00000000-0000-0000-0000-000000000000",
"dados": {
"colaborador_id": "00000000-0000-0000-0000-000000000000",
"pessoa_id": "00000000-0000-0000-0000-000000000000",
"empresa_id": "00000000-0000-0000-0000-000000000000",
"matricula": "1024",
"nome": "Maria Souza",
"status": "ativo",
"data_admissao": "2026-09-01",
"origem_cadastro": "api"
}
}
],
"proximo_apos": "texto",
"tem_mais": true
}