verified_number_attempts_exhausted
Too many wrong codes; the registration is now expired. Re-register for a fresh code. The invalid/expired/exhausted split is deliberate - unlike an API-key refusal there is no existence oracle to protect (the caller already proved tenancy), and each names a different next step.
Problem shape
Every non-2xx response is an RFC 9457 application/problem+json body. The type URI below is stable and machine-matchable, so branch on the final path segment (the code) and treat the status as redundant confirmation. See the error-handling guide.
{
"type": "https://docs.vocapable.com/errors/verified_number_attempts_exhausted",
"title": "…",
"status": 409,
"detail": "…",
"instance": "/v1/…"
}