SDK Response

VIDVDocKitResponse (enum)

Returned from the onDocKitResult() callback:

Case

Description

success(data: VIDVDocumentKitResult)

SDK session completed successfully

serviceFailure(code: Int, message: String, data: VIDVDocumentKitResult?)

Backend or validation failure

exit(step: String, data: VIDVDocumentKitResult?)

User exited manually

builderError(code: Int, message: String)

Configuration error prevented SDK from launching

Implement Result Callback

extension ViewController: VIDVDocKitDelegate {
    func onDocKitResult(_ result: VIDVDocKitResponse) {
        switch result {
        case let .success(data):
            // Handle success with extractedData and sessionID


        case let .serviceFailure(code, message, data):
            // Handle API or processing error


        case let .exit(step, data):
            // Handle user exit at a specific step


        case let .builderError(code, message):
            // Handle configuration issue before SDK starts
        }
    }
}

VIDVDocumentKitResult (class)

Field

Type

Description

sessionID

String?

Unique ID for SDK session

extractedData

[String: String]?

Key-value map of OCR results

captures

[String: String]?

Base64-encoded images (front, back)

hmacData

[String]?

Optional HMAC data for integrity validation


🔍 Example Output

Example result handling inside the callback:

case let .success(data):
    let resultText = """
    Session ID: \(data.sessionID ?? "")
    Document Items: \(data.extractedData?.compactMap { dict in
        dict.key + ": " + (dict.value as? String ?? "")
    }.joined(separator: ", \n ") ?? "None")
    """
    resultTextView.text = resultText

Note: Not all extracted fields will be populated. Results depend on document quality, lighting, and OCR success.

Last updated