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

# Cek Rekening Bank: Kepemilikan Tanpa Login

> Didit memastikan kepemilikan rekening bank tanpa login dari detail yang dimasukkan: IBAN, sort code, CLABE, CBU, IFSC, dan lainnya.

Pemeriksaan rekening mengonfirmasi bahwa suatu rekening bank adalah milik orang yang telah diverifikasi oleh alur kerja Anda, dari detail rekening yang mereka ketik. Tidak ada proses masuk ke bank dan tidak ada layar persetujuan: orang tersebut memasukkan rekening mereka sesuai format penulisan di negara mereka, dan bank mengonfirmasi nama pada rekening tersebut terhadap nama yang telah diverifikasi pada langkah sebelumnya.

Ini merupakan salah satu dari dua [metode Verifikasi Bank](https://docs.didit.me/id/core-technology/bank-verification/verification-methods.md), di samping masuk ke bank, dan nilai metodenya adalah `account_lookup`. Unggah rekening koran dan deposit mikro tetap menjadi cadangan setelah keduanya, dan orang tersebut selalu dapat [melanjutkan tanpa bank](https://docs.didit.me/id/core-technology/bank-verification/fallbacks.md). Untuk memeriksa rekening dari backend Anda tanpa sesi, misalnya sebelum pembayaran, gunakan [API pemeriksaan rekening](https://docs.didit.me/id/standalone-apis/bank-account-check.md).

> [!NOTE]
>
> Verifikasi Bank mengonfirmasi siapa pemilik rekening terhadap identitas yang telah ditetapkan oleh **langkah lain**, sehingga metode ini bukan merupakan bukti identitas yang berdiri sendiri. Tempatkan Verifikasi Identitas, Validasi Database, kuesioner, atau `expected_details` sebelum langkah ini. Orang tersebut tidak pernah mengetik nama untuk pemeriksaan ini: Didit selalu membandingkan nama yang telah diverifikasi oleh sesi.

## Cara kerja

**1. Pengguna memilih negara mereka**

Pada langkah Verifikasi Bank, pengguna memilih negara yang ditawarkan oleh langkah tersebut. Jika pemeriksaan rekening menjadi yang utama di sana, langkah tersebut akan membuka formulir singkat dalam format rekening negara tersebut. Jika masuk ke bank menjadi yang utama, pengguna memilih **Masukkan detail rekening Anda** untuk membuka formulir.

**2. Pengguna mengetik rekening mereka**

Misalnya IBAN, sort code dan nomor rekening, atau CLABE. Alur verifikasi membangun formulir dari apa yang dikembalikan oleh API untuk negara tersebut, sehingga negara yang ditambahkan Didit di kemudian hari tidak memerlukan perubahan apa pun di sisi Anda.

**3. Didit memeriksa formatnya terlebih dahulu**

Sebelum ada yang ditagihkan, Didit memeriksa setiap nilai: panjangnya, karakternya, digit pemeriksanya, dan, untuk IBAN, bahwa IBAN tersebut berasal dari negara yang dipilih. Nilai yang gagal akan ditolak beserta kolom yang perlu diperbaiki. Pengguna memperbaikinya langsung di tempat, dan tidak ada percobaan yang terpakai.

**4. Bank memeriksa nama pada rekening**

Didit menjalankan satu pemeriksaan terhadap nama yang diverifikasi oleh sesi. Apa pun data lain yang dikirim klien akan diabaikan.

**5. Langkah verifikasi menentukan keputusan**

Jawaban tersebut menjadi hasil kepemilikan, dan tindakan langkah tersebut mengubahnya menjadi keputusan akhir persis seperti yang dilakukan untuk metode masuk ke bank.

## Tempat pemeriksaan ditawarkan

Cakupan berlaku per negara. Di produksi, pemeriksaan ini berjalan di Nigeria, Ghana, dan Kenya saat ini. Didit mengaktifkannya negara demi negara setelah memiliki rute yang memiliki harga di sana; negara tanpa rute tersebut tidak menawarkannya, dan [harga Verifikasi Bank](https://docs.didit.me/id/getting-started/bank-verification-pricing.md) selalu menampilkan daftar terbaru. Negara-negara ditambahkan seiring waktu, dan langkah verifikasi selalu membaca daftar terbaru, sehingga Anda tidak perlu mengubah integrasi Anda saat ada penambahan negara.

Di dalam negara yang tercakup, metode pada langkah verifikasi menentukan apakah pengguna melihatnya:

* **Urutan langkah.** `bank_method_order` mengatur metode mana yang ditawarkan setiap negara dan mana yang ditampilkan pertama. Nilai defaultnya, `["open_banking", "account_lookup"]`, dimulai dengan masuk ke bank dan menawarkan pemeriksaan rekening sebagai cadangannya.
* **Urutan khusus suatu negara.** `methods` pada sebuah negara di `bank_countries` menggantikan urutan langkah di sana, misalnya `["account_lookup"]` hanya untuk pemeriksaan rekening, atau `["account_lookup", "open_banking"]` untuk memulainya dengan metode tersebut.
* **Bank yang mengalami gangguan.** Jika suatu negara menawarkan pemeriksaan rekening, metode ini juga menjadi cadangan untuk bank yang mengalami penurunan performa atau gangguan pada metode masuk ke bank: langkah ini beralih ke formulir rekening sebelum persetujuan apa pun diminta, selama pengguna masih memiliki pemeriksaan rekening yang tersisa.
* **Pemeriksaan berjalan pada rute milik Didit sendiri.** Langkah yang berjalan pada penyedia marketplace Anda sendiri (`provider_key`) hanya menawarkannya jika `fallback_to_native` aktif.
* **Rekening bisnis.** Dalam sesi verifikasi bisnis, pemeriksaan ini membandingkan rekening bisnis dengan bisnis yang telah diverifikasi, di negara-negara tempat Didit memeriksa rekening bisnis.

Lihat [Pilih metode per negara](https://docs.didit.me/id/core-technology/bank-verification/verification-methods.md#memilih-metode-per-negara) untuk aturan penyimpanan konfigurasi.

## Data yang diketik pengguna

Berikut adalah format rekening yang dikenali formulir. Daftar ini bukan daftar cakupan: ketersediaan pemeriksaan di suatu negara bergantung pada [tempat pemeriksaan ditawarkan](#tempat-pemeriksaan-ditawarkan), dan langkah verifikasi selalu menampilkan kolom yang tepat untuk negara tersebut.

| Format rekening | Negara | Data yang diketik pengguna |
| - | - | - |
| IBAN | Negara-negara yang menggunakan IBAN | IBAN lengkap, yang harus berasal dari negara yang dipilih |
| Sort code dan nomor rekening | Britania Raya | Sort code 6 digit dan nomor rekening 8 digit |
| Routing number dan nomor rekening | Amerika Serikat | ABA routing number 9 digit dan nomor rekening |
| Transit dan institution number | Kanada | Nomor transit dan nomor institusi 8 digit (nomor transit 5 digit diikuti nomor institusi 3 digit) dan nomor rekening |
| BSB dan nomor rekening | Australia | BSB 6 digit dan nomor rekening |
| CLABE | Meksiko | CLABE 18 digit, yang sudah mencantumkan nama bank |
| CBU atau CVU | Argentina | CBU atau CVU 22 digit, yang sudah mencantumkan nama bank |
| IFSC dan nomor rekening | India | IFSC 11 karakter dan nomor rekening |
| NUBAN dan kode bank | Nigeria | NUBAN 10 digit dan kode bank atau BIC |
| Nomor rekening | Negara lainnya | Nomor rekening, serta kode bank atau BIC jika negara tersebut memerlukannya |

Di beberapa negara, formulir ini juga meminta nomor registrasi: untuk rekening bisnis, dan di beberapa negara untuk setiap rekening.

Spasi, tanda hubung, dan titik akan dihapus serta huruf diubah menjadi huruf kapital sebelum nilainya diperiksa, sehingga pengguna dapat mengetik rekening sebagaimana dicetak oleh bank mereka.

## Mengaktifkannya

Langkah baru menawarkan pemeriksaan rekening secara default, sebagai cadangan untuk login bank. Untuk memulainya terlebih dahulu, atau menawarkannya saja, tempatkan `account_lookup` di urutan pertama:

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

Pengaturan ini menentukan cara kerja pemeriksaan:

| Pengaturan | Pengaruh pada pemeriksaan rekening |
| - | - |
| `bank_method_order`, `bank_countries.<ISO3>.methods` | Menentukan apakah suatu negara menawarkan pemeriksaan ini, dan apakah pemeriksaan muncul sebelum atau sesudah login bank. |
| `bank_countries` | Pemeriksaan hanya berjalan di negara-negara tempat langkah tersebut menawarkannya. |
| `bank_reference_identity` | Langkah yang nama terverifikasinya menjadi pembanding untuk rekening. |
| `bank_account_check_max_attempts` | Jumlah pemeriksaan yang didapatkan pengguna, `1` hingga `5` (default `3`). Hitungan terpisah dari `bank_max_attempts` milik login bank. |
| `bank_account_check_accept_close_match` | Aktif (default): kecocokan mendekati dialihkan ke konfirmasi kecocokan mendekati, atau ke `bank_partial_match_action`. Nonaktif: setiap kecocokan mendekati dianggap tidak cocok. |
| `bank_name_match_threshold`, `bank_partial_match_floor` | Rentang skor nama yang sama dengan login bank: kecocokan pada atau di atas ambang batas (default 85), dan kecocokan mendekati, yaitu rentang kecocokan parsial, antara batas bawah (default 70) dan ambang batas. |
| `bank_use_provider_score` | Aktif (default): skor nama milik pemeriksaan itu sendiri yang menentukan saat skornya lebih tinggi dari Didit, atau saat pemeriksaan mengembalikan skor tanpa nama pemilik, dan `ownership.method` kemudian bernilai `provider_only`. Nonaktif: jawaban tanpa nama pemilik bernilai `not_verifiable`. |
| `bank_suggest_holder_name` | Aktif (default): pada kecocokan mendekati yang menyertakan nama pemilik, pengguna melihat nama tersebut dan mengonfirmasi bahwa itu miliknya atau mencoba rekening lain. |

## Hasil

### Pemeriksaan yang mengembalikan jawaban

Masing-masing pemeriksaan ini ditagih sekali dan menggunakan satu dari kuota pemeriksaan rekening pengguna (`bank_account_check_max_attempts`). Hingga langkah selesai, pengguna dapat mencoba lagi dengan rekening lain selama kuota pemeriksaan masih ada. Hasilnya berada di `ownership.result`, kecuali untuk rekening yang tidak ada, yang berada di `connection.reason_code`.

| Hasil pemeriksaan | Hasil | Penentu keputusan |
| - | - | - |
| Rekening milik orang yang terverifikasi | `match` | Langkah disetujui, kecuali jika pemeriksaan lain dalam langkah tersebut menyatakan sebaliknya. |
| Kecocokan mendekati yang menyertakan nama pemilik | `partial_match` | Dengan `bank_suggest_holder_name` aktif, pengguna mengonfirmasi nama tersebut atau mencoba rekening lain. Mengonfirmasinya akan menyelesaikan langkah dengan `bank_partial_match_action` (default `REVIEW`). |
| Kecocokan mendekati dengan skor tetapi tanpa nama pemilik | `partial_match` | `bank_partial_match_action` (default `REVIEW`). `ownership.method` bernilai `provider_only`. Ini memerlukan `bank_use_provider_score` aktif, yang merupakan default; jika nonaktif, jawabannya adalah `not_verifiable`. |
| Rekening milik orang lain | `no_match` | `bank_no_match_action` (default `DECLINE`). |
| Jawaban yang tidak membandingkan nama apa pun | `not_verifiable` | `bank_not_verifiable_action` (default `REVIEW`). |
| Tidak ada rekening dengan detail ini | `ACCOUNT_NOT_FOUND` | Pengguna dapat mencoba rekening lain selama kuota pemeriksaan masih ada. |

Dengan `bank_account_check_accept_close_match` nonaktif, kedua jenis kecocokan mendekati tersebut menjadi `no_match`, dengan kode alasan `OWNER_NAME_MISMATCH`: pengguna tidak pernah diminta untuk mengonfirmasi nama, dan `bank_no_match_action` yang menentukan. Login bank tetap mempertahankan kecocokan mendekatinya di kedua kondisi.

Setelah pengguna menghabiskan setiap pemeriksaan rekening, dan setiap percobaan login bank jika negara tersebut juga menawarkan login bank, tanpa koneksi yang berhasil, langkah tetap terbuka selama masih menawarkan unggahan rekening koran dengan sisa percobaan yang ada: lihat [Unggahan rekening koran](https://docs.didit.me/id/core-technology/bank-verification/fallbacks.md#unggahan-rekening-koran). Ketika tidak ada opsi yang tersisa, langkah berakhir dengan `bank_attempts_exhausted_action` (default `DECLINE`), kecuali jika percobaan sebelumnya telah mencapai keputusan, seperti ketidakcocokan nama. Keputusan tersebut kemudian tetap berlaku.

### Hasil yang tidak pernah ditagih

Tidak satu pun dari kondisi ini yang mengurangi kuota pemeriksaan. Masing-masing ditampilkan di `connection.reason_code`.

| Yang terjadi | Kode alasan | Tindak lanjut |
| - | - | - |
| Rekening ditolak berdasarkan data yang dimasukkan, oleh pemeriksaan format Didit atau oleh bank | `INVALID_ACCOUNT_INPUT`, selama percobaan tetap terbuka | Pengguna diberi tahu kolom mana yang harus diperbaiki dan memperbaikinya. |
| Pemeriksaan sedang tidak tersedia | `PROVIDER_UNAVAILABLE` | Pengguna dapat mencoba lagi. |
| Sesi tidak memiliki nama terverifikasi untuk dibandingkan | `REFERENCE_IDENTITY_MISSING` | Pemeriksaan tidak pernah dijalankan. Langkah berakhir dengan `bank_reference_identity_missing_action` (default `REVIEW`). |

### Dalam keputusan

Keputusan sesi mencantumkan langkah ini di bawah `bank_verifications[]`. Setelah rekening dievaluasi, `method` bernilai `account_lookup`. Selama belum ada rekening yang dievaluasi, `method` dan `ownership` bernilai `null`, dan `connection.reason_code` menjelaskan alasannya, misalnya `ACCOUNT_NOT_FOUND`, `PROVIDER_UNAVAILABLE`, atau `REFERENCE_IDENTITY_MISSING`.

Tidak ada bank yang dipilih untuk pemeriksaan, sehingga `connection.institution_id`, `connection.institution_name`, dan `connection.oauth` bernilai `null`, dan `connection.institution_country` adalah negara yang dipilih pengguna. Didit tidak lagi memiliki akses ke rekening setelah langkah selesai, sehingga pemeriksaan yang berakhir dengan kecocokan bernilai `connection.status: revoked` dengan `reason_code: VERIFICATION_COMPLETED`. Hasilnya sendiri tetap tersimpan pada sesi.

Pemeriksaan rekening tidak membaca saldo, transaksi, atau pendapatan. Jika langkah memintanya, `financial_data.not_collected` akan mencantumkannya; lihat [Data keuangan memerlukan login bank](https://docs.didit.me/id/core-technology/bank-verification/verification-methods.md#data-keuangan-memerlukan-login-bank).

```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"
      }
    }
  ]
}
```

Contoh tersebut hanya menampilkan kolom yang dibahas di halaman ini. Setelah rekening dievaluasi, baca `method` untuk membedakan pemeriksaan rekening dari login bank: kolom tersebut adalah satu-satunya kolom yang ditujukan untuk tujuan itu.

### Dalam aturan alur kerja dan laporan

* **Cabang dan aturan status:** `bank.method` bernilai `account_lookup` (**Pemeriksaan rekening** di pembuat aturan), dan `bank.reason_code` dapat bernilai `ACCOUNT_NOT_FOUND`.
* **Laporan PDF sesi:** baris **Metode verifikasi** menampilkan **Pemeriksaan rekening**.

## Harga

Setiap pemeriksaan yang mengembalikan jawaban dihitung sebagai satu biaya Verifikasi Bank: kecocokan, kecocokan dekat, ketidakcocokan, rekening yang tidak dapat diverifikasi, dan rekening yang tidak ditemukan semuanya ditagih. Nilai yang ditolak sebelum pemeriksaan, pemeriksaan yang tidak tersedia, dan sesi tanpa nama terverifikasi untuk dibandingkan tidak pernah ditagih. Harga ditetapkan per negara: lihat [Harga Verifikasi Bank](https://docs.didit.me/id/getting-started/bank-verification-pricing.md).

Pemeriksaan rekening adalah metode berbayar tersendiri, bukan metode cadangan: `bank_fallback_used_action` tidak dipicu untuk metode ini. Setelah pemeriksaan yang ditagih, setoran mikro dan pengunggahan rekening koran disertakan tanpa biaya tambahan dalam sesi yang sama, jika langkah tersebut mengaktifkannya dan negara yang bersangkutan menyediakannya.

## Uji di sandbox

Dalam aplikasi sandbox, pemeriksaan berjalan pada layanan simulasi dan tidak ada yang ditagih. Sandbox menawarkan kedua metode di setiap negara, sesuai urutan yang ditetapkan langkah: dengan urutan default, pilih **Masukkan detail rekening Anda** untuk menjalankan pemeriksaan, atau atur `bank_method_order` ke `["account_lookup", "open_banking"]` untuk memulainya.

Empat karakter terakhir dari nomor rekening yang dimasukkan orang tersebut (IBAN, atau nomor rekening jika bukan IBAN) menentukan jawabannya. Akhiran lainnya cocok dengan nama yang terverifikasi.

| Berakhiran | Jawaban |
| - | - |
| `0001` | Kecocokan dekat yang menyebutkan nama pemegang: orang tersebut diminta mengonfirmasi nama. Jika `bank_account_check_accept_close_match` nonaktif, hasilnya tidak cocok. |
| `0002` | Kecocokan dekat tanpa nama pemegang: `bank_partial_match_action` yang menentukan. Jika `bank_use_provider_score` nonaktif, jawabannya adalah `not_verifiable`; jika `bank_account_check_accept_close_match` nonaktif, hasilnya tidak cocok. |
| `0003` | Tidak cocok: rekening milik orang lain. Menghabiskan satu pemeriksaan. |
| `0004` | Dijawab tetapi tidak membandingkan nama (`not_verifiable`). Menghabiskan satu pemeriksaan. |
| `0005` | Pemeriksaan tidak tersedia (`PROVIDER_UNAVAILABLE`). Dapat dicoba lagi secara gratis. |
| `0006` | Tidak ada rekening dengan detail ini (`ACCOUNT_NOT_FOUND`). Menghabiskan satu pemeriksaan. |
| `0009` | Ditolak saat diketik: orang tersebut diminta memperbaiki kolom tersebut. Upaya verifikasi tetap terbuka. |

Sandbox mencatat setiap pemeriksaan yang dijawab sebagai penggunaan tanpa biaya, sehingga Anda dapat melihat pemeriksaan mana saja yang akan ditagih pada sesi produksi.

IBAN, CLABE, dan CBU memiliki digit pemeriksa, sehingga Anda tidak dapat begitu saja mengubah empat karakter terakhirnya. Gunakan nilai-nilai berikut, yang lolos setiap pemeriksaan format:

> [tab] Jerman (IBAN)
>
> | Jawaban | IBAN |
> | - | - |
> | Cocok | `DE43123456789012345678` |
> | `0001` | `DE62123456789012340001` |
> | `0002` | `DE35123456789012340002` |
> | `0003` | `DE08123456789012340003` |
> | `0004` | `DE78123456789012340004` |
> | `0005` | `DE51123456789012340005` |
> | `0006` | `DE24123456789012340006` |
> | `0009` | `DE40123456789012340009` |

> [tab] Inggris Raya
>
> Sort code `123456`, dengan:
>
> | Jawaban | Nomor rekening |
> | - | - |
> | Cocok | `12345678` |
> | `0001` | `12340001` |
> | `0002` | `12340002` |
> | `0003` | `12340003` |
> | `0004` | `12340004` |
> | `0005` | `12340005` |
> | `0006` | `12340006` |
> | `0009` | `12340009` |

> [tab] Amerika Serikat
>
> Nomor perutean `021000021`, dengan:
>
> | Jawaban | Nomor rekening |
> | - | - |
> | Cocok | `000123456789` |
> | `0001` | `000123450001` |
> | `0002` | `000123450002` |
> | `0003` | `000123450003` |
> | `0004` | `000123450004` |
> | `0005` | `000123450005` |
> | `0006` | `000123450006` |
> | `0009` | `000123450009` |

> [tab] Meksiko (CLABE)
>
> | Jawaban | CLABE |
> | - | - |
> | Cocok | `002010077777777771` |
> | `0001` | `002010077777780001` |
> | `0002` | `002010077777750002` |
> | `0003` | `002010077777720003` |
> | `0004` | `002010077777790004` |
> | `0005` | `002010077777760005` |
> | `0006` | `002010077777730006` |
> | `0009` | `002010077777740009` |

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

> [tab] India
>
> IFSC `ALLA0211480`, dengan:
>
> | Jawaban | Nomor rekening |
> | - | - |
> | Cocok | `123456789007` |
> | `0001` | `123456780001` |
> | `0002` | `123456780002` |
> | `0003` | `123456780003` |
> | `0004` | `123456780004` |
> | `0005` | `123456780005` |
> | `0006` | `123456780006` |
> | `0009` | `123456780009` |

[API pemeriksaan rekening](https://docs.didit.me/id/standalone-apis/bank-account-check.md) memberikan respons untuk kunci sandbox berdasarkan akhiran yang sama, tanpa sesi.

Lihat [Pengujian sandbox](https://docs.didit.me/id/integration/sandbox-testing.md) untuk mengetahui cara kerja aplikasi sandbox secara umum.


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