Skip to main content
POST
Confirms a South African bank account belongs to the named holder via the inter-bank Account Holder Verification service. Didit exposes this service through POST /v3/database-validation/ so you can verify the submitted data against the authoritative source and receive normalized match results.

Coverage

  • Coverage:
  • Country: South Africa
  • Service ID: zaf_bank_account_holder
  • Data domain: Financial
  • Category: Banking

Inputs

  • Required inputs: national_id, bank_account_number, bank_name
  • Optional inputs: account_type, first_name, last_name, initials, email, phone_number, vendor_data
  • Consent: Required
  • Workflow availability: Standalone API only
  • Coverage:
  • Price: $0.40 per successful query

Body parameters

issuing_state
string
default:"ZAF"
required
ISO 3166-1 alpha-3 country code for this database service.Example: ZAF
services
string
default:"zaf_bank_account_holder"
required
Array containing this service ID. Pinning the service keeps the request scoped to this exact database.Example: zaf_bank_account_holder
Explicit end-user consent for this service.Example: true
national_id
string
default:"SAMPLE-NID-12345"
required
National identity number for this service.Example: SAMPLE-NID-12345
bank_account_number
string
default:"1234567890"
required
bank_account_number value required by this database service.Example: 1234567890
bank_name
string
default:"John Doe"
required
bank_name value required by this database service.Example: John Doe
account_type
string
default:"checking"
account_type value required by this database service.Example: checking
first_name
string
default:"John"
Given name to validate.Example: John
last_name
string
default:"Doe"
Family name to validate.Example: Doe
initials
string
default:"JD"
initials value required by this database service.Example: JD
email
string
default:"john.doe@example.com"
Email address.Example: john.doe@example.com
phone_number
string
default:"+15550101000"
phone_number value required by this database service.Example: +15550101000
vendor_data
string
default:"user-1234"
Your stable user reference for this person, such as your internal user ID. Didit uses it to link standalone checks to the same end user and reduce duplicate-detection noise.Example: user-1234

Input rules & validation notes

  • Send the fields listed above exactly as captured from the user or document.
  • Didit validates required fields before calling the database. Requests rejected before source lookup are not charged.

How to call it

Returned data

The exact fields surfaced in source_data depend on what the registry returns. The generated example for zaf_bank_account_holder currently documents this normalized shape:
  • first_name
  • identification_number
  • last_name

Pricing & SLAs

South Africa - Bank Account Holder Verification queries are billed only when Didit receives a conclusive result from the validation source.
  • Per-call price: $0.40 USD.
  • Billing: per successful query. You are not charged when the registry is unreachable, when required fields are missing, or when the request is rejected before reaching the source.
  • Latency: typical p95 < 2 s.
  • Availability: 99.9% per quarter on Didit’s side; downstream source availability varies by country and dataset.

Continue reading