Skip to main content
Every API response uses the standard envelope (correlationId + meta + payload — see Error Handling). When something goes wrong, meta.errorCode is the machine-readable error key. This page lists every value the User and Public APIs can emit.

How to read this page

The Wire HTTP column is the HTTP status the response actually arrives with. The meta.status column is the application-level status inside the body. The meta.errorCode column is the value to branch on in your client code. The meta.error column describes the shape of the per-failure detail. Most error paths in this API return HTTP 200 with the logical status carried in meta.status (the soft-error convention). A small number of cases return real HTTP 400/401/403/409 because they arrive before the API’s own response envelope can be applied or because they represent genuine HTTP semantics.

Validation failures

Almost every write endpoint goes through FluentValidation. Anything caught there — missing required field, value out of range, invalid country code, batch over the limit, business-rule violations expressed as Custom(...) checks — collapses to one error code: Sample body:
Inspect meta.error — the keys tell you which fields are wrong.

Business-rule and resource errors

These are thrown from business logic when a request is structurally valid but conflicts with the current state of the data, your account, or supporting infrastructure. Each carries a distinct errorCode so you can branch on it.

Auth and access-control failures

These are not soft errors. They arrive with real HTTP status codes because they’re produced before (or outside of) the normal request pipeline.

Conflict and not-found

Less common, but reachable:

Idempotency key failures

These apply to write endpoints when you send the x-returnhelper-idempotency-key header. They arrive with real HTTP status codes. A key is scoped to one account plus one HTTP method and route, so the same key value can be reused on a different endpoint without colliding. In pseudocode:
correlationId is present on every response. Always log it — it’s how Return Helper support traces a specific request through internal systems.

Where each error code is defined

The error codes documented here come from RrErrorCode constants in the ReturnRequestApiModel.RrException namespace. If you encounter an errorCode value not listed on this page, treat it as an undocumented internal error and report it via support with the correlationId.