At a high level, there are two possible response formats you will encounter. One for success conditions and one for failure conditions. Within those paths, parameters may vary depending on the verb used and the status range returned.
The HTTP Status header is always used to indicate success or failure at a high level. Statuses are used appropriately and consistently:
200range indicates success.
400range indicates errors fixable by the API consumer: authentication, bad formatting, data validation issues, etc.
500range indicates errors on our end: server issues, maintenance downtime, etc.
In a successful response, you will always receive a
status in the 200 range. This is a
duplicate of the HTTP status code. You will also receive a
code in the 2000 range. This is
a Zengine specific code that can be used for more context.
offset is provided for all
GET, POST and PUT requests.
data holds information about the object(s) being fetched, created or modified.
data is an array, as shown above, when representing lists of objects. In single-object
data itself becomes the object. For example:
In a failure response, you will always receive a
status in the
400 or 500 range. This is a duplicate of the HTTP status code. You will also receive a
code in the 4000 range. This code can be used for better context.
userMessage is a string containing friendly text that you can pass directly on
to an end user. The
developerMessage is geared towards the developer.
When invalid data has been POSTed or PUT,
validationErrors will also be returned. These errors will be returned in the same keyed format
they were provided tot he API, which means they can be programmatically passed back to an end user with
ease. Note that each attribute contains an array with one or more errors that are associated with that