Skip to content

Errors

2mee uses standard HTTP status codes and a consistent JSON error body.

{
"error": {
"code": "invalid_signature",
"message": "The webhook-signature header did not match the request body.",
"requestId": "req_01HZX9..."
}
}
FieldNotes
codeA stable, machine-readable string. Branch on this, not the message.
messageHuman-readable explanation. May change; don’t parse it.
requestIdQuote this when contacting support — it locates the request in our logs.
StatusWhenWhat to do
200 / 202Success / acceptedProceed. 202 means queued for async processing.
400Malformed request (bad JSON, missing required field)Fix the payload; do not retry unchanged.
401Missing/invalid auth or signatureCheck your secret/token and signing. Don’t retry unchanged.
403Authenticated but not allowed (e.g. provider not enabled)Request access; don’t retry.
404Unknown resource (e.g. bad inboundKey)Check the URL. Don’t retry.
409Duplicate (idempotency key already seen)Treat as success.
413Payload too large (over 256 KB)Reduce the body. Don’t retry unchanged.
422Well-formed but semantically invalidFix the values; don’t retry unchanged.
429Rate limitedBack off and retry per Retry-After. See rate limits.
5xxServer errorRetry with exponential backoff.
  • Retry on 429, 5xx, timeouts and connection errors — with exponential backoff and jitter.
  • Do not retry 400, 401, 403, 404, 409, 413, 422 without changing the request — they won’t succeed on repeat.

This mirrors how 2mee treats your endpoints on the outbound side — see retries & idempotency.

Was this page helpful? Tell us / report an issue ↗