Docs · Errors

Error Codes

Every non-2xx response from the Suite Profit API carries a JSON body of the shape { "error": "<string>", "code": "RP-XXXX", "message": "<human-readable>" }. The code is stable; the message may change. Log the code, show the message.

Codes

CodeHTTPMeaningRemediation
RP-1001401Missing or malformed Authorization headerSend Authorization: Bearer <token>.
RP-1002401Invalid or revoked tokenRotate the token from the Suite Profit dashboard.
RP-1003403Token lacks scope for the requested resourceRegenerate a token with the required scope.
RP-1004429Per-second rate limit exhaustedHonour Retry-After and back off.
RP-1005429Monthly plan quota exhaustedWait for month reset or contact support for a bucket uplift.
RP-1006400Request body failed schema validationSee the errors array in the response for per-field detail.
RP-1007404Resource does not exist or is not visible under this token's scopeVerify the ID and the token scope.
RP-1008409Resource state conflict — e.g. approving an already-approved suggestionGET the resource, reconcile state, retry.
RP-1009409Idempotency key reuse with a different bodyUse a fresh key or send the identical body.
RP-1010422Profitroom handshake failed — API key invalid or scope missingRe-generate the Profitroom API token with the required scopes and re-register.
RP-1011422KSeF submission rejected — schema failure or duplicate KSeF IDInspect error.details.ksef_reason and correct the invoice fields.
RP-1012422WhatsApp template not approved by MetaSubmit the template through the Suite Profit dashboard for Meta review.
RP-1013422Rate suggestion outside allowed bounds set in the ruleWiden the rule bounds or manually override in Profitroom Booking Engine.
RP-1014500Internal Suite Profit errorRetry with exponential backoff. Escalate to support if persistent.
RP-1015503Upstream Profitroom unavailableWait — we will process queued requests when Profitroom recovers. Any queued writes retry automatically.

Error body examples

A validation failure (RP-1006) includes a details array with per-field problems:

{
  "error": "validation_failed",
  "code": "RP-1006",
  "message": "Request body has 2 invalid fields",
  "details": [
    { "field": "proposed_rate.minor_units", "reason": "must_be_positive_integer" },
    { "field": "note", "reason": "max_length_exceeded", "limit": 500 }
  ]
}

A Profitroom handshake failure (RP-1010) includes the sub-code from the Profitroom side:

{
  "error": "d_edge_handshake_failed",
  "code": "RP-1010",
  "message": "Profitroom returned auth failure",
  "details": {
    "d_edge_status": 403,
    "d_edge_reason": "api_scope_missing",
    "required_scopes": ["rate.read", "rate.write", "reservation.read"]
  }
}

Which errors are safe to retry

Retry-safe (idempotent, transient): RP-1004, RP-1014, RP-1015. Retry after resolving state: RP-1008. Never retry as-is: RP-1002, RP-1003, RP-1006, RP-1009, RP-1010, RP-1011, RP-1012, RP-1013 — these require correcting the request or the surrounding state first.

When to page us

If you see sustained RP-1014 or RP-1015 for more than 10 minutes and our status page is green, email support@suiteprofit.org. Same-business-day SLA on developer support; usually inside 90 minutes during Warsaw working hours.