> ## 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.

# Verificação bancária: alternativas sem conta bancária

> Com a Didit, a verificação bancária nunca trava: alternativas por país, continuar sem o banco, o resultado que você escolhe e como ele é informado.

A Verificação bancária nunca deixa uma pessoa travada. Enquanto a etapa aguarda por ela, a pessoa sempre pode escolher **Continue without your bank**, e a etapa mostra essa opção assim que nenhum método funciona para o país ou o banco dela. A sessão então segue o resultado que você escolheu para esse caso, que por padrão é uma revisão. Quando uma tentativa malsucedida consome a última tentativa de todas as formas que ainda são oferecidas à pessoa, incluindo o envio de extrato, a etapa não espera: ela termina sozinha e segue `bank_attempts_exhausted_action`, que por padrão é uma recusa. A exceção é quando uma tentativa anterior já chegou a um veredito, como uma divergência de nome. Nesse caso, esse veredito prevalece.

Esta página explica as outras formas de verificação que cada país oferece, quando a pessoa vê **Continue without your bank**, como cada caso é decidido e como interpretar isso no resultado.

> [!WARNING]
>
> A Verificação bancária ainda não está habilitada no ambiente de produção.
> Até que esteja, você não pode adicionar esta etapa a um fluxo de verificação (workflow) nem chamar esta API, seja no ambiente de produção ou em sandbox. Esta página descreve como ela vai funcionar.

## As formas de verificação

| Forma de verificação | `method` | Onde é oferecida |
| - | - | - |
| Login no banco | `open_banking` | Onde uma rota atende o país. |
| Consulta de conta | `account_lookup` | Onde uma rota atende o país. |
| Envio de extrato | `statement` | Em qualquer país, quando a etapa o ativa (`bank_statement_enabled`). |
| Microdepósitos | `microdeposits` | Somente onde uma rota envia os depósitos, após um login no banco ou uma consulta de conta cobrados na mesma sessão (`bank_microdeposits_enabled`). |
| Continue without your bank | `none` | Sempre. Não pode ser desativado. |

A pessoa começa pelo login no banco ou pela consulta de conta, na ordem que você definiu para o país dela: veja [Escolha os métodos por país](https://docs.didit.me/pt-br/core-technology/bank-verification/verification-methods.md#escolha-os-métodos-por-país). O envio de extrato e os microdepósitos são alternativas depois desses dois. **Continue without your bank** vem por último.

Uma forma que não pode ser usada em um país nunca é oferecida à pessoa nesse país. No console, **Countries and methods** a mostra como **Not available** para esse país.

### Um país que nenhuma rota bancária atende

Um país em que nem o login no banco nem a consulta de conta têm uma rota continua na etapa. As pessoas desse país enviam um extrato, quando a etapa oferece essa opção, ou continuam sem banco.

Ao salvar, esse país é mantido quando `methods` é omitido ou definido como `null`. O `methods` dele não pode listar nenhum método, porque nenhuma rota atende a nenhum método ali: isso é recusado ao salvar, por exemplo com `Account check is not available in VNM.` Uma lista vazia também é recusada, como em qualquer país habilitado, com `Choose a method: bank sign-in, account check, or both.` Se o seu contrato define preços próprios e não inclui o envio de extrato, esse país também é recusado ao salvar se o envio for oferecido sem nenhuma tentativa bancária antes dele.

```json theme={null}
{
  "bank_statement_enabled": true,
  "bank_countries": {
    "GBR": { "enabled": true, "institutions": "all" },
    "VNM": { "enabled": true, "institutions": "all" }
  }
}
```

Aqui, o Vietnã representa um país que nenhuma rota bancária atende. Ele não define `methods`, então ele é mantido ao salvar, e as pessoas desse país veem o envio de extrato e **Continue without your bank**.

### O envio de extrato

O envio de extrato pede um extrato bancário dos últimos 3 meses que mostre o nome da pessoa, o banco e o número da conta. A Didit lê o extrato, verifica se ele foi editado e compara o nome do titular da mesma forma que compara o nome informado por um banco.

Com `bank_statement_enabled` ativado, a etapa oferece o envio em dois casos:

* **Após uma tentativa cobrada:** depois que um login no banco ou uma consulta de conta foi cobrado na mesma sessão, o envio de extrato é uma alternativa incluída sem custo adicional.
* **Sem nenhuma tentativa bancária antes:** em qualquer país, inclusive um que nenhuma rota bancária atende. Isso exige `bank_statement_standalone_enabled`, que vem ativado por padrão. Desative-o para oferecer o envio de extrato somente após uma tentativa cobrada.

O envio de extrato e os microdepósitos consomem, cada um, uma das `bank_max_attempts` da etapa, as mesmas tentativas que o login no banco usa. Depois que a pessoa usa todas elas, nenhum dos dois é mais oferecido, nem mesmo após uma tentativa cobrada. A consulta de conta tem suas próprias tentativas, `bank_account_check_max_attempts`. Por isso, onde ela é o único método, uma pessoa que já usou todas as tentativas de consulta de conta ainda pode enviar um extrato, quando a etapa oferece essa opção. Quando uma tentativa malsucedida consome a última tentativa de todas as formas que ainda são oferecidas à pessoa, incluindo o envio de extrato, a etapa termina sozinha. A pessoa não recebe a opção de continuar, e o resultado não registra nenhuma continuação. A sessão segue `bank_attempts_exhausted_action`, a menos que uma tentativa anterior já tenha chegado a um veredito, como uma divergência de nome, que então prevalece. Para deixar espaço para uma alternativa após um login no banco malsucedido, defina `bank_max_attempts` como `2` ou mais.

## Quando a pessoa vê Continuar sem seu banco

`bank_continue_without_bank` define quando a etapa exibe **Continuar sem seu banco**:

| Valor | A etapa exibe a opção |
| - | - |
| `when_needed` (o padrão) | Quando nenhum método funciona para o país ou o banco da pessoa, quando o banco dela não pode ser acessado no momento e nenhum outro método conseguiria verificá-la, ou quando ela informa que não tem internet banking ou que o banco dela não está na lista. |
| `from_start` | Também na primeira tela. |

Nenhum dos valores desativa a opção: a pessoa sempre pode continuar. No console, configure isso na etapa de Bank Verification em **Quando a pessoa não consegue verificar**, como **Mostrar Continuar sem banco**: **Quando nada mais funcionar** ou **Desde o início**.

```json theme={null}
{
  "bank_continue_without_bank": "when_needed"
}
```

### O que a pessoa vê

* **Nenhuma rota no país dela:** por exemplo, "Ainda não conseguimos nos conectar a bancos no Vietnã", com o envio de extrato em **Outras formas de verificar** e **Continuar sem seu banco**.
* **Um banco que não pode ser usado aqui:** "Este banco não pode ser usado aqui". A pessoa pode informar os dados da conta onde o país oferece a verificação de conta, enviar um extrato, escolher outro banco ou continuar sem seu banco.
* **Sem internet banking, ou um banco que não está na lista:** "Verifique sua conta de outra forma", com as formas que o país dela oferece e **Continuar sem seu banco**.
* **Um banco que não pode ser acessado no momento:** a pessoa pode tentar novamente. A tela também oferece **Continuar sem seu banco** quando o outro método, o login no banco ou a verificação de conta, não pode ajudar: o país dela não o oferece, não restam tentativas ou a última tentativa também não conseguiu estabelecer conexão com o banco.
* **Depois de continuar:** "Obrigado, você pode continuar". A pessoa nunca vê uma mensagem de falha e segue para a próxima etapa do seu fluxo.

## Escolha o resultado

Quando a pessoa continua sem banco, a Didit determina o motivo com base no que aconteceu na etapa. Ela nunca obtém um motivo a partir do dispositivo da pessoa. Cada motivo, registrado como `continuation.reason`, segue sua própria configuração de resultado:

* `no_route`: nenhuma rota de login no banco ou de verificação de conta atende o país da pessoa. Decidido por `bank_unsupported_action`, `REVIEW` por padrão, com o código de motivo `NOT_COVERED`.
* `institution_unsupported`: o banco escolhido não pode ser usado nesta etapa. Decidido por `bank_unsupported_action`, `REVIEW` por padrão, com o código de motivo `NOT_COVERED`.
* `attempts_exhausted`: todas as tentativas já tinham sido usadas, e nenhuma ainda estava em andamento, quando a pessoa continuou. Decidido por `bank_attempts_exhausted_action`, `DECLINE` por padrão.
* `person_choice`: havia uma forma de verificar, e a pessoa escolheu continuar. Isso inclui um banco que não podia ser acessado no momento: o banco é coberto, então o motivo é a escolha da própria pessoa. Decidido por `bank_skipped_action`, `REVIEW` por padrão, com o código de motivo `SKIPPED`.

`bank_skipped_action` e `bank_attempts_exhausted_action` aceitam `REVIEW` ou `DECLINE`. `bank_unsupported_action` também aceita `NO_ACTION`, que aprova a etapa e ainda assim registra `NOT_COVERED`.

No console, essas são as linhas **Bank or country not covered**, **Continued without a bank** e **Attempts exhausted** da aba **Outcomes** da etapa.

```json theme={null}
{
  "bank_continue_without_bank": "when_needed",
  "bank_unsupported_action": "REVIEW",
  "bank_skipped_action": "REVIEW",
  "bank_attempts_exhausted_action": "DECLINE"
}
```

> [!NOTE]
>
> Continuar nunca substitui um veredito a que uma tentativa já chegou. Se uma tentativa já foi avaliada, por exemplo, o banco ou um extrato retornou um titular que não corresponde e a pessoa ainda tinha tentativas, ou uma correspondência aproximada que ela não confirmou, a etapa mantém esse veredito e seus códigos de motivo. Nesse caso, nenhuma configuração de resultado da lista acima se aplica, e nenhum `NOT_COVERED` ou `SKIPPED` é adicionado. O resultado ainda registra que a pessoa continuou: consulte [Leia no resultado](#veja-no-resultado).

## Veja no resultado

### Decisão e webhooks

O item da etapa em `bank_verifications[]`, na [decisão da sessão](https://docs.didit.me/pt-br/sessions-api/retrieve-session.md#verificação-bancária) e no objeto `decision` dos [webhooks `status.updated`](https://docs.didit.me/pt-br/integration/webhooks#arrays-no-plural-da-v3-importante), indica que a pessoa continuou sem banco:

* `continued_without_bank` é `true`: a pessoa saiu da etapa com **Continue without your bank**.
* `method` é `none` quando nenhuma tentativa foi avaliada antes de a pessoa continuar. Depois de uma tentativa avaliada, como um titular que não corresponde, `method` continua sendo o método dessa tentativa, e o veredito dela é mantido.
* `continuation` indica como a pessoa continuou:
  * `reason`: `no_route`, `institution_unsupported`, `attempts_exhausted` ou `person_choice`.
  * `country`: o país em que a pessoa estava fazendo a verificação, em ISO 3166-1 alpha-3, ou `null` quando ela continuou antes de escolher um.
  * `offered`: as outras formas de verificação que esse país ofereceu, na ordem em que as ofereceu: `statement` e depois `microdeposits`. Fica vazio quando ele não ofereceu nenhuma.
  * `institution_id` e `institution_name`: para `institution_unsupported`, o banco que a pessoa não conseguiu usar, ou seja, o banco que ela escolheu ou o banco em que terminou a última tentativa dela. A Didit obtém os dois da própria lista de bancos, nunca do dispositivo da pessoa, então um banco que não está nessa lista deixa os dois como `null`. Os dois são `null` para qualquer outro motivo.
  * `continued_at`: quando a pessoa continuou.
* `reason_codes` contém `NOT_COVERED` ou `SKIPPED`, como em [Escolha o resultado](#escolha-o-resultado), quando a continuação decidiu a etapa. Depois de uma tentativa avaliada, ele mantém os códigos de motivo dessa tentativa.
* `not_covered` é `true` para `no_route` e `institution_unsupported`.

```json theme={null}
{
  "bank_verifications": [
    {
      "node_id": "feature_bank_verification",
      "status": "In Review",
      "method": "none",
      "continued_without_bank": true,
      "continuation": {
        "reason": "institution_unsupported",
        "country": "ESP",
        "offered": ["statement"],
        "institution_id": "example_bank_es",
        "institution_name": "Example Bank",
        "continued_at": "2026-11-03T08:15:41.512870+00:00"
      },
      "not_covered": true,
      "ownership": null,
      "reason_codes": ["NOT_COVERED"]
    }
  ]
}
```

O exemplo mostra apenas os campos discutidos nesta página. Todos os campos estão no schema `BankVerificationResult` da [referência da API](https://docs.didit.me/pt-br/sessions-api/retrieve-session.md).

Quando o seu fluxo restringe os dados que retorna, `continued_without_bank` e `continuation.reason` continuam sendo retornados, então você ainda consegue distinguir `no_route` de `institution_unsupported`, que compartilham `NOT_COVERED`. Todas as outras chaves de `continuation` ficam então como `null`: o país, o banco, o que foi oferecido e quando. O próprio `continuation` é `null` quando a pessoa não continuou. Nesse caso, `method` também não é retornado, então leia `continued_without_bank`, e não `method`, para saber se a pessoa continuou.

### Regras do fluxo

Ramificações e regras de status personalizadas podem ler:

* `bank.continued_without_bank`: `true` ou `false`.
* `bank.continue_reason`: `no_route`, `institution_unsupported`, `attempts_exhausted` ou `person_choice`.
* `bank.method`: `none` quando a pessoa continuou sem banco antes de qualquer tentativa ser avaliada. Depois de uma tentativa avaliada, o método dessa tentativa.

### Relatório da sessão

Quando a pessoa continuou sem banco antes de qualquer tentativa ser avaliada, a linha **Verification method** do relatório PDF da sessão mostra **Continued without a bank**. Depois de uma tentativa avaliada, ela informa o método dessa tentativa.

## Preços

* **Continue without your bank** nunca é cobrado. As tentativas que a pessoa fez antes de continuar são cobradas normalmente.
* **Um envio de extrato sem nenhuma tentativa bancária cobrada antes dele** custa \$0.20 por extrato que a Didit lê e avalia. Ele é cobrado em uma linha de uso própria, **Bank verification - statement upload** (`bank_statement_upload`), e a tarifa do seu contrato ou o seu preço especial se aplica a ele como a qualquer complemento. Se o seu contrato define preços próprios e não o inclui, a etapa não o oferece.
* **Um upload de extrato ou microdepósitos depois de um login bancário cobrado ou de uma verificação de conta cobrada** na mesma sessão estão incluídos sem custo adicional.

## Nós salvos antes de Continue without your bank

`bank_allow_skip` foi descontinuado. Um nó salvo com ele agora é executado com o valor que ele representava:

| `bank_allow_skip` | O nó é executado com |
| - | - |
| `true` | `bank_continue_without_bank: "from_start"` |
| `false` ou não definido | `bank_continue_without_bank: "when_needed"` |

Um nó que não permitia pular deixava a pessoa sem como avançar quando nada funcionava para ela. Agora ele mostra **Continue without your bank** nesses casos, e `bank_unsupported_action`, `bank_attempts_exhausted_action` ou `bank_skipped_action` decide a sessão.

Por um ciclo de lançamento, um salvamento que envia `bank_allow_skip` sem `bank_continue_without_bank` ainda define o modo a partir dele. Todo salvamento grava `bank_allow_skip` de volta: `true` para `from_start`, `false` para `when_needed`. Use `bank_continue_without_bank` em novas integrações.

## Teste no sandbox

Uma aplicação de sandbox não cobra nada, e o envio de extrato e os microdepósitos não exigem tentativa de conexão com o banco antes deles. Defina `bank_continue_without_bank` como `from_start` para ver **Continue without your bank** na primeira tela e escolha essa opção para testar `bank_skipped_action`. Consulte [Testes no sandbox](https://docs.didit.me/pt-br/integration/sandbox-testing.md) para saber como as aplicações de sandbox funcionam em geral.

## Relacionados

* [Métodos de verificação bancária](https://docs.didit.me/pt-br/core-technology/bank-verification/verification-methods.md): login bancário e verificação de conta, por país.
* [Verificação de conta](https://docs.didit.me/pt-br/core-technology/bank-verification/account-check.md): formatos de conta, resultados e valores de sandbox.
* [Chaves de configuração da verificação bancária](https://docs.didit.me/pt-br/management-api/workflows/feature-configs.md#verificação-bancária): todas as chaves da etapa.


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