# SAID with photo

Confirm a person’s identity in South Africa from their 13-digit South African ID number (SAID) and put a face to the record. Alongside the core identity details – first name, last name, date of birth, gender, citizenship status, and deceased status – this service also returns the individual's official photograph, making it well suited to flows where visual confirmation matters

Endpoint: POST /services/za/said-photo
Version: 1.0
Security: API-Key

## Security:

  - `API-Key` (unknown)
    apiKey in header API-Key

## Request fields (application/json):

  - `said_number` (string, required)
    South African 13-digit national identity number in the format YYMMDDSSSSCAZ: YYMMDD is the date of birth, SSSS is a gender code (0000-4999 female, 5000-9999 male), C is the citizenship indicator   (0 citizen, 1 permanent resident), A is a historical digit, and Z is  a Luhn checksum digit.
    Example: 8001015009031

## Response 200:

  - `200` (unknown)
    **OK**
The request was successful, and our system returned an expected response.

## Response 200 fields (application/json):

  - `data` (object)

  - `data.first_name` (string | null)
    The first name of a person
    Example: Josh

  - `data.last_name` (string | null)
    The last name of a person
    Example: Coffey

  - `data.dob` (string | null)
    The date of birth of a person, formatted as “YYYY-MM-DD” according to ISO 8601
    Example: 1976-02-21

  - `data.gender` (string | null)
    The gender of a person. `M` indicates male; `F` indicates female
    Enum: "M", "F"

  - `data.is_citizen` (boolean)
    Indicates whether the person is a South African citizen. True for a citizen, false for a permanent resident. Derived from the eleventh digit of the South African ID number (0 for citizen, 1 for permanent resident)
    Example: true

  - `data.is_deceased` (boolean)
    Indicates whether the person is recorded as deceased. True if a death has been registered, false otherwise
    Example: false

  - `data.photo_base64` (string)
    Person’s photograph encoded as a base64 string
    Example: /9j/4A...

## Response 400:

  - `400` (unknown)
    **Bad Request**
Our system could not process the request due to invalid syntax, missing parameters, or incorrect data format. Check the request structure and try again.

## Response 400 fields (application/json):

  - `type` (string)
    Example: bad_request

  - `errors` (array)

## Response 402:

  - `402` (unknown)
    **Payment Required**
Access to the requested resource is restricted until a payment is successfully processed. Ensure your account has a valid payment method or sufficient funds to complete this action.

## Response 402 fields (application/json):

  - `type` (string)
    Example: insufficient_funds

  - `errors` (array)

## Response 404:

  - `404` (unknown)
    **Not Found**
The requested resource does not exist or can’t be found in our system.

## Response 500:

  - `500` (unknown)
    **Internal Server Error**
This response indicates that our system encountered an unexpected condition that prevented it from fulfilling the request.

## Response 500 fields (application/json):

  - `type` (string)
    Example: internal_server

  - `errors` (array)

## Response 502:

  - `502` (unknown)
    **Bad Gateway**
This response indicates that our system is unable to reach or communicate properly with an upstream server it relies on, the URL provided is incorrect, or a required token is missing from the request.

