Product19 August 20267 min read

Designing verification that doesn't lose users

Most onboarding funnels leak in the same place. The fix is usually structural, not cosmetic.

The leak has a location

Look at almost any onboarding funnel and the sharpest drop is at the same step: the one where a smooth digital flow suddenly asks for a photograph of a physical document. Everything before that point is typing. Everything after it requires the user to stand up, find a card, manage lighting, and upload a file over whatever connection they happen to have.

The usual response is to make the step prettier — better copy, a progress bar, a reassuring illustration. That rarely moves the number much, because the problem isn't that the step looks bad. It's that the step asks for something the user can't do from where they're sitting.

Typed beats photographed

A number can be typed from memory or from a phone's saved details. A document has to be located and photographed. If your verification can accept the first instead of requiring the second, you have removed the part of the flow that depends on the user's physical surroundings.

This is not a smaller check. Resolving a typed identifier against a source record is a stronger signal than reading a photograph, because a photograph proves the document exists, while a lookup proves the record does.

Verify in proportion to risk

Not every account needs the same depth of check on day one. A tiered approach does a light verification to open an account with conservative limits, and a deeper one when the user does something that warrants it — raising a limit, adding a payout method, crossing a threshold.

By then the user has context. They are asking for something, and the extra step is the price of getting it. That is a very different conversation from asking a stranger for documents thirty seconds after they first opened your app.

Design the failure path too

Teams build the success path carefully and then treat failures as a single generic error. But failures aren't one thing. A typo, a mismatch between name and record, an expired document, and an upstream outage all need different responses, and three of those four are recoverable in the moment if you say what went wrong.

A user who is told their licence expired last month knows exactly what to do. A user who sees "verification failed" closes the tab.

What to measure

Track completion rate through the verification step specifically, not just overall onboarding. Track time-in-step, which tells you whether people are hesitating or just waiting. Track retry rate and what happens after a retry — a high retry rate with high eventual success means your error messages are working.

And track how many users leave and come back later, because that number tells you how much of your funnel depends on remembering to finish something.


Written by the MuVertex team. Questions about anything here? Get in touch.

Keep reading

More from the blog

Guides6 min read

What an RC lookup actually tells you

A registration certificate answers more questions than most integrations ask it. Here's the full set.

Read the post
Compliance5 min read

Consent is an API parameter, not a checkbox

If consent lives only in your frontend, you cannot prove it at the moment that matters.

Read the post

Start verifying in minutes

Sandbox access and documentation, with no commitment.

We use essential cookies to run this site, and optional ones to understand how it is used. Cookie Policy