offer_not_found
POST /v1/offers/preview or /redeem with a token that opens no live offer: never issued, revoked, replaced by a new quote version, or expired. The same answer for each, so the endpoint reveals nothing about which.
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/offer_not_found",
"title": "…",
"status": 404,
"detail": "…",
"instance": "/v1/…"
}