Extract specific fields
The top-level result object contains aggregated fields extracted from all scanned sides of the document. All fields are optional—the SDK only populates what it can read from the document. Always check whether a field is present before using its value.
Name fields
- Web (TS)
- Android (Kotlin)
- iOS (Swift)
blinkId.addOnResultCallback((result) => {
console.log("First name:", result.firstName?.latin?.value);
console.log("Last name:", result.lastName?.latin?.value);
console.log("Full name:", result.fullName?.latin?.value);
void blinkId.destroy();
});
onScanningSuccess = { result ->
println("First name: ${result.firstName?.value}")
println("Last name: ${result.lastName?.value}")
println("Full name: ${result.fullName?.value}")
}
onScanCompleted: { resultState in
guard let result = resultState.scanningResult else { return }
print("First name:", result.firstName?.value ?? "")
print("Last name:", result.lastName?.value ?? "")
print("Full name:", result.fullName?.value ?? "")
}
Date of birth
Date fields carry both a structured representation (year, month, day) and the original string as it appeared on the document.
- Web (TS)
- Android (Kotlin)
- iOS (Swift)
blinkId.addOnResultCallback((result) => {
const dob = result.dateOfBirth;
if (dob) {
console.log("Year:", dob.year);
console.log("Month:", dob.month);
console.log("Day:", dob.day);
console.log("Original string:", dob.originalString?.latin?.value);
}
void blinkId.destroy();
});
onScanningSuccess = { result ->
result.dateOfBirth?.let { dob ->
println("Year: ${dob.year}")
println("Month: ${dob.month}")
println("Day: ${dob.day}")
println("Original string: ${dob.originalString?.value}")
}
}
onScanCompleted: { resultState in
guard let result = resultState.scanningResult else { return }
if let dob = result.dateOfBirth {
print("Year:", dob.year as Any)
print("Month:", dob.month as Any)
print("Day:", dob.day as Any)
print("Original string:", dob.originalString?.value ?? "")
}
}
Document number and expiry
- Web (TS)
- Android (Kotlin)
- iOS (Swift)
blinkId.addOnResultCallback((result) => {
console.log("Document number:", result.documentNumber?.latin?.value);
const expiry = result.dateOfExpiry;
if (expiry) {
console.log("Expiry year:", expiry.year);
console.log("Expiry month:", expiry.month);
console.log("Expiry day:", expiry.day);
}
console.log("Permanent:", result.dateOfExpiryPermanent);
void blinkId.destroy();
});
onScanningSuccess = { result ->
println("Document number: ${result.documentNumber?.value}")
result.dateOfExpiry?.let { expiry ->
println("Expiry year: ${expiry.year}")
println("Expiry month: ${expiry.month}")
println("Expiry day: ${expiry.day}")
}
println("Permanent: ${result.dateOfExpiryPermanent}")
}
onScanCompleted: { resultState in
guard let result = resultState.scanningResult else { return }
print("Document number:", result.documentNumber?.value ?? "")
if let expiry = result.dateOfExpiry {
print("Expiry year:", expiry.year as Any)
print("Expiry month:", expiry.month as Any)
print("Expiry day:", expiry.day as Any)
}
print("Permanent:", result.dateOfExpiryPermanent as Any)
}
Address
- Web (TS)
- Android (Kotlin)
- iOS (Swift)
blinkId.addOnResultCallback((result) => {
console.log("Address:", result.address?.latin?.value);
console.log("Additional address:", result.additionalAddressInformation?.latin?.value);
void blinkId.destroy();
});
onScanningSuccess = { result ->
println("Address: ${result.address?.value}")
println("Additional address: ${result.additionalAddressInformation?.value}")
}
onScanCompleted: { resultState in
guard let result = resultState.scanningResult else { return }
print("Address:", result.address?.value ?? "")
print("Additional address:", result.additionalAddressInformation?.value ?? "")
}
Nationality, sex, and ethnicity
- Web (TS)
- Android (Kotlin)
- iOS (Swift)
blinkId.addOnResultCallback((result) => {
console.log("Nationality:", result.nationality?.latin?.value);
console.log("Sex:", result.sex?.latin?.value);
console.log("Ethnicity:", result.ethnicity?.latin?.value);
void blinkId.destroy();
});
onScanningSuccess = { result ->
println("Nationality: ${result.nationality?.value}")
println("Sex: ${result.sex?.value}")
println("Ethnicity: ${result.ethnicity?.value}")
}
onScanCompleted: { resultState in
guard let result = resultState.scanningResult else { return }
print("Nationality:", result.nationality?.value ?? "")
print("Sex:", result.sex?.value ?? "")
print("Ethnicity:", result.ethnicity?.value ?? "")
}