{
  "openapi": "3.0.1",
  "info": {
    "title": "Supplier Catalogs API",
    "version": "1.0"
  },
  "servers": [
    {
      "url": "https://api.mercadoe.com"
    }
  ],
  "paths": {
    "/v1/supplier-catalogs/{clientId}/price-catalogs": {
      "post": {
        "tags": [
          "Price Catalogs"
        ],
        "summary": "Create a price catalog associated to a `clientId`",
        "description": "Creates a new Price Catalog associated to a `clientId` by providing the Description, Status, and other details.",
        "parameters": [
          {
            "name": "clientId",
            "in": "path",
            "description": "The `clientId` is a unique identifier of a buyer to whom this punchout price catalog is assigned.",
            "required": true,
            "schema": {
              "type": "integer",
              "format": "int32"
            }
          },
          {
            "name": "X-ME-CORRELATION-ID",
            "in": "header",
            "description": "Internal client code to be identified in the webhook. It can be, for example, a product code in your ERP, an order number, etc.",
            "schema": {
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "description": "",
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/CreateCommand"
              }
            }
          }
        },
        "responses": {
          "202": {
            "description": "Accepted",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/CreateResponse"
                }
              }
            }
          },
          "400": {
            "description": "Bad Request",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          }
        }
      }
    },
    "/v1/supplier-catalogs/{clientId}/price-catalogs/{priceCatalogId}": {
      "put": {
        "tags": [
          "Price Catalogs"
        ],
        "summary": "Update a price catalog associated to a `clientId` based on the priceCatalogId",
        "description": "Change a specific price catalog associated to a `clientId` field with a provided value.",
        "parameters": [
          {
            "name": "priceCatalogId",
            "in": "path",
            "description": "The price catalog Id in ME",
            "required": true,
            "schema": {
              "type": "integer",
              "format": "int32"
            }
          },
          {
            "name": "clientId",
            "in": "path",
            "description": "The `clientId` is a unique identifier of a buyer to whom this punchout price catalog is assigned.",
            "required": true,
            "schema": {
              "type": "integer",
              "format": "int32"
            }
          },
          {
            "name": "X-ME-CORRELATION-ID",
            "in": "header",
            "description": "Internal client code to be identified in the webhook. It can be, for example, a product code in your ERP, an order number, etc.",
            "schema": {
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "description": "",
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/UpdateCommand"
              }
            }
          }
        },
        "responses": {
          "202": {
            "description": "Accepted",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/UpdateResponse"
                }
              }
            }
          },
          "400": {
            "description": "Bad Request",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          },
          "404": {
            "description": "Not Found",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          }
        }
      },
      "get": {
        "tags": [
          "Price Catalogs"
        ],
        "summary": "Get a Price Catalog associated to a `clientId` by Id",
        "description": "Get information about a specific price catalog associated to a `clientId` with the given `priceCatalogId`.",
        "parameters": [
          {
            "name": "priceCatalogId",
            "in": "path",
            "description": "The price catalog Id in ME",
            "required": true,
            "schema": {
              "type": "integer",
              "format": "int32"
            }
          },
          {
            "name": "clientId",
            "in": "path",
            "description": "The `clientId` is a unique identifier of a buyer to whom this punchout price catalog is assigned.",
            "required": true,
            "schema": {
              "type": "integer",
              "format": "int32"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/GetByIdResponse"
                }
              }
            }
          },
          "400": {
            "description": "Bad Request",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          },
          "404": {
            "description": "Not Found",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          }
        }
      }
    },
    "/v1/supplier-catalogs/{clientId}/price-catalogs/{priceCatalogId}/cancel": {
      "put": {
        "tags": [
          "Price Catalogs"
        ],
        "summary": "Cancel a price catalog associated to a `clientId` based on the `priceCatalogId`",
        "description": "Change a specific price catalog associated to a `clientId` field with a provided value.",
        "parameters": [
          {
            "name": "priceCatalogId",
            "in": "path",
            "description": "The price catalog Id in ME",
            "required": true,
            "schema": {
              "type": "integer",
              "format": "int32"
            }
          },
          {
            "name": "clientId",
            "in": "path",
            "description": "The `clientId` is a unique identifier of a buyer to whom this punchout price catalog is assigned.",
            "required": true,
            "schema": {
              "type": "integer",
              "format": "int32"
            }
          },
          {
            "name": "X-ME-CORRELATION-ID",
            "in": "header",
            "description": "Internal client code to be identified in the webhook. It can be, for example, a product code in your ERP, an order number, etc.",
            "schema": {
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "description": "",
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/CancelCommand"
              }
            }
          }
        },
        "responses": {
          "202": {
            "description": "Accepted",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/CancelResponse"
                }
              }
            }
          },
          "400": {
            "description": "Bad Request",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          },
          "404": {
            "description": "Not Found",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          }
        }
      }
    },
    "/v1/supplier-catalogs/{clientId}/price-catalogs/{priceCatalogId}/cancel/items": {
      "put": {
        "tags": [
          "Price Catalogs"
        ],
        "summary": "Cancel the price catalog items associated to a `clientId` based on the priceCatalogId",
        "description": "Change a specific price catalog item associated to a `clientId` field with a provided value.",
        "parameters": [
          {
            "name": "priceCatalogId",
            "in": "path",
            "description": "The price catalog Id in ME",
            "required": true,
            "schema": {
              "type": "integer",
              "format": "int32"
            }
          },
          {
            "name": "clientId",
            "in": "path",
            "description": "The `clientId` is a unique identifier of a buyer to whom this punchout price catalog is assigned.",
            "required": true,
            "schema": {
              "type": "integer",
              "format": "int32"
            }
          },
          {
            "name": "X-ME-CORRELATION-ID",
            "in": "header",
            "description": "Internal client code to be identified in the webhook. It can be, for example, a product code in your ERP, an order number, etc.",
            "schema": {
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "description": "",
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/CancelItemsCommand"
              }
            }
          }
        },
        "responses": {
          "202": {
            "description": "Accepted",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/CancelItemsResponse"
                }
              }
            }
          },
          "400": {
            "description": "Bad Request",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          },
          "404": {
            "description": "Not Found",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          }
        }
      }
    },
    "/v1/supplier-catalogs/{clientId}/price-catalogs/{priceCatalogId}/items": {
      "get": {
        "tags": [
          "Price Catalogs"
        ],
        "summary": "Get Price Catalog items associated to a `clientId` by `priceCatalogId`",
        "description": "Get a list of all items assigned to a specific price catalog associated to a `clientId`.",
        "parameters": [
          {
            "name": "priceCatalogId",
            "in": "path",
            "description": "The price catalog Id in ME",
            "required": true,
            "schema": {
              "type": "integer",
              "format": "int32"
            }
          },
          {
            "name": "clientId",
            "in": "path",
            "description": "The `clientId` is a unique identifier of a buyer to whom this punchout price catalog is assigned.",
            "required": true,
            "schema": {
              "type": "integer",
              "format": "int32"
            }
          },
          {
            "name": "pageNumber",
            "in": "query",
            "description": "The page number must be an integer greater than or equal to 1",
            "schema": {
              "type": "integer",
              "format": "int32",
              "default": 1
            }
          },
          {
            "name": "pageSize",
            "in": "query",
            "description": "The page size must be an integer greater than or equal to 1",
            "schema": {
              "type": "integer",
              "format": "int32",
              "default": 10
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/GetItemsByIdResponse"
                }
              }
            }
          },
          "400": {
            "description": "Bad Request",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          },
          "404": {
            "description": "Not Found",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          }
        }
      }
    },
    "/v1/supplier-catalogs/{clientId}/price-catalogs/bulk": {
      "post": {
        "tags": [
          "Price Catalogs"
        ],
        "summary": "Create new price catalogs associated to a `clientId` using a JSON file",
        "description": "Creates new price catalogs associated to a `clientId` by providing the information about price catalogs, products, product categories and other details. \r\n\r\nThe JSON file should contain a list of price catalogs, each with detailed information on its products, product categories, and permissions.\r\n\r\nThe expected JSON structure is:\r\n\r\n```\r\n{\r\n\t\"disableMissingProducts\": false,\r\n\t\"clientPriceCatalogId\": \"123\",\r\n\t\"description\": \"Description\",\r\n\t\"products\": [\r\n\t\t{\r\n\t\t\t\"supplierReferenceProductId\": \"456\",\r\n\t\t\t\"supplierProductId\": \"code\",\r\n\t\t\t\"description\": \"Description\"\r\n\r\n        }\r\n\t]\r\n\t...\r\n}\r\n```\r\n\r\nPlease make sure that the `file` is in one of the following formats: `.json` or `.zip` (compressed JSON).",
        "parameters": [
          {
            "name": "clientId",
            "in": "path",
            "required": true,
            "schema": {
              "type": "integer",
              "format": "int32"
            }
          },
          {
            "name": "X-ME-CORRELATION-ID",
            "in": "header",
            "description": "Internal client code to be identified in the webhook. It can be, for example, a product code in your ERP, an order number, etc.",
            "schema": {
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "content": {
            "multipart/form-data": {
              "schema": {
                "type": "object",
                "properties": {
                  "file": {
                    "type": "string",
                    "format": "binary"
                  }
                }
              },
              "encoding": {
                "file": {
                  "style": "form"
                }
              }
            }
          }
        },
        "responses": {
          "202": {
            "description": "Accepted",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/CreateBulkResponse"
                }
              }
            }
          },
          "400": {
            "description": "Bad Request",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          }
        }
      }
    },
    "/v1/supplier-catalogs/{clientId}/product-categories": {
      "post": {
        "tags": [
          "Product Categories"
        ],
        "summary": "Create a product category associated to a `clientId`",
        "description": "Creates a new product category associated to a `clientId` by providing the client category id, description and other details.",
        "parameters": [
          {
            "name": "clientId",
            "in": "path",
            "description": "The `clientId` is a unique identifier of a buyer to whom this punchout product category is assigned.",
            "required": true,
            "schema": {
              "type": "integer",
              "format": "int32"
            }
          },
          {
            "name": "X-ME-CORRELATION-ID",
            "in": "header",
            "description": "Internal client code to be identified in the webhook. It can be, for example, a product code in your ERP, an order number, etc.",
            "schema": {
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "description": "",
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/CreateCommand2"
              }
            }
          }
        },
        "responses": {
          "202": {
            "description": "Accepted",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/CreateResponse2"
                }
              }
            }
          },
          "400": {
            "description": "Bad Request",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          },
          "404": {
            "description": "Not Found",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          }
        }
      },
      "get": {
        "tags": [
          "Product Categories"
        ],
        "summary": "Get all product categories associated to a `clientId`",
        "description": "Get a list of all product categories that are available to the connected user.",
        "parameters": [
          {
            "name": "clientId",
            "in": "path",
            "description": "The `clientId` is a unique identifier of a buyer to whom this punchout product category is assigned.",
            "required": true,
            "schema": {
              "type": "integer",
              "format": "int32"
            }
          },
          {
            "name": "pageNumber",
            "in": "query",
            "description": "The page number must be an integer greater than or equal to 1",
            "schema": {
              "type": "integer",
              "format": "int32",
              "default": 1
            }
          },
          {
            "name": "pageSize",
            "in": "query",
            "description": "The page size must be an integer greater than or equal to 1",
            "schema": {
              "type": "integer",
              "format": "int32",
              "default": 10
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/GetAllResponse"
                }
              }
            }
          },
          "404": {
            "description": "Not Found",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          }
        }
      }
    },
    "/v1/supplier-catalogs/{clientId}/product-categories/{productCategoryId}": {
      "get": {
        "tags": [
          "Product Categories"
        ],
        "summary": "Get a product category associated to a `clientId` based on the `productCategoryId`",
        "description": "Get information about a specific product category with the given `productCategoryId` and `clientId`.",
        "parameters": [
          {
            "name": "clientId",
            "in": "path",
            "description": "The `clientId` is a unique identifier of a buyer to whom this punchout product category is assigned.",
            "required": true,
            "schema": {
              "type": "integer",
              "format": "int32"
            }
          },
          {
            "name": "productCategoryId",
            "in": "path",
            "description": "the `productCategoryId`",
            "required": true,
            "schema": {
              "type": "integer",
              "format": "int32"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/GetByIdResponse2"
                }
              }
            }
          },
          "404": {
            "description": "Not Found",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          }
        }
      },
      "patch": {
        "tags": [
          "Product Categories"
        ],
        "summary": "Update a product category associated to a `clientId` based on the `productCategoryId`",
        "description": "Updates the data of a product category by entering the `productCategoryId` and the `clientId`.",
        "parameters": [
          {
            "name": "clientId",
            "in": "path",
            "description": "The `clientId` is a unique identifier of a buyer to whom this punchout product category is assigned.",
            "required": true,
            "schema": {
              "type": "integer",
              "format": "int32"
            }
          },
          {
            "name": "productCategoryId",
            "in": "path",
            "description": "the `productCategoryId`",
            "required": true,
            "schema": {
              "type": "integer",
              "format": "int32"
            }
          }
        ],
        "requestBody": {
          "description": "",
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/UpdateCommand2"
              }
            }
          }
        },
        "responses": {
          "202": {
            "description": "Accepted",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/UpdateResponse2"
                }
              }
            }
          },
          "400": {
            "description": "Bad Request",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          },
          "404": {
            "description": "Not Found",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          }
        }
      },
      "post": {
        "tags": [
          "Product Categories"
        ],
        "summary": "Delete a relationship between a list of Permissions and a Product Category",
        "description": "Deletes the relationship between a list of permissions and a product category specified by its `clientId`, `productCategoryId` and the list of permissions.",
        "parameters": [
          {
            "name": "clientId",
            "in": "path",
            "description": "The `clientId` is a unique identifier of a buyer to whom this punchout product category is assigned.",
            "required": true,
            "schema": {
              "type": "integer",
              "format": "int32"
            }
          },
          {
            "name": "productCategoryId",
            "in": "path",
            "description": "the `productCategoryId`",
            "required": true,
            "schema": {
              "type": "integer",
              "format": "int32"
            }
          },
          {
            "name": "X-ME-CORRELATION-ID",
            "in": "header",
            "description": "Internal client code to be identified in the webhook. It can be, for example, a product code in your ERP, an order number, etc.",
            "schema": {
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "description": "",
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/DeleteProductCategoryPermissionsRelationshipCommand"
              }
            }
          }
        },
        "responses": {
          "202": {
            "description": "Accepted",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/DeleteProductCategoryPermissionsRelationshipResponse"
                }
              }
            }
          },
          "400": {
            "description": "Bad Request",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          },
          "404": {
            "description": "Not Found",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          }
        }
      },
      "delete": {
        "tags": [
          "Product Categories"
        ],
        "summary": "Delete a Product Category associated to a `clientId` based on the `productCategoryId`",
        "description": "Deletes a Product Category by entering the `productCategoryId` and the `clientId`.",
        "parameters": [
          {
            "name": "clientId",
            "in": "path",
            "description": "The `clientId` is a unique identifier of a buyer to whom this punchout product category is assigned.",
            "required": true,
            "schema": {
              "type": "integer",
              "format": "int32"
            }
          },
          {
            "name": "productCategoryId",
            "in": "path",
            "description": "the `productCategoryId`",
            "required": true,
            "schema": {
              "type": "integer",
              "format": "int32"
            }
          },
          {
            "name": "X-ME-CORRELATION-ID",
            "in": "header",
            "description": "Internal client code to be identified in the webhook. It can be, for example, a product code in your ERP, an order number, etc.",
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "202": {
            "description": "Accepted",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/DeleteResponse"
                }
              }
            }
          },
          "400": {
            "description": "Bad Request",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          },
          "404": {
            "description": "Not Found",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          }
        }
      }
    },
    "/v1/supplier-catalogs/{clientId}/products/{productId}/pictures": {
      "post": {
        "tags": [
          "Product Pictures"
        ],
        "summary": "Add a picture to a product",
        "description": "Add a new picture to a specific product by providing the `productId` and the `picture` file. Please make sure that the `picture` file is less than 1 MB and is in one of the following formats: `.gif`, `.jpg`, `.jpeg` or `.png`.",
        "parameters": [
          {
            "name": "clientId",
            "in": "path",
            "description": "The `clientId` is a unique identifier of a buyer to whom the related punchout product is assigned.",
            "required": true,
            "schema": {
              "type": "integer",
              "format": "int32"
            }
          },
          {
            "name": "productId",
            "in": "path",
            "description": "The `productId`",
            "required": true,
            "schema": {
              "type": "integer",
              "format": "int32"
            }
          },
          {
            "name": "X-ME-CORRELATION-ID",
            "in": "header",
            "description": "Internal client code to be identified in the webhook. It can be, for example, a product code in your ERP, an order number, etc.",
            "schema": {
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "description": "Indicates if the picture to be associated should be primary product picture",
          "content": {
            "multipart/form-data": {
              "schema": {
                "type": "object",
                "properties": {
                  "isPrimary": {
                    "type": "boolean"
                  },
                  "picture": {
                    "type": "string",
                    "format": "binary"
                  }
                }
              },
              "encoding": {
                "isPrimary": {
                  "style": "form"
                },
                "picture": {
                  "style": "form"
                }
              }
            }
          }
        },
        "responses": {
          "202": {
            "description": "Accepted",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/CreatePictureResponse"
                }
              }
            }
          },
          "400": {
            "description": "Bad Request",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          }
        }
      },
      "get": {
        "tags": [
          "Product Pictures"
        ],
        "summary": "Get all pictures associated with a product",
        "description": "Get all pictures of a specific product with the given `productId`.",
        "parameters": [
          {
            "name": "clientId",
            "in": "path",
            "description": "The `clientId` is a unique identifier of a buyer to whom the related punchout product is assigned.",
            "required": true,
            "schema": {
              "type": "integer",
              "format": "int32"
            }
          },
          {
            "name": "productId",
            "in": "path",
            "description": "The `productId`",
            "required": true,
            "schema": {
              "type": "integer",
              "format": "int32"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/GetAllByProductIdResponse"
                }
              }
            }
          },
          "404": {
            "description": "Not Found",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          }
        }
      }
    },
    "/v1/supplier-catalogs/{clientId}/products/{productId}/pictures/{pictureId}/primary": {
      "patch": {
        "tags": [
          "Product Pictures"
        ],
        "summary": "Update a product picture based on the `productId` and `pictureId`",
        "description": "This method updates the selected picture of a specific product to be the primary one by providing both the `productId` and the `pictureId`.",
        "parameters": [
          {
            "name": "clientId",
            "in": "path",
            "description": "The `clientId` is a unique identifier of a buyer to whom the related punchout product is assigned.",
            "required": true,
            "schema": {
              "type": "integer",
              "format": "int32"
            }
          },
          {
            "name": "productId",
            "in": "path",
            "description": "The `productId`",
            "required": true,
            "schema": {
              "type": "integer",
              "format": "int32"
            }
          },
          {
            "name": "pictureId",
            "in": "path",
            "description": "The `pictureId` to be updated",
            "required": true,
            "schema": {
              "type": "integer",
              "format": "int32"
            }
          }
        ],
        "responses": {
          "202": {
            "description": "Accepted",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/UpdatePrimaryPictureResponse"
                }
              }
            }
          },
          "400": {
            "description": "Bad Request",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          },
          "404": {
            "description": "Not Found",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          }
        }
      }
    },
    "/v1/supplier-catalogs/{clientId}/products/{productId}/pictures/{pictureId}": {
      "delete": {
        "tags": [
          "Product Pictures"
        ],
        "summary": "Delete a picture associated with a product",
        "description": "Delete a picture from a specific product by providing the `productId` and the `pictureId`.",
        "parameters": [
          {
            "name": "clientId",
            "in": "path",
            "description": "The `clientId` is a unique identifier of a buyer to whom the related punchout product is assigned.",
            "required": true,
            "schema": {
              "type": "integer",
              "format": "int32"
            }
          },
          {
            "name": "productId",
            "in": "path",
            "description": "The `productId`",
            "required": true,
            "schema": {
              "type": "integer",
              "format": "int32"
            }
          },
          {
            "name": "pictureId",
            "in": "path",
            "description": "The `pictureId` to be deleted",
            "required": true,
            "schema": {
              "type": "integer",
              "format": "int32"
            }
          },
          {
            "name": "X-ME-CORRELATION-ID",
            "in": "header",
            "description": "Internal client code to be identified in the webhook. It can be, for example, a product code in your ERP, an order number, etc.",
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "202": {
            "description": "Accepted",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/DeletePictureResponse"
                }
              }
            }
          },
          "400": {
            "description": "Bad Request",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          },
          "404": {
            "description": "Not Found",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          }
        }
      },
      "get": {
        "tags": [
          "Product Pictures"
        ],
        "summary": "Get product picture information",
        "description": "Retrieves information about a product picture with the given `productId` and the `pictureId`.\r\nYou can get information about the picture such as size, date and other details.",
        "parameters": [
          {
            "name": "clientId",
            "in": "path",
            "description": "The `clientId` is a unique identifier of a buyer to whom the related punchout product is assigned.",
            "required": true,
            "schema": {
              "type": "integer",
              "format": "int32"
            }
          },
          {
            "name": "productId",
            "in": "path",
            "description": "The `productId`",
            "required": true,
            "schema": {
              "type": "integer",
              "format": "int32"
            }
          },
          {
            "name": "pictureId",
            "in": "path",
            "description": "The `pictureId`",
            "required": true,
            "schema": {
              "type": "integer",
              "format": "int32"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/GetPictureMetadataResponse"
                }
              }
            }
          },
          "400": {
            "description": "Bad Request",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          }
        }
      }
    },
    "/v1/supplier-catalogs/{clientId}/products/{productId}/pictures/primary": {
      "get": {
        "tags": [
          "Product Pictures"
        ],
        "summary": "Get the primary product picture based on the `productId`",
        "description": "Get information about the primary product picture with the given `productId`.",
        "parameters": [
          {
            "name": "clientId",
            "in": "path",
            "description": "The `clientId` is a unique identifier of a buyer to whom the related punchout product is assigned.",
            "required": true,
            "schema": {
              "type": "integer",
              "format": "int32"
            }
          },
          {
            "name": "productId",
            "in": "path",
            "description": "The `productId`",
            "required": true,
            "schema": {
              "type": "integer",
              "format": "int32"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/GetByIdResponse3"
                }
              }
            }
          },
          "404": {
            "description": "Not Found",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          }
        }
      }
    },
    "/v1/supplier-catalogs/{clientId}/products/{productId}/pictures/{pictureId}/download": {
      "get": {
        "tags": [
          "Product Pictures"
        ],
        "summary": "Redirection link to download the picture",
        "description": "This endpoint redirects directly to the client's picture download by entering the `productId`, `pictureId`, and `cancellationToken`.",
        "parameters": [
          {
            "name": "clientId",
            "in": "path",
            "description": "The `clientId` is a unique identifier of a buyer to whom the related punchout product is assigned.",
            "required": true,
            "schema": {
              "type": "integer",
              "format": "int32"
            }
          },
          {
            "name": "productId",
            "in": "path",
            "description": "The `productId`",
            "required": true,
            "schema": {
              "type": "integer",
              "format": "int32"
            }
          },
          {
            "name": "pictureId",
            "in": "path",
            "description": "The `pictureId`",
            "required": true,
            "schema": {
              "type": "integer",
              "format": "int32"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK"
          },
          "400": {
            "description": "Bad Request",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          }
        }
      }
    },
    "/v1/supplier-catalogs/{clientId}/products": {
      "post": {
        "tags": [
          "Products"
        ],
        "summary": "Create a product associated to a `clientId`",
        "description": "Creates a new product associated to a `clientId` by providing the measurement unit, description, material category, and other details.",
        "parameters": [
          {
            "name": "clientId",
            "in": "path",
            "description": "The `clientId` is a unique identifier of a buyer to whom this punchout product is assigned.",
            "required": true,
            "schema": {
              "type": "integer",
              "format": "int32"
            }
          },
          {
            "name": "X-ME-CORRELATION-ID",
            "in": "header",
            "description": "Internal client code to be identified in the webhook. It can be, for example, a product code in your ERP, an order number, etc.",
            "schema": {
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "description": "",
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/CreateCommand3"
              }
            }
          }
        },
        "responses": {
          "202": {
            "description": "Accepted",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/CreateResponse3"
                }
              }
            }
          },
          "400": {
            "description": "Bad Request",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          },
          "404": {
            "description": "Not Found",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          }
        }
      },
      "get": {
        "tags": [
          "Products"
        ],
        "summary": "Get all products associated to a `clientId`",
        "description": "Get a list of all products that are available to the connected user.",
        "parameters": [
          {
            "name": "clientId",
            "in": "path",
            "description": "The `clientId` is a unique identifier of a buyer to whom this punchout product is assigned.",
            "required": true,
            "schema": {
              "type": "integer",
              "format": "int32"
            }
          },
          {
            "name": "pageNumber",
            "in": "query",
            "description": "The page number must be an integer greater than or equal to 1",
            "schema": {
              "type": "integer",
              "format": "int32",
              "default": 1
            }
          },
          {
            "name": "pageSize",
            "in": "query",
            "description": "The page size must be an integer greater than or equal to 1",
            "schema": {
              "type": "integer",
              "format": "int32",
              "default": 10
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/GetManyMinimalResponse"
                }
              }
            }
          },
          "404": {
            "description": "Not Found",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          }
        }
      }
    },
    "/v1/supplier-catalogs/{clientId}/products/{supplierId}": {
      "post": {
        "tags": [
          "Products"
        ],
        "parameters": [
          {
            "name": "clientId",
            "in": "path",
            "required": true,
            "schema": {
              "type": "integer",
              "format": "int32"
            }
          },
          {
            "name": "supplierId",
            "in": "path",
            "required": true,
            "schema": {
              "type": "integer",
              "format": "int32"
            }
          },
          {
            "name": "X-ME-CORRELATION-ID",
            "in": "header",
            "description": "Internal client code to be identified in the webhook. It can be, for example, a product code in your ERP, an order number, etc.",
            "schema": {
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/AddAccessCommand"
              }
            }
          }
        },
        "responses": {
          "202": {
            "description": "Accepted",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/AddAccessResponse"
                }
              }
            }
          },
          "400": {
            "description": "Bad Request",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          },
          "404": {
            "description": "Not Found",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          }
        }
      }
    },
    "/v1/supplier-catalogs/{clientId}/products/{productId}": {
      "get": {
        "tags": [
          "Products"
        ],
        "summary": "Get a product associated to a `clientId` based on the `productId`",
        "description": "Get information about a specific product with the given `productId` and `clientId`.",
        "parameters": [
          {
            "name": "clientId",
            "in": "path",
            "description": "The `clientId` is a unique identifier of a buyer to whom this punchout product is assigned.",
            "required": true,
            "schema": {
              "type": "integer",
              "format": "int32"
            }
          },
          {
            "name": "productId",
            "in": "path",
            "description": "the `productId`.",
            "required": true,
            "schema": {
              "type": "integer",
              "format": "int32"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/GetByIdResponse3"
                }
              }
            }
          },
          "404": {
            "description": "Not Found",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          }
        }
      },
      "patch": {
        "tags": [
          "Products"
        ],
        "summary": "Update a product associated to a `clientId`",
        "description": "Updates the data of a product by entering the `productId` and the `clientId`.",
        "parameters": [
          {
            "name": "clientId",
            "in": "path",
            "description": "The `clientId` is a unique identifier of a buyer to whom this punchout product is assigned.",
            "required": true,
            "schema": {
              "type": "integer",
              "format": "int32"
            }
          },
          {
            "name": "productId",
            "in": "path",
            "description": "The `productId`.",
            "required": true,
            "schema": {
              "type": "integer",
              "format": "int32"
            }
          }
        ],
        "requestBody": {
          "description": "",
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/UpdateCommand3"
              }
            }
          }
        },
        "responses": {
          "202": {
            "description": "Accepted",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/UpdateResponse3"
                }
              }
            }
          },
          "400": {
            "description": "Bad Request",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          },
          "404": {
            "description": "Not Found",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          }
        }
      }
    },
    "/v1/supplier-catalogs/{clientId}/products/bulk": {
      "post": {
        "tags": [
          "Products"
        ],
        "summary": "Create new products associated to a `clientId` using a JSON file",
        "description": "Creates new products associated to a `clientId` by providing the measurement unit, description, material category, and other details. \r\n\r\nThe JSON file should contain a list of products, where each product follows the same structure as the unitary product creation request.\r\n\r\nThe expected JSON structure is:\r\n\r\n```\r\n{\r\n  \"products\": [\r\n    {\r\n      \"supplierReferenceProductId\": \"example1\",\r\n      \"supplierProductId\": \"example1\",\r\n      \"description\": \"example1\",\r\n      ...\r\n    },\r\n    {\r\n      \"supplierReferenceProductId\": \"example2\",\r\n      ...\r\n    }\r\n  ]\r\n}\r\n```\r\n\r\nPlease make sure that the `file` is in one of the following formats: `.json` or `.zip` (compressed JSON).",
        "parameters": [
          {
            "name": "clientId",
            "in": "path",
            "required": true,
            "schema": {
              "type": "integer",
              "format": "int32"
            }
          },
          {
            "name": "X-ME-CORRELATION-ID",
            "in": "header",
            "description": "Internal client code to be identified in the webhook. It can be, for example, a product code in your ERP, an order number, etc.",
            "schema": {
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "content": {
            "multipart/form-data": {
              "schema": {
                "type": "object",
                "properties": {
                  "file": {
                    "type": "string",
                    "format": "binary"
                  }
                }
              },
              "encoding": {
                "file": {
                  "style": "form"
                }
              }
            }
          }
        },
        "responses": {
          "202": {
            "description": "Accepted",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/CreateBulkResponse2"
                }
              }
            }
          },
          "400": {
            "description": "Bad Request",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProblemDetails"
                }
              }
            }
          }
        }
      }
    }
  },
  "components": {
    "schemas": {
      "AddAccessCommand": {
        "type": "object",
        "additionalProperties": false
      },
      "AddAccessResponse": {
        "type": "object",
        "properties": {
          "success": {
            "type": "boolean"
          }
        },
        "additionalProperties": false
      },
      "AttributeDto": {
        "type": "object",
        "properties": {
          "name": {
            "maxLength": 256,
            "type": "string",
            "nullable": true
          },
          "value": {
            "type": "string",
            "nullable": true
          },
          "description": {
            "type": "string",
            "nullable": true
          }
        },
        "additionalProperties": false
      },
      "BalanceControl": {
        "enum": [
          "NoBalanceControl",
          "Quantity",
          "Value",
          "ItemValue"
        ],
        "type": "string"
      },
      "BusinessOrganization": {
        "type": "object",
        "properties": {
          "code": {
            "type": "string",
            "nullable": true
          },
          "description": {
            "type": "string",
            "nullable": true
          },
          "virtualEntityField": {
            "type": "string",
            "nullable": true
          },
          "virtualEntityDescription": {
            "type": "string",
            "nullable": true
          },
          "entityType": {
            "type": "string",
            "nullable": true
          }
        },
        "additionalProperties": false
      },
      "BusinessOrganizationDto": {
        "required": [
          "code",
          "entityType"
        ],
        "type": "object",
        "properties": {
          "code": {
            "maxLength": 20,
            "minLength": 1,
            "type": "string",
            "description": "Company code"
          },
          "entityType": {
            "maxLength": 50,
            "minLength": 1,
            "type": "string",
            "description": "Entity type"
          },
          "description": {
            "maxLength": 100,
            "type": "string",
            "description": "Company description",
            "nullable": true
          }
        },
        "additionalProperties": false
      },
      "CancelCommand": {
        "required": [
          "note"
        ],
        "type": "object",
        "properties": {
          "note": {
            "maxLength": 100,
            "minLength": 1,
            "type": "string",
            "description": "Note justifying the cancellation"
          }
        },
        "additionalProperties": false
      },
      "CancelItemsCommand": {
        "type": "object",
        "properties": {
          "items": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/CancelPriceCatalogItemDto"
            },
            "description": "List with the price catalog items",
            "nullable": true
          }
        },
        "additionalProperties": false
      },
      "CancelItemsResponse": {
        "type": "object",
        "properties": {
          "meCorrelationId": {
            "type": "string"
          }
        },
        "additionalProperties": false
      },
      "CancelPriceCatalogItemDto": {
        "required": [
          "itemId"
        ],
        "type": "object",
        "properties": {
          "itemId": {
            "minimum": 0,
            "type": "integer",
            "description": "Sequential number of the item in the ME.",
            "format": "int32"
          },
          "note": {
            "type": "string",
            "description": "Item note justifying the cancellation",
            "nullable": true
          }
        },
        "additionalProperties": false
      },
      "CancelResponse": {
        "type": "object",
        "properties": {
          "correlationId": {
            "type": "string"
          }
        },
        "additionalProperties": false
      },
      "CreateBulkResponse": {
        "type": "object",
        "properties": {
          "correlationId": {
            "type": "string"
          }
        },
        "additionalProperties": false
      },
      "CreateBulkResponse2": {
        "type": "object",
        "properties": {
          "correlationId": {
            "type": "string"
          }
        },
        "additionalProperties": false
      },
      "CreateCommand": {
        "required": [
          "currencyCode",
          "description",
          "endDate",
          "startDate",
          "status",
          "totalValue"
        ],
        "type": "object",
        "properties": {
          "clientPriceCatalogId": {
            "maxLength": 20,
            "type": "string",
            "description": "Price Catalog Id in client's ERP",
            "nullable": true
          },
          "description": {
            "maxLength": 50,
            "minLength": 1,
            "type": "string",
            "description": "Price Catalog brief description"
          },
          "category": {
            "maxLength": 20,
            "type": "string",
            "description": "Price Catalog category",
            "nullable": true
          },
          "clientSupplierId": {
            "type": "string",
            "description": "Supplier Id in client's ERP",
            "nullable": true
          },
          "integrationTag": {
            "type": "string",
            "description": "Identification of the ME user used in the integration.",
            "nullable": true
          },
          "startDate": {
            "minLength": 1,
            "type": "string",
            "description": "Price Catalog start date",
            "format": "date-time"
          },
          "endDate": {
            "minLength": 1,
            "type": "string",
            "description": "Price Catalog end date",
            "format": "date-time"
          },
          "clientPaymentConditionId": {
            "maxLength": 100,
            "type": "string",
            "description": "Payment condition code",
            "nullable": true
          },
          "incoTerms": {
            "maxLength": 100,
            "type": "string",
            "description": "Freight code (Incoterms)",
            "nullable": true
          },
          "currencyCode": {
            "maxLength": 20,
            "minLength": 1,
            "type": "string",
            "description": "Currency in alphabetic code (for more information, please refer to: https://www.iso.org/iso-4217-currency-codes.html)."
          },
          "deliveryDeadline": {
            "minimum": 0,
            "type": "integer",
            "description": "Delivery deadline",
            "format": "int32",
            "nullable": true
          },
          "status": {
            "minimum": 0,
            "type": "integer",
            "description": "Price Catalog status",
            "format": "int32"
          },
          "totalValue": {
            "minimum": 0,
            "type": "number",
            "description": "Price Catalog total value",
            "format": "float"
          },
          "fixedValue": {
            "minimum": 0,
            "type": "number",
            "description": "Price Catalog fixed value",
            "format": "float",
            "nullable": true
          },
          "usedValue": {
            "minimum": 0,
            "type": "number",
            "description": "Price Catalog used value",
            "format": "float",
            "nullable": true
          },
          "note": {
            "type": "string",
            "description": "Price Catalog notes",
            "nullable": true
          },
          "isPreOrderCreatedAutomatically": {
            "type": "boolean",
            "description": "This flag indicates if the pre-order is generated automatically.",
            "nullable": true
          },
          "isControlledByBalance": {
            "type": "boolean",
            "description": "This flag indicates if the price catalog balance is controlled by workflow.",
            "nullable": true
          },
          "isRequestEstimatedPriceUsedInPreOrder": {
            "type": "boolean",
            "description": "This flag indicates if the request estimated price is used in pre-order creation.",
            "nullable": true
          },
          "isPreOrderBlockedIfEstimatedRequestDateGreaterThanPriceCatalogEndDate": {
            "type": "boolean",
            "description": "This flag indicates if the pre-order is blocked if the request estimated date is greather than price catalog end date.",
            "nullable": true
          },
          "purchasingGroup": {
            "maxLength": 20,
            "type": "string",
            "description": "Purchasing Group",
            "nullable": true
          },
          "balanceControl": {
            "$ref": "#/components/schemas/BalanceControl"
          },
          "attributes": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/AttributeDto"
            },
            "description": "Attributes of the Price Catalog, consisting of a name, a value and a description.",
            "nullable": true
          },
          "businessOrganizations": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/BusinessOrganizationDto"
            },
            "description": "List with the Business Organizations comprising the Company Code, the Entity Type and their Descriptions.",
            "nullable": true
          },
          "items": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/PriceCatalogItemDto"
            },
            "description": "List with the Price Catalog items",
            "nullable": true
          }
        },
        "additionalProperties": false
      },
      "CreateCommand2": {
        "required": [
          "clientCategoryId",
          "description"
        ],
        "type": "object",
        "properties": {
          "description": {
            "maxLength": 60,
            "minLength": 1,
            "type": "string",
            "description": "Group description"
          },
          "clientCategoryId": {
            "maxLength": 30,
            "minLength": 1,
            "type": "string",
            "description": "Product category code"
          },
          "permissions": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/PermissionsDto"
            },
            "description": "List of product category permissions. The fields in this property define, for example, if the category can be placed on requests or orders, among others.",
            "nullable": true
          }
        },
        "additionalProperties": false
      },
      "CreateCommand3": {
        "required": [
          "clientCategoryId",
          "description",
          "isService",
          "measurementUnit",
          "supplierProductId",
          "supplierReferenceProductId"
        ],
        "type": "object",
        "properties": {
          "supplierReferenceProductId": {
            "maxLength": 30,
            "minLength": 1,
            "type": "string",
            "description": "ME product code"
          },
          "supplierProductId": {
            "maxLength": 30,
            "minLength": 1,
            "type": "string",
            "description": "Product id in supplier's ERP"
          },
          "description": {
            "maxLength": 125,
            "minLength": 1,
            "type": "string",
            "description": "Product short description"
          },
          "complement": {
            "type": "string",
            "description": "Description complement",
            "nullable": true
          },
          "measurementUnit": {
            "maxLength": 20,
            "minLength": 1,
            "type": "string",
            "description": "Measurement unit"
          },
          "note": {
            "type": "string",
            "description": "Note",
            "nullable": true
          },
          "estimatedPrice": {
            "minimum": 0,
            "type": "number",
            "description": "Estimated price of the product",
            "format": "double"
          },
          "clientCategoryId": {
            "minLength": 1,
            "type": "string",
            "description": "Product category code"
          },
          "clientCategoryDescription": {
            "maxLength": 60,
            "type": "string",
            "description": "Product category description",
            "nullable": true
          },
          "isService": {
            "type": "boolean",
            "description": "Flag to indicate if this item is a service (true/false)\r\nTrue = Service item\r\nFalse = Product item"
          },
          "isGeneric": {
            "type": "boolean",
            "description": "Set this flag as follows:\r\nTrue = Product without a code\r\nFalse = Product with a code",
            "nullable": true
          },
          "status": {
            "$ref": "#/components/schemas/ProductStatus"
          },
          "materialOrigin": {
            "type": "string",
            "description": "Material origin:\r\n1 = Domestic origin\r\n2 = Foreign origin",
            "nullable": true
          },
          "applicationType": {
            "type": "string",
            "description": "Material application code (tax usage)",
            "nullable": true
          },
          "materialCategory": {
            "type": "string",
            "description": "Material accounting code",
            "nullable": true
          },
          "manufacturers": {
            "type": "array",
            "items": {
              "type": "string"
            },
            "description": "Manufacturers is a List consisting of the product manufacturers' names",
            "nullable": true
          },
          "productIdentificationCode": {
            "$ref": "#/components/schemas/ProductIdentification"
          },
          "businessOrganizations": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/BusinessOrganization"
            },
            "description": "Business Organizations is a List consisting of the company code, description, delivery center code, delivery center description and entity type fields.",
            "nullable": true
          },
          "categories": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/ProductCategoryDto"
            },
            "description": "Categories is a List consisting of the `clientCategoryID` and `Description`.",
            "nullable": true
          },
          "attributes": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/AttributeDto"
            },
            "description": "Attributes of the product, consisting of a name, a value and a description.",
            "nullable": true
          }
        },
        "additionalProperties": false
      },
      "CreatePictureResponse": {
        "type": "object",
        "properties": {
          "correlationId": {
            "type": "string"
          }
        },
        "additionalProperties": false
      },
      "CreateResponse": {
        "type": "object",
        "properties": {
          "correlationId": {
            "type": "string"
          }
        },
        "additionalProperties": false
      },
      "CreateResponse2": {
        "type": "object",
        "properties": {
          "correlationId": {
            "type": "string"
          }
        },
        "additionalProperties": false
      },
      "CreateResponse3": {
        "type": "object",
        "properties": {
          "correlationId": {
            "type": "string"
          }
        },
        "additionalProperties": false
      },
      "DeletePictureResponse": {
        "type": "object",
        "properties": {
          "correlationId": {
            "type": "string"
          }
        },
        "additionalProperties": false
      },
      "DeleteProductCategoryPermissionsRelationshipCommand": {
        "type": "object",
        "properties": {
          "permissionsList": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/PermissionsListDto"
            },
            "description": "List of product category permissions. The fields in this property define, for example, if the category can be placed on requests or orders, among others.",
            "nullable": true
          }
        },
        "additionalProperties": false
      },
      "DeleteProductCategoryPermissionsRelationshipResponse": {
        "type": "object",
        "properties": {
          "correlationId": {
            "type": "string"
          }
        },
        "additionalProperties": false
      },
      "DeleteResponse": {
        "type": "object",
        "properties": {
          "correlationId": {
            "type": "string"
          }
        },
        "additionalProperties": false
      },
      "GetAllByProductIdResponse": {
        "type": "object",
        "properties": {
          "data": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/ProductPicture"
            }
          },
          "hits": {
            "type": "integer",
            "format": "int32"
          }
        },
        "additionalProperties": false
      },
      "GetAllResponse": {
        "type": "object",
        "properties": {
          "data": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/GetAllResponseData"
            }
          },
          "hits": {
            "type": "integer",
            "format": "int32",
            "nullable": true
          },
          "next": {
            "type": "string",
            "nullable": true
          }
        },
        "additionalProperties": false
      },
      "GetAllResponseData": {
        "type": "object",
        "properties": {
          "groupId": {
            "type": "integer",
            "description": "ME Product Group ID",
            "format": "int32"
          },
          "clientGroupId": {
            "type": "string",
            "description": "Product group code",
            "nullable": true
          },
          "description": {
            "type": "string",
            "description": "Group description",
            "nullable": true
          }
        },
        "additionalProperties": false
      },
      "GetByIdResponse": {
        "type": "object",
        "properties": {
          "clientPriceCatalogId": {
            "type": "string",
            "description": "Price Catalog Id in client's ERP",
            "nullable": true
          },
          "description": {
            "type": "string",
            "description": "Price Catalog brief description",
            "nullable": true
          },
          "category": {
            "type": "string",
            "description": "Price Catalog category",
            "nullable": true
          },
          "clientSupplierId": {
            "type": "string",
            "description": "Supplier Id in client's ERP",
            "nullable": true
          },
          "integrationTag": {
            "type": "string",
            "description": "Identification of the ME user used in the integration.",
            "nullable": true
          },
          "startDate": {
            "type": "string",
            "description": "Price Catalog start date",
            "format": "date-time",
            "nullable": true
          },
          "endDate": {
            "type": "string",
            "description": "Price Catalog end date",
            "format": "date-time",
            "nullable": true
          },
          "clientPaymentConditionId": {
            "type": "string",
            "description": "Payment condition code",
            "nullable": true
          },
          "incoTerms": {
            "type": "string",
            "description": "Freight code (Incoterms)",
            "nullable": true
          },
          "currencyCode": {
            "type": "string",
            "description": "Currency in alphabetic code (for more information, please refer to: https://www.iso.org/iso-4217-currency-codes.html).",
            "nullable": true
          },
          "deliveryDeadline": {
            "type": "integer",
            "description": "Delivery deadline",
            "format": "int32",
            "nullable": true
          },
          "status": {
            "type": "integer",
            "description": "Price Catalog status",
            "format": "int32",
            "nullable": true
          },
          "totalValue": {
            "type": "number",
            "description": "Price Catalog total value",
            "format": "float",
            "nullable": true
          },
          "fixedValue": {
            "type": "number",
            "description": "Price Catalog fixed value",
            "format": "float",
            "nullable": true
          },
          "usedValue": {
            "type": "number",
            "description": "Price Catalog used value",
            "format": "float",
            "nullable": true
          },
          "note": {
            "type": "string",
            "description": "Price Catalog notes",
            "nullable": true
          },
          "isPreOrderCreatedAutomatically": {
            "type": "boolean",
            "description": "This flag indicates if the pre-order is generated automatically.",
            "nullable": true
          },
          "isControlledByBalance": {
            "type": "boolean",
            "description": "This flag indicates if the price catalog balance is controlled by workflow.",
            "nullable": true
          },
          "isRequestEstimatedPriceUsedInPreOrder": {
            "type": "boolean",
            "description": "This flag indicates if the request estimated price is used in pre-order creation.",
            "nullable": true
          },
          "isPreOrderBlockedIfEstimatedRequestDateGreaterThanPriceCatalogEndDate": {
            "type": "boolean",
            "description": "This flag indicates if the pre-order is blocked if the request estimated date is greather than price catalog end date.",
            "nullable": true
          },
          "purchasingGroup": {
            "type": "string",
            "description": "Purchasing Group",
            "nullable": true
          },
          "balanceControl": {
            "$ref": "#/components/schemas/BalanceControl"
          },
          "attributes": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/AttributeDto"
            },
            "description": "Attributes of the Price Catalog, consisting of a name, a value and a description.",
            "nullable": true
          },
          "businessOrganizations": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/BusinessOrganizationDto"
            },
            "description": "List with the Business Organizations comprising the Company Code, the Entity Type and their Descriptions.",
            "nullable": true
          },
          "tenantId": {
            "type": "integer",
            "description": "A unique identifier or alias for the requesting tenant.",
            "format": "int32"
          },
          "supplierId": {
            "type": "integer",
            "description": "Supplier Id in ME",
            "format": "int32"
          }
        },
        "additionalProperties": false
      },
      "GetByIdResponse2": {
        "type": "object",
        "properties": {
          "clientCategoryId": {
            "type": "string",
            "description": "Product category code",
            "nullable": true
          },
          "description": {
            "type": "string",
            "description": "Category description",
            "nullable": true
          },
          "permissionsList": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/ProductCategoryPermission"
            },
            "description": "List of product category permissions related to a specific category",
            "nullable": true
          },
          "supplierOwnerId": {
            "type": "integer",
            "description": "The `supplierOwnerId` field is a unique identifier for a supplier responsible for managing and maintaining a product punchout catalog.     \r\nIf this field is not null, this indicates that the product is part of a punchout catalog, which means that it can be viewed by the buyer, but not updated.",
            "format": "int32",
            "nullable": true
          }
        },
        "additionalProperties": false
      },
      "GetByIdResponse3": {
        "type": "object",
        "properties": {
          "productId": {
            "type": "integer",
            "description": "ME product Id",
            "format": "int32"
          },
          "supplierReferenceProductId": {
            "type": "string",
            "description": "ME product code",
            "nullable": true
          },
          "supplierProductId": {
            "type": "string",
            "description": "ERP product code",
            "nullable": true
          },
          "note": {
            "type": "string",
            "description": "Header note",
            "nullable": true
          },
          "description": {
            "type": "string",
            "description": "Description",
            "nullable": true
          },
          "complement": {
            "type": "string",
            "description": "Description complement",
            "nullable": true
          },
          "manufacturer": {
            "type": "string",
            "description": "Manufacturer's name",
            "nullable": true
          },
          "measurementUnit": {
            "type": "string",
            "description": "Measurement unit",
            "nullable": true
          },
          "estimatedPrice": {
            "type": "number",
            "description": "Estimated price of the product",
            "format": "double",
            "nullable": true
          },
          "categoryId": {
            "type": "integer",
            "description": "Product category code",
            "format": "int32",
            "nullable": true
          },
          "clientCategoryCode": {
            "type": "string",
            "description": "Product category code at the client",
            "nullable": true
          },
          "clientCategoryDescription": {
            "type": "string",
            "description": "Product category description",
            "nullable": true
          },
          "isService": {
            "type": "boolean",
            "description": "Flag to indicate if this item is a service (true/false) \r\nTrue = Service item \r\nFalse = Product item",
            "nullable": true
          },
          "isGeneric": {
            "type": "boolean",
            "description": "Set this flag as follows:\r\nTrue = Product without a code\r\nFalse = Product with a code",
            "nullable": true
          },
          "status": {
            "type": "boolean",
            "description": "The product statuses can be:\r\nTrue = Active\r\nFalse = Blocked",
            "nullable": true
          },
          "materialOriginId": {
            "type": "integer",
            "description": "Material origin:\r\n1 = Domestic origin \r\n2 = Foreign origin",
            "format": "int32",
            "nullable": true
          },
          "applicationType": {
            "type": "string",
            "description": "Material application code (tax usage)",
            "nullable": true
          },
          "materialCategory": {
            "type": "string",
            "description": "Material accounting code",
            "nullable": true
          },
          "manufacturers": {
            "type": "array",
            "items": {
              "type": "string"
            },
            "description": "Manufacturers is a List consisting of the product manufacturers' names"
          },
          "productIdentificationCode": {
            "$ref": "#/components/schemas/ProductIdentification"
          },
          "supplierOwnerId": {
            "type": "integer",
            "description": "The `supplierOwnerId` field is a unique identifier for a supplier responsible for managing and maintaining a product punchout catalog.     \r\nIf this field is not null, this indicates that the product is part of a punchout catalog, which means that it can be viewed by the buyer, but not updated.",
            "format": "int32",
            "nullable": true
          },
          "attributes": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/ProductAttributeValueDto"
            },
            "description": "Attributes of the product, consisting of a name, a value and a description.",
            "nullable": true
          }
        },
        "additionalProperties": false
      },
      "GetItemsByIdResponse": {
        "type": "object",
        "properties": {
          "data": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/GetItemsResponseData"
            }
          },
          "hits": {
            "type": "integer",
            "format": "int32",
            "nullable": true
          },
          "next": {
            "type": "string",
            "nullable": true
          }
        },
        "additionalProperties": false
      },
      "GetItemsResponseData": {
        "required": [
          "itemId",
          "measurementUnit",
          "netValue",
          "price"
        ],
        "type": "object",
        "properties": {
          "itemId": {
            "minimum": 0,
            "type": "integer",
            "description": "Sequential number of the item in the ME.",
            "format": "int32"
          },
          "supplierProductId": {
            "type": "string",
            "description": "Product id in supplier's ERP",
            "nullable": true
          },
          "supplierReferenceProductId": {
            "type": "string",
            "description": "ME product code",
            "nullable": true
          },
          "price": {
            "minimum": 0,
            "type": "number",
            "description": "Item price",
            "format": "float"
          },
          "measurementUnit": {
            "minLength": 1,
            "type": "string",
            "description": "Item measurement unit"
          },
          "deliveryDeadline": {
            "minimum": 0,
            "type": "integer",
            "description": "The delivery deadline in days",
            "format": "int32",
            "nullable": true
          },
          "netValue": {
            "minimum": 0,
            "type": "number",
            "description": "Item net value",
            "format": "float"
          },
          "note": {
            "type": "string",
            "description": "Item note",
            "nullable": true
          },
          "quantity": {
            "minimum": 0,
            "type": "number",
            "description": "Item quantity",
            "format": "float",
            "nullable": true
          },
          "manufacturer": {
            "maxLength": 100,
            "type": "string",
            "description": "Manufacturer of the item",
            "nullable": true
          },
          "materialApplication": {
            "type": "string",
            "description": "Material usage in the ERP.",
            "nullable": true
          },
          "productMinimumQuantity": {
            "minimum": 0,
            "type": "number",
            "description": "Minimum quantity of products",
            "format": "float",
            "nullable": true
          },
          "productIdentification": {
            "$ref": "#/components/schemas/ProductIdentification"
          },
          "taxInformation": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/TaxInformationDto"
            },
            "description": "A list of the taxes applied in the country."
          },
          "attributes": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/AttributeDto"
            },
            "description": "Attributes of the price catalog item, consisting of a name and a value."
          },
          "businessOrganizations": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/BusinessOrganizationDto"
            },
            "description": "Business Organizations is a list consisting of the Company Code, Delivery Center/Location Code and their descriptions."
          },
          "productId": {
            "type": "integer",
            "description": "Product id in client's ERP",
            "format": "int32",
            "nullable": true
          }
        },
        "additionalProperties": false
      },
      "GetManyMinimalResponse": {
        "type": "object",
        "properties": {
          "data": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/GetManyMinimalResponseData"
            }
          },
          "hits": {
            "type": "integer",
            "format": "int32",
            "nullable": true
          },
          "next": {
            "type": "string",
            "nullable": true
          }
        },
        "additionalProperties": false
      },
      "GetManyMinimalResponseData": {
        "type": "object",
        "properties": {
          "productId": {
            "type": "integer",
            "description": "ME product Id",
            "format": "int32"
          },
          "supplierProductId": {
            "type": "string",
            "description": "ERP product code",
            "nullable": true
          },
          "supplierOwnerId": {
            "type": "integer",
            "description": "The `supplierOwnerId` field is a unique identifier for a supplier responsible for managing and maintaining a product punchout catalog.     \r\nIf this field is not null, this indicates that the product is part of a punchout catalog, which means that it can be viewed by the buyer, but not updated.",
            "format": "int32",
            "nullable": true
          }
        },
        "additionalProperties": false
      },
      "GetPictureMetadataResponse": {
        "type": "object",
        "properties": {
          "contentLength": {
            "type": "integer",
            "description": "Picture content size",
            "format": "int64"
          },
          "fileName": {
            "type": "string",
            "description": "Picture file name"
          },
          "contentType": {
            "type": "string",
            "description": "Picture file type"
          },
          "date": {
            "type": "string",
            "description": "Picture file date",
            "format": "date-time",
            "nullable": true
          }
        },
        "additionalProperties": false
      },
      "PermissionsDto": {
        "type": "object",
        "properties": {
          "permission": {
            "type": "string",
            "description": "Permission type (default \"GENERAL\")",
            "nullable": true
          }
        },
        "additionalProperties": false
      },
      "PermissionsListDto": {
        "type": "object",
        "properties": {
          "groupId": {
            "type": "integer",
            "description": "Id of the Product Group",
            "format": "int32"
          },
          "permissionId": {
            "type": "integer",
            "description": "Id of the Permission",
            "format": "int32"
          },
          "flags": {
            "type": "integer",
            "description": "32 bit Flags (configurations)",
            "format": "int32"
          }
        },
        "additionalProperties": false
      },
      "PriceCatalogItemDto": {
        "required": [
          "itemId",
          "measurementUnit",
          "netValue",
          "price"
        ],
        "type": "object",
        "properties": {
          "itemId": {
            "minimum": 0,
            "type": "integer",
            "description": "Sequential number of the item in the ME.",
            "format": "int32"
          },
          "supplierProductId": {
            "type": "string",
            "description": "Product id in supplier's ERP",
            "nullable": true
          },
          "supplierReferenceProductId": {
            "type": "string",
            "description": "ME product code",
            "nullable": true
          },
          "price": {
            "minimum": 0,
            "type": "number",
            "description": "Item price",
            "format": "float"
          },
          "measurementUnit": {
            "minLength": 1,
            "type": "string",
            "description": "Item measurement unit"
          },
          "deliveryDeadline": {
            "minimum": 0,
            "type": "integer",
            "description": "The delivery deadline in days",
            "format": "int32",
            "nullable": true
          },
          "netValue": {
            "minimum": 0,
            "type": "number",
            "description": "Item net value",
            "format": "float"
          },
          "note": {
            "type": "string",
            "description": "Item note",
            "nullable": true
          },
          "quantity": {
            "minimum": 0,
            "type": "number",
            "description": "Item quantity",
            "format": "float",
            "nullable": true
          },
          "manufacturer": {
            "maxLength": 100,
            "type": "string",
            "description": "Manufacturer of the item",
            "nullable": true
          },
          "materialApplication": {
            "type": "string",
            "description": "Material usage in the ERP.",
            "nullable": true
          },
          "productMinimumQuantity": {
            "minimum": 0,
            "type": "number",
            "description": "Minimum quantity of products",
            "format": "float",
            "nullable": true
          },
          "productIdentification": {
            "$ref": "#/components/schemas/ProductIdentification"
          },
          "taxInformation": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/TaxInformationDto"
            },
            "description": "A list of the taxes applied in the country."
          },
          "attributes": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/AttributeDto"
            },
            "description": "Attributes of the price catalog item, consisting of a name and a value."
          },
          "businessOrganizations": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/BusinessOrganizationDto"
            },
            "description": "Business Organizations is a list consisting of the Company Code, Delivery Center/Location Code and their descriptions."
          }
        },
        "additionalProperties": false
      },
      "ProblemDetails": {
        "type": "object",
        "properties": {
          "type": {
            "type": "string",
            "nullable": true
          },
          "title": {
            "type": "string",
            "nullable": true
          },
          "status": {
            "type": "integer",
            "format": "int32",
            "nullable": true
          },
          "detail": {
            "type": "string",
            "nullable": true
          },
          "instance": {
            "type": "string",
            "nullable": true
          }
        },
        "additionalProperties": {}
      },
      "ProductAttributeValueDto": {
        "type": "object",
        "properties": {
          "name": {
            "type": "string",
            "nullable": true
          },
          "value": {
            "type": "string",
            "nullable": true
          }
        },
        "additionalProperties": false
      },
      "ProductCategoryDto": {
        "required": [
          "clientCategoryId"
        ],
        "type": "object",
        "properties": {
          "clientCategoryId": {
            "maxLength": 30,
            "minLength": 1,
            "type": "string",
            "description": "Product category code"
          },
          "description": {
            "maxLength": 60,
            "type": "string",
            "description": "Category description",
            "nullable": true
          },
          "permissions": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/ProductCategoryPermissionDto"
            },
            "description": "List of product category permissions."
          },
          "subCategory": {
            "$ref": "#/components/schemas/SubCategoryDto"
          }
        },
        "additionalProperties": false
      },
      "ProductCategoryPermission": {
        "type": "object",
        "properties": {
          "permission": {
            "type": "string",
            "nullable": true
          },
          "permissionId": {
            "type": "integer",
            "format": "int32"
          },
          "isOrderable": {
            "type": "boolean",
            "nullable": true
          },
          "isRequestable": {
            "type": "boolean",
            "nullable": true
          },
          "hasEstimatedPriceInRequest": {
            "type": "boolean",
            "nullable": true
          },
          "isExclusiveToBudgetRequest": {
            "type": "boolean",
            "nullable": true
          },
          "groupId": {
            "type": "integer",
            "format": "int32"
          },
          "flags": {
            "type": "integer",
            "format": "int32"
          }
        },
        "additionalProperties": false
      },
      "ProductCategoryPermissionDto": {
        "type": "object",
        "properties": {
          "permission": {
            "type": "string",
            "description": "Permission type (default \"GENERAL\")",
            "nullable": true
          }
        },
        "additionalProperties": false
      },
      "ProductIdentification": {
        "required": [
          "type",
          "value"
        ],
        "type": "object",
        "properties": {
          "type": {
            "minLength": 1,
            "type": "string"
          },
          "value": {
            "minLength": 1,
            "type": "string"
          }
        },
        "additionalProperties": false
      },
      "ProductPicture": {
        "type": "object",
        "properties": {
          "tenantId": {
            "type": "integer",
            "format": "int32"
          },
          "productId": {
            "type": "integer",
            "format": "int32"
          },
          "pictureId": {
            "type": "integer",
            "format": "int32"
          },
          "isPrimaryPicture": {
            "type": "boolean",
            "nullable": true
          },
          "createdAt": {
            "type": "string",
            "format": "date-time",
            "nullable": true
          },
          "updatedAt": {
            "type": "string",
            "format": "date-time",
            "nullable": true
          },
          "attachment": {
            "type": "string",
            "format": "binary",
            "nullable": true
          },
          "base64Image": {
            "type": "string",
            "nullable": true
          }
        },
        "additionalProperties": false
      },
      "ProductStatus": {
        "enum": [
          "Active",
          "Blocked"
        ],
        "type": "string"
      },
      "SubCategoryDto": {
        "type": "object",
        "properties": {
          "topClientGroupId": {
            "type": "string",
            "description": "Top client group Id",
            "nullable": true
          },
          "topDescription": {
            "type": "string",
            "description": "Top group description",
            "nullable": true
          }
        },
        "additionalProperties": false
      },
      "TaxApplication": {
        "enum": [
          "Free",
          "Included",
          "NotIncluded",
          "NotInformed",
          "ZeroRate"
        ],
        "type": "string"
      },
      "TaxInformationDto": {
        "type": "object",
        "properties": {
          "name": {
            "$ref": "#/components/schemas/TaxName"
          },
          "aliquot": {
            "type": "number",
            "description": "Tax rate",
            "format": "float",
            "nullable": true
          },
          "reducedTaxRate": {
            "type": "number",
            "description": "Reduced Tax rate",
            "format": "float",
            "nullable": true
          },
          "taxApplication": {
            "$ref": "#/components/schemas/TaxApplication"
          }
        },
        "additionalProperties": false
      },
      "TaxName": {
        "enum": [
          "ICMS",
          "IPI",
          "ISS",
          "CIDE",
          "IRRF",
          "IBS",
          "CBS",
          "IBSMunicipal",
          "PIS",
          "COFINS"
        ],
        "type": "string"
      },
      "UpdateCommand": {
        "type": "object",
        "properties": {
          "clientPriceCatalogId": {
            "maxLength": 20,
            "type": "string",
            "description": "Price Catalog Id in client's ERP",
            "nullable": true
          },
          "description": {
            "maxLength": 50,
            "type": "string",
            "description": "Price Catalog brief description",
            "nullable": true
          },
          "category": {
            "maxLength": 20,
            "type": "string",
            "description": "Price Catalog category",
            "nullable": true
          },
          "clientSupplierId": {
            "type": "string",
            "description": "Supplier Id in client's ERP",
            "nullable": true
          },
          "integrationTag": {
            "type": "string",
            "description": "Identification of the ME user used in the integration.",
            "nullable": true
          },
          "startDate": {
            "type": "string",
            "description": "Price Catalog start date",
            "format": "date-time",
            "nullable": true
          },
          "endDate": {
            "type": "string",
            "description": "Price Catalog end date",
            "format": "date-time",
            "nullable": true
          },
          "clientPaymentConditionId": {
            "maxLength": 100,
            "type": "string",
            "description": "Payment condition code",
            "nullable": true
          },
          "incoTerms": {
            "maxLength": 100,
            "type": "string",
            "description": "Freight code (Incoterms)",
            "nullable": true
          },
          "currencyCode": {
            "maxLength": 20,
            "type": "string",
            "description": "Currency in alphabetic code (for more information, please refer to: https://www.iso.org/iso-4217-currency-codes.html).",
            "nullable": true
          },
          "deliveryDeadline": {
            "minimum": 0,
            "type": "integer",
            "description": "Delivery deadline",
            "format": "int32",
            "nullable": true
          },
          "status": {
            "minimum": 0,
            "type": "integer",
            "description": "Price Catalog status",
            "format": "int32",
            "nullable": true
          },
          "totalValue": {
            "minimum": 0,
            "type": "number",
            "description": "Price Catalog total value",
            "format": "float",
            "nullable": true
          },
          "fixedValue": {
            "minimum": 0,
            "type": "number",
            "description": "Price Catalog fixed value",
            "format": "float",
            "nullable": true
          },
          "usedValue": {
            "minimum": 0,
            "type": "number",
            "description": "Price Catalog used value",
            "format": "float",
            "nullable": true
          },
          "note": {
            "type": "string",
            "description": "Price Catalog notes",
            "nullable": true
          },
          "isPreOrderCreatedAutomatically": {
            "type": "boolean",
            "description": "This flag indicates if the pre-order is generated automatically.",
            "nullable": true
          },
          "isControlledByBalance": {
            "type": "boolean",
            "description": "This flag indicates if the price catalog balance is controlled by workflow.",
            "nullable": true
          },
          "isRequestEstimatedPriceUsedInPreOrder": {
            "type": "boolean",
            "description": "This flag indicates if the request estimated price is used in pre-order creation.",
            "nullable": true
          },
          "isPreOrderBlockedIfEstimatedRequestDateGreaterThanPriceCatalogEndDate": {
            "type": "boolean",
            "description": "This flag indicates if the pre-order is blocked if the request estimated date is greather than price catalog end date.",
            "nullable": true
          },
          "purchasingGroup": {
            "maxLength": 20,
            "type": "string",
            "description": "Purchasing Group",
            "nullable": true
          },
          "balanceControl": {
            "$ref": "#/components/schemas/BalanceControl"
          },
          "attributes": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/AttributeDto"
            },
            "description": "Attributes of the Price Catalog, consisting of a name, a value and a description.",
            "nullable": true
          },
          "businessOrganizations": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/BusinessOrganizationDto"
            },
            "description": "List with the Business Organizations comprising the Company Code, the Entity Type and their Descriptions.",
            "nullable": true
          },
          "items": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/PriceCatalogItemDto"
            },
            "description": "List with the Price Catalog items",
            "nullable": true
          }
        },
        "additionalProperties": false
      },
      "UpdateCommand2": {
        "type": "object",
        "properties": {
          "description": {
            "maxLength": 60,
            "type": "string",
            "description": "Category description",
            "nullable": true
          },
          "clientCategoryId": {
            "maxLength": 30,
            "type": "string",
            "description": "Product category code",
            "nullable": true
          },
          "permissions": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/PermissionsDto"
            },
            "description": "List of product group permissions. The fields in this property define, for example, if the group can be placed on requests or orders, among others.",
            "nullable": true
          }
        },
        "additionalProperties": false
      },
      "UpdateCommand3": {
        "type": "object",
        "properties": {
          "description": {
            "maxLength": 125,
            "type": "string",
            "description": "Product short description",
            "nullable": true
          },
          "estimatedPrice": {
            "minimum": 0,
            "type": "number",
            "description": "Estimated price of the product",
            "format": "double",
            "nullable": true
          },
          "status": {
            "$ref": "#/components/schemas/ProductStatus"
          },
          "materialOrigin": {
            "maxLength": 20,
            "type": "string",
            "description": "Material origin:\r\n1 = Domestic origin\r\n2 = Foreign origin",
            "nullable": true
          },
          "isGeneric": {
            "type": "boolean",
            "description": "Set this flag as follows:\r\nTrue = Product without a code\r\nFalse = Product with a code",
            "nullable": true
          },
          "complement": {
            "type": "string",
            "description": "Description complement",
            "nullable": true
          },
          "note": {
            "maxLength": 100,
            "type": "string",
            "description": "Note",
            "nullable": true
          },
          "supplierReferenceProductId": {
            "maxLength": 30,
            "type": "string",
            "description": "ME product code"
          },
          "measurementUnit": {
            "maxLength": 20,
            "type": "string",
            "description": "Measurement unit"
          },
          "clientCategoryId": {
            "maxLength": 30,
            "type": "string",
            "description": "Product category code"
          },
          "clientCategoryDescription": {
            "maxLength": 60,
            "type": "string",
            "description": "Product category description",
            "nullable": true
          },
          "isService": {
            "type": "boolean",
            "description": "Flag to indicate if this item is a service (true/false)\r\nTrue = Service item\r\nFalse = Product item",
            "nullable": true
          },
          "applicationType": {
            "maxLength": 12,
            "type": "string",
            "description": "Material application code (tax usage)",
            "nullable": true
          },
          "materialCategory": {
            "maxLength": 30,
            "type": "string",
            "description": "Material accounting code",
            "nullable": true
          },
          "supplierProductId": {
            "maxLength": 30,
            "type": "string",
            "description": "Product id in supplier's ERP"
          },
          "manufacturers": {
            "type": "array",
            "items": {
              "type": "string"
            },
            "description": "Manufacturers is a List consisting of the product manufacturers' names",
            "nullable": true
          },
          "productIdentificationCode": {
            "$ref": "#/components/schemas/ProductIdentification"
          },
          "categories": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/ProductCategoryDto"
            },
            "description": "Categories is a List consisting of the `clientCategoryID` and `Description`.",
            "nullable": true
          },
          "attributes": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/AttributeDto"
            },
            "description": "Attributes of the product, consisting of a name, a value and a description.",
            "nullable": true
          }
        },
        "additionalProperties": false
      },
      "UpdatePrimaryPictureResponse": {
        "type": "object",
        "properties": {
          "correlationId": {
            "type": "string"
          }
        },
        "additionalProperties": false
      },
      "UpdateResponse": {
        "type": "object",
        "properties": {
          "correlationId": {
            "type": "string"
          }
        },
        "additionalProperties": false
      },
      "UpdateResponse2": {
        "type": "object",
        "properties": {
          "correlationId": {
            "type": "string"
          }
        },
        "additionalProperties": false
      },
      "UpdateResponse3": {
        "type": "object",
        "properties": {
          "correlationId": {
            "type": "string"
          }
        },
        "additionalProperties": false
      }
    },
    "securitySchemes": {
      "Bearer": {
        "type": "apiKey",
        "description": "Please enter the word 'Bearer' followed by a space and then your JWT.",
        "name": "Authorization",
        "in": "header"
      }
    }
  },
  "security": [
    {
      "Bearer": []
    }
  ]
}