Langsung ke konten utama
POST
Mengonfirmasi bahwa rekening bank Afrika Selatan milik pemegang rekening yang disebutkan, melalui layanan Account Holder Verification antarbank. Didit menyediakan layanan ini melalui POST /v3/database-validation/ agar Anda dapat memvalidasi data yang dikirim terhadap sumber resmi dan menerima hasil kecocokan yang sudah dinormalisasi.

Cakupan

  • Cakupan: —
  • Negara: Afrika Selatan
  • ID layanan: zaf_bank_account_holder
  • Domain data: Keuangan
  • Kategori: Perbankan

Input

  • Input wajib: national_id, bank_account_number, bank_name
  • Input opsional: account_type, first_name, last_name, initials, email, phone_number, vendor_data
  • Persetujuan: Wajib
  • Ketersediaan di alur kerja: Tersedia di alur kerja dengan pemetaan kolom
  • Cakupan: —
  • Harga: $0.40 per kueri yang berhasil
Dalam alur kerja, bank_account_number dan bank_name tidak tercetak pada dokumen identitas, sehingga tidak ada langkah yang menghasilkannya sendiri. Kumpulkan keduanya dari jawaban Kuesioner, dari kolom hasil ekstraksi Document AI, atau dari nilai yang Anda kirim saat membuat sesi, lalu petakan masing-masing pada langkah Validasi Database. Sampai keduanya dipetakan, editor alur kerja menampilkan layanan ini dalam keadaan nonaktif dan menyebutkan input yang belum ada. Saat dijalankan, input yang hilang berarti pemeriksaan dilewati sebelum ada kueri apa pun, sehingga Anda tidak pernah ditagih untuk database yang tidak dapat dikueri.

Parameter body

string
default:"ZAF"
wajib
Kode negara ISO 3166-1 alpha-3 untuk layanan database ini.Contoh: ZAF
string
default:"zaf_bank_account_holder"
wajib
Array yang berisi ID layanan ini. Mengunci layanan membuat permintaan tetap terbatas pada database yang tepat ini.Contoh: zaf_bank_account_holder
Persetujuan eksplisit dari pengguna akhir untuk layanan ini.Contoh: true
string
default:"8708150847085"
wajib
Nomor identitas nasional untuk layanan ini.Contoh: 8708150847085
string
default:"1234567890"
wajib
Nilai bank_account_number yang diwajibkan oleh layanan database ini.Contoh: 1234567890
string
default:"ABSA"
wajib
Nilai bank_name yang diwajibkan oleh layanan database ini.Contoh: ABSA
string
default:"current"
Nilai account_type yang diwajibkan oleh layanan database ini.Contoh: current
string
Nama depan yang akan divalidasi.Contoh: John
string
default:"Doe"
Nama belakang yang akan divalidasi.Contoh: Doe
string
default:"JD"
Nilai initials yang diwajibkan oleh layanan database ini.Contoh: JD
string
Alamat email.Contoh: john.doe@example.com
string
Nilai phone_number yang diwajibkan oleh layanan database ini.Contoh: +15550101000
string
default:"user-1234"
Referensi pengguna stabil Anda untuk orang ini, misalnya ID pengguna internal Anda. Didit menggunakannya untuk menautkan pemeriksaan yang berdiri sendiri ke pengguna akhir yang sama dan mengurangi gangguan pada deteksi duplikat.Contoh: user-1234

Aturan input & catatan validasi

  • account_type harus salah satu tipe akun AVS Afrika Selatan: current, savings, transmission, subscriptionShare, notKnown. Pencocokan tidak sensitif terhadap huruf besar-kecil. Hilangkan kolom ini jika Anda tidak mengetahui tipe akunnya: Didit kemudian mengirim notKnown, dan pemeriksaan silang tipe akun dilaporkan sebagai tidak terkonfirmasi, bukan membuat permintaan gagal.

Cara memanggil

Data yang dikembalikan

Kolom pasti yang muncul di source_data bergantung pada apa yang dikembalikan registri. Contoh yang dihasilkan untuk zaf_bank_account_holder saat ini mendokumentasikan bentuk ternormalisasi berikut:
  • accepts_credits
  • accepts_debits
  • account_found
  • account_number_length_valid
  • account_open
  • account_type_match
  • id_match
  • identification_number
  • initials_match
  • surname_match

Harga & SLA

Kueri Verifikasi Pemegang Rekening Bank di Afrika Selatan hanya ditagih ketika Didit menerima hasil konklusif dari sumber validasi.
  • Harga per panggilan: $0.40 USD.
  • Penagihan: per kueri yang berhasil. Anda tidak dikenai biaya ketika registri tidak dapat dijangkau, ketika kolom wajib tidak ada, atau ketika permintaan ditolak sebelum mencapai sumber.
  • Latensi: p95 tipikal < 2 detik.
  • Ketersediaan: 99.9% per kuartal di sisi Didit; ketersediaan sumber hilir bervariasi menurut negara dan dataset.

Apa yang Dikonfirmasi oleh MATCH

Verifikasi Pemegang Rekening (AVS) adalah serangkaian pemeriksaan silang ya/tidak, bukan pencarian catatan. Sumber tidak pernah mengembalikan nama, nomor ID, atau saldo rekening. Sumber mengambil detail yang Anda kirim, membandingkannya dengan data yang dimiliki bank untuk rekening tersebut, lalu menjawab setiap perbandingan dengan sebuah flag. source_data memuat penanda tersebut:
  • account_found - bank memiliki rekening dengan nomor ini. Semua yang lain tidak berarti ketika nilai ini false.
  • account_open - rekening masih terbuka. Sebuah rekening bisa ditemukan tetapi sudah ditutup.
  • id_match - rekening dimiliki oleh ID nasional yang Anda kirim. Inilah pemeriksaan yang menjadi alasan layanan ini ada.
  • initials_match, surname_match - initials dan last_name yang Anda kirim cocok dengan pemegang rekening dalam catatan.
  • account_type_match - account_type yang Anda kirim cocok dengan jenis rekening yang sebenarnya.
  • email_match, phone_match - email dan phone_number yang Anda kirim cocok dengan detail kontak yang dimiliki bank.
  • accepts_debits, accepts_credits - rekening dapat menerima instruksi debit dan kredit.
  • account_number_length_valid - nomor rekening memiliki panjang yang diharapkan bank.
Kode hasil merangkum penanda tersebut:
  • MATCH - rekening ada dan setiap kolom yang Anda kirim cocok, termasuk id_match.
  • PARTIAL_MATCH - rekening dimiliki oleh ID nasional yang Anda kirim, tetapi setidaknya satu kolom lain yang Anda kirim tidak cocok (misalnya nama keluarga yang ejaannya berbeda dalam catatan bank). outcome_detail menyebutkan kolom yang gagal.
  • NO_MATCH - bank tidak memiliki rekening tersebut, atau rekening ada tetapi milik orang lain. Keduanya adalah jawaban konklusif tentang orang tersebut.
Pemeriksaan silang yang tidak Anda minta tidak dihitung dan tidak dilaporkan. AVS menjawab N untuk setiap kolom yang tidak diberikan, sehingga surname_match, initials_match, email_match, phone_match dan account_type_match hanya muncul di source_data ketika Anda mengirim input yang sesuai. Karena itu, hanya mengirim national_id, bank_account_number dan bank_name tetap menghasilkan MATCH penuh.

Nilai bank_name dan account_type yang diterima

bank_name dan account_type adalah enumerasi. Nilai di luar salah satu daftar ditolak sebelum kueri dijalankan, sehingga salah ketik hanya memerlukan satu putaran komunikasi, bukan biaya. account_type bersifat opsional dan menerima nilai berikut, tanpa membedakan huruf besar dan kecil: current · savings · transmission · subscriptionShare · notKnown Hilangkan kolom ini jika Anda tidak mengetahui jenis rekening. Didit kemudian mengirim notKnown, permintaan berhasil, dan account_type_match bernilai false karena tidak ada yang bisa dibandingkan. Nilai lain - checking, cheque, bond - ditolak dengan 400 yang mencantumkan kumpulan nilai yang diterima. bank_name wajib diisi, dan nilai-nilai berikut telah dikonfirmasi diterima (tanpa membedakan huruf besar dan kecil): ABSA · Capitec · FNB · Nedbank · Standard Bank · Investec · African Bank · Discovery Bank · Old Mutual · Bank Zero · Tyme · Grindrod Rekening konsumen di semua bank ini termasuk dalam cakupan, termasuk Capitec. Kirim bentuk singkat persis seperti yang tercantum - Capitec, bukan Capitec Bank; Tyme, bukan TymeBank. Bank yang tidak dikenali menghasilkan REGISTRY_ERROR dengan outcome_detail yang menyebutkan kolom yang ditolak sumber.

Membedakan rekening yang tidak ada dari sumber yang tidak tersedia

Ini adalah hasil HTTP yang berbeda, sehingga tidak diperlukan penguraian string error:
  • Rekening tidak ada - 200 OK, match_type: "no_match", outcome_code: "NO_MATCH", source_data.account_found: false. Ini adalah jawaban nyata dari bank. Ditagih, dan tindakan Anda untuk kondisi no-match berlaku.
  • Sumber tidak menjawab - 502 Bad Gateway dengan validation_errors[].code = empty_provider_response dan retryable: true. Tidak ada yang terbukti tentang orang tersebut, tidak ada yang ditagih, dan permintaan aman untuk dicoba lagi.
  • Sumber menolak menjalankan kueri - 400 Bad Request dengan validation_errors[].code = provider_rejected_input dan retryable: false. Sumber tidak pernah melakukan pencarian karena tidak mau menerima data yang dikirim. Perbaiki data; mencoba lagi dengan nilai yang sama tidak akan berhasil. Tidak ada yang ditagih.
  • Sumber menjawab dan menolak input Anda - 502 Bad Gateway dengan validation_errors[].code = provider_invalid_input (misalnya nomor rekening yang gagal pemeriksaan format milik bank). Mencoba lagi tidak ada gunanya sampai input diperbaiki; tidak ada yang ditagih.
  • Permintaan Anda tidak pernah keluar dari Didit - 400 Bad Request, yang mencantumkan kolom yang harus diperbaiki. Tidak ada yang ditagih.
Hanya yang pertama di antara semua ini yang merupakan jawaban tentang orang tersebut. Perlakukan 502 sebagai sementara - AVS meneruskan permintaan ke bank pemegang rekening alih-alih membaca registri, sehingga ini adalah layanan Afrika Selatan yang paling lambat - dan coba lagi dengan jeda bertahap.

Lanjutkan membaca

Terakhir diubah pada 7 November 2026