Skip to main content
Every error is JSON with the same shape. code is the string to branch on; message is for humans; fields appears only on invalid_request and names each problem.
With the Node SDK the same error is a RialError: status, code, fields (paths in the camelCase you wrote), hint, and a message that already says what was wrong.

Codes

The SDK adds three of its own, with status: 0: network_error (could not reach the API), timeout (no answer within timeoutMs) and aborted (you cancelled polling).

Field messages

fields[].path uses the wire names (steps.0.condition_aspects); the SDK reports the camelCase you wrote (steps.0.conditionAspects). Messages read the same everywhere:
  • is required
  • must be a list, got string
  • must be one of: image, text, upload, video, choice, address
  • must be at least 60, must have at most 6 items, must not be empty
  • has unknown field: "webhook"
  • must be a valid URL, including https://

Retries

Reads (GET) are safe to retry. The SDK retries them on network errors, 429 and 5xx with backoff. Writes are never retried automatically: a retried POST /v1/verifications mints a second verification. Dedupe on your own metadata if you must retry.