codeis one of the codes below. The set is closed and every code starts withENSC_, so it is greppable in your logs.messageis human-readable and may change; branch oncode, not onmessage.requestId(also in theX-ENSC-Request-Idheader) identifies the exact request. Quote it when contacting support.detailsis optional structured data, for examplemaxAmountInonENSC_RESERVE_INSUFFICIENT,retryAfterSecondsonENSC_KYT_HOLDorretriableonENSC_SETTLEMENT_VERIFICATION_FAILED.
In the SDK
Every failure, including network errors, throws a singleEnscError type with the same code taxonomy the API uses. Every EnscError carries status (the HTTP status received, so a code added by the API later still classifies correctly) and requestId (from the error body or X-ENSC-Request-Id; quote it to support), plus details where the API sent them.
maxRetries, default 2), with a stable idempotency key; it never retries a 4xx, including 429.
Codes the SDK raises itself
Request, authentication and authorization
Encryption
Chains, assets and amounts
Conversions
Transaction screening
Bank rail
ENSC-side failures (5xx)
The SDK retries 500, 502, 503 and 504 automatically; if one persists, quote the
requestId to support.