Errors and recovery
Error body
details is optional. Validation errors may identify details.fields. Rate limits send Retry-After in seconds. The request ID is also returned in X-Request-Id. Browser code may not be able to read response headers that are not CORS-exposed; use the body’s request ID and rate-limit details when available.
Codes and next steps
UPSTREAM_ERROR defaults to 502. Some handlers override it to 503, including unexpected service failures. Do not assume this code always has one HTTP status.
Common situations
New proof and chat files must be PNG or JPEG files of up to 3 MiB. Those limits do not restrict how Sinbad reads merchant files that already exist.
Customer verification is the partner’s responsibility, and there is no separate screening request. Location enforcement is not active yet, so an unknown location by itself does not produce an empty offer response.
Transaction recovery
HTTP 202 means accepted, not confirmed. A timeout or BROADCAST_UNKNOWN can still mean a transaction was sent. Keep tracking the same preparationId and hash, including after the signing deadline. Follow the recovery steps in Wallets and gas before you create another attempt.
Transaction outcomes such as REVERTED or REVIEW_REQUIRED are returned in a successful status-read body. Check transaction.status as well as the HTTP result. Keep request IDs and transaction IDs for support; never send a private key or partner secret.