What to include
- The
requestIdof the failing request. It is in the error body and in theX-ENSC-Request-Idheader of every response, and it identifies the exact request on ENSC’s side. - The conversion
referencewhen the question is about a conversion, in particular one inrequires_manual_review: a short payment, a payout that could not be completed, or a destination mismatch is resolved by a person at ENSC. - The environment (Sandbox or Live) and the chain (
celo-sepoliaorcelo). - The error code (
ENSC_…) and the SDK version (@ensc/sdk0.4.1 is current).
enc_…, sig_…) and your merchant id (mrc_…) are not secret and are fine to share.
Before you write
- Errors lists every code with its meaning; many are resolved by a retry or a corrected request.
- Webhooks:
GET /v1/events/{id}and the dashboard show every delivery attempt with the HTTP status your endpoint answered. - IP allowlist covers
ENSC_IP_NOT_ALLOWEDandENSC_IP_ALLOWLIST_REQUIRED. - A leaked credential: revoke it in the dashboard immediately, generate a replacement and deploy. See Going live.
Persistent 5xx and voucher failures
ENSC_SIGNER_UNAVAILABLE and ENSC_SIGNER_REFUSED (the voucher could not be issued) and any 5xx that persists after the SDK’s automatic retries are worth a support case with the requestId.