Skip to content
You're viewing guides for Paddle Classic, which is no longer available for new signups. Head to developer.paddle.com for Paddle Billing guides.

Errors

The Paddle Invoice API uses standard HTTP response codes to let you know when something’s wrong. It also returns some useful information to help you troubleshoot.

Errors generally return a 4xx response code.

Though rare, you may get a 5xx response code. This means that there’s a problem with the Paddle API rather than your code. Try your request later, or check our status page.

When you have an error, the API returns an error key along with the HTTP status code. It doesn’t return a data key like it does with success responses.

For example:

{
"error": {
"type": "request_error",
"code": "authentication_missing",
"detail": "No authentication information was provided",
"documentation_url": "https://developer.paddle.com/errors/bad_request_authentication"
}
}

Where there are validation errors, the error includes an array of errors to let you know which fields failed validation and how to fix.

For example:

{
"error": {
"type": "request_error",
"code": "product_invalid_parameter",
"detail": "Product validation errors",
"documentation_url": "https://developer.paddle.com/errors/bad_request_product_invalid_parameter",
"errors": [
{
"field": "name",
"message": "max length of 200 exceeded, provided value length 220"
},
{
"field": "billing_mode",
"message": "value must be one of: quantity or usage, got 'quantity2'"
}
]
}
}

Most errors should return request_error as the type. This means that something’s wrong with the request that you made. You can use the code, detail, and documentation_url to troubleshoot.

Where the type is api_error, something is wrong with the Paddle API. Try your request later, or check our status page.

The Paddle API uses standard HTTP response codes to let you know when something’s wrong.

ResponseMeaningDescription
400Bad requestSomething’s not right with your request. This usually means the JSON sent isn’t properly formatted, or you’re missing a required parameter.
401UnauthorizedYou didn’t include an API key, or your API key is no longer valid.
403ForbiddenYour API key is valid, but you don’t have permission to perform that request.
404Not foundYou requested something that doesn’t exist, or used a URL that’s not recognized.
422Unprocessable entitySomething’s not right with your request. This usually means that you’ve included invalid fields. Use custom_data to include additional information.
429Too many requestsYou’ve sent too many requests to the API and hit a rate limit.

Along with the HTTP response code, the Paddle API returns a code in the error key. This gives you a little more context.

Error CodeDescription
authentication_missingYou didn’t include an API key in the header, or your API key is no longer valid.
authentication_malformedYou included a Bearer value, but the API couldn’t understand it. Check the token is correct.
invalid_tokenYour Bearer value is in the correct format, but it is not valid.
bad_requestSomething’s not right with your request. This usually means the JSON sent isn’t properly formatted, or you’re missing a required parameter.
not_foundYou requested something that doesn’t exist, or used a URL that’s not recognized.
forbiddenYour API key is valid, but you don’t have permission to perform that request.
internal_errorThere’s a problem with Paddle’s API.
service_unavailableThere’s a problem with Paddle’s API.
not_implementedThe action or resource you requested is not available. This may be because you’re using an incorrect API version.
product_invalid_parameterSomething’s not right with one of the parameters you passed. Check the returned errors for information on how to fix.