Every module in an onboarding flow reports its outcome to your IncodeWelcome.OnboardingListener. Most modules deliver a result object through a dedicated callback. A few modules only signal completion, using a no-argument callback or a Boolean callback.
This page lists every result and error object. The groups match the categories on Modules. For the full field list of a result type, go to its module page or API Reference.
Call IncodeWelcome.deleteUserLocalData(context) from onSuccess(), onError(Throwable), and onUserCancelled() after you finish a session to clean up local user data.
Result Delivery
Results arrive on the module's success callback, such as onIdProcessed(IdProcessResult). IncodeWelcome.OnboardingListener declares this callback. Some callbacks also appear on narrower listener interfaces, such as IdProcessListener and PhoneNumberListener.
ResultCode is the shared status most result objects carry, typically inherited from BaseResult. It reports the module's outcome, such as SUCCESS, ERROR, USER_CANCELLEDor EMULATOR_DETECTED. See ResultCode in API Reference.
Some modules do not return a result object. They signal completion with a no-argument callback, such as onUserConsentCompleted(), or a Boolean callback, such as onTaxIdValidationCompleted(boolean). When a related result type exists internally, the tables below name it so you can find its fields in API Reference, even though the type is never passed to your listener.
Error Delivery
Errors surface on the shared OnboardingListener.onError(Throwable) path. The throwable is a generic Throwable unless a module defines its own exception subtype. Each table's Module-Specific Errors section notes any exception types.
When a result object has an error field, that field carries the same failure cause for that step.
Collect Identity Data
| Module | Result Object | Delivered Via |
|---|---|---|
| Document Scan | DocumentValidationResult |
onDocumentValidationCompleted(DocumentType, DocumentValidationResult) |
| Dynamic Forms | DynamicFormsResult |
onDynamicFormsCompleted(DynamicFormsResult) |
EmailAddressResult |
onAddEmailCompleted(EmailAddressResult) |
|
| Geolocation | GeolocationResult |
onGeolocationFetched(GeolocationResult); onGeolocationUnavailable(Throwable) when there is no fix |
| ID Info | IdInfoResult |
onIdInfoCompleted(IdInfoResult) |
| ID Scan | IdScanResult |
onIdFrontCompleted(IdScanResult) and onIdBackCompleted(IdScanResult) |
| Name | NameResult |
onAddNameCompleted(NameResult) |
| NFC Scan | NfcScanResult |
onNfcScanCompleted(NfcScanResult) |
| Phone | PhoneNumberResult |
onAddPhoneCompleted(PhoneNumberResult) |
| QR Scan | QRScanResult |
onQRScanCompleted(QRScanResult) |
| Selfie Scan | SelfieScanResult |
onSelfieScanCompleted(SelfieScanResult) |
| Video Selfie | VideoSelfieResult |
onVideoRecorded(VideoSelfieResult) |
Module-Specific Errors
Unless noted below, a module's errors surface on the shared onError path.
- Geolocation: On
onGeolocationUnavailable,GeolocationUnavailableExceptionfires if there is no fix.LocationPermissionDeniedExceptionfires if the user denies permission. - NFC Scan:
MissingNfcDependencyException, thrown when thenfclibrary dependency is absent. - QR Scan:
QRCodeUploadException, thrown when Incode cannot upload the decoded code. - Video Selfie:
VideoSelfieExceptionsubtypes:SelfieNotMatchedException,AudioNotMatchedException,FacesNotMatchedException,MaxVideoLengthReachedException, andVideoUploadException.
Verify and Authenticate
| Module | Result Object | Delivered Via |
|---|---|---|
| Antifraud | AntifraudResult |
onAntifraudCompleted(AntifraudResult) |
| CURP Validation | CurpValidationResult |
onCurpValidationCompleted(CurpValidationResult) |
| Custom Watchlist | CustomWatchlistResult |
onCustomWatchlistProcessed(CustomWatchlistResult) |
| eKYB (Electronic Know-Your-Business) | EKYBResult |
onEKYBChecksCompleted(EKYBResult) |
| eKYC (Electronic Know-Your-Customer) | EKYCResult |
onEKYCChecksCompleted(EKYCResult) |
| Face Authentication | FaceAuthenticationResult |
onFaceAuthenticationCompleted(FaceAuthenticationResult) |
| Face Match | FaceMatchResult |
onFaceMatchCompleted(FaceMatchResult) |
| Global Watchlist | GlobalWatchlistResult |
onGlobalWatchlistProcessed(GlobalWatchlistResult) |
| Government Validation | No payload. Related type: GovernmentValidationResult. |
onGovernmentValidationCompleted(boolean success) |
| Process ID | IdProcessResult |
onIdProcessed(IdProcessResult) |
| Tax ID Validation | No payload. Related type: TaxIdValidationResult. |
onTaxIdValidationCompleted(boolean isSuccess) |
Module-Specific Errors
Unless noted below, a module's errors surface on the shared onError path.
- Face Authentication:
FaceAuthenticationException, carrying aFaceAuthenticationErrorCode, such as a detected spoof attempt.
Capture Signatures and Consent
These modules' errors surface on the shared onError path.
| Module | Result object | Delivered via |
|---|---|---|
| AES (Advanced Electronic Signature) | AESResult |
onAESCompleted(AESResult) |
| Combined Consent | CombinedConsentResult |
onCombinedConsentCompleted(CombinedConsentResult) |
| Machine Learning Consent | MachineLearningConsentResult |
onMachineLearningConsentCompleted(MachineLearningConsentResult) |
| QES (Qualified Electronic Signature) | QESResult |
onQESCompleted(QESResult) |
| Signature | SignatureFormResult |
onSignatureCollected(SignatureFormResult) |
| User Consent | No payload. Related type: UserConsentResult. |
onUserConsentCompleted(), a no-argument callback. onUserCancelled() fires if the user declines. |
Add Human-Assisted Verification
This module's errors surface on the shared onError path.
| Module | Result object | Delivered via |
|---|---|---|
| Conference (Assisted Video) | No payload. Related type: VideoConferenceResult. Not passed to the callback. |
onConferenceEnded(). Queue updates arrive through onQueuePositionChanged(int) and onEstimatedWaitingTime(int). |
Configure the User Experience
This module's errors surface on the shared onError path.
| Module | Result object | Delivered via |
|---|---|---|
| Custom Module | No payload. | CustomModuleListener.onCustomModuleStarted(callbackName, onCustomModuleCompleted). You return a CustomModuleStatus: OK, FAIL, WARN, or UNKNOWN. |
Configure Android-Specific Experiences
These modules' errors surface on the shared onError path.
| Module | Result object | Delivered via |
|---|---|---|
| Accept Video Selfie | No payload. Related type: AcceptVideoSelfieResult. |
onUserAcceptedVideoSelfie(), a no-argument callback. |
| Approval | ApproveResult |
onApproveCompleted(ApproveResult) |
| Captcha | CaptchaResult |
onCaptchaCollected(CaptchaResult) |
| Intro | No payload. | onIntroCompleted(), a no-argument callback. |
| Results | UserScoreResult |
onResultsShown(UserScoreResult) |