---
title: Quickstart
description: Execute o Human Plugin e um banco de dados PostgreSQL com Docker, crie um processo de Human Token e leia-o de volta com curl.
canonical: https://developer.unico.io/pt-BR/human-plugin/get-started/quickstart
locale: pt-BR
generated_by: markdown-export
---

# Quickstart

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](/pt-BR/human-plugin/self-hosting/docker-compose) ou [Kubernetes](/pt-BR/human-plugin/self-hosting/kubernetes).

## Pré-requisitos

- Docker 24 ou superior, em `linux/amd64` ou `linux/arm64` (o Docker Desktop no macOS funciona).
- As credenciais do registry e a chave de acesso da Unico. Veja [Pré-requisitos e acesso](/pt-BR/human-plugin/get-started/prerequisites).

## 1. Obtenha a imagem

Faça login no registry da Unico com o seu usuário e token, uma vez por host:

```bash
echo "<token>" | docker login pkg.unico.run -u <username> --password-stdin
```

```bash
docker pull pkg.unico.run/human-plugin-api:latest
```

## 2. Inicie o PostgreSQL e o Human Plugin

```bash
docker network create human-plugin
```

```bash
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:

```bash
export HUMAN_API_ACCESS_KEY='<your access key>'
```

```bash
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](/pt-BR/human-plugin/self-hosting/configuration).

Verifique se o Human Plugin está pronto:

```bash
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.

<a id="3-create-a-process"></a>

## 3. Crie um processo

Escolha um dos [fluxos](/pt-BR/human-plugin/api-reference/create-process#flows). `clientId`, `correlationId` e `credential` são os mesmos em todos os fluxos.

### humantoken (a pessoa captura)

A pessoa tira a selfie na jornada de captura. A resposta traz o `link` para ela.

```bash
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"
  }'
```

```json
{
  "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.

### api+humantoken (você envia a selfie)

O seu back-end já tem a selfie e a envia em `imageBase64`. A resposta é final, com o Human Token e a inteligência.

```bash
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>"
  }'
```

```json
{
  "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 retorna `409 CORRELATION_ID_ALREADY_USED`.
- `credential` é o documento da pessoa. Envie `null` quando não houver. Os tipos que você pode usar estão no [catálogo de atributos](/pt-BR/human-plugin/additional-resources/attribute-catalog).
- `data.humanToken` diz quem é a pessoa, e `data.ndocs` é a inteligência da pessoa: o que ela já fez com você. Veja [Inteligência](/pt-BR/human-plugin/get-started/intelligence).
- Com uma Journey, o processo finalizado também tem `data.liveness`: `live` quando a captura veio de uma pessoa viva, `not_live` quando não veio. Veja [O resultado em `data`](/pt-BR/human-plugin/api-reference/create-process#result).

## 4. Leia de volta

Substitua o id pelo da sua resposta:

```bash
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

```bash
docker rm -f human-plugin human-plugin-db && docker network rm human-plugin
```

## Próximos passos

- [Fluxos](/pt-BR/human-plugin/api-reference/create-process#flows): qual fluxo usar e o que cada um exige.
- [Criar um processo](/pt-BR/human-plugin/api-reference/create-process): todos os campos e regras.
- [Integre o seu backend](/pt-BR/human-plugin/integrations/backend): o que armazenar e como tratar falhas.
- [Human Token Journey](/pt-BR/human-plugin/integrations/human-token-journey): a jornada de captura.
- Guias de captura para [Web](/pt-BR/human-plugin/integrations/web), [Android](/pt-BR/human-plugin/integrations/android), [iOS](/pt-BR/human-plugin/integrations/ios), [Ionic](/pt-BR/human-plugin/integrations/ionic), [React Native](/pt-BR/human-plugin/integrations/react-native) e [Flutter](/pt-BR/human-plugin/integrations/flutter): o lado do front-end da captura.
- [Execute o Human Plugin na sua infraestrutura](/pt-BR/human-plugin/self-hosting/overview)