Error codes and troubleshooting

Understanding error responses is crucial for effective integration and debugging. This section outlines the possible error codes, their meanings, and tips for resolution.

{
  "code": "BAD_REQUEST",
  "message": "Missing \"X-Volt-Initiation-Channel\" HTTP header."
}
Field Description
code A string that provides more detailed information about what happened and why the request failed. Refer to the Error Codes section for possible values.
message A human-readable message that describes the problem. This message is not language-dependent and is always provided in English.

Error codes

HTTP Status Error code Description How to resolve
400 BAD_REQUEST Generic error that request could not be handled. Examine the message property to check what went wrong.
400 MISSING_HTTP_HEADER Required HTTP header is missing. Examine the message property and add the missing HTTP header.
400 INVALID_HTTP_HEADER HTTP header contains an invalid value. Check the documentation for valid HTTP header values.
400 MALFORMED_PATH_PARAM Path parameter has an invalid value/format. Can occur when the ID sent in the path is not a valid UUID. Examine the message property to check what went wrong.
400 MISSING_QUERY_PARAM Required query parameter is missing. Examine the message property and add the missing query parameter.
400 INVALID_QUERY_PARAM Query parameter contains an invalid value. Check the documentation for valid query parameter values.
400 MALFORMED_QUERY_PARAM Query parameter has an invalid value/format. Examine the message property to check what went wrong.
400 CONFIGURATION_ERROR Partner’s configuration is invalid and does not allow processing the request. Examine the message property to check what went wrong.
401 UNAUTHORISED Invalid credentials were used. Check if correct credentials for the API are used.
403 ACCESS_DENIED Access to perform the operation with the given resource is denied. Ensure you have access to the given resource.
404 RESOURCE_NOT_FOUND Requested resource does not exist. Ensure you are trying to operate on an existing resource.
405 METHOD_NOT_SUPPORTED HTTP method is not supported for this URL. Fix either the HTTP method used or the URL.
406 MEDIA_TYPE_NOT_ACCEPTABLE API is not able to generate a response in the format defined in the Accept HTTP request header. Use a supported format.
409 CONFLICT Generic error that the request could not be handled due to an invalid state, and would conflict with an existing resource. Try the request with different parameters.
409 IDEMPOTENCY_CONFLICT Idempotency key (from X-Volt-Idempotency-Key) has already been used. Generate a unique idempotency key for each request.
409 RESOURCE_NOT_MODIFIABLE Resource cannot be modified due to an invalid state or unexpected change request. Try the request with different parameters.
410 GONE Requested resource does not exist and will never exist. Ensure you are trying to operate on an existing resource.
415 UNSUPPORTED_MEDIA_TYPE Request contains data in an unsupported content type. Send the request with a supported media/content type.
422 VALIDATION_FAILURE Input data validation failed. Examine the errors property to check what went wrong and which data needs to be fixed.
429 RATE_LIMIT_EXCEEDED Too many requests were sent in a given timeframe. Slow down your request frequency.
500 INTERNAL_SERVER_ERROR Request could not be processed due to a server error. Contact support. The message will contain a trace ID and timestamp, allowing investigation of what went wrong.

In very rare circumstances, where our API has encountered something unexpected, you may receive an UNKNOWN error code.  If this is a recurring issue, please let us know at support@volt.io.

Validation errors

When input data constraints are violated, the API responds with a 422 Unprocessable Entity status code and provides detailed information about the validation errors.

{
  "code": "VALIDATION_FAILURE",
  "message": "Input data validation failed.",
  "errors": [
    {
      "type": "TOO_SHORT",
      "propertyPath": "payment.amount",
      "message": "The amount must be at least 100."
    },
    {
      "type": "INVALID_FORMAT",
      "propertyPath": "payer.email",
      "message": "The email address is not in a valid format."
    }
  ]
}
Field Data type Description
code string Indicates the type of error (VALIDATION_FAILURE in this case).
message string

A general message about the validation failure.

errors array of objects Each object represents a specific validation error.
errors.[].type string Categorizes the type of validation error. Refer to the Validation Error Types section for possible values.
errors.[].propertyPath string Points to the specific field or property in the incoming request that violated the validation rule.
errors.[].message string A human-readable message describing the validation error. Always in English.

Validation error types

Validation errors are categorised to provide clear insights into what went wrong and how to resolve the issue. Below is a comprehensive list of validation error types supported by the Volt API.

Error type Description
TOO_FEW Too few elements were provided.
TOO_MANY Too many elements were provided.
TOO_LOW Value (numeric) is too low.
TOO_HIGH Value (numeric) is too high.
TOO_SHORT Value (string) is too short.
TOO_LONG Value (string) is too long.
NOT_EQUAL Value is not equal to the given constraint (and should be).
IS_EQUAL Value is equal to the given constraint (and should not be).
INVALID_FORMAT Value is in an invalid format.
INVALID_DATE Value is an invalid date.
INVALID_TIME Value is an invalid time.
INVALID_TYPE Value is not of the expected type.
REGEX_FAILED Regular expression failed against the given value.
OUT_OF_RANGE Value is out of range (numeric range, available choices, etc.).
CHECKSUM_FAILED Checksum is invalid.
NOT_UNIQUE Value is not unique.
VALUE_REQUIRED Value is required (and should not be null).
INVALID_VALUE General information that the value is invalid. Appears if the validation error cannot be assigned to any other type.
MISSING_FIELD Field/property is required.
FIELD_NOT_ALLOWED Field/property is not allowed to be present in the request.

Troubleshooting

In the event you receive a 5xx Server Error response from the Volt API, the error message will include a unique TraceId and Timestamp.
TraceId serves as an identifier for the specific request. It is invaluable for our support team when diagnosing and resolving issues. 

Important Notes:

  • Do not retry: Repeating the request is unlikely to succeed and may cause additional issues.
  • Contact support: Email support@volt.io with the TraceId  and any relevant details.
  • Secure information: Ensure no sensitive data is included when sharing error information.