Product Submissions API 2025 Release: Validation

From mid-January 2025, the Submission API will be updated. Although the overall behaviour will remain same, there will be bug fixes, and improvement to the error messages. There will also be warnings that will indicate if there is a problem with optional attribute types that leads them to be ignored from the submission, or that a problem that will lead to PS_ERR errors.

In the response, in addition to body_errors, body_warnings may be present.

Examples

Success Response with neither errors nor warnings

{ }

Success Response with warnings

{
  "title": "success",
  "flow_id": "rihm6p+EBC3G0Bxc",
  "detail": "Ok with warnings",
  "contact": "https://developers.merchants.zalando.com/docs/support.html",
  "status": 200,
  "body_warnings": [
    {
      "path" : "/product_model/product_model_attributes/brand_code",
      "tier" : "model",
      "attribute" : "brand_code",
      "message" : "'wrong' is not a supported label for brand_code in outline underpant",
      "reason" : "UNSUPPORTED_VALUE",
      "reference": "https://developers.merchants.zalando.com/docs/product-submission-validation.html#unsupported_value"
    }
  ]
}

Bad Request Response for Submission with errors

{
  "title": "Bad Request",
  "flow_id": "rihm6p+EBC3G0Bxc",
  "detail": "Bad Request: validation errors found",
  "contact": "https://developers.merchants.zalando.com/docs/support.html",
  "status": 400,
  "body_errors": [
    {
      "path": "/product_model/product_model_attributes/target_genders",
      "tier": "model",
      "attribute": "target_genders",
      "message": "target_genders is given an array of invalid values but should contain one or more supported labels",
      "reason": "INVALID_FORMAT",
      "reference": "https://developers.merchants.zalando.com/docs/product-submission-validation.html#invalid_format"
    },
    {
      "path": "/product_model/product_configs/0/product_config_attributes/description",
      "tier": "config",
      "attribute": "description",
      "message": "description does not contain translations for any supported locale",
      "reason": "INVALID_FORMAT",
      "reference": "https://developers.merchants.zalando.com/docs/product-submission-validation.html#invalid_format"
    }
  ]
}

Bad Request Response for Submission with errors and warnings

{
  "title": "Bad Request",
  "flow_id": "rihm6p+EBC3G0Bxc",
  "detail": "Bad Request: validation errors found",
  "contact": "https://developers.merchants.zalando.com/docs/support.html",
  "status": 400,
  "body_errors": [
    {
      "path" : "/product_model/product_configs/0/product_config_attributes/description",
      "tier" : "config",
      "attribute" : "description",
      "message" : "description does not contain translations for any supported locale",
      "reason" : "INVALID_FORMAT",
      "reference": "https://developers.merchants.zalando.com/docs/product-submission-validation.html#invalid_format"
    }
  ],
  "body_warnings": [
    {
      "path" : "/product_model/product_configs/1/product_simples/0/product_simple_attributes/info",
      "tier" : "simple",
      "attribute" : "info",
      "message" : "info is not a recognized attribute for outline underpant in tier simple",
      "reason" : "INVALID_ATTRIBUTE",
      "reference": "https://developers.merchants.zalando.com/docs/product-submission-validation.html#invalid_attribute"
    }
  ]
}

Reasons

Both errors and warnings have the following error shapes: - path: the location of the element in the submission document with the problem, in JsonPointer format. - tier: model, config, simple, or blank (if it applies to the entire document) - attribute: the attribute type - reason: a category that explains the problem with the attribute value - message: a human-readable text that explains the problem - reference: the help page which can explain the problem and how to fix it before resubmitting

INVALID_OUTLINE

Considered an error, that causes the submission to be rejected.

Indicates that the outline is empty, or undefined or is not applicable for the merchant.

MISSING_ATTRIBUTE

Considered an error, that causes the submission to be rejected.

Indicates that the specified attribute type is mandatory and missing for the given outline.

INVALID_IDENTIFIER

Considered an error, that causes the submission to be rejected. Indicates that the specified identifier is empty or undefined.

DUPLICATE_IDENTIFIERS

Considered an error, that causes the submissions to be rejected.

Indicates that identifiers are duplicated (configs or simples or eans).

INVALID_FORMAT

For mandatory attribute types, it is considered an error, that causes the submission to be rejected.

For optional attribute types, it is considered a warning, which causes the submission processing request to be created without the invalid attribute type.

INVALID_ATTRIBUTE

Considered a warning, that does not cause the submission to be rejected.

Indicates that the specified attribute type is not supported, and will be ignored when the submission processing request is made.

UNSUPPORTED_VALUE

Considered a warning, that does not cause the submission to be rejected.

Indicates that the value is not a supported reference label for the attribute type.

The submission processing request will be created with that value, but will cause a PS_ERR error when the submission is processed.

INVALID_SIZE

Considered a warning, that does not cause the submission to be rejected.

Indicates that the given supplier size or supplier length is not supported for the corresponding size chart given in model.size_group.

INVALID_LOCALE

Considered a warning, that does not cause the submission to be rejected.

Indicates that the specified locale is not supported, and will be ignored when the submission processing request is made.

Contact Support