Skip to main content
Every failure uses the same envelope, and code never changes meaning. Branch on code, never on message.
  • requestId matches the X-Request-ID header. Quote it when you contact support, or find the call in your request logs.
  • retryable is true when the same request can succeed later.
  • details lists each invalid field on a validation error.
Stack traces, database and chain errors are never returned.

In the SDK

Every failure is a UseroutrError, and a subclass tells you the kind:

Codes

Your request

Access

Funding intents and quotes

Branding

Anything else