De um host vazio até o seu primeiro processo criado e consultado, em poucos minutos.
Esta página executa o Human Plugin junto com um container PostgreSQL descartável, para um início rápido no seu ambiente. Para fazer o deploy, veja Docker Compose ou Kubernetes.
Pré-requisitos
- Docker 24 ou superior, em
linux/amd64oulinux/arm64(o Docker Desktop no macOS funciona). - As credenciais do registry e a chave de acesso da Unico. Veja Pré-requisitos e acesso.
1. Obtenha a imagem
Faça login no registry da Unico com o seu usuário e token, uma vez por host:
echo "<token>" | docker login pkg.unico.run -u <username> --password-stdin
docker pull pkg.unico.run/human-plugin-api:latest
2. Inicie o PostgreSQL e o Human Plugin
docker network create human-plugin
docker run -d --name human-plugin-db --network human-plugin \
-e POSTGRES_USER=human_plugin -e POSTGRES_PASSWORD=human_plugin -e POSTGRES_DB=human_plugin \
postgres:16
Defina a sua chave de acesso no shell e depois inicie o Human Plugin:
export HUMAN_API_ACCESS_KEY='<your access key>'
docker run -d --name human-plugin --network human-plugin --stop-timeout 60 -p 127.0.0.1:8080:8080 \
-e HUMAN_API_ACCESS_KEY \
-e POSTGRES_ADDRESS_HOST=human-plugin-db \
-e POSTGRES_USER=human_plugin \
-e POSTGRES_PASSWORD=human_plugin \
-e POSTGRES_SSL_MODE=disable \
pkg.unico.run/human-plugin-api:latest
POSTGRES_SSL_MODE=disable serve apenas para este banco local. Mantenha o padrão, require, em qualquer outro. Veja Configuração.
Verifique se o Human Plugin está pronto:
curl --fail http://127.0.0.1:8080/health/ready
Você deve ver {"status":"ok"}. Se o comando falhar, docker logs human-plugin mostra o motivo.
3. Crie um processo
Escolha um dos fluxos. clientId, correlationId e credential são os mesmos em todos os fluxos.
- humantoken (a pessoa captura)
- api+humantoken (você envia a selfie)
A pessoa tira a selfie na jornada de captura. A resposta traz o link para ela.
curl -s -X POST http://127.0.0.1:8080/v1/processes \
-H 'Content-Type: application/json' \
-d '{
"flow": "humantoken",
"clientId": "client-a",
"correlationId": "quickstart-001",
"credential": { "type": "DUI_TYPE_NG_BVN", "value": "<document number>" },
"callbackUri": "https://example.com/callback"
}'
{
"id": "b063041c-7529-4e70-a2b4-c71c00f19801",
"state": "PROCESS_STATE_CREATED",
"token": "<SDK token>",
"link": "https://…"
}
Abra o link em um celular e tire a selfie. O token e o link são retornados somente aqui: o Human Plugin não os armazena.
O seu back-end já tem a selfie e a envia em imageBase64. A resposta é final, com o Human Token e a inteligência.
curl -s -X POST http://127.0.0.1:8080/v1/processes \
-H 'Content-Type: application/json' \
-d '{
"flow": "api+humantoken",
"clientId": "client-a",
"correlationId": "quickstart-002",
"credential": { "type": "DUI_TYPE_NG_BVN", "value": "<document number>" },
"imageBase64": "<base64 selfie>"
}'
{
"id": "5d1f7c2e-1b8a-4e0f-9a4b-2f6c3d9e8a71",
"state": "PROCESS_STATE_FINISHED",
"data": {
"humanToken": { "value": "6d3d71…", "status": "validated" },
"ndocs": {
"distinctClientsCount": 1,
"transactionsCount": 1,
"firstSeen": "2026-11-03",
"lastSeen": "2026-11-03",
"credentials": [
{ "type": "DUI_TYPE_NG_BVN", "countryCode": "NGA", "distinctCredentialCount": 1 }
]
}
}
}
idé o id próprio do Human Plugin para o processo. Guarde-o: é a única forma de ler o processo depois.correlationIdé a sua referência e precisa ser único. Reutilizar um retorna409 CORRELATION_ID_ALREADY_USED.credentialé o documento da pessoa. Envienullquando não houver. Os tipos que você pode usar estão no catálogo de atributos.data.humanTokendiz quem é a pessoa, edata.ndocsé a inteligência da pessoa: o que ela já fez com você. Veja Inteligência.- Com uma Journey, o processo finalizado também tem
data.liveness:livequando a captura veio de uma pessoa viva,not_livequando não veio. Veja O resultado emdata.
4. Leia de volta
Substitua o id pelo da sua resposta:
curl -s http://127.0.0.1:8080/v1/processes/b063041c-7529-4e70-a2b4-c71c00f19801
Uma Journey permanece em PROCESS_STATE_CREATED até a pessoa concluir a captura. Leia de novo depois disso: a resposta passa para PROCESS_STATE_FINISHED, com data.humanToken, data.liveness e data.ndocs. Confirme que data.liveness.value é live antes de confiar no resultado.
5. Limpe o ambiente
docker rm -f human-plugin human-plugin-db && docker network rm human-plugin
Próximos passos
- Fluxos: qual fluxo usar e o que cada um exige.
- Criar um processo: todos os campos e regras.
- Integre o seu backend: o que armazenar e como tratar falhas.
- Human Token Journey: a jornada de captura.
- Guias de captura para Web, Android, iOS, Ionic, React Native e Flutter: o lado do front-end da captura.
- Execute o Human Plugin na sua infraestrutura