SouthAfricaIDCardModel

A class derived from IDCardModel containing details specific to the South Africa ID card document

Declaration

@objc final public class SouthAfricaIDCardModel : IDCardModel {
    @objc override final public var fullName: String? { get }
    @objc final public var surname: String? { get }
    @objc final public var names: String? { get }
    @objc final public var identityNumberDateOfBirth: Date? { get }
    @objc final public var identityNumberSex: Sex { get }
    @objc final public var identityNumberCitizenship: CitizenshipType { get }
    @objc final public var identityNumberADigit: Int { get }
    @objc final public var identityNumberCheckDigit: Int { get }
    @objc final public var countryOfBirth: String? { get }
    @objc final public var citizenship: CitizenshipType { get }
    @objc final public var dateIssued: Date? { get }
    @objc final public var rsaCode: String? { get }
    @objc final public var cardNumber: String? { get }
    
    override final public func encode(to encoder: Encoder) throws
}

Only relevant details are shown, boilerplate or standard Swift generated code is omitted

Summary

Public variables

Name

Type

Description

Data source

String?

The names and surname of the subject as found on the ID card document.

Barcode

String?

The surname of the subject as found on the ID card document.

Barcode

String?

The names of the subject as found on the ID card document.

Barcode

Date?

The date of birth for the South African identity number.

Barcode

The sex for the South African identity number.

Barcode

The citizenship type for the South African identity number.

Barcode

Int

The A digit for the South African identity number.

Barcode

Int

The check digit for the South African identity number.

Barcode

String?

The country of birth of the subject as found on the ID card document.

Barcode

The citizenship of the subject as found on the ID card document.

Barcode

Date?

The date issued of the ID card document.

Barcode

String?

The RSA code of the ID card document.

Barcode

String?

The card number of the ID card document.

Barcode

Public methods

Signature

Return Type

Description

Void

Encodes the model using the encoder provided. Used to convert the model to JSON.

Validation

The following validation and verification applies to this document:

Check digit validation

Value

Validation type

Identity number

Check digit using Luhn algorithm.

Component verification

As explained in Validation & Verification the following fields are verified across the front and back components of the document.

Value

Source

Identity number

Front: OCR

Back: Barcode

Public variables

fullName

@objc override final public var fullName: String? { get }

Overridden from IDCardModel

Example: "JOHN DOE"

The names and surname of the subject as found on the ID card document.

surname

@objc final public var surname: String? { get }

Example: "DOE"

The surname of the subject as found on the ID card document.

names

@objc final public var names: String? { get }

Example: "JOHN"

The names of the subject as found on the ID card document.

identityNumberDateOfBirth

@objc final public var identityNumberDateOfBirth: Date? { get }

Example: 1988/01/23

The date of birth for the South African identity number.

identityNumberSex

@objc final public var identityNumberSex: Sex { get }

Example: Sex.Male

The sex for the South African identity number.

identityNumberCitizenship

@objc final public var identityNumberCitizenship: CitizenshipType { get }

Example: CitizenshipType.Citizen

The citizenship type for the South African identity number.

identityNumberADigit

@objc final public var identityNumberADigit: Int { get }

Example: 8

The A digit for the South African identity number.

identityNumberCheckDigit

@objc final public var identityNumberCheckDigit: Int { get }

Example: 8

The check digit for the South African identity number.

countryOfBirth

@objc final public var countryOfBirth: String? { get }

Example: "RSA"

The country of birth of the subject as found on the ID card document.

citizenship

@objc final public var citizenship: CitizenshipType { get }

Example: CitizenshipType.Citizen

The citizenship of the subject as found on the ID card document.

dateIssued

@objc final public var dateIssued: Date? { get }

Example: 2005/01/01

The date issued of the ID card document.

rsaCode

@objc final public var rsaCode: String? { get }

Example: "01234"

The RSA code of the ID card document.

cardNumber

@objc final public var cardNumber: String? { get }

Example: "0123456789"

The card number of the ID card document.

Public methods

encode(to encoder: Encoder)

override final public func encode(to encoder: Encoder) throws

This function also calls its super function

Encodes the model using the encoder provided. Used to convert the model to JSON.

See also

Last updated