Changelog · back to all
Verify: send the passcode on another channel when it never arrives
When a user tells your app the passcode never arrived, you can now move them to another channel on demand. POST /v1/verify/verifications/next-channel advances a live verification to the next channel in its plan and sends a fresh code there, without waiting out the resend cooldown a second create would honour.
Until now the only way onto the next channel was to let Verify get there itself, after a send failed or a delivery report came back terminal. Neither helps the common case: the message was accepted, nothing came back to say otherwise, and the user is still staring at an empty inbox. This is the endpoint behind an "I didn't receive my code" button.
What's new
- One call, keyed by the recipient. Pass the same
toyou created the verification with, exactly as you do for a check. There is still no verification id to store. - No cooldown, no lost codes. A deliberate channel switch sends immediately, and every code already sent stays valid, so a message that turns up late still verifies.
- The response tells you where it went. You get the verification back with
last_channelnaming the channel the new passcode was sent on. - On every surface. The SDKs expose it as
Verify.Verifications.NextChannel(Go),verify.verifications.nextChannel(TypeScript), andverify.verifications.next_channel(Python), the CLI asbird verify verifications next-channel, and the MCP server as theverify_verifications_next_channeltool.
A verification whose channel plan has no further channel answers 422 with NoNextChannel; fall back to calling create again to resend on the current channel. Send the code on another channel covers the flow and the rest of the error cases.