Skip to main content

Error Responses

All responses have HTTP status code 200. The response body contains errors and data fields. The errors field contains an array of errors, and the data field contains 0's for line items causing errors. All line items in the request are included in the response with summary calculations for items that do not have errors.

Error response example
{
"data": {
"subtotal": 0,
"tax": 0,
"shipping": [],
"total": 0,
"duties": 0,
"line_items": [
{
"public_id": "clad6pg5z00eaw012gfz7hfm92",
"variant_id": "M00679529706740",
"inventory": 0,
"price": 0,
"quantity": 1,
"name": ""
}
],
"currency": "USD",
"shipping_total": 0
},
"errors": [
{
"id": "a32b6540-80cb-11ed-9719-0bf8a5afe259",
"status": 404,
"code": "PRODUCT_DOES_NOT_EXIST",
"title": "Product does not exist",
"detail": {
"publicId": "clad6pg5z00eaw012gfz7hfm92",
"variantId": "M00679529706740"
}
}
]
}

We will return multiple errors if multiple errors are encountered. However, most of the time, only one error will be returned.

PRODUCT_UNAVAILABLE

CodeReason
PRODUCT_UNAVAILABLEProduct is no longer available for sale

Example

{
"id": "123e4567-e89b-12d3-a456-426655440000",
"status": 400,
"code": "PRODUCT_UNAVAILABLE",
"title": "The product requested is no longer available",
"detail": {
"publicId": "clbj0i7w4041d01z60hv53mcm",
"variantId": "13833901"
}
}

DUPLICATE_EXTERNAL_ORDER

CodeReason
DUPLICATE_EXTERNAL_ORDEROrder with the same external order id already exists

PRODUCT_DOES_NOT_EXIST

CodeReason
PRODUCT_DOES_NOT_EXISTProduct not found

Example

{
"id": "123e4567-e89b-12d3-a456-426655440000",
"status": 404,
"code": "PRODUCT_DOES_NOT_EXIST",
"title": "Product does not exist",
"detail": {
"publicId": "clbj0i7w4041d01z60hv53mcm",
"variantId": "13833901"
}
}

VARIANT_DOES_NOT_EXIST

CodeReason
VARIANT_DOES_NOT_EXISTVariant not found

Example

{
"id": "123e4567-e89b-12d3-a456-426655440000",
"status": 404,
"code": "VARIANT_DOES_NOT_EXIST",
"title": "Variant does not exist",
"detail": {
"publicId": "clbj0i7w4041d01z60hv53mcm",
"variantId": "13833901"
}
}

INTERNATIONAL_SHIPPING_ERROR

CodeReason
INTERNATIONAL_SHIPPING_ERRORMerchant does not ship to country

Example

{
"id": "123e4567-e89b-12d3-a456-426655440000",
"status": 400,
"code": "INTERNATIONAL_SHIPPING_ERROR",
"title": "The merchant does not provide international shipping",
"detail": [
{
"publicId": "clbj0i7w4041d01z60hv53mcm",
"variantId": "13833901"
}
]
}

PROVINCE_UNRECOGNIZED

CodeReason
PROVINCE_UNRECOGNIZEDProvince/state for the given country not found

Example

{
"id": "123e4567-e89b-12d3-a456-426655440000",
"status": 404,
"code": "PROVINCE_UNRECOGNIZED",
"title": "The province not recognized.",
"detail": {
"countryCode": "US",
"province": "WE"
}
}

TAXES_OR_DUTIES_ERROR

CodeReason
TAXES_OR_DUTIES_ERRORCouldn't calculate taxes or duties for the given address

Example

{
"id": "123e4567-e89b-12d3-a456-426655440000",
"status": 400,
"code": "TAXES_OR_DUTIES_ERROR",
"title": "There was an error calculating taxes or duties",
"detail": "FetchError: invalid json response body at https://rest.avatax.com/api/v2/transactions/create reason: Unexpected token < in JSON at position 0"
}

TAX_ERROR

CodeReason
TAX_ERRORCould not calculate taxes

Example

{
"id": "123e4567-e89b-12d3-a456-426655440000",
"status": 400,
"code": "TAX_ERROR",
"title": "Tax calculation cannot be determined. Zip is not valid for the state.",
"detail": "Tax calculation cannot be determined. Zip is not valid for the state.",
}

INVALID_INPUT

CodeReason
INVALID_INPUTRequired fields are missing from the request body

Example

{
"id": "123e4567-e89b-12d3-a456-426655440000",
"status": 400,
"code": "INVALID_INPUT",
"title": "Invalid input provided",
"detail": [
{
"message": "\"quantity\" is required",
"path": [
"products",
0,
"quantity"
],
"type": "any.required",
"context": {
"key": "quantity",
"label": "quantity"
}
}
]
}