MenuErrors

Errors

Every /api/v1 error has the same JSON shape: a stable code to branch on, a human message that may change, and sometimes details.

Error shape

HTTP
HTTP/1.1 422 Unprocessable Entity

{
  "error": {
    "code": "property_out_of_scope",
    "message": "Some Properties are outside the Connection Scope",
    "details": { "property_ids": ["PROPERTY_ID"] }
  }
}

Error codes

StatuscodeMeaning
401unauthorizedThe access token is missing, unknown, expired or revoked, or was issued before the account connected the App again. Refresh it; if refreshing fails, ask the owner to connect again.
401connection_revokedThe owner revoked the App Connection (or your App revoked its own refresh token). Stop calling for this account and drop its tokens.
402subscription_blockedThe ZenHost subscription of the account is blocked (unpaid, cancelled…). The connection is kept: tell your customer, calls work again once the subscription is restored.
403forbidden_permissionYour App was not granted the Permission this endpoint requires.
403app_suspendedZenHost suspended your App, or no longer allows it on this account. Stop calling and contact ZenHost.
404not_foundThe resource does not exist or is outside the Connection Scope (both look the same), or the path is not an endpoint of /api/v1.
405method_not_allowedThe endpoint exists but not with this HTTP method; the Allow header lists the accepted ones.
409idempotency_key_in_useA request with this Idempotency-Key is still being processed. Retry in a few seconds to get its answer.
422property_out_of_scopeA requested Property is outside the Connection Scope; details.property_ids lists them.
422validation_failedThe query, headers or body are invalid; details.issues points at each problem (path, message, and maximum when a value or list is too big).
422idempotency_key_reusedThis Idempotency-Key was already used on this App Connection with a different body.
422channel_unavailableThe chosen channel cannot reach the guest of this booking. On platform: the Sales Channel has no messaging for this booking, no conversation exists there yet, or the host must restore their connection to that Sales Channel. On email: the account has no sending address. Nothing was sent; try another channel.
422missing_guest_contactThe guest of this booking has no email address (for email) or phone number (for sms). Nothing was sent.
422sms_billing_unavailableThe ZenHost subscription of the account cannot be billed for SMS. Nothing was sent and nothing was billed; use another channel.
429rate_limitedToo many calls on this App Connection. Wait for the number of seconds in Retry-After.
500internal_errorZenHost failed to answer. Retry later with a back-off.
502attachment_unavailableThe Sales Channel could not hand over the attachment right now. Retry later with a back-off.
502delivery_failedThe message could not be delivered. details.delivery_outcome is not_sent when it certainly did not leave (safe to send again) or unknown when its fate is not known (read the messages of the booking before sending again).