Docs

Uma API de atos com contrato versionado e cliente gerado dele,
webhooks assinados e a jornada por link, sem código.

Categoria
RecursosDocsAPI v1
HummandDocs

A integração é um ato: o cliente cria, recebe um link, a pessoa cumpre as etapas no próprio celular, e o ato termina com um recibo. Tudo o que o painel faz, a API faz; o contrato é o mesmo.

O que está aqui é o mapa. A referência completa da API fica atrás do acesso da borda até a documentação pública. O cliente TypeScript é gerado do contrato e conferido no CI; nada é escrito à mão.

Atos

Descrição

Criar, acompanhar e concluir. Autenticação por chave de API do cliente, com escopo; as etapas da pessoa são autorizadas pelo token do próprio ato, nunca pela chave.

1.0Criar um atodisponível

POST /v1/atos com o tipo, o sujeito (uma referência opaca do cliente e, se houver, a imagem de referência, cifrada só enquanto o ato está aberto, até 30 dias), o contexto opaco e o nível mínimo. O gateway resolve a política e devolve as etapas e o link da jornada.

Com a imagem de referência, a presença viva vem com match: é a mesma pessoa da referência. Sem ela, a etapa é presença viva, sem match.

Tipos cujas etapas ainda não executam respondem 501 dizendo qual etapa falta; nada é simulado.

Ver Ato
2.0Acompanhar e concluirdisponível

GET /v1/atos com filtros por tipo, estado, resultado, referência do cliente, lote e período, e a trilha de etapas de cada ato (etapas=0 dispensa); GET /v1/atos/contagem, o total da mesma consulta; GET /v1/atos/exportar, a mesma consulta em CSV, até 50 000 linhas e sem dado do titular; GET /v1/atos/{id} com as etapas na ordem do servidor, o escopo, o encadeamento, o contexto só como hash e o veredito minimizado; POST /v1/atos/{id}/cancelar. A pessoa avança por POST /v1/atos/{id}/etapas/{nome}, pelo token do ato.

2.1Abrir a evidência, e ler quem abriudisponível

POST /v1/atos/{id}/evidencia abre o que o ato guarda cifrado, e exige uma pessoa com nível de supervisor, um motivo declarado e deixa registro. Ausência vai declarada em três estados distintos: aberto, apagado e nunca houve, porque somar os dois últimos apagaria a diferença entre um apagamento que aconteceu e um campo nunca preenchido.

GET /v1/atos/{id}/evidencia/acessos devolve quem abriu, quando e com que motivo, com as aberturas feitas pela Hummand junto e o elo de hash de cada uma. É a rota que o painel do cliente carrega antes de qualquer abertura. Cada linha traz o elo anterior e o id da requisição, e é conferível sozinha.

GET /v1/atos/{id}/acessos e GET /v1/acessos devolvem os recibos assinados humanproof-acesso/1 dessas aberturas, numa cadeia própria por cliente.

3.0Lote, mandato e exceçãodisponível

POST /v1/atos/lote cria vários atos do mesmo tipo com links e prazo comum, para campanhas e prova de vida; uma campanha maior se cria em partes de até 500, que seguem como uma só pelo lote_id. GET /v1/atos/lotes lista as campanhas, com nome, responsável e andamento; GET /v1/atos/lotes/{id}/relatorio presta contas de cada ato com o recibo que o prova, e GET /v1/atos/lotes/{id}/recibos devolve o trecho contínuo da cadeia; GET /v1/atos/lotes/{id}/pendentes devolve quem falta, com link reemitido. POST /v1/atos/{id}/referencia anexa a foto do cadastro depois da criação. POST /v1/atos/prova-excecao/fonte consulta uma fonte de estado vital a pedido e, se houver alerta, abre a prova de exceção.

Mandato: GET /v1/mandatos lista os concedidos, com quem recebeu a autoridade, situação e validade; GET /v1/mandatos/{id} devolve o estado e o escopo inteiro, para o executor comparar com a ação que a Hummand não conhece; POST /v1/mandatos/{id}/revogar derruba um; POST /v1/mandatos/revogar-lote derruba todos os de um mandatário ou de um cliente, com um recibo por mandato derrubado, porque o que um auditor confere é cada autoridade que caiu.

4.0Política e alertasdisponível

GET /v1/politica devolve a política efetiva por tipo: nível, etapas, prazo, rótulo e se é executável hoje. PUT /v1/politica, pelo Administrador, endurece a global por tipo, e cada edição é uma versão nova, listada em GET /v1/politica/versoes; GET /v1/politica/etapas diz o estado real de cada etapa. GET /v1/alerts computa as três situações na leitura, com filtro por tipo.

Ver Política
5.0Rotas legadas e avulsasdisponível

As rotas de checks seguem como alias por uma versão. POST /v1/document valida identidade civil (mock ou real, conforme o credenciamento). POST /v1/match e POST /v1/cpf avulsos respondem 501 por desenho: fora de um ato, não há prova.

Recibos e webhooks

Descrição

O que sai do gateway sem ninguém pedir: o recibo de cada ato terminado e os eventos, assinados, sem dado pessoal.

1.0Recibosdisponível

GET /v1/atos/{id}/recibo devolve o recibo assinado, ou 202 enquanto pendente. GET /v1/recibos devolve o lote na ordem da cadeia, com filtro por data de emissão: é o que se exporta para verificar fora. GET /v1/verification-links/{token}/recibo é o comprovante de quem fez a jornada.

A chave pública está em /.well-known/humanproof/keys.json, como JWKS.

Ver Recibo
1.1Ponto de conferência da cadeiadisponível

GET /v1/recibos/ponto devolve um objeto assinado com a mesma chave dos recibos, dizendo quantos recibos existiam e qual era o último hash. É o que fecha o único caso que o encadeamento sozinho não cobre: o corte do fim.

Quem audita guarda o ponto fora da Hummand e compara depois. Não há tabela nossa de pontos emitidos: a única cópia que vale é a de quem audita.

Ver a cadeia
2.0Webhooksdisponível

Endpoints por cliente com segredo rotacionável, entrega assinada e log de entregas; ping de teste pelo painel. Onze eventos assináveis, em dois vocabulários: os seis do check legado (completed, approved, rejected, needs_review, failed, expired), os três do ato (ato.concluido, ato.em_revisao, ato.expirado), recibo.emitido e mandato.revogado.

Os dois vocabulários convivem porque o payload legado não carrega tipo, nível nem resultado, e sem eles um ato delegado de nível 0 chegaria indistinguível de uma presença recorrente. mandato.revogado existe para quem cacheia autoridade parar de aceitá-la sem consultar a Hummand a cada ação.

O payload é sem dado pessoal por construção: ids, tipo, estado, resultado e hashes; nunca CPF, nunca conteúdo.

Na sexta falha o evento fica esgotado, sem se perder: GET /v1/webhooks/esgotados lista os esgotados, e POST /v1/webhooks/esgotados/{id}/reentregar devolve um à fila, com o mesmo event_id, para o receptor deduplicar.

3.0Notificações do paineldisponível

As mesmas transições viram notificações no painel, com preferências por canal e por tipo.

Jornada, painel e cliente

Descrição

Sem código: o painel gera o link e a pessoa cumpre as etapas no próprio celular. Com código: o cliente TypeScript gerado do contrato.

1.0Jornada por linkdisponível

verificar.hummand.com.br/s/{token} renderiza as etapas na ordem do servidor: transparência do contexto, consentimentos geral e biométrico, presença viva sob demanda, resultado e comprovante. Uma etapa que o gateway não executa aparece como ainda não disponível, nunca como sucesso.

A foto do cadastro pode ser anexada a cada ato depois da criação, também no lote, pelo painel ou por POST /v1/atos/{id}/referencia; com ela, a presença vem com match. Sem ela, a etapa é presença viva, sem match.

Sandbox com resultado simulado para testar a integração sem consumir presença nem entrar na cadeia.

2.0Painel do clientedisponível

dash.hummand.com.br: criar ato e campanha em lote, atos com busca e exportação em CSV, dossiê do ato, busca, minha fila, recibos com exportação do lote, mandatos, alertas, a tela ao vivo, orquestrações editáveis, ciclos de reverificação, unidades, privacidade com retenção, chaves de API, equipe com níveis de acesso e revisão de acessos, sessões, senha, passkey e SSO, webhooks, auditoria, analytics por período, uso e suporte.

Rotas que o painel usa e a API expõe com o mesmo contrato: GET /v1/ao-vivo, GET /v1/analytics com período livre e comparação, GET /v1/audit paginada e filtrável, GET /v1/auth/sessions, POST /v1/auth/sessions/encerrar-outras e POST /v1/auth/senha.

Desde a 0.23.0: GET /v1/atos/{id}/dossie, GET /v1/busca, GET /v1/atos/fila, POST /v1/atos/{id}/demonstracao (só ato de teste), /v1/auth/passkeys e POST /v1/auth/passkey, /v1/auth/sso/{provedor}/iniciar e /v1/sso, /v1/lista-ip, /v1/unidades, /v1/retencao e /v1/retencao/preservacoes, /v1/acessos/config e /v1/acessos/revisao, /v1/ciclos e /v1/suporte/chamados.

3.0Contrato e cliente TypeScriptdisponível

O contrato OpenAPI é exportado da aplicação e versionado; o cliente TypeScript é gerado dele e a versão acompanha a do gateway. O CI falha se contrato e cliente divergirem; nada é escrito à mão. Distribuição privada até decisão registrada.

4.0Referência completa

A referência interativa da API fica atrás do acesso da borda até a documentação pública. Peça o acesso pelo contato; a conversa é técnica, direto com quem constrói.

Contato
1.0

Verificar um recibo

Cole o JSON e a chave pública. Sem conta, sem envio: roda no seu navegador.

Abrir verificador
2.0

Falar com a gente

Uma conversa técnica, direto com quem constrói, sem script de vendas.

Contato