Skip to content

Starting a transaction

Every verification runs as a transaction. When you start it you declare the document type and the steps to run (controls); Prove ID returns a transaction ID and the gesture to use in the liveness step.

import ProveIDApiClient
import AnyCodable
let optionalData: [String: Any] = [
"idType": "IDCARD",
"controls": ["FRONT", "BACK", "HOLOGRAM", "LIVENESS"]
]
IDServiceAPI.startTransaction(body: TransactionStartInputModel(optionalData: AnyCodable(optionalData))) { result in
switch result {
case .success(let data):
let transactionId = data.transactionId
let gestureType = data.gestureType ?? "EYE" // EYE, MOUTH, HEAD-VERTICAL, HEAD-HORIZONTAL
startDocumentCapture(transactionId: transactionId, gestureType: gestureType)
case .failure(let error):
showError(error) // see Errors
}
}

Keep transactionId and use it in every following step.

Document Method controls
Turkish ID card Camera FRONT, BACK, HOLOGRAM, LIVENESS
Turkish ID card NFC FRONT, BACK, NFC, LIVENESS
Driving licence Camera FRONT, BACK, HOLOGRAM, LIVENESS
Passport Camera FRONT, LIVENESS
Passport NFC FRONT, NFC, LIVENESS

idType values: IDCARD, OLDIDCARD, DRIVERCARD, PASSPORT, BLUECARD, FOREIGNID.

Hologram is available for the Turkish ID card and driving licence only. Add NFC only when the device can read NFC (see Installation).