Skip to main content
POST
Retrieves the registered Department of Home Affairs photograph for a South African ID number. 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. Input format: national_id takes the South African ID number (13 digits, the last one a Luhn check digit).

Coverage

  • Coverage: —
  • Country: South Africa
  • Service ID: zaf_dha_photo
  • Data domain: Biometric
  • Category: Government

Inputs

  • Required inputs: national_id
  • Optional inputs: vendor_data
  • Consent: Required
  • Workflow availability: Available in workflow
  • Coverage: —
  • Price: $1.34 per successful query

Body parameters

string
default:"ZAF"
required
ISO 3166-1 alpha-3 country code for this database service.Example: ZAF
string
default:"zaf_dha_photo"
required
Array containing this service ID. Pinning the service keeps the request scoped to this exact database.Example: zaf_dha_photo
Explicit end-user consent for this service.Example: true
string
default:"1111111111111"
required
National identity number for this service.Example: 1111111111111
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

  • South African ID number (13 digits, the last one a Luhn check digit)
  • national_id must contain digits only; remove spaces, hyphens, and punctuation before sending the request.
  • national_id must be exactly 13 characters long.

How to call it

Returned data

The exact fields surfaced in source_data depend on what the registry returns. The generated example for zaf_dha_photo currently documents this normalized shape:
  • birth_place_country_code
  • deceased
  • first_name
  • id_blocked
  • identification_number
  • last_name
  • marital_status
  • on_hanis_biometric_register
  • on_national_population_register
  • photo_base64
  • smart_card_issued
  • transaction_number

Pricing & SLAs

South Africa - DHA Photo Retrieval queries are billed only when Didit receives a conclusive result from the validation source.
  • Per-call price: $1.34 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

Last modified on November 8, 2026