Prepare an ordered plan.
Country configuration and the supplied recipient determine eligible channels. A delivery failure can advance through that plan automatically.
Keep the customer moving when a code does not arrive. Use the next eligible channel without restarting the verification’s expiry or attempt budget.
Keep signup moving when the first code does not arrive. Use the next eligible channel in the recipient’s plan.
The recipient can now enter the code.
Give an undelivered code another configured route.
Country configuration and the supplied recipient determine eligible channels. A delivery failure can advance through that plan automatically.
When the customer reports that nothing arrived, call next-channel with the original recipient. This deliberate switch does not wait for the resend cooldown; it moves only to a later eligible channel.
NoNextChannel means there is no later route; a resend on the current channel may be appropriate. Preserve the original expiry, check budget and all still-valid codes rather than creating competing sessions.
Organize teams in workspaces, control API access, and trace changes through audit logs.