Skip to content

Suggested

API Dashboard
Errors

Error response format and full list of internal error codes returned by the conomy_hq API.

Objects

Error object

HTTP status code.

Error category.

Human-readable error message.

Every non-2xx response from the conomy_hq API returns a structured error body. The same shape is returned across all endpoints so your integration can handle failures uniformly.


{
"status": 400,
"code": "11",
"type": "invalidParam",
"detail": "accountNumber is required",
"traceId": "5f8f2a8e-4b7c-4a1e-8d3f-1234567890ab"
}
FieldTypeDescription
statusintegerHTTP status code.
codestringInternal error code — a stable, machine-readable identifier.
typestringShort, stable tag describing the error category.
detailstringHuman-readable explanation. Safe to surface in logs.
traceIdstringUUID that correlates this error with server logs. Include it in any support request.

Branch on code or type in your integration — both are stable. Do not parse detail; its wording can change.


codetypeHTTPWhen it fires
01serverError500Unexpected internal error. Retry after a backoff; if persistent, contact support with the traceId.
02unknown500Unclassified error. Treat as a retriable server error.
11invalidParam400A request parameter failed validation (wrong shape, bad value).
12missingParam400A required parameter was omitted.
13alreadyExist409The resource already exists — typical on create with a conflicting unique key.
14parsingResource400The request body could not be parsed.
21failedPrecondition422The request is well-formed but the resource is not in a state that allows the operation (e.g. resolving a non-REQUIRES_REVIEW payment).
31notFound404The resource does not exist or is out of scope for the caller.
32tooManyRequests429Rate limit exceeded. Back off and retry.
41unauthorized401Missing or invalid authentication.
42unimplemented501The operation is not supported on this endpoint or environment.
43forbiddenOperation403The caller is authenticated but not authorized to perform the operation.

  • 4xx errors are caused by the request. Fix the request before retrying — retrying without changes will fail again with the same code.
  • 5xx errors are server-side. Retry with exponential backoff: start at 1 second, double on each attempt, cap at 32 seconds, give up after 5 attempts. If the error persists, open a support ticket with the traceId.
  • 21 failedPrecondition is the most common business error. It means the request is well-formed but the resource is in the wrong state (e.g. assigning a payment that is already SETTLED). Read the current state of the resource before retrying.
  • 13 alreadyExist usually indicates a previous attempt succeeded. Query the resource before creating a duplicate.

Build your integration to be tolerant of additive change:

  • Unknown fields in responses — ignore them. New fields may be added at any time without a major version bump.
  • New eventType values on webhooks — handle defensively. Treat unknown event types as no-ops or log them; do not error.
  • New error codes — branch on code ranges (1x, 2x, 3x, 4x) when possible so a new code in an existing family inherits the right handling by default.

When a resource exists but belongs to a different tenant, the API returns 404 Not Found — not 403 Forbidden — to avoid leaking record existence. Treat 404 as “does not exist for you.”


When opening a support request, include:

  1. The traceId from the error response.
  2. The HTTP method and path of the failing request.
  3. The UTC timestamp of the failure.

Send to hola@conomyhq.com.