English
Return Codes
Status Codes
We use standard HTTP status codes to return details about completed function calls.
You should always validate the HTTP response status code before attempting to read the response body. Our SDKs perform this validation automatically. For each documented function, we list only the return codes specific to that function to make the documentation easier to read. Even if a generic return code is not documented at the function level, it may still be returned by the API.
Generic Return Codes (Documented at the Function Level)
| HTTP Status Code | Meaning | Details |
|---|---|---|
| 200 | OK | The request was completed successfully, and valid data was returned in the response body. |
| 201 | Created | The request was completed successfully. One or more items were created, and details about the created items were returned in the response body. |
| 204 | No Content | The request was completed successfully. No data needed to be returned in the response body. |
| 403 | Forbidden | The request is not authorized to be executed. See the error details in the response body. |
| 404 | Not Found | The request failed. The item you were attempting to operate on does not exist. See the error details in the response body. |
| 406 | Not Acceptable | The URL is valid, but one of the Accept headers is not set or is invalid. For example, you set the header "Accept: application/json", but the function can only return "Content-type: image/png". |
| 409 | Conflict | The request was syntactically valid but failed due to a conflict with another item. |
| 422 | Unprocessable Entity | The request was syntactically valid but failed due to an interdependency condition. See the error details in the response body. |
Generic Return Codes (Not Documented at the Function Level)
| HTTP Status Code | Meaning | Details |
|---|---|---|
| 400 | Bad Request | The request does not comply with the specifications. For example: an invalid type for a variable, a value that fails validation, or a protocol violation. See the error details in the response body. |
| 401 | Unauthorized | The API key is missing, expired, invalid, or inactive. This may also mean that you are calling the API from an unauthorized IP address. |
| 403 | Forbidden | The provided API key is valid, but it is not authorized to execute the request. Check the key's permissions. |
| 404 | Not Found | Your request was sent to a URL that does not exist. Make sure you are using the correct function version number and check the URL for typing errors. |
| 405 | Method Not Allowed | The URL is valid, but the method is not allowed. For example, a GET request was sent when the function expects a POST request |
| 406 | Not Acceptable | The URL is valid, but one of the Accept headers is not set or is invalid. For example, you set the header "Accept: application/json", but the function can only return "Content-type: image/png". |
| 429 | Too Many Requests | Too many requests have been received from your API key or IP address. Make sure to optimize your requests or request an increase to the limit. For example, make a single request to create 100 objects rather than 100 requests that each create a single object. |
| 500 | Internal Server Error | This should never occur. It may be a temporary issue that should resolve quickly, or an error that you need to report to technical support. |
| 501 | Not Implemented | The endpoint is not yet available in your region or environment. |
| 503 | Service Unavailable | This should never occur. It may be a temporary issue that should resolve quickly, or an error that you need to report to technical support. |
Custom Return Codes (Not Documented at the Function Level)
These codes can only be generated for User API keys. API, Delegated, and Special API keys will never return these codes. (See the Authorization section for more information.) Most users should not need to be concerned with these status codes.
These codes are documented only in the Activesession getCurrent endpoint to simplify the documentation, but they may be returned by any endpoint.
| HTTP Status Code | Meaning | Details |
|---|---|---|
| 350 | Authentication Required | The user must authenticate because the session is invalid. |
| 351 | Phone Verification Required | (2FA) The user must complete verification by voice call or SMS. |
| 352 | Question Verification Required | (2FA) The user must complete question-and-answer verification. |
| 353 | Terms Acceptance Required | The user must accept the terms and conditions related to electronic signatures. |
| 354 | Computer Verification Required | The user's computer is not authorized. |
| 355 | Password Change Required | The user must change their password. |
| 356 | Application Version Verification | The user is not using the latest version of the native application. |
Webhook Delivery Success Codes
These codes will be considered a successful delivery when they are returned by your web page during Webhook delivery.
| HTTP Status Code | Meaning | Details |
|---|---|---|
| 200 | OK | The request was executed successfully. |
| 202 | Accepted | The request was received but has not yet been processed. This code is intended for cases where another process or server handles the request, or for batch processing. |
| 204 | No Content | The request was completed successfully. No data needed to be returned in the response body. |
Warning Codes
When the API returns an HTTP status code in the 200–299 range, a property may be returned to indicate that one or more warnings occurred. The array contains objects with two properties:
- eWarningCode
- sWarningMessage
We strongly recommend using eWarningCode for any warning validation logic in your code or to create your own warning messages for your users. sWarningMessage contains additional details intended for human readers, but it is designed for developers and is always returned in English.
Here is the complete list of eWarningCode values you may receive.
| eWarningCode | Examples |
|---|---|
| MUSTVERIFY | An object was modified and verification is recommended. |
| INCOMPLETECONTACT | A contact does not have an email address, phone number, or physical address. |
Error Codes
When the API returns an HTTP status code between 400 and 599, a JSON object containing two properties is returned:
- eErrorCode
- sErrorMessage
We strongly recommend using eErrorCode for any error validation logic in your code or to create your own error messages for your users. sErrorMessage contains additional details intended for human readers, but it is designed for developers and is always returned in English.
Here is the complete list of eErrorCode values you may receive for each HTTP status code, along with examples of situations in which they may be returned.
HTTP 400 (Bad Request)
| eErrorCode | Examples |
|---|---|
| BADREQUEST | Non-serializable JSON, invalid parameter, invalid signature, invalid fingerprint |
| BADREQUEST_CLOCKSKEW | The time on the client computer is incorrect |
HTTP 401 (Unauthorized)
| eErrorCode | Examples |
|---|---|
| UNAUTHORIZED_BADAUTH | Invalid credentials during authentication |
| UNAUTHORIZED_BADMFA | Invalid response to the multifactor authentication (MFA) challenge |
| UNAUTHORIZED_EXPIRED | The credentials have expired |
| UNAUTHORIZED_REQUEST | The request is invalid (source IP address, fingerprint, signature, etc.) |
| UNAUTHORIZED_REQUEST_APIKEY | The API key is invalid |
| UNAUTHORIZED_REQUEST_PRESIGNED | The presigned URL is invalid |
HTTP 403 (Forbidden)
| eErrorCode | Examples |
|---|---|
| FORBIDDEN | Access forbidden |
| FORBIDDEN_CLONE_PERMISSION | Duplication permission is required to access this feature |
| FORBIDDEN_CONFIGURATION | A configuration setting prevents access to this item |
| FORBIDDEN_MODULE | The module is not enabled |
| FORBIDDEN_NOACCESS | You are not authorized to access this item |
| FORBIDDEN_PERMISSION | Permission is required to access this route |
| FORBIDDEN_SUBSCRIPTION | Your subscription plan does not allow access to this feature |
| FORBIDDEN_SUBSCRIPTION_EZSIGN_PLAN | Your eZsign subscription plan does not allow access to this feature |
| FORBIDDEN_USERTYPE | This user type is not authorized to access this route |
| FORBIDDEN_USER_ORIGIN_EXTERNAL | Unable to modify the user's information |
HTTP 404 (Not Found)
| eErrorCode | Examples |
|---|---|
| NOTFOUND | Item not found |
| NOTFOUND_OBJECT | The object does not exist in the database |
| NOTFOUND_ROUTE | The route does not exist (URL, API version) |
HTTP 405 (Method Not Allowed)
| eErrorCode | Examples |
|---|---|
| METHODNOTALLOWED | The route is valid, but the method is not allowed (e.g., a POST request to a route that only accepts GET requests) |
HTTP 406 (Not Acceptable)
| eErrorCode | Examples |
|---|---|
| NOTACCEPTABLE_CONTENT | The route is valid, but the Accept header is not accepted (e.g., application/json instead of image/png). |
| NOTACCEPTABLE_LANGUAGE | The route is valid, but the Accept-Language header is not accepted (e.g., en instead of es). |
HTTP 409 (Conflict)
| eErrorCode | Examples |
|---|---|
| CONFLICT | The request is valid but conflicts with another item. |
HTTP 413 (Content Too Large)
| eErrorCode | Examples |
|---|---|
| CONTENT_TOO_LARGE | The request content is too large |
HTTP 422 (Unprocessable Entity)
| eErrorCode | Examples |
|---|---|
| UNPROCESSABLEENTITY_ACTIVESESSION_ALREADY_CLONING | The user is already cloning another user |
| UNPROCESSABLEENTITY_CANNOTDELETE | The item cannot be deleted |
| UNPROCESSABLEENTITY_CANNOTMODIFY | The item cannot be modified |
| UNPROCESSABLEENTITY_CREDITCARD_CANNOT_PAY | Payment for the item failed |
| UNPROCESSABLEENTITY_CREDITCARD_CANNOT_EXPIRED | The credit card has expired |
| UNPROCESSABLEENTITY_CREDITCARD_PREAUTH_FAILED | Pre-authorization failed |
| UNPROCESSABLEENTITY_CREDITCARD_VALIDATION_FAILED | Credit card validation failed |
| UNPROCESSABLEENTITY_CHANGEPASSWORD_INVALID_CURRENT | The old password provided does not match the user's current password |
| UNPROCESSABLEENTITY_CHANGEPASSWORD_SAME | The new password is the same as the old password |
| UNPROCESSABLEENTITY_DATA_MISSING | Some data is missing |
| UNPROCESSABLEENTITY_DATA_UNIQUE | The data does not comply with the uniqueness constraint: this value already exists in another item |
| UNPROCESSABLEENTITY_DATA_VALIDATION | The data does not comply with one or more validation rules |
| UNPROCESSABLEENTITY_DATA_OUTOFBOUND | The data contains a value outside the permitted limits |
| UNPROCESSABLEENTITY_DOWNLOAD_ERROR | Unable to retrieve the resource at the provided URL |
| UNPROCESSABLEENTITY_EZSIGNFORM_VALIDATION | Validation of the eZsign form generated errors |
| UNPROCESSABLEENTITY_EZSIGNELEMENTDEPENDENCY_LOOP | A loop was detected in the eZsign element dependencies |
| UNPROCESSABLEENTITY_EZSIGNELEMENTDEPENDENCY_MISSINGEZSIGNTEMPLATESIGNERREFERENCE | An eZsign element dependency contains an unassigned eZsign template signer |
| UNPROCESSABLEENTITY_EZSIGNSIGNATURE_SIGNED | The eZsign signature has already been signed |
| UNPROCESSABLEENTITY_EZSIGNSIGNERCONNECTED | The eZsign signer is connected |
| UNPROCESSABLEENTITY_INVALID_FILE | The file is invalid |
| UNPROCESSABLEENTITY_INCOMPLETE_CONTACT | The contact is incomplete: an address, phone number, or email address is missing |
| UNPROCESSABLEENTITY_NOTHINGTODO | The request was valid, but no action was required |
| UNPROCESSABLEENTITY_NOTREADY | The item is not in a state that allows this action (e.g., sending a document without a signature or downloading an unsigned document) |
| UNPROCESSABLEENTITY_OAUTH2 | An error occurred while using the OAuth2 authentication service |
| UNPROCESSABLEENTITY_PDF_FORM | The PDF document contains a form |
| UNPROCESSABLEENTITY_PDF_FORMFIELD_WITHOUT_PAGE | Some form fields are not associated with any page |
| UNPROCESSABLEENTITY_PDF_SIGNATURE | The PDF document contains one or more signatures |
| UNPROCESSABLEENTITY_PDF_FORM_AND_SIGNATURE | The PDF document contains a form and one or more signatures |
| UNPROCESSABLEENTITY_PDF_INCOMPATIBLE | The PDF document cannot be signed |
| UNPROCESSABLEENTITY_PDF_PASSWORD | The PDF document is password-protected and cannot be signed |
| UNPROCESSABLEENTITY_PDF_WRONG_PASSWORD | The provided password is incorrect and does not allow the PDF document to be opened |
| UNPROCESSABLEENTITY_PDF_REPAIRABLE | The PDF document contains errors and can be repaired |
| UNPROCESSABLEENTITY_PDF_XFA | The PDF document contains an XFA form and cannot be signed |
| UNPROCESSABLEENTITY_PDFA_NONCOMPLIANT | The PDF document does not comply with the PDF/A standard |
| UNPROCESSABLEENTITY_PDFA_CONVERSION_FAILED | Conversion of the PDF document to PDF/A format failed |
| UNPROCESSABLEENTITY_TEMPLATE_MISMATCH | The number of pages in the document does not match the number of pages in the template |
| UNPROCESSABLEENTITY_UNMODIFIABLE_FIELD | The field cannot be modified in its current state |
| UNPROCESSABLEENTITY_USER_STAGED | The user cannot log in because their account is currently pending activation |
| UNPROCESSABLEENTITY_SUBSCRIPTION_NOTRENEWABLE | The subscription cannot be renewed because it is not within the permitted renewal period |
| UNPROCESSABLEENTITY_FRANCHISEBROKER_WRONGFRANCHISEOFFICE | The franchise broker does not belong to this franchise office |
HTTP 429 (Too Many Requests)
| eErrorCode | Examples |
|---|---|
| TOOMANYREQUESTS | The client has reached the maximum number of requests allowed during the defined period |
| TOOMANYREQUESTS_THIRDPARTY | Our server received a "Too Many Requests" error from a third party |
HTTP 500 (Internal Server Error)
| eErrorCode | Examples |
|---|---|
| ERROR_INTERNAL | An unhandled error occurred on the server |
| ERROR_CONFIGURATION | A server setting is not configured correctly |
HTTP 501 (Not Implemented)
| eErrorCode | Examples |
|---|---|
| ERROR_NOTIMPLEMENTED | The endpoint is not yet available in your region or environment |