code field for machine-readable error identification.
Error format
HTTP status codes
Common error scenarios
State conflicts (409)
Returned when you try an operation that isn’t valid for the intent’s current state:- Cancelling an intent that isn’t in
createdstate - Building a transaction for an already-confirmed intent
- Submitting to an expired intent
Stale updates (409)
PATCH /v1/intents/:id requires the current updatedAt timestamp for optimistic concurrency. If another update happened between your read and write, you get a 409. Re-fetch the intent and retry with the fresh updatedAt.
RPC unavailable (503)
Returned when the upstream RPC provider is unreachable during transaction submission. The response includes aretry_after value. Implement retry with exponential backoff.
Sanctions screening (422)
EveryPOST /v1/intents and POST /v1/intents/:id/submit screens wallet addresses against the OFAC SDN list. If the screening API is unavailable, the request is rejected with 503 (fail closed). A match returns 422 with error.code: "address.sanctions_match".