> ## Documentation Index
> Fetch the complete documentation index at: https://docs.scanify.com.br/llms.txt
> Use this file to discover all available pages before exploring further.

# Confiabilidade da extração

> Como interpretar o bloco scanify e os indicadores de confiança da extração

Toda resposta de extração inclui um bloco `scanify` com metadados de confiabilidade. Use esses indicadores para decidir se aceita o resultado automaticamente, envia para revisão humana, ou rejeita.

## Exemplo de resposta com o bloco `scanify`

```json theme={"dark"}
{
  "request_id": "req_01HXXXXXXXXXXXXXX",
  "document_type": "BOLETO",
  "status": "success",
  "fields": {
    "amount": {
      "value": 1289.45,
      "confidence_score": 96
    },
    "due_date": {
      "value": "2026-06-15",
      "confidence_score": 88
    },
    "barcode": {
      "value": "23793.38128 60007.827136 95000.063305 1 90930000128945",
      "confidence_score": 99
    }
  },
  "processed_at": "2026-05-28T14:32:07.812Z",
  "scanify": {
    "reliability_score": 94,
    "reliability_level": "high",
    "missing_fields": [],
    "inconsistencies": [],
    "summary": "Boleto bancário do beneficiário ACME S.A. no valor de R$ 1.289,45 com vencimento em 15/06/2026.",
    "schema_version": "scanify/<versão>",
    "confidence_heatmap": {
      "amount": 96,
      "due_date": 88,
      "barcode": 99
    },
    "document_type_detection": {
      "source": "model",
      "provided_document_type": "BOLETO",
      "detected_document_type": "BOLETO",
      "confidence": 0.97,
      "accepted": true,
      "reason": "matches_provided_type"
    }
  }
}
```

## Campos do bloco `scanify`

| Campo                     | Tipo                          | Descrição                                                                                                                             |
| ------------------------- | ----------------------------- | ------------------------------------------------------------------------------------------------------------------------------------- |
| `reliability_score`       | número (0–100)                | Confiança agregada da extração (0–100), combinando confiança por campo e validações. Use como heurística — não é um contrato estável. |
| `reliability_level`       | `"high" \| "medium" \| "low"` | Faixa derivada do score: `>= 90` high, `>= 70` medium, abaixo disso low.                                                              |
| `missing_fields`          | `string[]`                    | Campos esperados pelo schema do `documentType` mas não retornados pelo modelo.                                                        |
| `inconsistencies`         | `string[]`                    | Mensagens sintetizadas a partir de erros de validação cruzada por campo.                                                              |
| `summary`                 | `string`                      | Resumo textual do documento gerado a partir do conteúdo OCR.                                                                          |
| `confidence_heatmap`      | `Record<string, number>`      | Confiança 0–100 por campo de primeiro nível.                                                                                          |
| `document_type_detection` | objeto                        | Resultado da detecção do tipo de documento (ver abaixo).                                                                              |
| `schema_version`          | `string`                      | Versão do schema do bloco `scanify`.                                                                                                  |

## Como usar `reliability_score`

O score é um inteiro entre 0 e 100. Sugestões de thresholds (ajuste conforme o seu domínio):

* `>= 90` — aceitar automaticamente.
* `70–89` — aceitar com revisão humana opcional.
* `< 70` — revisar antes de usar.

Esses valores são guias; nada é imposto pela API.

## Confiança por campo (`confidence_score`)

Cada item em `fields` pode ter um `confidence_score` próprio (0–100), combinando confiança da extração e validações.

Use o score por campo quando quiser aceitar parte dos dados e marcar o restante para revisão. O mesmo score por campo também aparece em `scanify.confidence_heatmap`, indexado pelo nome do campo.

## `document_type_detection`

Subcampos:

* `source` — origem da detecção (ex.: `model`, `user`).
* `provided_document_type` — valor que você passou em `documentType` na requisição (ou `null` se não passou).
* `detected_document_type` — tipo inferido a partir do conteúdo.
* `confidence` — confiança do classificador (0–1).
* `threshold` — limite mínimo para aceitar o tipo detectado.
* `accepted` — booleano. `true` se o tipo foi aceito; `false` se foi rejeitado.
* `reason` — código textual explicando a decisão (ex.: `matches_provided_type`, `confidence_below_threshold`).

Caso típico: você envia `documentType=BOLETO`, mas o conteúdo é uma NFE. O bloco mostra `accepted: false` com `reason` indicando a divergência — sinal para revisar o input antes de confiar no resultado.

## Inconsistências e campos faltantes

* `missing_fields` lista os campos esperados pelo schema do `documentType` que vieram nulos. Use para decidir se aceita parcialmente ou rejeita.
* `inconsistencies` lista erros sintetizados a partir das validações cruzadas que rodam após a extração (formato de documento, regras de domínio, consistência entre campos).

Quando os dois arrays estão vazios e `reliability_level` é `high`, a extração passou em todas as validações.

<CardGroup cols={2}>
  <Card title="Payload da resposta" icon="brackets-curly" href="/response-payload">
    Estrutura completa da resposta de extração.
  </Card>

  <Card title="Validação" icon="circle-check" href="/validation">
    Como as regras de validação por tipo de documento funcionam.
  </Card>

  <Card title="Tipos de documento" icon="folder-tree" href="/document-types">
    Tipos suportados e schemas de campos.
  </Card>

  <Card title="Erros" icon="triangle-exclamation" href="/errors">
    Códigos de erro, formato e como tratá-los.
  </Card>
</CardGroup>
