In this article, you can find some of the possible response codes that our API returns and their meaning.
The codes follow the logical mappings of the gRPC Error codes: https://grpc.github.io/grpc/core/md_doc_statuscodes.html but we don't guarantee any consistency in the error messages.
If you are using batch routes, the status code will be within a results object.
{
"results": [
{
"status": {
[...] //response code and description
}
]
}
Authentication
Plain method missing
{
"code": 16,
"message": "malformed authorization header: 982c97cc-ebe4-5974-a324-f08cc88fea47",
"details": []
}
Please make sure to submit the token on every call in the request header/gRPC metadata using method Plain.
Wrong token
{
"code": 16,
"message": "token malformed: 982c97cc-ebe4-5974-a324-f08cc88fea4",
"details": []
}
Please check your token format and validity.
Offers
Successful offer creation
The single route OfferService/CreateOffer only returns the created offer data while the batch route OfferService/BatchCreateOffers also returns the status code for each object.
{
"offer": {
"id": "46788",
"version": "1674123641323493",
"is_current": true,
"instance_id": "9",
"instance_name": "iPhone 6 | 16 GB | Space Gray",
"state": "OK",
"sku": "SOMETHING",
"grading": "A",
"warranty": "M12",
"stock": 0,
"shipping_profile_id": "1",
"shipping_profile_name": "SE",
"taxation": "GROSS",
"real_taxation": "MARGINAL",
"reference_currency_code": "EUR",
"reference_price": "199.99",
"set_market_prices": [],
"calculated_market_prices": [
[ ... ] // shortened
],
"created_at": "2023-01-19T10:20:41.323711Z"
}
}
Unkown instance ID or GTIN
{
"code": 3,
"message": "instance not found",
"details": []
}
Please note that the instance ID is our main instance identifier. If you are using GTINs to create offers it might be that we don’t have this specific GTIN in our database. Therefore we recommend using our instance IDs. If your product has not been listed yet, please contact our Listing Team.
If you are using an instance ID please check in our product catalog that the ID is correct.
Offer with this SKU already exists
{
"code": 6,
"message": "offer already exists",
"details": []
}
SKUs must be unique. If an offer with this SKU already exist you can proceed with updating it (OfferService/UpdateOffer). If it is linked to the wrong instance ID, please delete the offer first and then recreate it with the correct instance ID.
Duplicate SKUs in the offer creation request
{
"code": 3,
"message": "batch contains duplicate SKUs",
"details": []
}
SKUs must be unique. If you provide the same SKU multiple times in the same offer creation batch request, no offer will be created for that specific SKU. Simply remove the duplicates and try creating the offer again.
Successful offer update
The single route OfferService/UpdateOffer only returns the updated offer data while the batch route OfferService/BatchUpdateOffers also returns the status code for each object.
{
"offer": {
[ ... ] // offer details shortened
"created_at": "2023-01-19T11:32:53.301592Z"
}
}
SKU or offer ID does not exist
{
"code": 5,
"message": "offer not found",
"details": []
}
An offer with this SKU or offer ID does not exist, yet. Check that the SKU or offer ID is spelled correctly and if yes, create the offer first (OfferService/CreateOffer)
Missing offer identifier
{
"code": 3,
"message": "missing offer identifier",
"details": []
}
Make sure to include either the SKU or the offer ID as an identifier when updating offers.
Shipping profile ID does not exist
{
"code": 3,
"message": "shipping profile not found",
"details": []
}
A shipping profile with this ID does not exist. Check your shipping profiles and use one of the existing profile IDs or create a new profile first.
Price contains a character or a comma
{
"code": 3,
"message": "reference_price: not a number",
"details": []
}
{
"code": 3,
"message": "reference_min_price: not a number",
"details": []
}
{
"code": 3,
"message": "market_price.price: not a number",
"details": []
}
The price fields can only contain numbers separated by a decimal point (.). Make sure that you are not using a comma (,) or any characters.
If you try to update a market offer that has not been created
{
"code": 5,
"message": "market offer not found",
"details": []
}
Create the market offer first with a call to MarketOfferService/CreateMarketOffer / MarketOfferService/BatchCreateMarketOffer.
If you try to create a market offer that already exists
{
"code": 6,
"message": "market offer already exists",
"details": []
}
Proceed with updating the market offer (MarketOfferService/UpdateMarketOffer / MarketOfferService/BatchUpdateMarketOffer).
Orders
The single route OrderItemService/UpdateOrderItemState only returns the data of the updated order while the batch route OrderItemService/BatchUpdateOrderItemsState also returns the status code for each object.
Order correctly updated
{
"order_item": {
"id": "3496079",
"name": "iPhone 11 | 256 GB | yellow",
[ ... ] // shortened
"parcel_tracking_url": "",
"item_identifier": ""
}
}
Wrong order item ID
{
"code": 5,
"message": "order item not found",
"details": []
}
When you update an order you always have to use the OrderItemId and not the OrderId.
Order item state transition not followed
{
"code": 9,
"message": "order item correctness rules violated: cannot change state from new to shipped",
"details": []
}
Make sure to follow the allowed OrderItemstate transitions. You can find them in our FAQ.
Invalid tracking link
{
"code": 3,
"message": "invalid argument: invalid parcel tracking url scheme: ",
"details": []
}
Please use a valid tracking link. Just the tracking ID is not enough.
Missing tracking link
{
"code": 3,
"message": "invalid argument: parcel tracking url cannot be empty for the state",
"details": []
}
When you want to change the order item state to SHIPPED you always have to set a tracking link.