UX - Retry
Retry flow: failures
When a transaction fails (not errors), Validate returns up to three user feedback codes (UFCs). Use them to tell the user, specifically, what to change before trying again. Handling the UFCs in the interface is a certification requirement and one of the strongest drivers of second-attempt pass rate.
Critical. The feedback codes must be handled in the interface. Using them to guide the user on retries is proven to increase the pass rate, and is required for certification.
- Show specific reasons, not "try again". Map each UFC to clear, concise, localised copy (for example "Move to a brighter area", "Ensure only one face is visible"). The mapping is in Appendix A.
- Three codes are returned; use them in order. They are ordered by proximity to the cause. If you show only one, always use the first in the array; showing all three, with a visual for the first, reinforces the guidance.
- Use visual examples. Illustrations or short animations guide better than text alone.
- Limit retries. The recommended standard is a maximum of three attempts, each with a fresh token (see Section 11); after that, offer an alternative path.
UFC animations
The animations below show each failure scenario as the user experiences it. Use these as reference when designing your retry feedback UI, or download the full set to use directly in your product.
Download UFC animations (.zip — mp4 + Lottie) · Download error & failure illustrations (.zip — SVG + PNG)
Face not found
No face detected in frame.
Obscured face — mask
Face partially covered by a mask.
Obscured face — cap
Face partially covered by a cap or hat.
Obscured face — balaclava
Face heavily covered.
Obscured face — sunglasses
Eyes obscured by sunglasses.
Eyes closed
Eyes not open during capture.
Multiple faces
More than one face in frame.
Timeout (with counter)
Session timed out before capture completed.
Timeout (no counter)
Session timed out — no countdown shown.
Background issue
Background too busy or bright.
User not found
No enrolled profile matched.
Retry flow: errors
Errors are different from failures: they indicate something went wrong technically (network, camera permission, device) rather than a biometric result. Show a clear, specific error reason and a controlled way to try again.
| Situation | What to show |
|---|---|
| Network / connectivity error | "Connection problem, please check your network and try again." |
| Camera permission denied | Clear steps to enable the camera, without looping the prompt. |
| Unsupported device / browser | Route to the alternative flow (below) rather than a dead end. |
Alternative and fallback paths
Recommended. Provide a fallback for users who cannot complete the biometric check. The technology is highly inclusive but not universally applicable in every circumstance; some users will hit edge cases. Offer an alternative verification route, for example manual review, so nobody is left unable to proceed.
Trigger the fallback from the Support Checker (unsupported devices, see Section 16), from the unsupported event, and after the retry limit is reached. Make it easy to find, and consider linking to troubleshooting or FAQs for users who want to resolve the issue themselves.
Progress indicators
After the capture, the result takes a moment to process. Show qualitative progress so the wait feels intentional, using the non-terminal events (see Section 18): for example "Connecting", "Streaming", "Analysing", "Validating". This reduces drop-off during processing.
Branding and consistency
Fold iProov's feedback assets into your own brand and design language so the biometric step feels part of your product, not a bolt-on. Consistent, trustworthy presentation supports completion rates (customisation is in Section 21).
Why retry and resource IDs matter
Two integration details underpin good UX analytics. A disciplined retry model (fresh token per attempt, capped at three, guided by UFCs) both protects against abuse and lets you measure how many users succeed on a second attempt. The resource field (see Section 3) lets you segment those outcomes by journey, channel or campaign, so you can see where users struggle and improve the experience with evidence rather than guesswork.