Skip to main content
A refused request answers with an HTTP status and a JSON body saying why. The body has the same four keys whatever went wrong:

Status codes

exchange_api_key is the exception. It answers a refused key with HTTP 200 and an error_code in the row, as Authentication describes.

Refusals your organisation decides

Most 409s come from how your organisation set the product up rather than from the API. The same work order can be refused for one organisation and accepted for another. These are real answers from a demo organisation:
The first is the organisation’s statuses, the second is one of its rules and the third is one of its own fields. Before you move a work order, ask available_transitions which moves it allows and what each one needs. Raise and complete work shows how.

Retrying

Retry a 401 after getting a new token. Do not retry a 400, 403 or 409 unchanged: it will be refused the same way until the request, the account or the record changes.