Error Handling

HTTP Codes

401: Unauthorized The request was not authorized.

Possible causes:

  • Missing or invalid access token
  • Expired or revoked access token
  • Disabled client
  • Attempt to access data not available to the client

Example JSON:

{
   "version": "v2_0_0",
   "status": 401,
   "exception": {
      "message": "Token could not be located.",
      "code": 1002
   } 
}

403: Forbidden The request was for data not available to the client.

405: Method Not Allowed The request used an HTTP method that was not acceptable.

422: Unprocessable Entity The request was unprocessable due to client errors.

This is used as a generic client error code indicating the client is not providing data that is expected for the request.Possible causes:

  • Missing “id” when processing a PUT or DELETE
  • Missing or invalid data in a POST or PUT body

Example JSON for a missing ID:

{
  "version": "v2_0_0",
  "status": 422,
  "exception": {
    "message": "ID is required.",
    "code": 3002
  }
}

Example JSON for a missing body in a POST or PUT:

{
  "version": "v2_0_0",
  "status": 422,
  "exception": {
    "message": "Invalid data (bad JSON?)",
    "code": 4000
  }
}

500: Internal Server Error The server encountered an issue processing the request.

This is most likely a problem with the service such as a required system is offline.

Exception Codes

Authorization: 1000 – 1999

1001: Client Disabled The client is disabled.

1002: Missing Token The token was not provided or could not be located.

1003: Revoked Token The token was revoked.

1004: Expired Token The token is expired.

1005: Client Invalid The client id is invalid.

1006: Client Unauthorized The client is not authorized for the data requested.

Access: 3000 – 3999

3000: Unauthorized The client is not authorized for the resource requested.

3001: Not Available The requested resource is not available.

3002: Missing Input A required input (parameter) is missing.

Data: 4000 – 4999

4000: Invalid Data Data supplied is invalid (malformed or missing JSON).

4001: Required Data Required data is missing.

4002: Invalid Data Format Data supplied is invalid: malformed or the wrong type.

4003: Invalid Data Length Minimum Data supplied is invalid: does not meet the required length (used by character data fields)

4004: Invalid Data Length Maximum Data supplied is invalid: exceeds the required length (used by character data fields)

4005: Lines Out of Balance The lines provided must balance by amount and fund (e.g. the transaction lines should sum to 0.00)

4006: Lines Do Not Sum The lines provided must sum to the expected amount

4007: Invalid Account Type Account type is not the expected account type

4008: Date is in a closed period Provided date is in a closed period

Service

5000: Service Error A general service error occurred.