REST HTTP Errors

The current version of the SheerID REST API (0.5) may return a non-2XX HTTP status code if an unexpected condition occurs.

Convention

REST API resource methods that are invoked with sensible request parameters generally return a 200 OK HTTP status in conjunction with the documented response body (e.g. a JSON-serialized object literal or array — check the resource documentation’s “Expected Response” section for resource-specific details), or a 204 No Content HTTP status if the resource method does not return any content.

Some REST resource methods may return a 3XX redirect to another resource, such as the canonical URL for a resource that is accessed via a friendly URL

4XX status codes, such as 400 Bad Request, 401 Unauthorized and 404 Not Found are used to indicate user error. The user (API integrator or end-user) may be able to recover from this error by doing something to correct the request, whether it be fixing a data issue, supplying the correct URL or authenticating with valid credentials, for example.

5XX status codes, such as 500 Unexpected Server Error are used to indicate a service error. The only recourse the integrator may have for dealing with this type of error is resubmit the request after a period of time (instantly if there is an intermittent issue), or contact SheerID support for more information. Needless to say, this type of error is prevented whenever possible.

Usage

Upon receiving a response from a REST API resource, integrators should first ensure that the response HTTP status code matches the expected status. Any REST resource method that does not return a 200 OK HTTP status code as its primary expected HTTP status code (example: Revoke Token) will explicitly state the expected HTTP response status in the “Expected Response” section. If the HTTP status code does not match the expected response, the API client should not expect the full response payload as described in “Expected Response”, but rather a minimal, JSON-serialized error payload containing the following properties:

Property Name Included? Description
httpStatus Always The HTTP status code (this will always match the status code returned in the HTTP response headers)
message Sometimes A human-readable (English) error message providing additional detail as to the nature of the error.
errorCode Sometimes A machine-readable (numeric) code from the list of SheerID REST API Error Codes providing additional detail as to the nature of the error.
status Always
This property will be removed in a future API version. Please refer to httpStatus instead.

A string representation of the HTTP status code (this will always match the status code returned in the HTTP response headers).

Resource methods that may return a non-2XX HTTP status for expected error conditions will list the potential HTTP status codes in the resource method documentation, under the “Errors (HTTP Status Codes)” section.

Examples

Email address is not a valid format

To ensure we have a valid method of contacting users as is necessary to communicate the status of a verification request, any request that contains an email address is validated to ensure the email address looks valid according to email address formatting rules. Requests with invalid email addresses are rejected with a 400 Bad Request status code.

Request (curl)

curl -H "Authorization: Bearer $TOKEN" https://services-sandbox.sheerid.com/rest/0.5/verification -d organizationId=323 -d FIRST_NAME=Joe -d LAST_NAME=Test -d BIRTH_DATE=1992-12-05 -d EMAIL=malformed

Response (with headers)

HTTP/1.1 400 Bad Request {"message":"Invalid email address format.","httpStatus":400,"status":"400","errorCode":1002}

Birth date indicates a person is under 13 years of age

In order to protect the privacy of children online, SheerID does not accept data from individuals younger than 13 years of age. As a result, verification attempts containing a birth date which indicates the individual is below this age will be rejected with a 400 Bad Request status code.

Request (curl)

curl -H "Authorization: Bearer $TOKEN" https://services-sandbox.sheerid.com/rest/0.5/verification -d organizationId=323 -d FIRST_NAME=Joe -d LAST_NAME=Test -d BIRTH_DATE=2002-12-05

Response (with headers)

HTTP/1.1 400 Bad Request {"message":"Person is ineligible for verification because of age.","httpStatus":400,"status":"400","errorCode":1013}

Date value does not match the expected format

Unless otherwise specified, date values are expected to be in YYYY-MM-DD format (Example: 1969-12-28 represents December 28, 1969). Verification requests submitted with a value for a date field such as BIRTH_DATE or STATUS_START_DATE that deviates from this format will be rejected with a 400 Bad Request status code.

Request (curl)

curl -H "Authorization: Bearer $TOKEN" https://services-sandbox.sheerid.com/rest/0.5/verification -d organizationId=323 -d FIRST_NAME=Joe -d LAST_NAME=Test -d BIRTH_DATE=12/5/95

Response (with headers)

HTTP/1.1 400 Bad Request {"message":"Invalid date format.","httpStatus":400,"status":"400","errorCode":1001}

References

Please refer to the complete list of Status Code Definitions published with the HTTP/1.1 protocol spec. The HTTP status codes returned by the SheerID REST API attempt to adhere to the HTTP specifications as much as is reasonably possible.