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

# Fallback Verifikasi Bank dan Lanjutkan Tanpa Bank

> Didit menyediakan fallback verifikasi bank: opsi alternatif per negara, opsi lanjut tanpa bank, pilihan hasil, dan cara pelaporannya.

Verifikasi Bank tidak pernah membiarkan seseorang terhenti. Saat langkah tersebut menunggu mereka, mereka selalu dapat memilih **Continue without your bank**, dan langkah tersebut akan menampilkannya segera setelah tidak ada metode yang berfungsi untuk negara atau bank mereka. Sesi tersebut kemudian mengikuti keputusan yang Anda pilih untuk kasus tersebut, peninjauan secara bawaan. Ketika upaya yang gagal menghabiskan upaya terakhir dari setiap opsi yang masih ditawarkan kepada mereka, termasuk unggahan rekening koran, langkah tersebut tidak menunggu: langkah ini berakhir dengan sendirinya dan mengikuti `bank_attempts_exhausted_action`, penolakan secara bawaan, kecuali jika upaya sebelumnya telah menghasilkan keputusan, seperti ketidakcocokan nama. Keputusan tersebut kemudian tetap berlaku.

Halaman ini membahas metode verifikasi lain yang ditawarkan setiap negara, kapan pengguna melihat **Continue without your bank**, bagaimana setiap kasus diputuskan, dan cara membacanya dalam hasil.

## Cara verifikasi

| Cara verifikasi | `method` | Di mana metode ini ditawarkan |
| - | - | - |
| Login ke bank | `open_banking` | Di mana ada rute yang melayani negara tersebut. |
| Pemeriksaan rekening | `account_lookup` | Di mana ada rute yang melayani negara tersebut. |
| Unggahan rekening koran | `statement` | Negara mana pun, saat langkah tersebut mengaktifkannya (`bank_statement_enabled`). |
| Setoran mikro | `microdeposits` | Hanya jika rute mengirimkan setoran tersebut, setelah login ke bank atau pemeriksaan rekening yang dikenai biaya dalam sesi yang sama (`bank_microdeposits_enabled`). |
| Continue without your bank | `none` | Selalu. Opsi ini tidak dapat dinonaktifkan. |

Pengguna memulai dari login ke bank atau pemeriksaan rekening, dalam urutan yang Anda atur untuk negara mereka: lihat [Pilih metode per negara](https://docs.didit.me/id/core-technology/bank-verification/verification-methods.md#memilih-metode-per-negara). Unggahan rekening koran dan setoran mikro adalah opsi cadangan setelah kedua metode tersebut. **Continue without your bank** berada di urutan terakhir.

Metode yang tidak dapat digunakan oleh suatu negara tidak pernah ditawarkan kepada pengguna di sana. Di konsol, **Negara dan metode** menampilkannya sebagai **Tidak tersedia** untuk negara tersebut.

### Negara yang tidak dilayani oleh rute bank

Negara di mana login ke bank maupun pemeriksaan rekening tidak memiliki rute tetap berada dalam langkah ini. Penggunanya mengunggah rekening koran, saat langkah tersebut menawarkannya, atau melanjutkan tanpa bank.

Penyimpanan akan mempertahankan negara tersebut jika tidak menyertakan `methods` atau mengaturnya ke `null`. Kolom `methods` miliknya tidak dapat mencantumkan metode, karena tidak ada rute yang melayani satu pun metode di sana: hal itu akan ditolak saat penyimpanan, misalnya `Account check is not available in VNM.` Daftar kosong juga ditolak, seperti di setiap negara yang diaktifkan, dengan `Choose a method: bank sign-in, account check, or both.` Jika kontrak Anda menetapkan harga tersendiri dan tidak mencakup unggahan rekening koran, penyimpanan yang menawarkan unggahan tersebut tanpa ada upaya bank sebelumnya juga akan menolak negara tersebut.

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

Di sini Vietnam mewakili negara yang tidak dilayani oleh rute bank. Ini tidak mengatur `methods`, sehingga penyimpanan mempertahankannya, dan penggunanya melihat unggahan rekening koran dan **Continue without your bank**.

### Unggahan rekening koran

Unggahan rekening koran meminta rekening koran bank dari 3 bulan terakhir yang menunjukkan nama pengguna, bank mereka, dan nomor rekening. Didit membacanya, memeriksa apakah dokumen tersebut telah diedit, dan mencocokkan nama pemilik rekening dengan cara yang sama seperti dalam verifikasi bank.

Dengan `bank_statement_enabled` aktif, langkah ini menawarkannya dalam dua kasus:

* **Setelah upaya yang dikenai biaya:** setelah login ke bank atau pemeriksaan rekening dikenai biaya dalam sesi yang sama, unggahan rekening koran menjadi opsi cadangan, yang disertakan tanpa biaya tambahan.
* **Tanpa upaya bank sebelumnya:** di negara mana pun, termasuk negara yang tidak dilayani oleh rute bank. Ini memerlukan `bank_statement_standalone_enabled`, yang aktif secara bawaan. Nonaktifkan untuk menawarkan unggahan rekening koran hanya setelah upaya yang dikenai biaya.

Unggahan rekening koran dan setoran mikro masing-masing menggunakan satu upaya dari batas `bank_max_attempts` langkah tersebut, yaitu batas upaya yang sama dengan yang digunakan untuk login ke bank. Setelah pengguna menghabiskan semuanya, keduanya tidak ditawarkan lagi, bahkan setelah upaya yang dikenai biaya. Pemeriksaan rekening memiliki `bank_account_check_max_attempts` tersendiri, sehingga jika pemeriksaan rekening adalah satu-satunya metode, pengguna yang telah menggunakan setiap pemeriksaan rekening masih dapat mengunggah rekening koran, saat langkah tersebut menawarkannya. Ketika upaya yang gagal menghabiskan upaya terakhir dari setiap opsi yang masih ditawarkan kepada pengguna, termasuk unggahan rekening koran, langkah tersebut berakhir dengan sendirinya: pengguna tidak diminta untuk melanjutkan, dan hasilnya tidak mencatat kelanjutan. Sesi mengikuti `bank_attempts_exhausted_action`, kecuali jika upaya sebelumnya telah menghasilkan keputusan, seperti ketidakcocokan nama, yang kemudian tetap berlaku. Untuk memberikan ruang bagi opsi cadangan setelah kegagalan login ke bank, atur `bank_max_attempts` ke `2` atau lebih.

## Saat pengguna melihat Lanjutkan tanpa bank

`bank_continue_without_bank` mengatur kapan langkah tersebut menampilkan opsi **Lanjutkan tanpa bank**:

| Nilai | Langkah menampilkannya |
| - | - |
| `when_needed` (default) | Setelah tidak ada metode yang berfungsi untuk negara atau bank pengguna, ketika bank mereka tidak dapat dihubungi saat ini dan tidak ada metode lain yang dapat memverifikasi mereka, atau ketika mereka menyatakan tidak memiliki online banking atau bank mereka tidak terdaftar. |
| `from_start` | Di layar pertama juga. |

Kedua nilai tersebut tidak menonaktifkan opsi ini: pengguna selalu dapat melanjutkan. Di konsol, atur opsi ini di langkah Verifikasi Bank pada bagian **Saat pengguna tidak dapat memverifikasi**, sebagai **Tampilkan opsi Lanjutkan tanpa bank**: **Saat tidak ada cara lain** atau **Sejak awal**.

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

### Apa yang dilihat pengguna

* **Tidak ada rute di negara mereka:** misalnya "Kami belum dapat terhubung ke bank di Vietnam", dengan opsi unggah rekening koran di bawah **Cara lain untuk verifikasi**, dan **Lanjutkan tanpa bank**.
* **Bank yang tidak dapat digunakan di sini:** "Bank ini tidak dapat digunakan di sini". Pengguna dapat memasukkan detail akun mereka jika negara tersebut menyediakan pemeriksaan akun, mengunggah rekening koran, memilih bank lain, atau melanjutkan tanpa bank mereka.
* **Tidak ada online banking, atau bank tidak terdaftar:** "Verifikasi akun Anda dengan cara lain", beserta metode yang disediakan oleh negara mereka, dan **Lanjutkan tanpa bank**.
* **Bank yang tidak dapat dihubungi saat ini:** pengguna dapat mencoba lagi. Layar juga menawarkan opsi **Lanjutkan tanpa bank** setelah metode lain, masuk ke bank atau pemeriksaan akun, tidak dapat membantu: negara mereka tidak menyediakannya, tidak ada sisa percobaan, atau percobaan terakhirnya juga tidak dapat menghubungi bank tersebut.
* **Setelah melanjutkan:** "Terima kasih, Anda dapat melanjutkan". Pengguna tidak pernah melihat kegagalan, dan langsung lanjut ke langkah berikutnya dari alur kerja Anda.

## Pilih hasilnya

Ketika pengguna melanjutkan tanpa bank, Didit mencari tahu alasannya dari apa yang terjadi pada langkah tersebut. Didit tidak pernah menentukan alasan berdasarkan perangkat pengguna. Setiap alasan, yang dicatat sebagai `continuation.reason`, mengikuti pengaturan hasilnya masing-masing:

* `no_route`: tidak ada rute login ke bank atau pemeriksaan akun yang tersedia di negara mereka. Ditentukan oleh `bank_unsupported_action`, secara default `REVIEW`, dengan kode alasan `NOT_COVERED`.
* `institution_unsupported`: bank yang mereka pilih tidak dapat digunakan pada langkah ini. Ditentukan oleh `bank_unsupported_action`, secara default `REVIEW`, dengan kode alasan `NOT_COVERED`.
* `attempts_exhausted`: setiap percobaan sudah habis, dan tidak ada yang masih berlangsung, ketika mereka melanjutkan. Ditentukan oleh `bank_attempts_exhausted_action`, secara default `DECLINE`.
* `person_choice`: metode untuk memverifikasi tersedia, dan mereka memilih untuk melanjutkan. Hal ini mencakup bank yang tidak dapat dihubungi saat ini: bank tersebut tercakup, sehingga pilihan pengguna sendiri adalah alasannya. Ditentukan oleh `bank_skipped_action`, secara default `REVIEW`, dengan kode alasan `SKIPPED`.

`bank_skipped_action` dan `bank_attempts_exhausted_action` menerima `REVIEW` atau `DECLINE`. `bank_unsupported_action` juga menerima `NO_ACTION`, yang menyetujui langkah tersebut dan tetap mencatat `NOT_COVERED`.

Di konsol, ini adalah baris **Bank atau negara tidak tercakup**, **Dilanjutkan tanpa bank**, dan **Percobaan habis** pada tab **Hasil** di langkah tersebut.

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

> [!NOTE]
>
> Melanjutkan tidak pernah menggantikan keputusan akhir yang telah dicapai oleh suatu percobaan. Jika suatu percobaan telah dievaluasi, misalnya bank atau rekening koran mengembalikan pemilik rekening yang tidak cocok dan pengguna masih memiliki sisa percobaan, atau hasil kecocokan yang hampir cocok tetapi tidak mereka konfirmasi, langkah tersebut akan mempertahankan keputusan akhir beserta kode alasannya. Tidak ada pengaturan hasil dari daftar di atas yang berlaku saat itu, dan `NOT_COVERED` atau `SKIPPED` tidak akan ditambahkan. Hasilnya tetap mencatat bahwa pengguna melanjutkan: lihat [Membacanya di hasil](#baca-di-hasil).

## Baca di hasil

### Keputusan dan webhook

Item langkah di dalam `bank_verifications[]`, pada [keputusan sesi](https://docs.didit.me/id/sessions-api/retrieve-session.md#verifikasi-bank) dan pada objek `decision` dari [webhook `status.updated`](https://docs.didit.me/id/integration/webhooks#array-jamak-v3-penting), menyatakan bahwa orang tersebut melanjutkan tanpa bank:

* `continued_without_bank` bernilai `true`: orang tersebut meninggalkan langkah dengan **Continue without your bank**.
* `method` bernilai `none` saat tidak ada upaya yang dievaluasi sebelum orang tersebut melanjutkan. Setelah upaya yang dievaluasi, seperti pemegang rekening yang tidak cocok, `method` tetap menggunakan metode upaya tersebut, dan putusannya tetap berlaku.
* `continuation` menyatakan bagaimana orang tersebut melanjutkan:
  * `reason`: `no_route`, `institution_unsupported`, `attempts_exhausted`, atau `person_choice`.
  * `country`: negara tempat orang tersebut melakukan verifikasi, ISO 3166-1 alpha-3, atau `null` saat mereka melanjutkan sebelum memilih satu negara.
  * `offered`: cara lain untuk verifikasi yang ditawarkan negara tersebut, sesuai urutan penawarannya: `statement`, lalu `microdeposits`. Kosong jika tidak menawarkan apa pun.
  * `institution_id` dan `institution_name`: untuk `institution_unsupported`, bank yang tidak dapat digunakan orang tersebut: bank yang mereka pilih, atau bank tempat upaya terakhir mereka berakhir. Didit mengambil keduanya dari daftar bank miliknya sendiri, tidak pernah dari perangkat orang tersebut, sehingga bank yang tidak ada dalam daftar tersebut membuat keduanya bernilai `null`. Keduanya bernilai `null` untuk setiap alasan lainnya.
  * `continued_at`: waktu saat orang tersebut melanjutkan.
* `reason_codes` memuat `NOT_COVERED` atau `SKIPPED`, seperti dalam [Pilih hasilnya](#pilih-hasilnya), saat kelanjutan tersebut menentukan keputusan langkah. Setelah upaya yang dievaluasi, kode ini mempertahankan kode alasan dari upaya tersebut.
* `not_covered` bernilai `true` untuk `no_route` dan `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"]
    }
  ]
}
```

Contoh tersebut hanya menunjukkan kolom yang dibahas pada halaman ini. Setiap kolom tercantum dalam skema `BankVerificationResult` pada [referensi API](https://docs.didit.me/id/sessions-api/retrieve-session.md).

Ketika alur kerja Anda mempersempit data yang dikembalikan, `continued_without_bank` dan `continuation.reason` tetap dikembalikan, sehingga Anda masih dapat membedakan `no_route` dari `institution_unsupported`, yang sama-sama menggunakan `NOT_COVERED`. Setiap kunci lain dari `continuation` kemudian bernilai `null`: negara, bank, apa yang ditawarkan, dan waktunya. `continuation` sendiri bernilai `null` saat orang tersebut tidak melanjutkan. `method` juga tidak dikembalikan dalam kondisi tersebut, jadi baca `continued_without_bank`, bukan `method`, untuk mengetahui bahwa orang tersebut melanjutkan.

### Aturan alur kerja

Cabang dan aturan status kustom dapat membaca:

* `bank.continued_without_bank`: `true` atau `false`.
* `bank.continue_reason`: `no_route`, `institution_unsupported`, `attempts_exhausted`, atau `person_choice`.
* `bank.method`: `none` saat orang tersebut melanjutkan tanpa bank sebelum ada upaya yang dievaluasi. Setelah upaya yang dievaluasi, nilainya adalah metode dari upaya tersebut.

### Laporan sesi

Ketika orang tersebut melanjutkan tanpa bank sebelum ada upaya yang dievaluasi, baris **Metode verifikasi** pada laporan PDF sesi bertuliskan **Dilanjutkan tanpa bank**. Setelah upaya yang dievaluasi, baris tersebut menyebutkan metode dari upaya tersebut.

## Harga

* **Continue without your bank** tidak pernah ditagih. Upaya yang dilakukan orang tersebut sebelum melanjutkan akan ditagih seperti biasa.
* **Unggahan rekening koran tanpa upaya bank berbayar sebelumnya** dikenakan biaya \$0.20 per rekening koran yang dibaca dan dievaluasi oleh Didit. Ini ditagih pada baris penggunaan tersendiri, **Bank verification - statement upload** (`bank_statement_upload`), dan tarif kontrak atau harga khusus Anda berlaku untuk fitur ini seperti halnya untuk fitur tambahan apa pun. Jika kontrak Anda menetapkan harga tersendiri dan tidak menyertakannya, langkah tersebut tidak akan menawarkannya.
* **Unggahan rekening koran atau setoran mikro setelah proses masuk bank berbayar atau pemeriksaan akun berbayar** dalam sesi yang sama disertakan tanpa biaya tambahan.

## Node yang disimpan sebelum Continue without your bank

`bank_allow_skip` sudah tidak digunakan lagi. Node yang disimpan dengan parameter tersebut kini berjalan menggunakan nilai yang dimaksudkan parameter itu:

| `bank_allow_skip` | Node berjalan dengan |
| - | - |
| `true` | `bank_continue_without_bank: "from_start"` |
| `false` atau tidak disetel | `bank_continue_without_bank: "when_needed"` |

Node yang tidak mengizinkan pelewatan sebelumnya membuat seseorang tidak memiliki jalan keluar saat tidak ada yang berhasil bagi mereka. Sekarang node tersebut menampilkan **Continue without your bank** dalam kasus tersebut, dan `bank_unsupported_action`, `bank_attempts_exhausted_action`, atau `bank_skipped_action` menentukan keputusan sesi.

Selama satu rilis, setiap penyimpanan yang mengirimkan `bank_allow_skip` tetapi tidak mengirimkan `bank_continue_without_bank` masih menetapkan mode berdasarkan parameter tersebut. Setiap kali disimpan, `bank_allow_skip` ditulis kembali: `true` untuk `from_start`, `false` untuk `when_needed`. Gunakan `bank_continue_without_bank` pada integrasi baru.

## Uji di sandbox

Aplikasi sandbox tidak menagih biaya apa pun, dan unggahan rekening koran serta setoran mikro tidak memerlukan upaya bank sebelumnya. Atur `bank_continue_without_bank` ke `from_start` untuk melihat **Continue without your bank** pada layar pertama, dan pilih opsi tersebut untuk menguji `bank_skipped_action`. Lihat [Pengujian sandbox](https://docs.didit.me/id/integration/sandbox-testing.md) untuk mengetahui cara kerja aplikasi sandbox secara umum.

## Terkait

* [Metode verifikasi bank](https://docs.didit.me/id/core-technology/bank-verification/verification-methods.md): login ke bank dan pemeriksaan akun, per negara.
* [Pemeriksaan akun](https://docs.didit.me/id/core-technology/bank-verification/account-check.md): format akun, hasil, dan nilai sandbox.
* [Kunci konfigurasi Verifikasi Bank](https://docs.didit.me/id/management-api/workflows/feature-configs.md#verifikasi-bank): setiap kunci dari langkah ini.


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