Desenvolvedor — chaves de API e API REST
Emita e gerencie chaves de API, configure escopos e use a API REST da Certivant para criar solicitações de verificação e sincronizar o status de KYC de forma programática a partir dos seus próprios sistemas.
O que ela faz
A API REST da Certivant permite que os seus próprios sistemas criem solicitações de verificação, enviem documentos e consultem o status — sem passar pelo painel. Dois casos de uso principais:
- Incorporar a verificação ao seu próprio fluxo de cadastro. O seu formulário de cadastro envia os dados ao seu back-end, o back-end chama a Certivant e o solicitante recebe um link do fluxo hospedado da Certivant.
- Sincronizar o status da verificação com o seu data warehouse ou CRM. Combine com webhooks para que os seus sistemas sejam atualizados a cada mudança de status.
A autenticação da API é feita por chaves de API emitidas no painel. A documentação completa dos endpoints fica em /app/{your-org}/kyc/developer — esta página cobre o gerenciamento de chaves e a visão geral conceitual.
Onde encontrar
KYC → Desenvolvedor na barra lateral esquerda. (As chaves de API ficavam nas configurações de KYC/B — agora elas têm uma página própria em Desenvolvedor.)
O Portal do Desenvolvedor é um hub único com um menu à esquerda:
- Visão geral e início rápido — a sua URL base, a autenticação e uma requisição pronta para copiar e colar em 8 linguagens (cURL, JavaScript, TypeScript, Python, PHP, Go, Java, C#). Os trechos já vêm preenchidos com o seu host real e um marcador no lugar da sua chave.
- Chaves de API — liste, crie e revogue as suas chaves.
- Referência de endpoints — todos os endpoints de integração (
/v1) com método, caminho, escopos e parâmetros, além de um link para o API Playground interativo. - Manipuladores de webhook — manipuladores prontos que verificam a assinatura, em 6 linguagens (veja também Webhooks).
- Limite de taxa — o limite efetivo por minuto da sua organização, exibido somente para leitura.
- Perguntas frequentes — as dúvidas mais comuns de quem faz a integração.
Emita uma chave de API
Clique em Nova chave
O cartão Chaves de API no topo da página Desenvolvedor lista as suas chaves com ambiente, permissões, data de criação e último uso. Cada linha tem botões para editar, rotacionar e revogar a chave.

Uma caixa de diálogo é aberta.

Dê um nome
Escolha um rótulo que diga onde a chave é usada: "Back-end de produção (Heroku)", "Pipeline de CI", "Dev local — notebook da Alice". O nome aparece nos registros de auditoria junto com cada ação da API.
Escolha os escopos
As permissões são definidas por chave. Há duas formas de concedê-las, e você pode combiná-las:
| Escopo | O que permite |
|---|---|
kyc:read | Ler tudo: solicitações, documentos, formulários, análises. |
kyc:write | Criar e alterar itens: solicitações, envio de documentos, envio de formulários, verificações ao vivo. |
kyc:submit | Liberar uma solicitação para o processamento automático. |
kyc:manage | Ações privilegiadas: substituir decisões, excluir documentos, apagar ou exportar os dados de um solicitante. |
Ou escolha permissões mais restritas, por recurso (Read, Write, Submit, Manage para cada recurso):
| Recurso | Escopos | Abrange |
|---|---|---|
| Verificações | verifications:read · write · submit · manage | Solicitações de verificação, KYB, EDD, sinais de fraude |
| Formulários | forms:read · write · manage | Lista de formulários, envio de formulário, acompanhamento de entrega |
| Documentos | documents:read · write · manage | Documentos da solicitação |
| Verificação de identidade ao vivo | live_id:read · write | Agendamento e acompanhamento das chamadas de verificação ao vivo |
| Webhooks | webhooks:read · manage | Endpoints de webhook (devem ser concedidos explicitamente) |
| Análises | analytics:read | Análises e o resumo de triagem |
| Privacidade e exclusão | privacy:manage | Solicitações de exclusão, apagamento, exportação por solicitante |
Manage em um recurso inclui todas as outras ações desse recurso. Um escopo por recurso nunca vai além do seu próprio recurso: uma chave com apenas forms:read não consegue ler solicitações de verificação.
Escolha o mínimo de escopos de que a chave realmente precisa. Uma chave para "enviar um formulário a partir do nosso fluxo de cadastro" só precisa de forms:write.
(Opcional) Restrinja a chave
- Formulários — limite a chave a formulários específicos. Ela só poderá listar, enviar e criar verificações por meio desses formulários e só verá as verificações criadas por meio deles (lista, detalhe, documentos, resumo, análises). Qualquer outra coisa é recusada com
403 form_not_allowed. Uma chave restrita a formulários não consegue criar uma verificação sem informar um dos seus formulários (formId) e não pode usar os endpoints de apagamento de solicitante, solicitação de exclusão, reutilização e verificação ao vivo. As verificações que já existiam antes de essa regra ser aplicada ficam visíveis para uma chave restrita a formulários depois que a Certivant executa o preenchimento retroativo único. - Fluxos de trabalho — limite a chave a fluxos de trabalho de automação específicos. Para cada verificação que a chave criar, somente esses fluxos de trabalho poderão ser executados (quem quer que os dispare depois — o solicitante, uma decisão, um revisor); os demais fluxos de trabalho são ignorados para essa verificação. As verificações criadas pelo painel, por solicitantes em um formulário público ou por outras chaves não são afetadas. Nenhuma chamada de API falha por causa dessa restrição.
Deixe tudo desmarcado para não ter restrição.
- Endereços IP — informe os endereços IPv4/IPv6 ou intervalos CIDR a partir dos quais a chave pode ser usada (um por linha, por exemplo
203.0.113.7,198.51.100.0/24,2001:db8::/32). As requisições de qualquer outro endereço são recusadas com403 ip_not_allowed.

Você pode alterar os escopos, as restrições e a expiração depois com Editar (o ícone de lápis) — o segredo e o ambiente não podem ser alterados.

(Opcional) Expiração
Defina uma data em que a chave expira automaticamente. Recomendado para integrações de curta duração (tokens de CI, demonstrações). As chaves de produção geralmente não têm expiração; rotacione-as em um cronograma. Uma chave expirada retorna 401 api_key_expired.
Escolha o ambiente
As chaves Live começam com ck_live_ e as chaves Test com ck_test_ (veja Live vs. test abaixo).
Crie
A chave é exibida uma única vez em uma janela modal. Copie-a agora — não será possível recuperá-la depois. O painel exibe apenas o prefixo (por exemplo ck_live_a3f1), para que você identifique as chaves sem expô-las.
Use a chave
Envie-a no cabeçalho Authorization:
Authorization: Bearer ck_live_a3f...
As chaves criadas antes do formato ck_live_ / ck_test_ (que começam com kyk_) continuam funcionando sem alterações.
O caminho mais rápido para uma integração funcional:
Crie uma solicitação
curl https://api.certivant.com/api/v1/kyc/requests \
-H "Authorization: Bearer $CV_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"type": "INDIVIDUAL",
"applicant": {
"fullName": "Jane Doe",
"email": "jane@example.com"
}
}'
Retorna o id da nova solicitação e uma URL de uso único na qual o solicitante envia os documentos.
Envie o solicitante para a URL
Você pode enviá-la por e-mail por conta própria, incorporá-la ao seu fluxo de cadastro ou, em vez disso, deixar que a Certivant envie o e-mail pelo fluxo "Enviar convite" do painel.
Receba o resultado por webhook OU consulte periodicamente
- Webhook (recomendado): registre um endpoint que trate
kyc.request.approved/rejected/escalated. Veja Webhooks. - Consulta periódica (polling):
GET /api/v1/kyc/requests/{id}retorna o status atual. Intervalo recomendado: 30 s ou mais.
Atribuição a parceiro / subtenant
Se você executa verificações em nome de muitos clientes finais a partir de uma única organização — o clássico modelo de parceiro / revendedor, por exemplo uma plataforma de assinatura eletrônica que verifica signatários de centenas de empresas — não é preciso ter uma organização por cliente. Marque cada solicitação com dois campos opcionais ao criá-la pela API:
subTenantName— o nome de exibição do cliente final (por exemplo "Acme Corp").subTenantExternalId— o seu id interno desse cliente (por exemplocust_8842).
Depois de marcadas, você pode:
- Filtrar o endpoint de listagem por
subTenantExternalId(GET /api/v1/kyc/requests?subTenantExternalId=cust_8842). - Direcionar webhooks — os dois campos são repetidos em cada envelope de evento, de modo que o seu manipulador sabe a qual cliente um resultado pertence sem precisar fazer uma consulta.
- Filtrar os painéis — Uso de KYC/B, Registro de auditoria, Monitoramento, Relatórios e Análises ganham um filtro de Subtenant assim que alguma solicitação tiver as marcações, e as listas de KYC/KYB podem exibir as colunas Subtenant e ID externo (ocultas por padrão — ative-as no menu de colunas).
Veja a referência da API para o formato exato da requisição: Solicitações de KYC → Criar uma solicitação.
Limites de taxa
O limite de requisições por minuto da sua API é definido pelo seu plano (valores típicos: 60/min no Launch, 300/min no Pro/Scale, 600/min no Enterprise). O teto exato da sua organização é exibido somente para leitura na página Desenvolvedor, e cada resposta da API o traz no cabeçalho X-RateLimit-Limit. Cada chave é medida de forma independente em relação a esse teto.
Quando você o excede, as requisições retornam HTTP 429 Too Many Requests com X-RateLimit-Reset (segundos até a janela ser reiniciada). Aguarde e tente novamente.
Precisa de um teto maior? O seu superadministrador o define — ele pode aumentar o limite do seu cliente até o teto do plano em Admin → Clientes → (sua organização) → Editar organização (um teto maior exige migrar para um plano superior). O limite é controlado pelo operador: os tenants podem visualizá-lo, mas não alterá-lo. Veja a referência para desenvolvedores para conhecer toda a mecânica: Limites de taxa.
Boas práticas de segurança
- Guarde as chaves em variáveis de ambiente ou em um gerenciador de segredos. Nunca as envie ao git nem as compartilhe em chats. Chaves enviadas a repositórios públicos costumam ser coletadas por robôs em poucos minutos.
- Uma chave por ambiente. Não compartilhe uma chave
ck_live_...entre homologação e produção — a rotação de uma não deve afetar a outra. - Use chaves com escopo restrito. Uma chave somente leitura para o monitoramento e uma chave de escrita para o serviço de cadastro é mais seguro do que uma única chave onipotente em todos os lugares.
- Prenda as chaves aos seus servidores. Adicione a lista de IPs permitidos para chaves usadas apenas a partir de endereços fixos.
- Rotacione a cada trimestre. Use Rotacionar (abaixo): a chave antiga continua funcionando durante a sobreposição que você escolher, e assim você implanta a nova sem tempo de inatividade. O registro de auditoria registra a troca.
- Fique atento a usos não autorizados. A lista de chaves mostra quando e a partir de qual endereço cada chave foi usada pela última vez, e o registro de auditoria registra a criação, as edições, a rotação e a revogação das chaves. Investigue qualquer endereço que você não reconheça.
Rotacione uma chave

Desenvolvedor → Chaves de API → Rotacionar cria uma substituta com o mesmo rótulo, as mesmas permissões, restrições, lista de IPs permitidos e expiração, e exibe a nova chave uma única vez.
- Sobreposição (0 a 168 horas, padrão 24). A chave antiga continua funcionando durante esse período e depois retorna
401 api_key_rotated. Defina0para revogar a chave antiga imediatamente. - A lista marca a chave antiga como "Rotacionada — a chave antiga funciona até …" e a nova como "Substitui uma chave rotacionada". Uma chave que já foi rotacionada não pode ser rotacionada novamente; rotacione a substituta dela.
- Você também pode editar ou revogar a chave antiga durante a sobreposição, se precisar cortá-la antes.
Revogue uma chave
Quando uma chave for comprometida, vazada ou não for mais necessária:
- Desenvolvedor → Chaves de API → menu de três pontos → Revogar.
- Entra em vigor imediatamente. Qualquer requisição em andamento que use a chave recebe 401 na próxima chamada.
- Não pode ser desfeito — não existe um botão para "desfazer a revogação". Emita uma nova chave se mudar de ideia.
A revogação é registrada no registro de auditoria, junto com o usuário que a realizou.
Live vs. test
Toda chave é:
- Test (
ck_test_...) — destinada a desenvolvimento e CI. - Live (
ck_live_...) — destinada à produção.
O ambiente marca o uso: cada resposta traz X-Certivant-Environment: test ou live, e o painel exibe o selo ao lado da chave, para que você distinga nos seus logs o tráfego de teste do tráfego de produção.
As chaves de teste não isolam os dados. Elas leem e gravam as mesmas verificações que as suas chaves live. O único ambiente de testes (sandbox) é aquele em que toda organização nova começa: até que a Certivant tenha verificado a sua organização, os recursos de verificação live ficam bloqueados para todas as chaves dela. Use uma organização separada se precisar de dados de teste totalmente separados.
Solução de problemas
401 Unauthorized
O error.reason no corpo da resposta informa o motivo:
error.reason | Significado |
|---|---|
missing_api_key | Não há cabeçalho Authorization: Bearer …. |
invalid_api_key | A chave não existe (erro de digitação, truncada, organização errada). |
api_key_revoked | A chave foi revogada. |
api_key_expired | A data de expiração da chave já passou. |
api_key_rotated | A chave foi rotacionada e a janela de sobreposição terminou. Use a substituta. |
403 Forbidden
error.reason:
error.reason | Significado |
|---|---|
insufficient_scope | A chave não tem o escopo exigido pelo endpoint (a mensagem informa os escopos aceitos). Edite a chave ou emita uma nova. |
ip_not_allowed | A requisição veio de um endereço que não está na lista de IPs permitidos da chave. |
form_not_allowed | A chave está restrita a outros formulários: o formulário, ou a verificação solicitada, não foi criado por meio de nenhum deles. |
429 Too Many Requests
Você está sendo limitado por taxa. Consulte o cabeçalho Retry-After (em segundos) e aguarde de acordo. Para um volume sustentado, peça um limite maior.
"Perdi o valor da chave"
As chaves são exibidas uma única vez. Não há recuperação. Revogue a chave antiga e emita uma nova — a sua equipe terá de atualizar o novo valor em todos os lugares onde o antigo foi implantado.
Veja também
- Webhooks — combine com a API para uma integração completa.
- Lista e detalhe de KYC — a visão, no painel, das solicitações criadas pela API.
- Registro de auditoria — toda chamada de API aparece aqui.
Webhooks
Receba eventos do Certivant em tempo real nos seus próprios sistemas quando as verificações mudarem de status, com configuração, validação de assinatura HMAC, cronograma de novas tentativas e referência completa dos tipos de evento.
Tipos de documento, validade e atualidade
Escolha quais documentos de identidade e de empresa a Certivant aceita, defina a idade máxima de um documento e decida o que acontece quando ele está vencido, antigo demais ou quando a data não pode ser lida, tanto para KYC quanto para KYB.