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

# Conta bancária: titularidade sem início de sessão

> Confirme com a Didit que uma conta bancária pertence à pessoa verificada sem início de sessão. Suporta IBAN, sort code, CLABE, CBU e IFSC.

A verificação de conta confirma que uma conta bancária pertence à pessoa que o seu fluxo já verificou, a partir dos dados da conta introduzidos por ela. Não há início de sessão bancário nem ecrã de consentimento: a pessoa introduz a sua conta no formato utilizado no seu país, e o banco confirma o nome associado à mesma face ao nome verificado num passo anterior.

É um dos dois [métodos de Verificação bancária](https://docs.didit.me/pt/core-technology/bank-verification/verification-methods.md), juntamente com o início de sessão bancário, e o valor do método é `account_lookup`. O envio de extrato bancário e os microdepósitos permanecem como alternativas de recurso após ambos, e a pessoa pode sempre [continuar sem verificação bancária](https://docs.didit.me/pt/core-technology/bank-verification/fallbacks.md). Para verificar uma conta a partir do seu backend sem uma sessão, por exemplo antes de um pagamento, utilize a [API de verificação de conta](https://docs.didit.me/pt/standalone-apis/bank-account-check.md).

> [!NOTE]
>
> A Verificação bancária confirma a propriedade de uma conta face a uma identidade estabelecida por **outro passo**, pelo que não constitui uma prova de identidade por si só. Coloque a Verificação de identidade, a Validação de base de dados, um questionário ou `expected_details` antes deste passo. A pessoa nunca escreve um nome para a verificação: a Didit compara sempre o nome que a sessão já verificou.

## Como funciona

**1. A pessoa escolhe o seu país**

No passo de Verificação bancária, a pessoa escolhe um país disponibilizado pelo passo. Quando a verificação de conta surgir em primeiro lugar, o passo abre um formulário curto no formato de conta desse país. Quando o início de sessão bancário surgir primeiro, a pessoa escolhe **Introduza os dados da sua conta** para aceder ao formulário.

**2. A pessoa introduz a sua conta**

Por exemplo, um IBAN, um sort code e um número de conta, ou uma CLABE. O fluxo de verificação constrói o formulário a partir do que a API devolve para esse país, pelo que um país adicionado posteriormente pela Didit não exige alterações do seu lado.

**3. A Didit verifica primeiro o formato**

Antes de faturar o que quer que seja, a Didit valida cada valor: o seu comprimento, os seus carateres, os seus dígitos de controlo e, no caso de um IBAN, se pertence ao país selecionado. Um valor inválido é recusado indicando o campo a corrigir. A pessoa corrige-o no momento e nenhuma tentativa é consumida.

**4. O banco verifica o nome na conta**

A Didit executa uma verificação face ao nome verificado pela sessão. Qualquer outro dado enviado pelo cliente é ignorado.

**5. O passo toma uma decisão**

A resposta converte-se num resultado de propriedade, e as ações do passo transformam-no no veredito exatamente da mesma forma que no início de sessão bancário.

## Onde a verificação está disponível

A cobertura é por país. Em produção, a verificação funciona hoje na Nigéria, no Gana e no Quénia. A Didit ativa-a país a país, assim que tiver uma rota com preço definido nesse local; um país sem essa rota não a disponibiliza, e os [preços da Verificação bancária](https://docs.didit.me/pt/getting-started/bank-verification-pricing.md) mostram sempre a lista atualizada. São adicionados novos países ao longo do tempo, e o passo lê sempre a lista atual, pelo que nunca precisa de alterar a sua integração quando um país é adicionado.

Dentro de um país abrangido, os métodos do passo determinam se a pessoa vê essa verificação:

* **A ordem do passo.** O parâmetro `bank_method_order` define quais os métodos disponibilizados por cada país e qual surge em primeiro lugar. O padrão, `["open_banking", "account_lookup"]`, inicia no início de sessão bancário e oferece a verificação de conta como recurso alternativo.
* **A ordem específica de um país.** O parâmetro `methods` num país em `bank_countries` substitui a ordem do passo para esse país, por exemplo `["account_lookup"]` apenas para a verificação de conta, ou `["account_lookup", "open_banking"]` para iniciar com ela.
* **Um banco indisponível.** Quando um país oferece a verificação de conta, esta também serve de recurso se o início de sessão bancário estiver degradado ou indisponível: o passo avança para o formulário de conta antes de ser solicitado qualquer consentimento, desde que a pessoa ainda tenha tentativas de verificação de conta disponíveis.
* **A verificação funciona nas rotas próprias da Didit.** Um passo executado através do seu próprio fornecedor do marketplace (`provider_key`) só a disponibiliza com a opção `fallback_to_native` ativa.
* **Contas empresariais.** Numa sessão de verificação de empresas, a verificação compara uma conta empresarial com a empresa verificada, nos países onde a Didit verifica contas empresariais.

Consulte [Escolher os métodos por país](https://docs.didit.me/pt/core-technology/bank-verification/verification-methods.md#escolher-os-métodos-por-país) para conhecer as regras aplicadas ao guardar as definições.

## O que a pessoa introduz

Estes são os formatos de conta que o formulário compreende. Não constituem uma lista de cobertura: o funcionamento da verificação num país depende de [onde está disponível](#onde-a-verificação-está-disponível), e o passo apresenta sempre os campos exatos para esse país.

| Formato da conta | Países | O que a pessoa introduz |
| - | - | - |
| IBAN | Países que utilizam IBAN | O IBAN completo, que deve pertencer ao país selecionado |
| Sort code e número de conta | Reino Unido | Um sort code de 6 dígitos e um número de conta de 8 dígitos |
| Routing number e número de conta | Estados Unidos | Um routing number ABA de 9 dígitos e o número de conta |
| Transit e institution number | Canadá | O número de trânsito e de instituição de 8 dígitos (o trânsito de 5 dígitos seguido da instituição de 3 dígitos) e o número de conta |
| BSB e número de conta | Austrália | Um BSB de 6 dígitos e o número de conta |
| CLABE | México | A CLABE de 18 dígitos, que já indica o banco |
| CBU ou CVU | Argentina | O CBU ou CVU de 22 dígitos, que já indica o banco |
| IFSC e número de conta | Índia | O IFSC de 11 carateres e o número de conta |
| NUBAN e código do banco | Nigéria | O NUBAN de 10 dígitos e o código ou BIC do banco |
| Número de conta | Outros países | O número de conta e um código de banco ou BIC onde o país o exigir |

Em alguns países, o formulário também solicita um número de registo: para contas empresariais e, em alguns países, para todas as contas.

Os espaços, traços e pontos são removidos e as letras convertidas para maiúsculas antes de um valor ser validado, para que a pessoa possa introduzir a conta tal como o seu banco a imprime.

## Ativar

Um novo passo disponibiliza a verificação da conta por predefinição, como alternativa ao início de sessão bancário. Para começar por esta opção, ou para a disponibilizar isoladamente, coloque `account_lookup` em primeiro lugar na ordem:

```json theme={null}
{
  "bank_method_order": ["account_lookup", "open_banking"]
}
```

Estas definições configuram a verificação:

| Definição | Efeito na verificação da conta |
| - | - |
| `bank_method_order`, `bank_countries.<ISO3>.methods` | Se um país disponibiliza a verificação e se esta surge antes ou depois do início de sessão bancário. |
| `bank_countries` | A verificação é executada apenas nos países que o passo disponibiliza. |
| `bank_reference_identity` | O passo cujo nome verificado serve de referência para verificar a conta. |
| `bank_account_check_max_attempts` | O número de verificações concedidas à pessoa, de `1` a `5` (`3` por predefinição). Uma contagem separada de `bank_max_attempts` do início de sessão bancário. |
| `bank_account_check_accept_close_match` | Ativado (predefinição): uma correspondência próxima segue para a confirmação de correspondência próxima ou para `bank_partial_match_action`. Desativado: qualquer correspondência próxima é considerada como não correspondência. |
| `bank_name_match_threshold`, `bank_partial_match_floor` | As mesmas faixas de pontuação de nome do início de sessão bancário: uma correspondência igual ou superior ao limiar (85 por predefinição) e uma correspondência próxima, a faixa de correspondência parcial, entre o piso (70 por predefinição) e o limiar. |
| `bank_use_provider_score` | Ativado (predefinição): a pontuação de nome própria da verificação decide quando for superior à da Didit, ou quando a verificação devolver uma pontuação mas nenhum nome do titular, passando `ownership.method` a indicar `provider_only`. Desativado: uma resposta sem nome do titular é `not_verifiable`. |
| `bank_suggest_holder_name` | Ativado (predefinição): numa correspondência próxima que indique o titular, a pessoa vê o nome e confirma se é o seu ou tenta outra conta. |

## Resultados

### Verificações que devolvem uma resposta

Cada uma destas é faturada uma vez e consome uma das verificações de conta da pessoa (`bank_account_check_max_attempts`). Até à conclusão do passo, a pessoa pode tentar novamente com outra conta enquanto restarem verificações. O resultado surge em `ownership.result`, exceto no caso de uma conta inexistente, que surge em `connection.reason_code`.

| A verificação devolve | Resultado | O que decide |
| - | - | - |
| A conta pertence à pessoa verificada | `match` | O passo aprova, a menos que outra das suas verificações determine o contrário. |
| Uma correspondência próxima que indica o titular | `partial_match` | Com `bank_suggest_holder_name` ativado, a pessoa confirma o nome ou tenta outra conta. A confirmação conclui o passo em `bank_partial_match_action` (`REVIEW` por predefinição). |
| Uma correspondência próxima com pontuação mas sem nome do titular | `partial_match` | `bank_partial_match_action` (`REVIEW` por predefinição). `ownership.method` indica `provider_only`. Isto requer `bank_use_provider_score` ativado, a predefinição; se estiver desativado, a resposta é `not_verifiable`. |
| A conta pertence a outra pessoa | `no_match` | `bank_no_match_action` (`DECLINE` por predefinição). |
| Uma resposta que não comparou nenhum nome | `not_verifiable` | `bank_not_verifiable_action` (`REVIEW` por predefinição). |
| Não existe nenhuma conta com estes dados | `ACCOUNT_NOT_FOUND` | A pessoa pode tentar outra conta enquanto restarem verificações. |

Com `bank_account_check_accept_close_match` desativado, ambas as correspondências próximas tornam-se um `no_match`, com o código de motivo `OWNER_NAME_MISMATCH`: nunca é pedido à pessoa que confirme o nome, e `bank_no_match_action` decide. O início de sessão bancário mantém as suas correspondências próximas em qualquer dos casos.

Assim que a pessoa tiver esgotado todas as verificações de conta e todas as tentativas de início de sessão bancário nos países em que também seja disponibilizado o início de sessão bancário, sem uma ligação bem-sucedida, o passo permanece aberto enquanto ainda lhe disponibilizar o envio de extrato com tentativas restantes: consulte [O envio de extrato](https://docs.didit.me/pt/core-technology/bank-verification/fallbacks.md#o-carregamento-de-extrato). Quando já não restar nenhuma alternativa, o passo termina em `bank_attempts_exhausted_action` (`DECLINE` por predefinição), a menos que uma tentativa anterior já tenha chegado a um veredito, como uma não correspondência de nome. Esse veredito mantém-se então válido.

### Resultados que nunca são faturados

Nenhum destes consome uma verificação. Cada um é apresentado em `connection.reason_code`.

| O que acontece | Código de motivo | O que se segue |
| - | - | - |
| A conta é recusada com os dados introduzidos, pela validação de formato da Didit ou pelo banco | `INVALID_ACCOUNT_INPUT`, enquanto a tentativa permanece aberta | A pessoa é informada sobre qual o campo a corrigir e faz a correção. |
| A verificação está indisponível de momento | `PROVIDER_UNAVAILABLE` | A pessoa pode tentar novamente. |
| A sessão não tem um nome verificado para comparar | `REFERENCE_IDENTITY_MISSING` | A verificação nunca é executada. O passo termina em `bank_reference_identity_missing_action` (`REVIEW` por predefinição). |

### Na decisão

A decisão da sessão lista o passo em `bank_verifications[]`. Assim que uma conta for avaliada, `method` indica `account_lookup`. Enquanto nenhuma conta tiver sido avaliada, `method` e `ownership` ficam como `null`, e `connection.reason_code` indica o motivo, por exemplo `ACCOUNT_NOT_FOUND`, `PROVIDER_UNAVAILABLE` ou `REFERENCE_IDENTITY_MISSING`.

Nenhum banco é selecionado para a verificação, pelo que `connection.institution_id`, `connection.institution_name` e `connection.oauth` são `null`, e `connection.institution_country` corresponde ao país escolhido pela pessoa. A Didit não mantém qualquer acesso à conta depois da conclusão do passo, pelo que uma verificação terminada com correspondência indica `connection.status: revoked` com `reason_code: VERIFICATION_COMPLETED`. O resultado em si permanece na sessão.

Uma verificação de conta não lê saldos, transações nem rendimentos. Quando o passo os solicita, `financial_data.not_collected` lista-os; consulte [Os dados financeiros requerem início de sessão bancário](https://docs.didit.me/pt/core-technology/bank-verification/verification-methods.md#os-dados-financeiros-requerem-início-de-sessão-bancário).

```json theme={null}
{
  "bank_verifications": [
    {
      "status": "Approved",
      "method": "account_lookup",
      "connection": {
        "status": "revoked",
        "institution_id": null,
        "institution_name": null,
        "institution_country": "NGA",
        "oauth": null,
        "attempts": 1,
        "reason_code": "VERIFICATION_COMPLETED"
      },
      "ownership": {
        "result": "match",
        "method": "exact"
      },
      "financial_data": {
        "balances": null,
        "transactions": null,
        "income": null,
        "categorization": null,
        "not_collected": []
      },
      "billing": {
        "route": "native",
        "billed": true,
        "marketplace_fee": null,
        "usage_type": "bank_verification"
      }
    }
  ]
}
```

O exemplo mostra apenas os campos abordados nesta página. Assim que uma conta for avaliada, leia `method` para distinguir uma verificação de conta do início de sessão bancário: é o campo específico para essa finalidade.

### Em regras de fluxo e relatórios

* **Ramificações e regras de estado:** `bank.method` é `account_lookup` (**Verificação da conta** no construtor de regras), e `bank.reason_code` pode ser `ACCOUNT_NOT_FOUND`.
* **Relatório PDF da sessão:** a linha **Método de verificação** indica **Verificação da conta**.

## Preços

Cada verificação que devolve uma resposta constitui uma cobrança de Bank Verification: uma correspondência, uma correspondência aproximada, uma não correspondência, uma conta que não foi possível verificar e uma conta não encontrada são todas faturadas. Um valor recusado antes da verificação, uma verificação indisponível e uma sessão sem um nome verificado para comparar nunca são faturados. O preço é definido por país: consulte os [Preços de Bank Verification](https://docs.didit.me/pt/getting-started/bank-verification-pricing.md).

A verificação de conta é um método pago autónomo, nunca uma alternativa: a ação `bank_fallback_used_action` não é acionada neste caso. Após uma verificação faturada, os microdepósitos e o carregamento do extrato são incluídos sem custos adicionais na mesma sessão, onde o passo os ativa e o país os disponibiliza.

## Testar na sandbox

Numa aplicação de sandbox, a verificação é executada num serviço simulado e nada é faturado. A sandbox disponibiliza ambos os métodos em todos os países, na ordem definida pelo passo: com a ordem predefinida, selecione **Introduza os dados da sua conta** para executar a verificação, ou defina `bank_method_order` para `["account_lookup", "open_banking"]` para começar por este.

Os últimos quatro carateres da conta introduzida pela pessoa (o IBAN, caso contrário o número de conta) escolhem a resposta. Qualquer outra terminação corresponde ao nome verificado.

| Termina em | Resposta |
| - | - |
| `0001` | Uma correspondência aproximada que indica o nome do titular: é pedido à pessoa que confirme o nome. Com `bank_account_check_accept_close_match` desativado, é uma não correspondência. |
| `0002` | Uma correspondência aproximada sem nome do titular: `bank_partial_match_action` decide. Com `bank_use_provider_score` desativado, a resposta é `not_verifiable`; com `bank_account_check_accept_close_match` desativado, é uma não correspondência. |
| `0003` | Nenhuma correspondência: a conta pertence a outra pessoa. Consome uma verificação. |
| `0004` | Respondida, mas sem comparação de nome (`not_verifiable`). Consome uma verificação. |
| `0005` | A verificação está indisponível (`PROVIDER_UNAVAILABLE`). Pode tentar novamente sem custos. |
| `0006` | Nenhuma conta com estes dados (`ACCOUNT_NOT_FOUND`). Consome uma verificação. |
| `0009` | Recusada conforme introduzida: é pedido à pessoa que corrija o campo. A tentativa permanece aberta. |

A sandbox regista cada verificação respondida como utilização sem custos, permitindo-lhe ver quais as verificações que uma sessão em produção faturaria.

Um IBAN, um CLABE e um CBU contêm dígitos de controlo, pelo que não pode simplesmente alterar os respetivos quatro últimos carateres. Utilize estes valores, que passam em todas as verificações de formato:

> [tab] Alemanha (IBAN)
>
> | Resposta | IBAN |
> | - | - |
> | Correspondência | `DE43123456789012345678` |
> | `0001` | `DE62123456789012340001` |
> | `0002` | `DE35123456789012340002` |
> | `0003` | `DE08123456789012340003` |
> | `0004` | `DE78123456789012340004` |
> | `0005` | `DE51123456789012340005` |
> | `0006` | `DE24123456789012340006` |
> | `0009` | `DE40123456789012340009` |

> [tab] Reino Unido
>
> Sort code `123456`, com:
>
> | Resposta | Número de conta |
> | - | - |
> | Correspondência | `12345678` |
> | `0001` | `12340001` |
> | `0002` | `12340002` |
> | `0003` | `12340003` |
> | `0004` | `12340004` |
> | `0005` | `12340005` |
> | `0006` | `12340006` |
> | `0009` | `12340009` |

> [tab] Estados Unidos
>
> Routing number `021000021`, com:
>
> | Resposta | Número de conta |
> | - | - |
> | Correspondência | `000123456789` |
> | `0001` | `000123450001` |
> | `0002` | `000123450002` |
> | `0003` | `000123450003` |
> | `0004` | `000123450004` |
> | `0005` | `000123450005` |
> | `0006` | `000123450006` |
> | `0009` | `000123450009` |

> [tab] México (CLABE)
>
> | Resposta | CLABE |
> | - | - |
> | Correspondência | `002010077777777771` |
> | `0001` | `002010077777780001` |
> | `0002` | `002010077777750002` |
> | `0003` | `002010077777720003` |
> | `0004` | `002010077777790004` |
> | `0005` | `002010077777760005` |
> | `0006` | `002010077777730006` |
> | `0009` | `002010077777740009` |

> [tab] Argentina (CBU)
>
> | Resposta | CBU |
> | - | - |
> | Correspondência | `2850590940090418135201` |
> | `0001` | `2850590940090418160001` |
> | `0002` | `2850590940090418170002` |
> | `0003` | `2850590940090418180003` |
> | `0004` | `2850590940090418190004` |
> | `0005` | `2850590940090418100005` |
> | `0006` | `2850590940090418110006` |
> | `0009` | `2850590940090418140009` |

> [tab] Índia
>
> IFSC `ALLA0211480`, com:
>
> | Resposta | Número de conta |
> | - | - |
> | Correspondência | `123456789007` |
> | `0001` | `123456780001` |
> | `0002` | `123456780002` |
> | `0003` | `123456780003` |
> | `0004` | `123456780004` |
> | `0005` | `123456780005` |
> | `0006` | `123456780006` |
> | `0009` | `123456780009` |

A [API de verificação de conta](https://docs.didit.me/pt/standalone-apis/bank-account-check.md) responde a uma chave de sandbox a partir das mesmas terminações, sem necessidade de sessão.

Consulte [Testes na sandbox](https://docs.didit.me/pt/integration/sandbox-testing.md) para obter mais informações sobre como funcionam as aplicações de sandbox em geral.


This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.