Skip to main content

Error body

Every error is the mirror image of the success envelope — success: false with a stable machine-readable code and a human-readable message:
401
403
404
Branch on code (stable, never renamed), not on message (free text, may change or carry request-specific detail). Schema validation failures respond 400 with code: "validation_error" and the failing messages joined into message:
400

HTTP statuses

Error codes

Exceptions to the envelope

When a calculate request is rejected by your workspace’s country validation rules, the 400 body is an errors array naming each failed rule:
400
The CDS provider surface (/v1/cds) speaks the UPU spec’s own { "errors": [{ "code", "description" }] } envelope with spec-fixed numeric codes.
404 is also the answer for resources that exist but belong to another partner — the API never reveals whether an ID exists outside your organization.