# Reuso de Documento

<https://unifokal.com/docs/modulos/doclink>

## Reuso de Documento

O módulo `doclink` existe para o titular que **já se verificou com você** não precisar fotografar o documento de novo. Ele compara a selfie de agora com a selfie da verificação anterior e, batendo, **reaproveita** a identidade já lida. O titular ainda faz a prova de vida: o que some do fluxo é a captura do documento, nunca a prova de que há uma pessoa ali.

**Disponível desde 11 de setembro de 2026.** Ele aparece na tabela de preços e no `GET /v1/capabilities` com preço e status `available`, e pode ser ligado num flow. Até essa data a venda estava pausada, e a trava nunca foi técnica: o código já estava pronto, e o que faltava era a decisão do nome público e a conta comercial de trocar ticket por conversão. No flow ele **substitui** a Verificação de Identidade e o Face Match, e **exige** o Liveness, que é o que impede reusar uma identidade com a foto de uma foto.

```
// doclink: reuso aprovado. A identidade vem da verificação de ORIGEM.
{ "module": "doclink", "passed": true, "outcome": "approved", "score": 92,
  "data": { "reused": { "full_name": "JOÃO SILVA", "birth_date": "04/11/1992",
                        "document_number": "12345678901" },
            "source": { "verification_id": "ver_2f8c1a90",   // id opaco NOSSO, não é dado do titular
                        "age_days": 34 },                    // idade da verificação de origem
            "similarity": 0.91 } }                           // 0..1 (não é porcentagem)

// o rosto NÃO bateu com o da origem -> failed, e a chave "data" não existe
{ "module": "doclink", "passed": false, "outcome": "failed", "score": 40,
  "reason": "reuse_mismatch" }

// não havia origem para reusar -> pending (desfecho DIFERENTE do de cima), e também sem "data"
{ "module": "doclink", "passed": null, "outcome": "pending", "score": 0,
  "reason": "reuse_source_unavailable" }
```

**O bloco `data` só existe no caminho aprovado, e isso é regra de segurança e não estética.** A identidade reaproveitada só é anexada depois que o rosto bate. Se fosse anexada antes, quem tivesse o `reference_id` de outra pessoa receberia os dados dela de volta sem provar nada. Nos dois caminhos que não aprovam (origem indisponível e rosto que não bateu), o item do `check_details` traz os campos comuns a todo check (`module`, `passed`, `outcome`, `score` e `reason`) e nenhum bloco de dado. Repare que os dois **não** têm o mesmo desfecho: rosto que não bateu é `failed`, e origem indisponível é `pending`, porque no primeiro caso medimos e no segundo não havia o que medir. Os dois terminam em **revisão humana**: nenhum vira recusa automática, e nenhum vira pedido de foto nova.

`similarity` é a similaridade **crua**, de 0 a 1, e o corte deste módulo é **mais duro** que o do Face Match comum, de propósito: aqui o rosto é a única coisa que autoriza reaproveitar um documento que ninguém está reapresentando. `source.age_days` diz quantos dias tem a verificação de origem, e existe para a sua política: você pode aceitar reuso de 30 dias e recusar o de 170, ainda que os dois tenham passado no nosso corte. E repare que `source.verification_id` é um **id nosso**, opaco, não o `reference_id` que você escolheu.
