{
  "components" : {
    "schemas" : {
      "AcceptOrderLine" : {
        "type" : "object",
        "properties" : {
          "accepted" : {
            "type" : "boolean",
            "description" : "Indicates if an order line is accepted (true) or refused (false).",
            "examples" : [ true ]
          },
          "id" : {
            "type" : "string",
            "description" : "Unique order line identifier used by Mirakl Connect. This identifier can be used as a primary key, but it must not be shared with final users.",
            "examples" : [ "0002_3202630-A-2" ]
          }
        }
      },
      "AcceptOrderLinesRequest" : {
        "properties" : {
          "order_lines" : {
            "type" : "array",
            "description" : "Information about ordered products",
            "items" : {
              "$ref" : "#/components/schemas/AcceptOrderLine"
            },
            "minItems" : 1
          }
        }
      },
      "AcceptReturnRequest" : {
        "type" : "object",
        "properties" : {
          "accepted" : {
            "type" : "boolean",
            "description" : "Indicates if a return is accepted (true) or refused (false).",
            "examples" : [ true ]
          },
          "rejection_reason" : {
            "type" : "string",
            "description" : "Reason for rejecting the return",
            "enum" : [ "RETURN_WINDOW_CLOSED", "NOT_ELIGIBLE_FOR_RETURN", "FINAL_SALES" ]
          }
        }
      },
      "ActionCreatedResponse" : {
        "type" : "object",
        "properties" : {
          "action_id" : {
            "type" : "string",
            "description" : "The unique identifier for the action.",
            "examples" : [ "1ba5fc4b-c4fd-4251-880b-3052e301bbd4" ]
          }
        }
      },
      "ActionError" : {
        "type" : "object",
        "properties" : {
          "code" : {
            "type" : "string",
            "enum" : [ "INVALID_INPUT", "DATA_NOT_FOUND", "UNEXPECTED", "UNAVAILABLE", "TOO_MANY_REQUEST", "ACTION_NOT_SUPPORTED", "ORDER_IN_WRONG_STATE", "INVALID_PRODUCT_ID", "OUT_OF_STOCK", "RETURN_IN_WRONG_STATE", "OTHER" ]
          },
          "message" : {
            "type" : "string",
            "description" : "Human-readable error message",
            "maxLength" : 2000,
            "minLength" : 1
          }
        }
      },
      "ActionErrorResponse" : {
        "type" : "object",
        "properties" : {
          "code" : {
            "type" : "string",
            "description" : "Error code. One of this values :\n  - <code>INVALID_INPUT</code>\n  - <code>DATA_NOT_FOUND</code>\n  - <code>UNEXPECTED</code>\n  - <code>UNAVAILABLE</code>\n  - <code>TOO_MANY_REQUEST</code>\n  - <code>ACTION_NOT_SUPPORTED</code>\n  - <code>ORDER_IN_WRONG_STATE</code>\n  - <code>INVALID_PRODUCT_ID</code>\n  - <code>OUT_OF_STOCK</code>\n  - <code>RETURN_IN_WRONG_STATE</code>\n  - <code>ORDER_FULFILLED_BY_PARTNER</code>\n  - <code>PAYMENT_REQUIRED</code>\n  - <code>SYNCHRONIZATION_DEACTIVATED</code>\n  - <code>CARRIER_NOT_SUPPORTED</code>\n  - <code>MISSING_CARRIER</code>\n  - <code>WAREHOUSE_ID_NOT_FOUND</code>\n  - <code>WAREHOUSE_ID_REQUIRED</code>\n  - <code>OTHER</code>",
            "examples" : [ "ORDER_IN_WRONG_STATE" ]
          },
          "message" : {
            "type" : "string",
            "description" : "Original order error message from the Marketplace",
            "examples" : [ "The order was not in the expected status." ]
          }
        }
      },
      "ActionItemRequest" : {
        "type" : "object",
        "properties" : {
          "entity_id" : {
            "type" : "string",
            "description" : "Unique entity identifier used by Mirakl Connect."
          },
          "entity_type" : {
            "type" : "string",
            "enum" : [ "ORDER" ]
          },
          "errors" : {
            "type" : "array",
            "description" : "List of errors encountered during action execution. Should not be null if the status is `FAILED`.",
            "items" : {
              "$ref" : "#/components/schemas/ActionError"
            }
          },
          "executed_at" : {
            "type" : "string",
            "format" : "date-time",
            "description" : "Date and time of the action in ISO 8601 format (UTC/Zulu time).",
            "examples" : [ "2025-06-30T16:46:00Z" ]
          },
          "status" : {
            "type" : "string",
            "enum" : [ "FAILED", "SUCCESS" ]
          },
          "type" : {
            "type" : "string",
            "enum" : [ "SYNCHRONIZE_ORDER", "SYNCHRONIZE_ORDER_UPDATE" ]
          }
        }
      },
      "ActionRequest" : {
        "type" : "object",
        "properties" : {
          "actions" : {
            "type" : "array",
            "description" : "List of actions to report",
            "items" : {
              "$ref" : "#/components/schemas/ActionItemRequest"
            },
            "maxItems" : 100,
            "minItems" : 1
          }
        }
      },
      "ActionResponse" : {
        "type" : "object",
        "properties" : {
          "created_at" : {
            "type" : "string",
            "format" : "date-time",
            "description" : "Action creation date",
            "examples" : [ "2021-07-06T09:24:36.32Z" ]
          },
          "errors" : {
            "type" : "array",
            "description" : "List of errors that occurred during the action processing",
            "items" : {
              "$ref" : "#/components/schemas/ActionErrorResponse"
            }
          },
          "id" : {
            "type" : "string",
            "description" : "The unique identifier for the asynchronous action. This ID is generated when the action is initially requested.",
            "examples" : [ "1ba5fc4b-c4fd-4251-880b-3052e301bbd4" ]
          },
          "status" : {
            "type" : "string",
            "description" : "Current action status",
            "enum" : [ "PENDING", "SUCCESS", "FAILED" ],
            "examples" : [ "PENDING" ]
          },
          "updated_at" : {
            "type" : "string",
            "format" : "date-time",
            "description" : "Date of last modification of the action status",
            "examples" : [ "2021-07-06T09:24:36.32Z" ]
          }
        }
      },
      "ActionsCreatedResponse" : {
        "type" : "object",
        "properties" : {
          "actions" : {
            "type" : "array",
            "description" : "List of created actions ids",
            "items" : {
              "$ref" : "#/components/schemas/ActionCreatedResponse"
            }
          }
        }
      },
      "Address" : {
        "type" : "object",
        "properties" : {
          "additional_info" : {
            "type" : "string",
            "description" : "Additional information related to the address"
          },
          "city" : {
            "type" : "string",
            "description" : "City"
          },
          "company" : {
            "type" : "string",
            "description" : "Company of the person associated with the address"
          },
          "country" : {
            "type" : "string",
            "description" : "Country"
          },
          "country_iso_code" : {
            "type" : "string",
            "format" : "iso-3166-1 alpha-3",
            "description" : "Country ISO code"
          },
          "first_name" : {
            "type" : "string",
            "description" : "First name of the person associated with the address"
          },
          "last_name" : {
            "type" : "string",
            "description" : "Last name of the person associated with the address"
          },
          "phone" : {
            "type" : "string",
            "description" : "Phone number of the person associated with the address"
          },
          "state" : {
            "type" : "string",
            "description" : "State"
          },
          "street" : {
            "type" : "string",
            "description" : "Street information. Strongly recommended for accurate delivery; may be omitted for block-based address systems (e.g. Japan)."
          },
          "street_additional_info" : {
            "type" : "string",
            "description" : "Additional street information"
          },
          "zip_code" : {
            "type" : "string",
            "description" : "Postal code"
          }
        }
      },
      "Adjustment" : {
        "type" : "object",
        "properties" : {
          "adjustment_id" : {
            "type" : "string",
            "description" : "Unique adjustment identifier used by Mirakl Connect.",
            "examples" : [ "0002_3202630_R" ]
          },
          "created_at" : {
            "type" : "string",
            "format" : "date-time",
            "description" : "Adjustment date"
          },
          "id" : {
            "type" : "string",
            "deprecated" : true,
            "description" : "Unique identifier by adjustment type. Deprecated, use adjustment_id instead.",
            "examples" : [ "0002_3202630" ]
          },
          "price" : {
            "$ref" : "#/components/schemas/Money",
            "description" : "Product unit price multiplied by the quantity adjusted, excluding taxes and shipping price."
          },
          "quantity" : {
            "type" : "integer",
            "description" : "Product quantity adjusted.",
            "examples" : [ "10" ]
          },
          "reason" : {
            "type" : "string",
            "description" : "The reason why the order line is adjusted.",
            "enum" : [ "CUSTOMER_CANCELATION", "OUT_OF_STOCK", "RETURN", "ITEM_NOT_RECEIVED", "AGREEMENT", "DEFECT", "UNABLE_TO_DELIVER", "CHANNEL_SPECIFIC" ]
          },
          "shipping_price" : {
            "$ref" : "#/components/schemas/Money",
            "description" : "Shipping price of the adjusted order line, excluding shipping taxes."
          },
          "shipping_taxes" : {
            "type" : "array",
            "description" : "Shipping taxes adjusted",
            "items" : {
              "$ref" : "#/components/schemas/TaxAdjustment"
            }
          },
          "taxes" : {
            "type" : "array",
            "description" : "Taxes adjusted",
            "items" : {
              "$ref" : "#/components/schemas/TaxAdjustment"
            }
          },
          "type" : {
            "type" : "string",
            "description" : "The type of adjustment.",
            "enum" : [ "REFUND", "CANCELATION" ]
          }
        }
      },
      "AsynchronousActionResponse" : {
        "type" : "object",
        "properties" : {
          "action_id" : {
            "type" : "string",
            "description" : "The unique identifier for the asynchronous action. It should be used with the [v2-getActionStatus API](#operation/v2-getActionStatus) to retrieve current action status and potential errors.\n",
            "examples" : [ "1ba5fc4b-c4fd-4251-880b-3052e301bbd4" ]
          },
          "tracking_id" : {
            "type" : "string",
            "deprecated" : true,
            "description" : "**Deprecated:** This field was previously used to obtain the action ID. It has been replaced by `action_id` and contains the same value. It is retained for backward compatibility.\n",
            "examples" : [ "1ba5fc4b-c4fd-4251-880b-3052e301bbd4" ]
          }
        }
      },
      "Attribute" : {
        "type" : "object",
        "description" : "An attribute of this product.",
        "discriminator" : {
          "mapping" : {
            "BOOLEAN" : "#/components/schemas/AttributeBoolean",
            "NUMERIC" : "#/components/schemas/AttributeNumeric",
            "STRING" : "#/components/schemas/AttributeString"
          },
          "propertyName" : "type"
        },
        "properties" : {
          "id" : {
            "type" : "string",
            "description" : "Attribute's id",
            "maxLength" : 255,
            "minLength" : 1
          },
          "name" : {
            "type" : "string",
            "description" : "Attribute's name",
            "maxLength" : 255,
            "minLength" : 1
          },
          "type" : {
            "type" : "string",
            "description" : "The attribute's type",
            "enum" : [ "STRING", "NUMERIC", "BOOLEAN" ],
            "examples" : [ "STRING" ]
          },
          "value" : {
            "type" : "object",
            "description" : "The attribute's value"
          }
        }
      },
      "AttributeBoolean" : {
        "allOf" : [ {
          "$ref" : "#/components/schemas/Attribute"
        }, {
          "type" : "object",
          "properties" : {
            "id" : {
              "type" : "string",
              "description" : "Attribute's id",
              "examples" : [ "limitedEdition" ],
              "maxLength" : 255,
              "minLength" : 1
            },
            "name" : {
              "type" : "string",
              "description" : "Attribute's name",
              "examples" : [ "Limited edition" ],
              "maxLength" : 255,
              "minLength" : 1
            },
            "value" : {
              "type" : "boolean",
              "description" : "Attribute's boolean value",
              "examples" : [ true ]
            }
          }
        } ]
      },
      "AttributeNumeric" : {
        "allOf" : [ {
          "$ref" : "#/components/schemas/Attribute"
        }, {
          "type" : "object",
          "properties" : {
            "id" : {
              "type" : "string",
              "description" : "Attribute's id",
              "examples" : [ "weight" ],
              "maxLength" : 255,
              "minLength" : 1
            },
            "name" : {
              "type" : "string",
              "description" : "Attribute's name",
              "examples" : [ "Weight in Kg" ],
              "maxLength" : 255,
              "minLength" : 1
            },
            "value" : {
              "type" : "number",
              "format" : "with decimals",
              "description" : "Attribute's numeric value",
              "examples" : [ 1234.56 ],
              "maximum" : 1000000000,
              "minimum" : -1000000000
            }
          }
        } ]
      },
      "AttributeString" : {
        "allOf" : [ {
          "$ref" : "#/components/schemas/Attribute"
        }, {
          "type" : "object",
          "properties" : {
            "id" : {
              "type" : "string",
              "description" : "Attribute's id",
              "examples" : [ "color" ],
              "maxLength" : 255,
              "minLength" : 1
            },
            "name" : {
              "type" : "string",
              "description" : "Attribute's name",
              "examples" : [ "color" ],
              "maxLength" : 255,
              "minLength" : 1
            },
            "value" : {
              "type" : "string",
              "description" : "Attribute's string value",
              "examples" : [ "Red" ],
              "maxLength" : 2000
            }
          }
        } ]
      },
      "Attributes" : {
        "type" : [ "array", "null" ],
        "description" : "Additional product attributes",
        "items" : {
          "$ref" : "#/components/schemas/Attribute"
        },
        "maxItems" : 1000,
        "minItems" : 0
      },
      "AvailableQuantity" : {
        "type" : "integer",
        "format" : "int32",
        "description" : "Available quantity of a product",
        "maximum" : 1000000000,
        "minimum" : 0
      },
      "BillingInfo" : {
        "type" : "object",
        "properties" : {
          "address" : {
            "$ref" : "#/components/schemas/Address",
            "description" : "Customer billing address"
          }
        }
      },
      "Brand" : {
        "type" : [ "string", "null" ],
        "description" : "Brand",
        "examples" : [ "My awesome brand" ],
        "maxLength" : 255
      },
      "CancelOrderLinesRequest" : {
        "type" : "object",
        "properties" : {
          "cancelations" : {
            "type" : "array",
            "description" : "Cancelations details related to an order",
            "items" : {
              "$ref" : "#/components/schemas/CancelRequest"
            },
            "minItems" : 1
          }
        }
      },
      "CancelRequest" : {
        "type" : "object",
        "properties" : {
          "order_line_id" : {
            "type" : "string",
            "description" : "Unique order line identifier used by Mirakl Connect. ID of the order line to cancel.",
            "examples" : [ "0002_3202630-A-2" ],
            "minLength" : 1
          },
          "price" : {
            "allOf" : [ {
              "$ref" : "#/components/schemas/Money"
            } ],
            "description" : "Product price to cancel, excluding taxes and shipping price"
          },
          "product_id" : {
            "type" : "string",
            "description" : "Seller product identifier on the channel",
            "examples" : [ "SELLER_ID_1" ],
            "minLength" : 1
          },
          "quantity" : {
            "type" : "integer",
            "description" : "Product quantity to cancel",
            "examples" : [ 10 ],
            "minimum" : 0
          },
          "reason" : {
            "type" : "string",
            "description" : "The reason why the order line is canceled",
            "enum" : [ "CUSTOMER_CANCELATION", "OUT_OF_STOCK", "RETURN", "ITEM_NOT_RECEIVED", "AGREEMENT", "DEFECT", "UNABLE_TO_DELIVER" ]
          },
          "shipping_price" : {
            "allOf" : [ {
              "$ref" : "#/components/schemas/Money"
            } ],
            "description" : "Shipping price to cancel, excluding shipping taxes"
          },
          "shipping_taxes" : {
            "type" : "array",
            "description" : "Shipping taxes to cancel",
            "items" : {
              "$ref" : "#/components/schemas/CanceledTaxRequest"
            }
          },
          "taxes" : {
            "type" : "array",
            "description" : "Taxes to cancel",
            "items" : {
              "$ref" : "#/components/schemas/CanceledTaxRequest"
            }
          }
        }
      },
      "CanceledTaxRequest" : {
        "type" : "object",
        "properties" : {
          "amount" : {
            "allOf" : [ {
              "$ref" : "#/components/schemas/Money"
            } ],
            "description" : "Canceled tax amount"
          },
          "code" : {
            "type" : "string",
            "description" : "Tax code on the sales channel",
            "minLength" : 1
          }
        }
      },
      "Category" : {
        "type" : "object",
        "description" : "Category",
        "properties" : {
          "id" : {
            "type" : [ "string", "null" ],
            "description" : "The id of the category",
            "examples" : [ "123654789" ],
            "maxLength" : 255,
            "minLength" : 1
          },
          "labels" : {
            "type" : "array",
            "description" : "Labels for the category with their associated locale",
            "items" : {
              "$ref" : "#/components/schemas/CategoryLabel"
            }
          }
        }
      },
      "CategoryLabel" : {
        "type" : "object",
        "description" : "A label for the category with its associated locale",
        "properties" : {
          "locale" : {
            "$ref" : "#/components/schemas/Locale"
          },
          "value" : {
            "type" : "string",
            "description" : "A label for the category",
            "examples" : [ "Fridge" ],
            "maxLength" : 255
          }
        }
      },
      "ConversationActionErrorItem" : {
        "type" : "object",
        "properties" : {
          "code" : {
            "type" : "string",
            "description" : "One of the following :\n- INVALID_INPUT\n- DATA_NOT_FOUND\n- UNEXPECTED\n- UNAVAILABLE\n- TOO_MANY_REQUEST\n",
            "example" : "DATA_NOT_FOUND"
          },
          "message" : {
            "type" : "string",
            "description" : "Human-readable error message",
            "example" : "Conversation not found for the given ID."
          }
        }
      },
      "ConversationActionIdResponse" : {
        "type" : "object",
        "properties" : {
          "action_id" : {
            "type" : "string",
            "description" : "Unique identifier of the action. Use `getConversationActionStatus` to retrieve the result of your request.",
            "example" : "abcd"
          }
        }
      },
      "ConversationActionStatus" : {
        "type" : "string",
        "description" : "Status of an asynchronous conversation action",
        "enum" : [ "PENDING", "SUCCESS", "ERROR" ]
      },
      "ConversationActionStatusResponse" : {
        "type" : "object",
        "properties" : {
          "conversation_id" : {
            "type" : "string",
            "description" : "Identifier of the related conversation."
          },
          "created_at" : {
            "type" : "string",
            "format" : "date-time",
            "description" : "Date and time when the action was created"
          },
          "errors" : {
            "type" : "array",
            "description" : "List of errors if the action failed",
            "items" : {
              "$ref" : "#/components/schemas/ConversationActionErrorItem"
            }
          },
          "id" : {
            "type" : "string",
            "description" : "Unique identifier of the action",
            "example" : "abcd"
          },
          "status" : {
            "$ref" : "#/components/schemas/ConversationActionStatus",
            "description" : "Current status of the action"
          },
          "updated_at" : {
            "type" : "string",
            "format" : "date-time",
            "description" : "Date and time when the action was last updated"
          }
        }
      },
      "ConversationMessagesResponse" : {
        "type" : "object",
        "properties" : {
          "messages" : {
            "type" : "array",
            "description" : "List of messages in the conversation",
            "items" : {
              "$ref" : "#/components/schemas/MessageResponse"
            }
          }
        }
      },
      "ConversationOrigin" : {
        "type" : "object",
        "properties" : {
          "channel_id" : {
            "type" : "string",
            "description" : "Unique identifier of the sales channel"
          },
          "channel_name" : {
            "type" : "string",
            "description" : "Name of the sales channel"
          },
          "channel_store_id" : {
            "type" : "string",
            "description" : "Store identifier on the sales channel. This identifier is not guaranteed to be unique as multiple channels can use the same identifier."
          },
          "channel_store_name" : {
            "type" : "string",
            "description" : "Store public name on the sales channel"
          }
        }
      },
      "ConversationParticipant" : {
        "type" : "object",
        "properties" : {
          "id" : {
            "type" : "string",
            "description" : "Unique identifier of the participant. Null for type `CUSTOMER`.",
            "example" : "123456"
          },
          "name" : {
            "type" : "string",
            "description" : "Display name of the participant",
            "example" : "Marketplace 1"
          },
          "type" : {
            "type" : "string",
            "description" : "Type of the participant",
            "enum" : [ "CHANNEL", "CUSTOMER" ],
            "example" : "CHANNEL"
          }
        }
      },
      "ConversationResponse" : {
        "type" : "object",
        "properties" : {
          "anonymized_at" : {
            "type" : "string",
            "format" : "date-time",
            "description" : "Date and time when the conversation was anonymized. Absent if the conversation has not been anonymized.",
            "example" : "2024-01-02T13:00:00.000Z"
          },
          "channel_conversation_id" : {
            "type" : "string",
            "description" : "Unique identifier of the conversation on the channel"
          },
          "created_at" : {
            "type" : "string",
            "format" : "date-time",
            "description" : "Date and time when the conversation was created",
            "example" : "2024-01-02T12:13:14.567Z"
          },
          "entity" : {
            "type" : "object",
            "description" : "Entity linked to the conversation",
            "properties" : {
              "channel_entity_id" : {
                "type" : "string",
                "description" : "Unique identifier of the entity on the channel",
                "example" : "MIR-F745HNL8-A"
              },
              "id" : {
                "type" : "string",
                "description" : "Connect identifier of the entity. Null if the entity is not yet known to Connect.",
                "example" : "0054_MIR-F745HNL8-A"
              },
              "type" : {
                "type" : "string",
                "description" : "Type of the entity",
                "enum" : [ "ORDER" ]
              }
            }
          },
          "id" : {
            "type" : "string",
            "description" : "Unique identifier of the conversation"
          },
          "origin" : {
            "$ref" : "#/components/schemas/ConversationOrigin",
            "description" : "Sales channel information"
          },
          "participants" : {
            "type" : "array",
            "description" : "List of participants in the conversation",
            "items" : {
              "$ref" : "#/components/schemas/ConversationParticipant"
            }
          },
          "topic" : {
            "type" : "object",
            "description" : "Topic of the conversation",
            "properties" : {
              "type" : {
                "type" : "string",
                "description" : "Type of the topic",
                "enum" : [ "FREE_TEXT" ]
              },
              "value" : {
                "type" : "string",
                "description" : "Value of the topic",
                "example" : "Hello, I have a question about my order",
                "maxLength" : 500
              }
            }
          },
          "updated_at" : {
            "type" : "string",
            "format" : "date-time",
            "description" : "Date and time when the conversation was last updated. This is updated when a new message is received in the conversation.",
            "example" : "2024-01-02T12:42:00.667Z"
          }
        }
      },
      "ConversationsPageResponse" : {
        "allOf" : [ {
          "$ref" : "#/components/schemas/ResourcesPage"
        }, {
          "type" : "object",
          "properties" : {
            "data" : {
              "type" : "array",
              "description" : "Page of conversations corresponding to the filter parameters",
              "items" : {
                "$ref" : "#/components/schemas/ConversationResponse"
              }
            }
          },
          "required" : [ "data" ]
        } ]
      },
      "CreateConversationInput" : {
        "type" : "object",
        "properties" : {
          "entity" : {
            "type" : "object",
            "description" : "Entity to link to the conversation",
            "properties" : {
              "id" : {
                "type" : "string",
                "description" : "Unique identifier of the entity (e.g. order ID)",
                "example" : "0123_Order1-A"
              },
              "type" : {
                "type" : "string",
                "description" : "Type of the entity linked to the conversation",
                "enum" : [ "ORDER" ]
              }
            }
          },
          "first_message" : {
            "type" : "object",
            "description" : "First message of the conversation",
            "properties" : {
              "body" : {
                "type" : "string",
                "description" : "Body of the first message",
                "example" : "Hello! How can I assist you today?",
                "maxLength" : 2000,
                "minLength" : 1
              }
            }
          },
          "topic" : {
            "$ref" : "#/components/schemas/CreateConversationInputTopic",
            "description" : "Topic of the conversation"
          }
        }
      },
      "CreateConversationInputTopic" : {
        "type" : "object",
        "properties" : {
          "type" : {
            "type" : "string",
            "description" : "Type of the topic",
            "enum" : [ "FREE_TEXT" ]
          },
          "value" : {
            "type" : "string",
            "description" : "Value of the topic",
            "example" : "Customer has a general question about services.",
            "maxLength" : 500
          }
        }
      },
      "CreateShipmentItemRequest" : {
        "type" : "object",
        "properties" : {
          "id" : {
            "type" : "string",
            "description" : "Seller product identifier",
            "examples" : [ "SELLER_ID_1" ],
            "minLength" : 1
          },
          "order_line_id" : {
            "type" : "string",
            "description" : "Order line identifier",
            "examples" : [ "0024_COMMERCIAL_ID-A-1" ],
            "minLength" : 1
          },
          "quantity" : {
            "type" : "integer",
            "description" : "Product quantity to ship",
            "examples" : [ "10" ],
            "minimum" : 1
          }
        }
      },
      "CreateShipmentRequest" : {
        "type" : "object",
        "description" : "Shipment object and its items' details",
        "properties" : {
          "carrier" : {
            "type" : "string",
            "description" : "Carrier company name. For example:\n  - <code>UPS</code>\n  - <code>DHL Express</code>\n  - <code>Amazon Logistics UK</code>\n  - <code>FedEx</code>\n  - <code>China Post</code>\n  - ...",
            "examples" : [ "DHL Express" ],
            "minLength" : 1
          },
          "items" : {
            "type" : "array",
            "description" : "Shipment items",
            "items" : {
              "$ref" : "#/components/schemas/CreateShipmentItemRequest"
            }
          },
          "return_tracking_number" : {
            "type" : "string",
            "description" : "Return shipment tracking number is required only for marketplaces that expect return tracking information when the shipment is created. If the marketplace doesn’t require it to create the shipment, the value won’t be synchronized.",
            "examples" : [ "78910" ],
            "minLength" : 1
          },
          "tracking_number" : {
            "type" : "string",
            "description" : "Carrier tracking number",
            "examples" : [ "123456" ],
            "minLength" : 1
          },
          "tracking_url" : {
            "type" : "string",
            "description" : "Carrier tracking URL",
            "examples" : [ "https://wwwapps.ups.com/WebTracking/track" ]
          }
        }
      },
      "CustomAttributeBooleanResponse" : {
        "allOf" : [ {
          "$ref" : "#/components/schemas/CustomAttributeResponse"
        }, {
          "type" : "object",
          "properties" : {
            "id" : {
              "type" : "string",
              "description" : "Attribute's id",
              "examples" : [ "is-premium" ],
              "maxLength" : 255,
              "minLength" : 1
            },
            "value" : {
              "type" : "boolean",
              "description" : "Attribute's boolean value",
              "examples" : [ true ]
            }
          }
        } ]
      },
      "CustomAttributeDateResponse" : {
        "allOf" : [ {
          "$ref" : "#/components/schemas/CustomAttributeResponse"
        }, {
          "type" : "object",
          "properties" : {
            "id" : {
              "type" : "string",
              "description" : "Attribute's id",
              "examples" : [ "delivery-date" ],
              "maxLength" : 255,
              "minLength" : 1
            },
            "value" : {
              "type" : "string",
              "format" : "date-time",
              "description" : "Attribute's date value",
              "examples" : [ "2024-01-27T09:24:36.326Z" ]
            }
          }
        } ]
      },
      "CustomAttributeListResponse" : {
        "allOf" : [ {
          "$ref" : "#/components/schemas/CustomAttributeResponse"
        }, {
          "type" : "object",
          "properties" : {
            "id" : {
              "type" : "string",
              "description" : "Attribute's id",
              "examples" : [ "available-sizes" ],
              "maxLength" : 255,
              "minLength" : 1
            },
            "value" : {
              "type" : "array",
              "description" : "Additional attribute values",
              "items" : {
                "type" : "string",
                "maxLength" : 10000
              },
              "maxItems" : 1000,
              "minItems" : 1
            }
          }
        } ]
      },
      "CustomAttributeNumericResponse" : {
        "allOf" : [ {
          "$ref" : "#/components/schemas/CustomAttributeResponse"
        }, {
          "type" : "object",
          "properties" : {
            "id" : {
              "type" : "string",
              "description" : "Attribute's id",
              "examples" : [ "weight" ],
              "maxLength" : 255,
              "minLength" : 1
            },
            "value" : {
              "type" : "number",
              "format" : "with decimals",
              "description" : "Attribute's numeric value",
              "examples" : [ "1234.56" ],
              "maximum" : 1000000000,
              "minimum" : -1000000000
            }
          }
        } ]
      },
      "CustomAttributeResponse" : {
        "type" : "object",
        "description" : "A custom attribute.",
        "discriminator" : {
          "mapping" : {
            "BOOLEAN" : "#/components/schemas/CustomAttributeBooleanResponse",
            "DATE" : "#/components/schemas/CustomAttributeDateResponse",
            "LIST" : "#/components/schemas/CustomAttributeListResponse",
            "NUMERIC" : "#/components/schemas/CustomAttributeNumericResponse",
            "STRING" : "#/components/schemas/CustomAttributeStringResponse"
          },
          "propertyName" : "type"
        },
        "properties" : {
          "id" : {
            "type" : "string",
            "description" : "Attribute's id",
            "maxLength" : 255,
            "minLength" : 1
          },
          "type" : {
            "type" : "string",
            "description" : "The attribute's type",
            "enum" : [ "STRING", "NUMERIC", "BOOLEAN", "DATE", "LIST" ],
            "examples" : [ "STRING" ]
          },
          "value" : {
            "type" : "object"
          }
        }
      },
      "CustomAttributeStringResponse" : {
        "allOf" : [ {
          "$ref" : "#/components/schemas/CustomAttributeResponse"
        }, {
          "type" : "object",
          "properties" : {
            "id" : {
              "type" : "string",
              "description" : "Attribute's id",
              "examples" : [ "color" ],
              "maxLength" : 255,
              "minLength" : 1
            },
            "value" : {
              "type" : "string",
              "description" : "Attribute's string value",
              "examples" : [ "red" ],
              "maxLength" : 10000
            }
          }
        } ]
      },
      "CustomAttributesResponse" : {
        "type" : "array",
        "description" : "Custom attributes",
        "items" : {
          "$ref" : "#/components/schemas/CustomAttributeResponse"
        }
      },
      "DeleteProductsRequest" : {
        "type" : "object",
        "description" : "Delete any of corresponding products.\nUnknown or no longer present products won't generate error.\n",
        "properties" : {
          "products" : {
            "type" : "array",
            "description" : "Identifier of products to delete",
            "items" : {
              "$ref" : "#/components/schemas/ProductIdentifier"
            },
            "maxItems" : 1000,
            "minItems" : 1
          }
        }
      },
      "Description" : {
        "type" : "object",
        "description" : "Description with its associated locale",
        "properties" : {
          "locale" : {
            "$ref" : "#/components/schemas/Locale"
          },
          "value" : {
            "type" : "string",
            "description" : "Description",
            "examples" : [ "My awesome product's description" ],
            "maxLength" : 6000
          }
        }
      },
      "Descriptions" : {
        "type" : [ "array", "null" ],
        "description" : "Descriptions with their associated locale",
        "items" : {
          "$ref" : "#/components/schemas/Description"
        },
        "maxItems" : 10
      },
      "DiscountPrice" : {
        "type" : "object",
        "properties" : {
          "end_date" : {
            "type" : [ "string", "null" ],
            "format" : "datetime",
            "description" : "The end date of the discount interval in ISO 8601 format (UTC/Zulu time)",
            "examples" : [ "2025-02-19T16:46:00Z" ]
          },
          "price" : {
            "$ref" : "#/components/schemas/Money"
          },
          "scope" : {
            "$ref" : "#/components/schemas/PriceScope"
          },
          "start_date" : {
            "type" : [ "string", "null" ],
            "format" : "datetime",
            "description" : "The start date of the discount interval in ISO 8601 format (UTC/Zulu time)",
            "examples" : [ "2025-02-19T16:46:00Z" ]
          }
        }
      },
      "DiscountPrices" : {
        "type" : [ "array", "null" ],
        "description" : "Discount prices",
        "items" : {
          "$ref" : "#/components/schemas/DiscountPrice"
        },
        "maxItems" : 10
      },
      "DocumentResponse" : {
        "type" : "object",
        "properties" : {
          "channel_type" : {
            "type" : "string",
            "description" : "Channel-specific document type. This field contains the type identifier from the channel/marketplace side. This field is omitted if the document was created without a channel-specific type.\n"
          },
          "file_format" : {
            "type" : "string",
            "description" : "Media type (MIME type) representing the file format of the document.\nThis is a standardized identifier that indicates the nature and format of the document content.\nCommon values include:\n- `application/pdf` for PDF documents\n- `image/jpeg` or `image/png` for images\n- `text/csv` for CSV files\n",
            "examples" : [ "application/pdf", "image/jpeg", "image/png" ]
          },
          "id" : {
            "type" : "string",
            "description" : "Document identifier in Mirakl Connect",
            "examples" : [ "doc-uuid-1234-5678-90ab-cdef" ]
          },
          "name" : {
            "type" : "string",
            "description" : "Name of the document file",
            "examples" : [ "invoice_2024.pdf", "return_label.pdf" ]
          },
          "size_in_bytes" : {
            "type" : "integer",
            "format" : "int64",
            "description" : "Size of the document file in bytes",
            "examples" : [ 245680 ],
            "minimum" : 0
          },
          "type" : {
            "type" : "string",
            "description" : "Document type",
            "enum" : [ "RETURN_LABEL", "CUSTOMER_INVOICE", "DELIVERY_SLIP", "SHIPMENT_DELIVERY_SLIP", "CHANNEL_SPECIFIC" ],
            "examples" : [ "CUSTOMER_INVOICE" ]
          },
          "updated_at" : {
            "type" : "string",
            "format" : "date-time",
            "description" : "Date and time when the document was last updated",
            "examples" : [ "2024-10-15T14:30:00Z" ]
          }
        }
      },
      "Error" : {
        "type" : "object",
        "properties" : {
          "code" : {
            "type" : "string",
            "description" : "Error code (immutable)",
            "examples" : [ "DATA_NOT_FOUND" ]
          },
          "errors" : {
            "type" : "array",
            "items" : {
              "$ref" : "#/components/schemas/ErrorItem"
            }
          },
          "extensions" : {
            "type" : "object",
            "description" : "Free map where you find additional context data to better describe the error",
            "examples" : [ {
              "maxLength" : 255,
              "minLength" : 1
            } ]
          },
          "message" : {
            "type" : "string",
            "description" : "Literal string error description (Please do not base your error handling on this field since it is subject to change)",
            "examples" : [ "An error occurred while processing your request" ]
          }
        }
      },
      "ErrorItem" : {
        "type" : "object",
        "properties" : {
          "extensions" : {
            "type" : "object",
            "description" : "Free map where you find additional context data to better describe the error",
            "examples" : [ {
              "maxLength" : 255,
              "minLength" : 1
            } ]
          },
          "field" : {
            "type" : "string",
            "description" : "JsonPath to the field where the error occurred",
            "examples" : [ "input.account.id" ]
          },
          "message" : {
            "type" : "string",
            "description" : "Literal string error item description (Please do not base your error handling on this field since it is subject to change)",
            "examples" : [ "An error occurred while processing your request: id is null" ]
          }
        }
      },
      "Fulfillment" : {
        "type" : "object",
        "properties" : {
          "code" : {
            "type" : "string",
            "description" : "The code of the fulfillment partner when type is FULFILLED_BY_PARTNER. null when type is FULFILLED_BY_SELLER."
          },
          "type" : {
            "type" : "string",
            "description" : "Indicates how an order is fulfilled.",
            "enum" : [ "FULFILLED_BY_SELLER", "FULFILLED_BY_PARTNER" ]
          }
        }
      },
      "Gtin" : {
        "type" : "object",
        "properties" : {
          "value" : {
            "type" : "string",
            "description" : "GTIN value on 8, 12 or 13 digits",
            "examples" : [ "9780050666319" ],
            "pattern" : "^([0-9]{8}|[0-9]{12,13})$"
          }
        }
      },
      "Gtins" : {
        "type" : "array",
        "description" : "GTIN (EAN, GENCOD, UPC, ISBN, etc.) used to map the product with one of the marketplace’s catalog",
        "items" : {
          "$ref" : "#/components/schemas/Gtin"
        },
        "maxItems" : 10,
        "minItems" : 0
      },
      "Image" : {
        "type" : "object",
        "properties" : {
          "url" : {
            "type" : "string",
            "description" : "Image URL",
            "examples" : [ "http://my_image.png" ],
            "pattern" : "^(http|https):\\/\\/.*$"
          }
        }
      },
      "Images" : {
        "type" : [ "array", "null" ],
        "description" : "Images",
        "items" : {
          "$ref" : "#/components/schemas/Image"
        },
        "maxItems" : 15,
        "minItems" : 0
      },
      "ListProductsResponse" : {
        "allOf" : [ {
          "$ref" : "#/components/schemas/ResourcesPage"
        }, {
          "type" : "object",
          "properties" : {
            "data" : {
              "type" : "array",
              "description" : "Page of products",
              "items" : {
                "$ref" : "#/components/schemas/ListedProduct"
              }
            }
          },
          "required" : [ "data" ]
        } ]
      },
      "ListedProduct" : {
        "allOf" : [ {
          "$ref" : "#/components/schemas/Product"
        }, {
          "type" : "object",
          "properties" : {
            "partner_quantities" : {
              "$ref" : "#/components/schemas/PartnerQuantities"
            }
          }
        } ],
        "description" : "A product as returned by the List products API."
      },
      "Locale" : {
        "type" : "string",
        "description" : "The language format can be ISO-639 or ISO-639_ISO-3166",
        "examples" : [ "en_US" ]
      },
      "MessageAttachment" : {
        "type" : "object",
        "properties" : {
          "filename" : {
            "type" : "string",
            "description" : "Original filename of the attachment",
            "example" : "billing_statement.pdf"
          },
          "id" : {
            "type" : "string",
            "description" : "Unique identifier of the attachment in Connect",
            "example" : "550e8400-e29b-41d4-a716-446655440001"
          },
          "size_in_bytes" : {
            "type" : "integer",
            "format" : "int64",
            "description" : "Size of the attachment in bytes",
            "example" : 987
          }
        }
      },
      "MessageInput" : {
        "type" : "object",
        "properties" : {
          "body" : {
            "type" : "string",
            "description" : "Body of the message",
            "example" : "Hello! How can I assist you today?",
            "maxLength" : 2000,
            "minLength" : 1
          }
        }
      },
      "MessageResponse" : {
        "type" : "object",
        "properties" : {
          "attachments" : {
            "type" : "array",
            "description" : "List of file attachments on this message",
            "items" : {
              "$ref" : "#/components/schemas/MessageAttachment"
            }
          },
          "body" : {
            "type" : "string",
            "description" : "Content of the message",
            "example" : "Hello, I need help with my billing statement."
          },
          "channel_created_at" : {
            "type" : "string",
            "format" : "date-time",
            "description" : "Date and time when the message was created on the channel",
            "example" : "2024-06-01T10:05:00Z"
          },
          "channel_message_id" : {
            "type" : "string",
            "description" : "Unique identifier of the message on the channel",
            "example" : "msg-2odjwo"
          },
          "created_at" : {
            "type" : "string",
            "format" : "date-time",
            "description" : "Date and time when the message was stored in Connect",
            "example" : "2024-06-01T10:05:00Z"
          },
          "id" : {
            "type" : "string",
            "description" : "Unique identifier of the message in Connect",
            "example" : "550e8400-e29b-41d4-a716-446655440000"
          },
          "sender" : {
            "$ref" : "#/components/schemas/MessageSender",
            "description" : "Sender of the message"
          },
          "visible_to_customer" : {
            "type" : "boolean",
            "description" : "Whether the message is visible to the customer or not. When false the message is only visible to you and the channel. Note that when using createMessage API, the message is always sent to the customer."
          }
        }
      },
      "MessageSender" : {
        "type" : "object",
        "properties" : {
          "id" : {
            "type" : "string",
            "description" : "Unique identifier of the sender. Null for type `CUSTOMER`",
            "example" : "00032"
          },
          "name" : {
            "type" : "string",
            "description" : "Display name of the sender",
            "example" : "Marketplace 1"
          },
          "type" : {
            "type" : "string",
            "description" : "Type of the sender",
            "enum" : [ "CUSTOMER", "STORE", "CHANNEL" ],
            "example" : "CHANNEL"
          }
        }
      },
      "Money" : {
        "type" : "object",
        "properties" : {
          "amount" : {
            "type" : "number",
            "description" : "Price amount",
            "examples" : [ "1234.56" ],
            "minimum" : 0
          },
          "currency" : {
            "type" : "string",
            "format" : "iso-4217",
            "description" : "Currency ISO code",
            "examples" : [ "EUR" ],
            "minLength" : 1
          }
        }
      },
      "OrderDocumentResponse" : {
        "allOf" : [ {
          "$ref" : "#/components/schemas/DocumentResponse"
        }, {
          "type" : "object",
          "properties" : {
            "order_id" : {
              "type" : "string",
              "description" : "Order identifier in Mirakl Connect",
              "examples" : [ "0024_COMMERCIAL_ID-A" ]
            }
          },
          "required" : [ "order_id" ]
        } ]
      },
      "OrderDocumentsPageResponse" : {
        "allOf" : [ {
          "$ref" : "#/components/schemas/ResourcesPage"
        }, {
          "type" : "object",
          "properties" : {
            "documents" : {
              "type" : "array",
              "description" : "List of documents sorted by updated_at DESC",
              "items" : {
                "$ref" : "#/components/schemas/OrderDocumentResponse"
              }
            }
          },
          "required" : [ "documents" ]
        } ]
      },
      "OrderLineResponse" : {
        "type" : "object",
        "properties" : {
          "adjustments" : {
            "type" : "array",
            "description" : "Cancelation or refund details related to an order line",
            "items" : {
              "$ref" : "#/components/schemas/Adjustment"
            }
          },
          "can_cancel" : {
            "type" : "boolean",
            "description" : "Indicate whether the order line can be cancelled"
          },
          "can_refund" : {
            "type" : "boolean",
            "description" : "Indicate whether the order line can be refunded"
          },
          "channel_order_line_id" : {
            "type" : "string",
            "description" : "Order line identifier on the sales channel. This identifier is not guaranteed to be unique as different channels can use the same identifier."
          },
          "custom_attributes" : {
            "$ref" : "#/components/schemas/CustomAttributesResponse"
          },
          "id" : {
            "type" : "string",
            "description" : "Unique order line identifier used by Mirakl Connect. This identifier can be used as a primary key, but it must not be shared with final users."
          },
          "price" : {
            "$ref" : "#/components/schemas/Money",
            "description" : "Product unit price multiplied by the ordered quantity after cancelations, excluding taxes and shipping price. Refunds and rejects are not calculated in this amount."
          },
          "product" : {
            "$ref" : "#/components/schemas/OrderProduct",
            "description" : "Product information on the sales channel"
          },
          "quantity" : {
            "type" : "integer",
            "description" : "Quantity of the ordered product after cancelations. Refunds and rejects do not change this field."
          },
          "shipping_taxes" : {
            "type" : "array",
            "description" : "Taxes applied to shipping prices",
            "items" : {
              "$ref" : "#/components/schemas/Tax"
            }
          },
          "status" : {
            "type" : "string",
            "description" : "Order line status",
            "enum" : [ "AWAITING_FRAUD_CHECK", "AWAITING_ACCEPTANCE", "AWAITING_PAYMENT", "AWAITING_SHIPMENT", "SHIPPED", "DELIVERED", "CLOSED", "CHANNEL_SPECIFIC" ]
          },
          "status_reason" : {
            "type" : "string",
            "description" : "Additional reason about the order line status. Availability depends on the order line status.",
            "enum" : [ "REFUSED", "ACCEPTANCE_TIMEOUT", "FRAUD_CHECK_FAILED", "FRAUD_CHECK_TIMEOUT", "REFUSED_PAYMENT", "PAYMENT_TIMEOUT", "CANCELED", "REFUNDED", "AUTOMATICALLY_CLOSED" ]
          },
          "taxes" : {
            "type" : "array",
            "description" : "Taxes applied to product prices",
            "items" : {
              "$ref" : "#/components/schemas/Tax"
            }
          },
          "total_shipping_price" : {
            "$ref" : "#/components/schemas/Money",
            "description" : "Order line shipping price after cancelations, excluding shipping taxes. Refunds and rejects are not calculated in this amount."
          }
        }
      },
      "OrderProduct" : {
        "type" : "object",
        "properties" : {
          "id" : {
            "type" : "string",
            "description" : "Seller product identifier"
          },
          "title" : {
            "type" : "string",
            "description" : "Product title"
          }
        }
      },
      "OrderResponse" : {
        "type" : "object",
        "properties" : {
          "anonymized_at" : {
            "type" : "string",
            "format" : "date-time",
            "description" : "Date time the order has been anonymized. This value is null as long as the order is not anonymized."
          },
          "billing_info" : {
            "$ref" : "#/components/schemas/BillingInfo",
            "description" : "Customer billing information"
          },
          "channel_order_id" : {
            "type" : "string",
            "description" : "Order identifier on the sales channel. This identifier is not guaranteed to be unique as multiple channels can use the same identifier."
          },
          "channel_updated_at" : {
            "type" : "string",
            "format" : "date-time",
            "description" : "Date time the order was last updated on the sales channel (can differ from the modification date time in Connect)."
          },
          "created_at" : {
            "type" : "string",
            "format" : "date-time",
            "description" : "Date time the order was created on the sales channel."
          },
          "custom_attributes" : {
            "$ref" : "#/components/schemas/CustomAttributesResponse"
          },
          "fulfillment" : {
            "$ref" : "#/components/schemas/Fulfillment",
            "description" : "Fulfillment information"
          },
          "id" : {
            "type" : "string",
            "description" : "Unique order identifier used by Mirakl Connect. This identifier can be used as a primary key, but it must not be shared with final users."
          },
          "order_lines" : {
            "type" : "array",
            "description" : "Information about ordered products",
            "items" : {
              "$ref" : "#/components/schemas/OrderLineResponse"
            }
          },
          "origin" : {
            "$ref" : "#/components/schemas/Origin",
            "description" : "Sales channel information"
          },
          "shipping_info" : {
            "$ref" : "#/components/schemas/ShippingInfo",
            "description" : "Customer shipping information"
          },
          "status" : {
            "type" : "string",
            "description" : "Current order status",
            "enum" : [ "AWAITING_FRAUD_CHECK", "AWAITING_ACCEPTANCE", "AWAITING_PAYMENT", "AWAITING_SHIPMENT", "SHIPPED", "DELIVERED", "CLOSED", "CHANNEL_SPECIFIC" ]
          },
          "status_reason" : {
            "type" : "string",
            "description" : "Additional reason about the order status. Availability depends on the order status.",
            "enum" : [ "REFUSED", "ACCEPTANCE_TIMEOUT", "FRAUD_CHECK_FAILED", "FRAUD_CHECK_TIMEOUT", "REFUSED_PAYMENT", "PAYMENT_TIMEOUT", "CANCELED", "REFUNDED", "AUTOMATICALLY_CLOSED" ]
          },
          "updated_at" : {
            "type" : "string",
            "format" : "date-time",
            "description" : "Date time the order was last updated in Mirakl Connect."
          }
        }
      },
      "OrderTrackingErrorResponse" : {
        "type" : "object",
        "deprecated" : true,
        "properties" : {
          "code" : {
            "type" : "string",
            "description" : "Error code",
            "examples" : [ "ORDER_IN_WRONG_STATE" ]
          },
          "message" : {
            "type" : "string",
            "description" : "Error message",
            "examples" : [ "The order was not in the expected status." ]
          }
        }
      },
      "OrderTrackingResponse" : {
        "type" : "object",
        "deprecated" : true,
        "properties" : {
          "created_at" : {
            "type" : "string",
            "format" : "date-time",
            "description" : "Tracking creation date",
            "examples" : [ "2021-07-06T09:24:36.32Z" ]
          },
          "errors" : {
            "type" : "array",
            "description" : "List of errors that occurred during the tracking process",
            "items" : {
              "$ref" : "#/components/schemas/OrderTrackingErrorResponse"
            }
          },
          "id" : {
            "type" : "string",
            "description" : "Tracking identifier in Mirakl Connect",
            "examples" : [ "1ba5fc4b-c4fd-4251-880b-3052e301bbd4" ]
          },
          "status" : {
            "type" : "string",
            "description" : "Current tracking status",
            "enum" : [ "PENDING", "SUCCESS", "FAILED" ],
            "examples" : [ "PENDING" ]
          },
          "updated_at" : {
            "type" : "string",
            "format" : "date-time",
            "description" : "Date of last modification of the order tracking",
            "examples" : [ "2021-07-06T09:24:36.32Z" ]
          }
        }
      },
      "OrdersPageResponse" : {
        "allOf" : [ {
          "$ref" : "#/components/schemas/ResourcesPage"
        }, {
          "type" : "object",
          "properties" : {
            "data" : {
              "type" : "array",
              "description" : "Page of orders corresponding to the filter parameters",
              "items" : {
                "$ref" : "#/components/schemas/OrderResponse"
              }
            }
          },
          "required" : [ "data" ]
        } ]
      },
      "Origin" : {
        "type" : "object",
        "properties" : {
          "channel_id" : {
            "type" : "string",
            "description" : "Unique identifier of the sales channel"
          },
          "channel_name" : {
            "type" : "string",
            "description" : "Name of the sales channel"
          },
          "channel_store_id" : {
            "type" : "string",
            "description" : "Store identifier on the sales channel. This identifier is not guaranteed to be unique as multiple channels can use the same identifier."
          },
          "channel_store_name" : {
            "type" : "string",
            "description" : "Store public name on the sales channel"
          },
          "sub_channel_code" : {
            "type" : "string",
            "description" : "Code of the sub-channel"
          },
          "sub_channel_name" : {
            "type" : "string",
            "description" : "Name of the sub-channel"
          }
        }
      },
      "PartnerQuantities" : {
        "type" : "array",
        "description" : "Product quantities from partners",
        "items" : {
          "$ref" : "#/components/schemas/PartnerQuantity"
        },
        "maxItems" : 20,
        "minItems" : 1
      },
      "PartnerQuantity" : {
        "type" : "object",
        "properties" : {
          "available_quantity" : {
            "$ref" : "#/components/schemas/AvailableQuantity"
          },
          "partner_id" : {
            "type" : "string"
          }
        }
      },
      "PriceScope" : {
        "type" : [ "string", "null" ],
        "description" : "Price scope",
        "maxLength" : 255
      },
      "Product" : {
        "type" : "object",
        "properties" : {
          "attributes" : {
            "$ref" : "#/components/schemas/Attributes"
          },
          "brand" : {
            "$ref" : "#/components/schemas/Brand"
          },
          "category" : {
            "oneOf" : [ {
              "$ref" : "#/components/schemas/Category"
            }, {
              "type" : "null"
            } ]
          },
          "descriptions" : {
            "$ref" : "#/components/schemas/Descriptions"
          },
          "discount_prices" : {
            "$ref" : "#/components/schemas/DiscountPrices"
          },
          "gtins" : {
            "$ref" : "#/components/schemas/Gtins"
          },
          "id" : {
            "$ref" : "#/components/schemas/ProductId"
          },
          "images" : {
            "$ref" : "#/components/schemas/Images"
          },
          "quantities" : {
            "$ref" : "#/components/schemas/Quantities"
          },
          "standard_prices" : {
            "$ref" : "#/components/schemas/StandardPrices"
          },
          "titles" : {
            "$ref" : "#/components/schemas/Titles"
          }
        }
      },
      "ProductId" : {
        "type" : "string",
        "description" : "Product identifier",
        "maxLength" : 256,
        "minLength" : 1
      },
      "ProductIdentifier" : {
        "type" : "object",
        "properties" : {
          "id" : {
            "$ref" : "#/components/schemas/ProductId"
          }
        }
      },
      "Quantities" : {
        "type" : "array",
        "description" : "Product quantities",
        "items" : {
          "$ref" : "#/components/schemas/Quantity"
        },
        "maxItems" : 20,
        "minItems" : 1
      },
      "Quantity" : {
        "type" : "object",
        "properties" : {
          "available_quantity" : {
            "$ref" : "#/components/schemas/AvailableQuantity"
          },
          "warehouse_code" : {
            "type" : "string",
            "description" : "Warehouse code defined in your Mirakl account",
            "minLength" : 1
          }
        }
      },
      "RefundOrderLinesRequest" : {
        "type" : "object",
        "properties" : {
          "refunds" : {
            "type" : "array",
            "description" : "Refund details related to an order line",
            "items" : {
              "$ref" : "#/components/schemas/RefundRequest"
            },
            "minItems" : 1
          }
        }
      },
      "RefundRequest" : {
        "type" : "object",
        "properties" : {
          "order_line_id" : {
            "type" : "string",
            "description" : "Unique order line identifier used by Mirakl Connect. ID of the order line to refund.",
            "examples" : [ "0002_3202630-A-2" ],
            "minLength" : 1
          },
          "price" : {
            "allOf" : [ {
              "$ref" : "#/components/schemas/Money"
            } ],
            "description" : "Product price to refund, excluding taxes and shipping price"
          },
          "product_id" : {
            "type" : "string",
            "description" : "Seller product identifier on the channel",
            "examples" : [ "SELLER_ID_1" ],
            "minLength" : 1
          },
          "quantity" : {
            "type" : "integer",
            "description" : "Product quantity to refund",
            "examples" : [ 10 ],
            "minimum" : 0
          },
          "reason" : {
            "type" : "string",
            "description" : "The reason why the order line is refunded",
            "enum" : [ "CUSTOMER_CANCELATION", "OUT_OF_STOCK", "RETURN", "ITEM_NOT_RECEIVED", "AGREEMENT", "DEFECT", "UNABLE_TO_DELIVER" ]
          },
          "shipping_price" : {
            "allOf" : [ {
              "$ref" : "#/components/schemas/Money"
            } ],
            "description" : "Shipping price to refund, excluding shipping taxes"
          },
          "shipping_taxes" : {
            "type" : "array",
            "description" : "Shipping taxes to refund",
            "items" : {
              "$ref" : "#/components/schemas/RefundedTaxRequest"
            }
          },
          "taxes" : {
            "type" : "array",
            "description" : "Taxes to refund",
            "items" : {
              "$ref" : "#/components/schemas/RefundedTaxRequest"
            }
          }
        }
      },
      "RefundedTaxRequest" : {
        "type" : "object",
        "properties" : {
          "amount" : {
            "allOf" : [ {
              "$ref" : "#/components/schemas/Money"
            } ],
            "description" : "Refunded tax amount"
          },
          "code" : {
            "type" : "string",
            "description" : "Tax code on the sales channel",
            "minLength" : 1
          }
        }
      },
      "ResourcesPage" : {
        "type" : "object",
        "properties" : {
          "next_page_token" : {
            "type" : "string",
            "description" : "Token to access the next page. Absent if the current page is the last one.",
            "minLength" : 1
          },
          "previous_page_token" : {
            "type" : "string",
            "description" : "Token to access the previous page. Absent if the current page is the first one.",
            "minLength" : 1
          }
        }
      },
      "ReturnLineResponse" : {
        "type" : "object",
        "properties" : {
          "order_line_id" : {
            "type" : "string",
            "description" : "Order line identifier used by Mirakl Connect"
          },
          "product_id" : {
            "type" : "string",
            "description" : "Returnable item identifier"
          },
          "quantity" : {
            "type" : "integer",
            "description" : "Quantity of items being returned"
          },
          "reason" : {
            "type" : "string",
            "description" : "Reason for the return",
            "enum" : [ "WRONG_ITEM", "MISSING_ITEM", "DEFECTIVE_ITEM", "DAMAGED_ITEM", "UNWANTED_ITEM", "OTHER" ]
          }
        }
      },
      "ReturnResponse" : {
        "type" : "object",
        "properties" : {
          "address" : {
            "type" : "object",
            "properties" : {
              "city" : {
                "type" : "string",
                "description" : "City"
              },
              "country" : {
                "type" : "string",
                "description" : "Country"
              },
              "country_iso_code" : {
                "type" : "string",
                "format" : "iso-3166-1 alpha-3",
                "description" : "Country ISO code"
              },
              "state" : {
                "type" : "string",
                "description" : "State"
              },
              "street" : {
                "type" : "string",
                "description" : "Street information. Strongly recommended for accurate delivery; may be omitted for block-based address systems (e.g. Japan)."
              },
              "street_additional_info" : {
                "type" : "string",
                "description" : "Additional street information"
              },
              "zip_code" : {
                "type" : "string",
                "description" : "Postal code"
              }
            }
          },
          "channel_return_id" : {
            "type" : "string",
            "description" : "Return identifier on the sales channel. This identifier is not guaranteed to be unique as multiple channels can use the same identifier."
          },
          "channel_updated_at" : {
            "type" : "string",
            "format" : "date-time",
            "description" : "Date time the return was last updated on the sales channel"
          },
          "created_at" : {
            "type" : "string",
            "format" : "date-time",
            "description" : "Date time the return was created on the sales channel"
          },
          "id" : {
            "type" : "string",
            "description" : "Unique return identifier used by Mirakl Connect. This identifier can be used as a primary key, but it must not be shared with final users."
          },
          "label_url" : {
            "type" : "string",
            "description" : "URL for the return shipping label"
          },
          "method" : {
            "type" : "string",
            "description" : "Shipping method name on the sales channel"
          },
          "order_id" : {
            "type" : "string",
            "description" : "Order identifier used by Mirakl Connect"
          },
          "origin" : {
            "$ref" : "#/components/schemas/Origin",
            "description" : "Sales channel information"
          },
          "rejection_reason" : {
            "type" : "string",
            "description" : "Reason for the return rejection",
            "enum" : [ "RETURN_WINDOW_CLOSED", "NOT_ELIGIBLE_FOR_RETURN", "FINAL_SALES", "OTHER" ]
          },
          "return_lines" : {
            "type" : "array",
            "items" : {
              "$ref" : "#/components/schemas/ReturnLineResponse"
            },
            "minItems" : 1
          },
          "rma_id" : {
            "type" : "string",
            "description" : "Return Merchandise Authorization ID"
          },
          "status" : {
            "type" : "string",
            "description" : "Current return status",
            "enum" : [ "REQUEST_INITIATED", "REQUEST_DECLINED", "OPENED", "RECEIVED", "CLOSED", "CHANNEL_SPECIFIC" ]
          },
          "tracking" : {
            "type" : "object",
            "properties" : {
              "carrier_name" : {
                "type" : "string",
                "description" : "Carrier company name"
              },
              "tracking_number" : {
                "type" : "string",
                "description" : "Carrier tracking number"
              },
              "tracking_url" : {
                "type" : "string",
                "description" : "URL to track the return"
              }
            }
          },
          "updated_at" : {
            "type" : "string",
            "format" : "date-time",
            "description" : "Date time the return was last updated on Mirakl Connect"
          }
        }
      },
      "ReturnsPageResponse" : {
        "allOf" : [ {
          "$ref" : "#/components/schemas/ResourcesPage"
        }, {
          "type" : "object",
          "properties" : {
            "data" : {
              "type" : "array",
              "description" : "Page of returns corresponding to the filter parameters",
              "items" : {
                "$ref" : "#/components/schemas/ReturnResponse"
              }
            }
          },
          "required" : [ "data" ]
        } ]
      },
      "ShipmentItemResponse" : {
        "type" : "object",
        "properties" : {
          "id" : {
            "type" : "string",
            "description" : "Seller product identifier on the channel",
            "examples" : [ "SELLER_ID_1" ],
            "minLength" : 1
          },
          "order_line_id" : {
            "type" : "string",
            "description" : "Order line identifier",
            "examples" : [ "0024_COMMERCIAL_ID-A-1" ],
            "minLength" : 1
          },
          "quantity" : {
            "type" : "integer",
            "description" : "Product quantity to ship",
            "examples" : [ "10" ],
            "minimum" : 1
          }
        }
      },
      "ShipmentResponse" : {
        "type" : "object",
        "properties" : {
          "carrier" : {
            "type" : "string",
            "description" : "Carrier company name. For example:\n  - <code>UPS</code>\n  - <code>DHL Express</code>\n  - <code>Amazon Logistics UK</code>\n  - <code>FedEx</code>\n  - <code>China Post</code>\n  - ...",
            "examples" : [ "DHL Express" ]
          },
          "channel_shipment_id" : {
            "type" : "string",
            "description" : "Shipment identifier on the sales channel. This identifier is unique for a sales channel, but multiple channels can use the same identifier.",
            "examples" : [ "SHIPMENT_CHANNEL_ID_1" ]
          },
          "created_at" : {
            "type" : "string",
            "format" : "date-time",
            "description" : "Shipment creation date",
            "examples" : [ "2021-07-06T09:24:36.32Z" ]
          },
          "id" : {
            "type" : "string",
            "description" : "Unique shipment identifier used by Connect. This identifier can be used as a primary key, but it must not be shared with final users.",
            "examples" : [ "0001_SHIPMENT-0001" ]
          },
          "items" : {
            "type" : "array",
            "description" : "Items to ship",
            "items" : {
              "$ref" : "#/components/schemas/ShipmentItemResponse"
            }
          },
          "tracking_number" : {
            "type" : "string",
            "description" : "Carrier tracking number",
            "examples" : [ "123456" ],
            "minLength" : 1
          },
          "tracking_url" : {
            "type" : "string",
            "description" : "Carrier tracking URL",
            "examples" : [ "https://www.apps.ups.com/WebTracking/track" ]
          },
          "updated_at" : {
            "type" : "string",
            "format" : "date-time",
            "description" : "Date of last shipment modification",
            "examples" : [ "2021-07-06T09:24:36.32Z" ]
          }
        }
      },
      "ShippingInfo" : {
        "type" : "object",
        "properties" : {
          "address" : {
            "$ref" : "#/components/schemas/Address",
            "description" : "Customer shipping address"
          },
          "carrier" : {
            "type" : "string",
            "description" : "Carrier company name"
          },
          "delivery_date" : {
            "type" : "object",
            "description" : "Expected order delivery date",
            "properties" : {
              "earliest" : {
                "type" : "string",
                "format" : "date-time",
                "description" : "Earliest order delivery date"
              },
              "latest" : {
                "type" : "string",
                "format" : "date-time",
                "description" : "Latest order delivery date"
              }
            }
          },
          "email" : {
            "type" : "string",
            "description" : "Customer email"
          },
          "method" : {
            "type" : "string",
            "description" : "Shipping method name on the sales channel. Shipping methods can have different names on different sales channels."
          },
          "pudo_id" : {
            "type" : "string",
            "description" : "PickUp DropOff (PUDO) point identifier"
          },
          "shipping_deadline" : {
            "type" : "string",
            "format" : "date-time",
            "description" : "Date time by which the store must send the order to the customer."
          }
        }
      },
      "StandardPrice" : {
        "type" : "object",
        "properties" : {
          "price" : {
            "$ref" : "#/components/schemas/Money"
          },
          "scope" : {
            "$ref" : "#/components/schemas/PriceScope"
          }
        }
      },
      "StandardPrices" : {
        "type" : "array",
        "description" : "Standard prices",
        "items" : {
          "$ref" : "#/components/schemas/StandardPrice"
        },
        "maxItems" : 10,
        "minItems" : 1
      },
      "Tax" : {
        "type" : "object",
        "properties" : {
          "amount" : {
            "$ref" : "#/components/schemas/Money",
            "description" : "Tax amount for a specific code after cancelations. Refunds and rejects are not calculated in this amount."
          },
          "channel_collectible" : {
            "$ref" : "#/components/schemas/Money",
            "description" : "Amount collected by the operator (marketplace facilitator)."
          },
          "code" : {
            "type" : "string",
            "description" : "Tax code on the sales channel"
          },
          "rate" : {
            "type" : "number",
            "description" : "Tax rate"
          },
          "seller_collectible" : {
            "$ref" : "#/components/schemas/Money",
            "description" : "Amount the seller must collect and declare to tax authorities."
          }
        }
      },
      "TaxAdjustment" : {
        "type" : "object",
        "properties" : {
          "amount" : {
            "$ref" : "#/components/schemas/Money",
            "description" : "Adjusted tax amount"
          },
          "code" : {
            "type" : "string",
            "description" : "Tax code on the sales channel"
          }
        }
      },
      "Title" : {
        "type" : "object",
        "description" : "Title with its associated locale",
        "properties" : {
          "locale" : {
            "$ref" : "#/components/schemas/Locale"
          },
          "value" : {
            "type" : "string",
            "description" : "Title",
            "examples" : [ "My awesome product" ],
            "maxLength" : 255
          }
        }
      },
      "Titles" : {
        "type" : [ "array", "null" ],
        "description" : "Titles with their associated locale",
        "items" : {
          "$ref" : "#/components/schemas/Title"
        },
        "maxItems" : 10
      },
      "UpdateReturnTrackingInformationRequest" : {
        "type" : "object",
        "properties" : {
          "label_url" : {
            "type" : "string",
            "description" : "Return label URL",
            "examples" : [ "https://shipping.ups.com/returns/labels/d290f1ee-6c54-4b01-90e6-d701748f0851.pdf" ]
          },
          "rma_id" : {
            "type" : "string",
            "description" : "RMA ID (Return Merchandise Authorization)",
            "examples" : [ "NL48GEQK22M1-A" ]
          },
          "tracking" : {
            "type" : "object",
            "description" : "Return tracking information",
            "properties" : {
              "carrier" : {
                "type" : "string",
                "description" : "Carrier company name. For example:\n  - <code>UPS</code>\n  - <code>DHL Express</code>\n  - <code>Amazon Logistics UK</code>\n  - <code>FedEx</code>\n  - <code>China Post</code>\n  - ...",
                "examples" : [ "DHL Express" ]
              },
              "tracking_number" : {
                "type" : "string",
                "description" : "Carrier tracking number",
                "examples" : [ "781234567890" ]
              },
              "tracking_url" : {
                "type" : "string",
                "description" : "URL to track the return",
                "examples" : [ "https://www.fedex.com/fedextrack/?trknbr=781234567890" ]
              }
            }
          }
        }
      },
      "UploadOrderDocumentMetadata" : {
        "type" : "object",
        "examples" : [ {
          "returnLabel" : {
            "externalValue" : "schemas/examples/UploadReturnLabelOrderDocumentRequest.json",
            "summary" : "Metadata for a <code>RETURN_LABEL</code> document"
          }
        }, {
          "customerInvoice" : {
            "externalValue" : "schemas/examples/UploadCustomerInvoiceOrderDocumentRequest.json",
            "summary" : "Metadata for a <code>CUSTOMER_INVOICE</code> document"
          }
        } ],
        "properties" : {
          "entity" : {
            "type" : "object",
            "description" : "The entity this document is associated with.\nRequired on some marketplaces when type is:\n  - <code>RETURN_LABEL</code>\n",
            "properties" : {
              "id" : {
                "type" : "string",
                "description" : "The id of the entity (e.g. <code>returnId</code> for entity_type : <code>RETURN</code>) this document is associated with.\n",
                "examples" : [ "50c3ca0a74bf80315d57b165cae39db7a5b1d8d8271c6ecabc1706337ef90f1f_caf30673-ea3d-4113-9a18-674850f6a290" ]
              },
              "type" : {
                "type" : "string",
                "description" : "The type of entity this document is associated with.\n",
                "enum" : [ "RETURN" ]
              }
            }
          },
          "filename" : {
            "type" : "string",
            "description" : "Name of the document (only this field counts as the file name).\nWe recommend including a way to distinguish the document type in this field.\n",
            "examples" : [ "UPS_1Z999AA10123456784.pdf", "DHL_JJD0000123456.jpg", "中国邮政_774602727890.png", "INV-2025-0412-SELLER_STORE_001-ORD_0024_COMMERCIAL_ID-A.jpeg" ],
            "maxLength" : 255,
            "minLength" : 1
          },
          "type" : {
            "type" : "string",
            "description" : "Type of the document",
            "enum" : [ "RETURN_LABEL", "CUSTOMER_INVOICE" ]
          }
        }
      },
      "UpsertProductsRequest" : {
        "type" : "object",
        "description" : "Update any of the top-elements of all given products.\n\nOmitted top-elements in the API will remain unchanged.\n\nAny nullable field can be explicitly set to null in order to remove its value.\n",
        "properties" : {
          "products" : {
            "type" : "array",
            "description" : "Products to create or to update",
            "items" : {
              "$ref" : "#/components/schemas/Product"
            },
            "maxItems" : 1000,
            "minItems" : 1
          }
        }
      },
      "V2CreateShipmentRequest" : {
        "type" : "object",
        "description" : "Shipment object and its items' details",
        "properties" : {
          "carrier" : {
            "type" : "string",
            "description" : "Carrier company name. For example:\n  - <code>UPS</code>\n  - <code>DHL Express</code>\n  - <code>Amazon Logistics UK</code>\n  - <code>FedEx</code>\n  - <code>China Post</code>\n  - ...",
            "examples" : [ "DHL Express" ],
            "minLength" : 1
          },
          "items" : {
            "type" : "array",
            "description" : "Shipment items",
            "items" : {
              "$ref" : "#/components/schemas/CreateShipmentItemRequest"
            }
          },
          "return_tracking_number" : {
            "type" : "string",
            "description" : "Return shipment tracking number is required only for marketplaces that expect return tracking information when the shipment is created. If the marketplace doesn't require it to create the shipment, the value won't be synchronized.",
            "examples" : [ "78910" ],
            "minLength" : 1
          },
          "tracking_number" : {
            "type" : "string",
            "description" : "Carrier tracking number",
            "examples" : [ "123456" ],
            "minLength" : 1
          },
          "tracking_url" : {
            "type" : "string",
            "description" : "Carrier tracking URL",
            "examples" : [ "https://wwwapps.ups.com/WebTracking/track" ]
          },
          "warehouse_id" : {
            "type" : "string",
            "description" : "Identifier of the warehouse from which the items are shipped. Optional; ignored by channels that do not require it.",
            "examples" : [ "WH-001" ],
            "minLength" : 1
          }
        }
      },
      "ZipArchive" : {
        "type" : "string",
        "format" : "binary"
      }
    },
    "securitySchemes" : {
      "Bearer" : {
        "bearerFormat" : "JWT",
        "scheme" : "bearer",
        "type" : "http"
      }
    }
  },
  "info" : {
    "title" : "Mirakl Connect APIs",
    "version" : "latest-release"
  },
  "openapi" : "3.1.1",
  "paths" : {
    "/orders/{order_id}/accept" : {
      "put" : {
        "deprecated" : true,
        "description" : "Use this API to accept or refuse order lines that are in the <code>AWAITING_ACCEPTANCE</code> status, from Mirakl Connect. The API also synchronizes the order line status on the sales channel. We recommend integrating this API in synchronous mode.",
        "operationId" : "acceptOrderLines",
        "parameters" : [ {
          "description" : "Order identifier in Mirakl Connect",
          "example" : "0024_COMMERCIAL_ID-A",
          "explode" : false,
          "in" : "path",
          "name" : "order_id",
          "required" : true,
          "schema" : {
            "type" : "string"
          },
          "style" : "simple"
        } ],
        "requestBody" : {
          "content" : {
            "application/json" : {
              "schema" : {
                "$ref" : "#/components/schemas/AcceptOrderLinesRequest"
              }
            }
          },
          "required" : true
        },
        "responses" : {
          "204" : {
            "description" : "No content"
          },
          "400" : {
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/Error"
                }
              }
            },
            "description" : "The order status has not been updated because of wrong or missing parameters."
          },
          "404" : {
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/Error"
                }
              }
            },
            "description" : "The order status has not been updated because the order does not exist."
          }
        },
        "security" : [ {
          "Bearer" : [ "connect:order:accept" ]
        } ],
        "summary" : "Accept or refuse order lines",
        "tags" : [ "Orders" ]
      }
    },
    "/conversations" : {
      "post" : {
        "description" : "Use this API to initiate a new conversation with a customer on a marketplace. Returns an action identifier to track the asynchronous processing.",
        "operationId" : "createConversation",
        "requestBody" : {
          "content" : {
            "multipart/form-data" : {
              "encoding" : {
                "conversation" : {
                  "contentType" : "application/json",
                  "style" : "form"
                },
                "files" : {
                  "contentType" : "application/octet-stream",
                  "style" : "form"
                }
              },
              "schema" : {
                "type" : "object",
                "properties" : {
                  "conversation" : {
                    "$ref" : "#/components/schemas/CreateConversationInput"
                  },
                  "files" : {
                    "type" : "array",
                    "description" : "Optional file attachments",
                    "items" : {
                      "type" : "string",
                      "format" : "binary"
                    },
                    "maxItems" : 5
                  }
                }
              }
            }
          },
          "required" : true
        },
        "responses" : {
          "202" : {
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/ConversationActionIdResponse"
                }
              }
            },
            "description" : "Conversation creation initiated"
          },
          "400" : {
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/Error"
                }
              }
            },
            "description" : "Bad request"
          },
          "404" : {
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/Error"
                }
              }
            },
            "description" : "Order or store not found"
          }
        },
        "security" : [ {
          "Bearer" : [ "connect:conversation:create" ]
        } ],
        "summary" : "Create a new conversation",
        "tags" : [ "Conversations" ]
      },
      "get" : {
        "description" : "Use this API to synchronize Mirakl Connect conversations with your system.",
        "operationId" : "listConversations",
        "parameters" : [ {
          "description" : "Token to access the next or previous page",
          "explode" : true,
          "in" : "query",
          "name" : "page_token",
          "schema" : {
            "type" : "string"
          },
          "style" : "form"
        }, {
          "description" : "Maximum number of listed conversations",
          "explode" : true,
          "in" : "query",
          "name" : "limit",
          "schema" : {
            "type" : "integer",
            "default" : 50,
            "maximum" : 100,
            "minimum" : 1
          },
          "style" : "form"
        }, {
          "description" : "Select conversations that were last updated in Mirakl Connect from the specified date time. Required when conversation_ids is not provided.",
          "explode" : true,
          "in" : "query",
          "name" : "updated_from",
          "schema" : {
            "type" : "string",
            "format" : "date-time",
            "example" : "2026-01-04T08:30:00Z"
          },
          "style" : "form"
        }, {
          "description" : "Type of the entity linked to the conversation. Should be used with entity_ids.",
          "explode" : true,
          "in" : "query",
          "name" : "entity_type",
          "schema" : {
            "type" : "string",
            "enum" : [ "ORDER" ]
          },
          "style" : "form"
        }, {
          "description" : "List of unique identifiers of the entities linked to the conversation. Should be used with entity_type.",
          "explode" : true,
          "in" : "query",
          "name" : "entity_ids",
          "schema" : {
            "type" : "array",
            "items" : {
              "type" : "string"
            }
          },
          "style" : "form"
        }, {
          "description" : "List of conversation IDs to retrieve. Required when updated_from is not provided.",
          "explode" : true,
          "in" : "query",
          "name" : "conversation_ids",
          "schema" : {
            "type" : "array",
            "items" : {
              "type" : "string"
            }
          },
          "style" : "form"
        }, {
          "description" : "How the results should be sorted. Must follow \"sort=criterion,direction\" format as described in Mirakl API Documentation",
          "in" : "query",
          "name" : "sort",
          "schema" : {
            "type" : "string"
          }
        } ],
        "responses" : {
          "200" : {
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/ConversationsPageResponse"
                }
              }
            },
            "description" : "List of conversations matching the filter parameters"
          },
          "400" : {
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/Error"
                }
              }
            },
            "description" : "Bad request"
          }
        },
        "security" : [ {
          "Bearer" : [ "connect:conversation:read" ]
        } ],
        "summary" : "List all order conversations",
        "tags" : [ "Conversations" ]
      }
    },
    "/conversations/{conversationId}/messages" : {
      "post" : {
        "description" : "Use this API to create a new message to the customer in a conversation.",
        "operationId" : "createMessage",
        "parameters" : [ {
          "description" : "Unique identifier of the conversation",
          "explode" : false,
          "in" : "path",
          "name" : "conversationId",
          "required" : true,
          "schema" : {
            "type" : "string"
          },
          "style" : "simple"
        } ],
        "requestBody" : {
          "content" : {
            "multipart/form-data" : {
              "encoding" : {
                "files" : {
                  "contentType" : "application/octet-stream",
                  "style" : "form"
                },
                "message_input" : {
                  "contentType" : "application/json",
                  "style" : "form"
                }
              },
              "schema" : {
                "type" : "object",
                "properties" : {
                  "files" : {
                    "type" : "array",
                    "description" : "Optional file attachments",
                    "items" : {
                      "type" : "string",
                      "format" : "binary"
                    },
                    "maxItems" : 5
                  },
                  "message_input" : {
                    "$ref" : "#/components/schemas/MessageInput"
                  }
                }
              }
            }
          },
          "required" : true
        },
        "responses" : {
          "202" : {
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/ConversationActionIdResponse"
                }
              }
            },
            "description" : "Message creation initiated"
          },
          "400" : {
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/Error"
                }
              }
            },
            "description" : "Bad request"
          },
          "404" : {
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/Error"
                }
              }
            },
            "description" : "Conversation not found"
          }
        },
        "security" : [ {
          "Bearer" : [ "connect:conversation:reply" ]
        } ],
        "summary" : "Create a message in a conversation",
        "tags" : [ "Conversations" ]
      }
    },
    "/orders/{order_id}/shipments" : {
      "post" : {
        "deprecated" : true,
        "description" : "Use this API to ship one or more items from the same order within the same package (using the same tracking information). We recommend integrating this API in synchronous mode, directly in your shipment creation process.",
        "operationId" : "createShipment",
        "parameters" : [ {
          "description" : "Connect order identifier",
          "example" : "1328ab88-0412-40f9-bc8f-deb4e338fb84",
          "explode" : false,
          "in" : "path",
          "name" : "order_id",
          "required" : true,
          "schema" : {
            "type" : "string"
          },
          "style" : "simple"
        } ],
        "requestBody" : {
          "content" : {
            "application/json" : {
              "schema" : {
                "$ref" : "#/components/schemas/CreateShipmentRequest"
              }
            }
          },
          "description" : "Shipment object and its items' details",
          "required" : true
        },
        "responses" : {
          "201" : {
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/ShipmentResponse"
                }
              }
            },
            "description" : "Success. The shipment has been created."
          },
          "400" : {
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/Error"
                }
              }
            },
            "description" : "Failure. The shipment has not been created because of wrong parameters."
          },
          "404" : {
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/Error"
                }
              }
            },
            "description" : "Failure. The shipment has not been created because the order was missing."
          }
        },
        "security" : [ {
          "Bearer" : [ "connect:shipment:create" ]
        } ],
        "summary" : "Ship items of a Connect order",
        "tags" : [ "Shipments" ]
      }
    },
    "/products" : {
      "delete" : {
        "description" : "Use this API to delete one or more products using the product identifiers.\n\n**Limitations:**\n- Maximum 1000 products per request\n- For larger deletions, split into multiple requests\n",
        "operationId" : "deleteProducts",
        "requestBody" : {
          "content" : {
            "application/json" : {
              "schema" : {
                "$ref" : "#/components/schemas/DeleteProductsRequest"
              }
            }
          },
          "required" : true
        },
        "responses" : {
          "202" : {
            "description" : "The request has been accepted"
          }
        },
        "security" : [ {
          "Bearer" : [ "connect:product:delete" ]
        } ],
        "summary" : "Delete products in bulk from your Mirakl Connect Catalog",
        "tags" : [ "Catalog" ]
      },
      "get" : {
        "description" : "Use this API to retrieve products imported in your Mirakl Connect catalog. Items are sorted by product identifiers.",
        "operationId" : "listProducts",
        "parameters" : [ {
          "description" : "Token to access the next or previous page",
          "explode" : true,
          "in" : "query",
          "name" : "page_token",
          "schema" : {
            "type" : "string"
          },
          "style" : "form"
        }, {
          "description" : "Maximum number of listed products",
          "explode" : true,
          "in" : "query",
          "name" : "limit",
          "schema" : {
            "type" : "integer",
            "default" : 1000,
            "maximum" : 1000,
            "minimum" : 1
          },
          "style" : "form"
        }, {
          "description" : "How the results should be sorted. Must follow \"sort=criterion,direction\" format as described in Mirakl API Documentation",
          "in" : "query",
          "name" : "sort",
          "schema" : {
            "type" : "string"
          }
        } ],
        "responses" : {
          "200" : {
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/ListProductsResponse"
                }
              }
            },
            "description" : "List of products"
          }
        },
        "security" : [ {
          "Bearer" : [ "connect:product:read" ]
        } ],
        "summary" : "List products from your Mirakl Connect catalog",
        "tags" : [ "Catalog" ]
      },
      "post" : {
        "description" : "Products are created if they do not already exist. The missing fields in the request remain unchanged on the Mirakl Connect catalog (behaves like a PATCH).\n\nOmitted top-elements in the API will remain unchanged.\n\nAny nullable field can be explicitly set to null in order to remove its value.\n",
        "operationId" : "upsertProducts",
        "requestBody" : {
          "content" : {
            "application/json" : {
              "schema" : {
                "$ref" : "#/components/schemas/UpsertProductsRequest"
              }
            }
          },
          "required" : true
        },
        "responses" : {
          "202" : {
            "description" : "The request has been accepted"
          }
        },
        "security" : [ {
          "Bearer" : [ "connect:product:write" ]
        } ],
        "summary" : "Create or Update your Mirakl Connect Catalog",
        "tags" : [ "Catalog" ]
      }
    },
    "/conversations/{conversationId}/attachments" : {
      "get" : {
        "description" : "Downloads a ZIP archive of the requested attachments from a conversation.\nZIP archive contains all matching attachments with the following structure :\n\n```\n├── <message_id_1>/\n│   ├── <attachment_id_1>/\n│   │   └── <filename1>\n│   └── <attachment_id_2>/\n│       └── <filename2>\n└── <message_id_2>/\n    └── <attachment_id_3>/\n        └── <filename3>\n```\n\nThe zip file will be named with the following pattern : <conversation_id>_attachments_<timestamp>.zip\n\nUnknown or deleted attachments are silently skipped.\n",
        "operationId" : "downloadConversationAttachments",
        "parameters" : [ {
          "description" : "The ID of the conversation from listConversations API.",
          "explode" : false,
          "in" : "path",
          "name" : "conversationId",
          "required" : true,
          "schema" : {
            "type" : "string"
          },
          "style" : "simple"
        }, {
          "description" : "A list of attachment ID to retrieve. If not specified, all attachments of the conversation are returned.",
          "explode" : true,
          "in" : "query",
          "name" : "attachment_ids",
          "schema" : {
            "type" : "array",
            "items" : {
              "type" : "string"
            },
            "maxItems" : 100
          },
          "style" : "form"
        } ],
        "responses" : {
          "200" : {
            "content" : {
              "application/zip" : {
                "schema" : {
                  "$ref" : "#/components/schemas/ZipArchive"
                }
              }
            },
            "description" : "ZIP archive of the requested attachments"
          },
          "404" : {
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/Error"
                }
              }
            },
            "description" : "Conversation not found or anonymized, or no attachments found for the given parameters"
          }
        },
        "security" : [ {
          "Bearer" : [ "connect:conversation:read" ]
        } ],
        "summary" : "Download attachments of a conversation",
        "tags" : [ "Conversations" ]
      }
    },
    "/conversations/actions/{actionId}" : {
      "get" : {
        "description" : "Use this API to check the status of your asynchronous conversation action.",
        "operationId" : "getConversationActionStatus",
        "parameters" : [ {
          "description" : "Unique identifier of the action",
          "explode" : false,
          "in" : "path",
          "name" : "actionId",
          "required" : true,
          "schema" : {
            "type" : "string"
          },
          "style" : "simple"
        } ],
        "responses" : {
          "200" : {
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/ConversationActionStatusResponse"
                }
              }
            },
            "description" : "Action status retrieved successfully"
          },
          "404" : {
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/Error"
                }
              }
            },
            "description" : "Action not found"
          }
        },
        "security" : [ {
          "Bearer" : [ "connect:conversation:action:read" ]
        } ],
        "summary" : "Get action status",
        "tags" : [ "Conversations" ]
      }
    },
    "/conversations/{conversationId}" : {
      "get" : {
        "description" : "Returns messages of a conversation, ordered by channel creation date descending.",
        "operationId" : "getConversationMessages",
        "parameters" : [ {
          "description" : "Unique identifier of the conversation",
          "explode" : false,
          "in" : "path",
          "name" : "conversationId",
          "required" : true,
          "schema" : {
            "type" : "string"
          },
          "style" : "simple"
        }, {
          "description" : "Return only messages created in Connect after this date (exclusive filter)",
          "explode" : true,
          "in" : "query",
          "name" : "message_after",
          "schema" : {
            "type" : "string",
            "format" : "date-time"
          },
          "style" : "form"
        } ],
        "responses" : {
          "200" : {
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/ConversationMessagesResponse"
                }
              }
            },
            "description" : "Messages for the conversation"
          },
          "404" : {
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/Error"
                }
              }
            },
            "description" : "Conversation not found or anonymized"
          }
        },
        "security" : [ {
          "Bearer" : [ "connect:conversation:read" ]
        } ],
        "summary" : "Get messages for a conversation",
        "tags" : [ "Conversations" ]
      }
    },
    "/orders" : {
      "get" : {
        "deprecated" : true,
        "description" : "Use this API to synchronize Mirakl Connect orders with your system. We recommend integrating this API in asynchronous mode. You can retrieve all orders updated since the last call, and update your referential accordingly. To do so, schedule a task that calls this API using the <code>updated_from</code> parameter valued with the last execution time of the task.",
        "operationId" : "listOrders",
        "parameters" : [ {
          "description" : "Filter by Connect order identifiers",
          "explode" : true,
          "in" : "query",
          "name" : "order_ids",
          "schema" : {
            "type" : "array",
            "items" : {
              "type" : "string"
            }
          },
          "style" : "form"
        }, {
          "description" : "Filter by order statuses",
          "explode" : true,
          "in" : "query",
          "name" : "statuses",
          "schema" : {
            "type" : "array",
            "items" : {
              "type" : "string",
              "enum" : [ "AWAITING_FRAUD_CHECK", "AWAITING_ACCEPTANCE", "AWAITING_PAYMENT", "AWAITING_SHIPMENT", "SHIPPED", "DELIVERED", "CLOSED" ]
            }
          },
          "style" : "form"
        }, {
          "description" : "Select orders that were last updated in Mirakl Connect from the specified date time. If omitted and no `order_ids` filter is provided, defaults to 30 days ago.\n",
          "explode" : true,
          "in" : "query",
          "name" : "updated_from",
          "schema" : {
            "type" : "string",
            "format" : "date-time",
            "example" : "2021-01-01T08:30:00Z"
          },
          "style" : "form"
        }, {
          "description" : "Filter by fulfillment channel",
          "explode" : true,
          "in" : "query",
          "name" : "fulfillment_type",
          "schema" : {
            "type" : "string",
            "enum" : [ "FULFILLED_BY_SELLER", "FULFILLED_BY_PARTNER" ]
          },
          "style" : "form"
        }, {
          "description" : "Token to access the next or previous page",
          "explode" : true,
          "in" : "query",
          "name" : "page_token",
          "schema" : {
            "type" : "string"
          },
          "style" : "form"
        }, {
          "description" : "Maximum number of listed orders",
          "explode" : true,
          "in" : "query",
          "name" : "limit",
          "schema" : {
            "type" : "integer",
            "default" : 10,
            "maximum" : 100,
            "minimum" : 1
          },
          "style" : "form"
        }, {
          "description" : "How the results should be sorted. Must follow \"sort=criterion,direction\" format as described in Mirakl API Documentation",
          "in" : "query",
          "name" : "sort",
          "schema" : {
            "type" : "string"
          }
        } ],
        "responses" : {
          "200" : {
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/OrdersPageResponse"
                }
              }
            },
            "description" : "List of orders"
          }
        },
        "security" : [ {
          "Bearer" : [ "connect:order:read" ]
        } ],
        "summary" : "List Mirakl Connect orders",
        "tags" : [ "Orders" ]
      }
    },
    "/v2/orders/{order_id}/accept" : {
      "put" : {
        "description" : "Use this API to accept or refuse order lines that are in the <code>AWAITING_ACCEPTANCE</code> status, from Mirakl Connect. The API also synchronizes the order line status on the sales channel.",
        "operationId" : "v2-acceptOrderLines",
        "parameters" : [ {
          "description" : "Order identifier in Mirakl Connect",
          "example" : "0024_COMMERCIAL_ID-A",
          "explode" : false,
          "in" : "path",
          "name" : "order_id",
          "required" : true,
          "schema" : {
            "type" : "string"
          },
          "style" : "simple"
        } ],
        "requestBody" : {
          "content" : {
            "application/json" : {
              "schema" : {
                "$ref" : "#/components/schemas/AcceptOrderLinesRequest"
              }
            }
          },
          "required" : true
        },
        "responses" : {
          "202" : {
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/AsynchronousActionResponse"
                }
              }
            },
            "description" : "Accepted. The accept request will be processed asynchronously."
          },
          "400" : {
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/Error"
                }
              }
            },
            "description" : "The order status has not been updated because of wrong or missing parameters."
          },
          "404" : {
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/Error"
                }
              }
            },
            "description" : "The order status has not been updated because the order does not exist."
          }
        },
        "security" : [ {
          "Bearer" : [ "connect:order:accept" ]
        } ],
        "summary" : "Accept or refuse order lines",
        "tags" : [ "Orders" ]
      }
    },
    "/v2/orders/returns/{return_id}/accept" : {
      "put" : {
        "description" : "Use this API to accept or refuse a return that is in the <code>REQUEST_INITIATED</code> status, from Mirakl Connect. The API also synchronizes the return status on the sales channel.",
        "operationId" : "v2-acceptReturn",
        "parameters" : [ {
          "description" : "Return identifier in Mirakl Connect",
          "example" : 70885,
          "explode" : false,
          "in" : "path",
          "name" : "return_id",
          "required" : true,
          "schema" : {
            "type" : "string"
          },
          "style" : "simple"
        } ],
        "requestBody" : {
          "content" : {
            "application/json" : {
              "schema" : {
                "$ref" : "#/components/schemas/AcceptReturnRequest"
              }
            }
          },
          "required" : true
        },
        "responses" : {
          "202" : {
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/AsynchronousActionResponse"
                }
              }
            },
            "description" : "Accepted. The accept request will be processed asynchronously."
          },
          "400" : {
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/Error"
                }
              }
            },
            "description" : "The return status has not been updated because of wrong or missing parameters."
          },
          "404" : {
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/Error"
                }
              }
            },
            "description" : "The return status has not been updated because the return does not exist."
          }
        },
        "security" : [ {
          "Bearer" : [ "connect:order-return:accept" ]
        } ],
        "summary" : "Accept or refuse return",
        "tags" : [ "Returns" ]
      }
    },
    "/v2/orders/returns/{return_id}/receive" : {
      "put" : {
        "description" : "Use this API to marks the return as received to officially confirm physical reception of the item from the customer. The API also synchronizes the return status on the sales channel.",
        "operationId" : "v2-acknowledgeReturnReception",
        "parameters" : [ {
          "description" : "Return identifier in Mirakl Connect",
          "example" : 70885,
          "explode" : false,
          "in" : "path",
          "name" : "return_id",
          "required" : true,
          "schema" : {
            "type" : "string"
          },
          "style" : "simple"
        } ],
        "responses" : {
          "202" : {
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/AsynchronousActionResponse"
                }
              }
            },
            "description" : "Accepted. The accept request will be processed asynchronously."
          },
          "400" : {
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/Error"
                }
              }
            },
            "description" : "The return status has not been updated because of wrong or missing parameters."
          },
          "404" : {
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/Error"
                }
              }
            },
            "description" : "The return status has not been updated because the return does not exist."
          }
        },
        "security" : [ {
          "Bearer" : [ "connect:order-return:receive" ]
        } ],
        "summary" : "Mark return as received",
        "tags" : [ "Returns" ]
      }
    },
    "/v2/orders/{order_id}/cancel" : {
      "post" : {
        "description" : "Use this API to cancel order lines (all or part) of an order.",
        "operationId" : "v2-cancelOrderLines",
        "parameters" : [ {
          "description" : "Order identifier in Mirakl Connect",
          "example" : "0024_COMMERCIAL_ID-A",
          "explode" : false,
          "in" : "path",
          "name" : "order_id",
          "required" : true,
          "schema" : {
            "type" : "string"
          },
          "style" : "simple"
        } ],
        "requestBody" : {
          "content" : {
            "application/json" : {
              "schema" : {
                "$ref" : "#/components/schemas/CancelOrderLinesRequest"
              }
            }
          },
          "required" : true
        },
        "responses" : {
          "202" : {
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/AsynchronousActionResponse"
                }
              }
            },
            "description" : "Accepted. The cancel request will be processed asynchronously."
          },
          "400" : {
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/Error"
                }
              }
            },
            "description" : "The order has not been updated because of wrong or missing parameters."
          },
          "404" : {
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/Error"
                }
              }
            },
            "description" : "The order has not been updated because the order does not exist."
          }
        },
        "security" : [ {
          "Bearer" : [ "connect:order:cancel" ]
        } ],
        "summary" : "Cancel order lines",
        "tags" : [ "Orders" ]
      }
    },
    "/v2/orders/returns/{return_id}/close" : {
      "put" : {
        "description" : "Use this API to marks the return as closed after all necessary steps required by the marketplace or seller’s process are completed (e.g., refund, compliance check, restocking). The API also synchronizes the return status on the sales channel.",
        "operationId" : "v2-closeReturn",
        "parameters" : [ {
          "description" : "Return identifier in Mirakl Connect",
          "example" : 70885,
          "explode" : false,
          "in" : "path",
          "name" : "return_id",
          "required" : true,
          "schema" : {
            "type" : "string"
          },
          "style" : "simple"
        } ],
        "responses" : {
          "202" : {
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/AsynchronousActionResponse"
                }
              }
            },
            "description" : "Accepted. The accept request will be processed asynchronously."
          },
          "400" : {
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/Error"
                }
              }
            },
            "description" : "The return status has not been updated because of wrong or missing parameters."
          },
          "404" : {
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/Error"
                }
              }
            },
            "description" : "The return status has not been updated because the return does not exist."
          }
        },
        "security" : [ {
          "Bearer" : [ "connect:order-return:close" ]
        } ],
        "summary" : "Mark return as closed",
        "tags" : [ "Returns" ]
      }
    },
    "/v2/orders/{order_id}/shipments" : {
      "post" : {
        "description" : "Use this API to ship one or more items from the same order within the same package (using the same tracking information).",
        "operationId" : "v2-createShipment",
        "parameters" : [ {
          "description" : "Connect order identifier",
          "example" : "1328ab88-0412-40f9-bc8f-deb4e338fb84",
          "explode" : false,
          "in" : "path",
          "name" : "order_id",
          "required" : true,
          "schema" : {
            "type" : "string"
          },
          "style" : "simple"
        } ],
        "requestBody" : {
          "content" : {
            "application/json" : {
              "schema" : {
                "$ref" : "#/components/schemas/V2CreateShipmentRequest"
              }
            }
          },
          "description" : "Shipment object and its items' details",
          "required" : true
        },
        "responses" : {
          "202" : {
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/AsynchronousActionResponse"
                }
              }
            },
            "description" : "Success. The shipment has been created."
          },
          "400" : {
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/Error"
                }
              }
            },
            "description" : "Failure. The shipment has not been created because of wrong parameters."
          },
          "404" : {
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/Error"
                }
              }
            },
            "description" : "Failure. The shipment has not been created because the order was missing."
          }
        },
        "security" : [ {
          "Bearer" : [ "connect:shipment:create" ]
        } ],
        "summary" : "Ship items of a Connect order",
        "tags" : [ "Shipments" ]
      }
    },
    "/v2/orders/{order_id}/documents" : {
      "get" : {
        "description" : "Use this API to download documents from an order.\n",
        "operationId" : "v2-downloadOrderDocuments",
        "parameters" : [ {
          "description" : "Order identifier in Mirakl Connect",
          "example" : "0024_COMMERCIAL_ID-A",
          "explode" : false,
          "in" : "path",
          "name" : "order_id",
          "required" : true,
          "schema" : {
            "type" : "string"
          },
          "style" : "simple"
        }, {
          "description" : "Filter by document types.\n\nCannot be used together with <code>document_ids</code>.\n",
          "explode" : true,
          "in" : "query",
          "name" : "types",
          "schema" : {
            "type" : "array",
            "items" : {
              "type" : "string",
              "enum" : [ "RETURN_LABEL", "CUSTOMER_INVOICE", "DELIVERY_SLIP", "SHIPMENT_DELIVERY_SLIP", "CHANNEL_SPECIFIC" ]
            }
          },
          "style" : "form"
        }, {
          "description" : "Filter by specific document IDs.\n\nOnly documents that exist and belong to the specified order will be returned. If some requested documents do not exist or do not belong to the order, they will be silently ignored. Returns 404 only if none of the requested documents are found or match the order.\n\nCannot be used together with <code>types</code>.\n",
          "example" : [ "f47ac10b-58cc-4372-a567-0e02b2c3d479", "6ba7b810-9dad-11d1-80b4-00c04fd430c8" ],
          "explode" : true,
          "in" : "query",
          "name" : "document_ids",
          "schema" : {
            "type" : "array",
            "items" : {
              "type" : "string"
            },
            "maxItems" : 100
          },
          "style" : "form"
        } ],
        "responses" : {
          "200" : {
            "content" : {
              "application/zip" : {
                "schema" : {
                  "type" : "string",
                  "format" : "binary"
                }
              }
            },
            "description" : "The requested document(s).\n\nAlways returns a ZIP archive.\n\nThe ZIP archive contains all matching documents with their original filenames (sorted by most recent first). For example, if <code>0024_COMMERCIAL_ID-A</code> contains 3 documents the ZIP archive structure will be as follows:\n<pre> <code>\n  0024_COMMERCIAL_ID-A_documents_1679996082000.zip\n  ├── return_label.pdf\n  ├── customer_invoice.pdf\n  └── customer_invoice(1).pdf\n</code> </pre>\nNote: In case of multiple documents with the same name, a suffix (e.g. (1), (2), etc.) is added to the filenames in the ZIP archive to ensure uniqueness.\n",
            "headers" : {
              "Content-Disposition" : {
                "description" : "Filename of the response.\n\nAlways `attachment; filename=\"<order_id>_documents_<timestamp>.zip\"`.\n",
                "explode" : false,
                "schema" : {
                  "type" : "string",
                  "example" : "attachment; filename=\"0024_COMMERCIAL_ID-A_documents_1679996082000.zip\""
                },
                "style" : "simple"
              },
              "Content-Type" : {
                "description" : "MIME type of the response. Always `application/zip`.\n",
                "explode" : false,
                "schema" : {
                  "type" : "string",
                  "example" : "application/zip"
                },
                "style" : "simple"
              }
            }
          },
          "400" : {
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/Error"
                }
              }
            },
            "description" : "Invalid or unsupported document type filter."
          },
          "404" : {
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/Error"
                }
              }
            },
            "description" : "Documents could not be retrieved because the order does not exist, no documents were found on this order, or when using <code>document_ids</code> filter, none of the requested documents exist or belong to the order."
          }
        },
        "security" : [ {
          "Bearer" : [ "connect:order-document:read" ]
        } ],
        "summary" : "Download documents from an order",
        "tags" : [ "Orders" ]
      },
      "post" : {
        "description" : "Use this API to upload a document for an order or its related entities (e.g. returns).\n\nSupported document types are :\n  - <code>RETURN_LABEL</code>\n  - <code>CUSTOMER_INVOICE</code>\n",
        "operationId" : "v2-uploadOrderDocument",
        "parameters" : [ {
          "description" : "Order identifier in Mirakl Connect",
          "example" : "0024_COMMERCIAL_ID-A",
          "explode" : false,
          "in" : "path",
          "name" : "order_id",
          "required" : true,
          "schema" : {
            "type" : "string"
          },
          "style" : "simple"
        } ],
        "requestBody" : {
          "content" : {
            "multipart/form-data" : {
              "schema" : {
                "type" : "object",
                "properties" : {
                  "file" : {
                    "type" : "string",
                    "format" : "binary",
                    "description" : "The document file to upload.\n\nMaximum file size: <code>10 MB</code>.\n\nSupported formats are :\n  - <code>PDF</code>\n  - <code>JPEG</code>\n  - <code>PNG</code>\n  - <code>CSV</code>\n"
                  },
                  "metadata" : {
                    "$ref" : "#/components/schemas/UploadOrderDocumentMetadata"
                  }
                }
              }
            }
          },
          "required" : true
        },
        "responses" : {
          "202" : {
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/AsynchronousActionResponse"
                }
              }
            },
            "description" : "Accepted. The document upload request will be processed asynchronously."
          },
          "400" : {
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/Error"
                }
              }
            },
            "description" : "The document has not been uploaded because of wrong or missing parameters, invalid/unsupported file type, or file size exceeds limit."
          },
          "404" : {
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/Error"
                }
              }
            },
            "description" : "The document has not been uploaded because the order or entity does not exist."
          }
        },
        "security" : [ {
          "Bearer" : [ "connect:order:upload-document" ]
        } ],
        "summary" : "Upload a document for an order",
        "tags" : [ "Orders" ]
      }
    },
    "/v2/orders/actions/{action_id}" : {
      "get" : {
        "description" : "Use this API to check the status of an asynchronous action request  (e.g., `v2-acceptOrderLines`) and retrieve  any potential errors that occurred during the action processing.\nWe recommend integrating this API asynchronously.",
        "operationId" : "v2-getActionStatus",
        "parameters" : [ {
          "description" : "The unique identifier that is returned when an asynchronous action (e.g., `v2-acceptOrderLines`) is requested.",
          "example" : "1ba5fc4b-c4fd-4251-880b-3052e301bbd4",
          "explode" : false,
          "in" : "path",
          "name" : "action_id",
          "required" : true,
          "schema" : {
            "type" : "string"
          },
          "style" : "simple"
        } ],
        "responses" : {
          "200" : {
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/ActionResponse"
                }
              }
            },
            "description" : "Details of the action, including current status and potential errors"
          },
          "404" : {
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/Error"
                }
              }
            },
            "description" : "No matching action ID was found. The requested action does not exist."
          }
        },
        "security" : [ {
          "Bearer" : [ "connect:order:action:read" ]
        } ],
        "summary" : "Track an asynchronous action request",
        "tags" : [ "Orders" ]
      }
    },
    "/v2/orders/tracking/{tracking_id}" : {
      "get" : {
        "deprecated" : true,
        "description" : "This API is deprecated. Please use the new `v2-getActionStatus` API for retrieving the status of action request and potential errors.",
        "operationId" : "v2-getOrderTracking",
        "parameters" : [ {
          "deprecated" : true,
          "description" : "Order Tracking identifier in Mirakl Connect",
          "example" : "1ba5fc4b-c4fd-4251-880b-3052e301bbd4",
          "explode" : false,
          "in" : "path",
          "name" : "tracking_id",
          "required" : true,
          "schema" : {
            "type" : "string"
          },
          "style" : "simple"
        } ],
        "responses" : {
          "200" : {
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/OrderTrackingResponse"
                }
              }
            },
            "description" : "Order tracking information"
          },
          "404" : {
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/Error"
                }
              }
            },
            "description" : "The requested tracking information does not exist."
          }
        },
        "security" : [ {
          "Bearer" : [ "connect:order-tracking:read" ]
        } ],
        "summary" : "Retrieve tracking information",
        "tags" : [ "Orders" ]
      }
    },
    "/v2/orders/documents" : {
      "get" : {
        "description" : "Use this API to retrieve documents across orders with pagination support.\n\nEach document in the response includes its associated order_id along with metadata such as name, type, size, and last update date.\n\nDocuments are returned as a flat list sorted by updated_at in descending order (most recent first).\n",
        "operationId" : "v2-listOrderDocuments",
        "parameters" : [ {
          "description" : "Optional list of order identifiers in Mirakl Connect to filter documents",
          "example" : [ "0024_COMMERCIAL_ID-A", "0024_COMMERCIAL_ID-B" ],
          "explode" : true,
          "in" : "query",
          "name" : "order_ids",
          "schema" : {
            "type" : "array",
            "items" : {
              "type" : "string"
            }
          },
          "style" : "form"
        }, {
          "description" : "Filter by Connect document types",
          "explode" : true,
          "in" : "query",
          "name" : "types",
          "schema" : {
            "type" : "array",
            "items" : {
              "type" : "string",
              "enum" : [ "RETURN_LABEL", "CUSTOMER_INVOICE", "DELIVERY_SLIP", "SHIPMENT_DELIVERY_SLIP", "CHANNEL_SPECIFIC" ]
            }
          },
          "style" : "form"
        }, {
          "description" : "Filter by channel-specific document types.\n\nOnly applicable when one of the types is <code>CHANNEL_SPECIFIC</code>.\n",
          "explode" : true,
          "in" : "query",
          "name" : "channel_types",
          "schema" : {
            "type" : "array",
            "items" : {
              "type" : "string"
            }
          },
          "style" : "form"
        }, {
          "description" : "Select documents that were last updated in Mirakl Connect from the specified date time.",
          "explode" : true,
          "in" : "query",
          "name" : "updated_from",
          "schema" : {
            "type" : "string",
            "format" : "date-time",
            "example" : "2024-01-15T10:30:00Z"
          },
          "style" : "form"
        }, {
          "description" : "Token to access a specific page of results",
          "explode" : true,
          "in" : "query",
          "name" : "page_token",
          "schema" : {
            "type" : "string"
          },
          "style" : "form"
        }, {
          "description" : "Maximum number of documents to return per page",
          "explode" : true,
          "in" : "query",
          "name" : "limit",
          "schema" : {
            "type" : "integer",
            "default" : 50,
            "maximum" : 100,
            "minimum" : 1
          },
          "style" : "form"
        }, {
          "description" : "How the results should be sorted. Must follow \"sort=criterion,direction\" format as described in Mirakl API Documentation",
          "in" : "query",
          "name" : "sort",
          "schema" : {
            "type" : "string"
          }
        } ],
        "responses" : {
          "200" : {
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/OrderDocumentsPageResponse"
                }
              }
            },
            "description" : "List of documents sorted by updated_at in descending order"
          },
          "400" : {
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/Error"
                }
              }
            },
            "description" : "Invalid parameters."
          }
        },
        "security" : [ {
          "Bearer" : [ "connect:order-document:read" ]
        } ],
        "summary" : "List documents",
        "tags" : [ "Orders" ]
      }
    },
    "/v2/orders" : {
      "get" : {
        "description" : "Use this API to synchronize Mirakl Connect orders with your system. We recommend integrating this API in asynchronous mode. You can retrieve all orders updated since the last call, and update your referential accordingly. To do so, schedule a task that calls this API using the <code>updated_from</code> parameter valued with the last execution time of the task.",
        "operationId" : "v2-listOrders",
        "parameters" : [ {
          "description" : "Filter by Connect order identifiers",
          "explode" : true,
          "in" : "query",
          "name" : "order_ids",
          "schema" : {
            "type" : "array",
            "items" : {
              "type" : "string"
            }
          },
          "style" : "form"
        }, {
          "description" : "Filter by order statuses",
          "explode" : true,
          "in" : "query",
          "name" : "statuses",
          "schema" : {
            "type" : "array",
            "items" : {
              "type" : "string",
              "enum" : [ "AWAITING_FRAUD_CHECK", "AWAITING_ACCEPTANCE", "AWAITING_PAYMENT", "AWAITING_SHIPMENT", "SHIPPED", "DELIVERED", "CLOSED" ]
            }
          },
          "style" : "form"
        }, {
          "description" : "Select orders that were last updated in Mirakl Connect from the specified date time. If omitted and no `order_ids` filter is provided, defaults to 30 days ago.\n",
          "explode" : true,
          "in" : "query",
          "name" : "updated_from",
          "schema" : {
            "type" : "string",
            "format" : "date-time",
            "example" : "2021-01-01T08:30:00Z"
          },
          "style" : "form"
        }, {
          "description" : "Filter by fulfillment channel",
          "explode" : true,
          "in" : "query",
          "name" : "fulfillment_type",
          "schema" : {
            "type" : "string",
            "enum" : [ "FULFILLED_BY_SELLER", "FULFILLED_BY_PARTNER" ]
          },
          "style" : "form"
        }, {
          "description" : "Token to access the next or previous page",
          "explode" : true,
          "in" : "query",
          "name" : "page_token",
          "schema" : {
            "type" : "string"
          },
          "style" : "form"
        }, {
          "description" : "Maximum number of listed orders",
          "explode" : true,
          "in" : "query",
          "name" : "limit",
          "schema" : {
            "type" : "integer",
            "default" : 10,
            "maximum" : 100,
            "minimum" : 1
          },
          "style" : "form"
        }, {
          "description" : "How the results should be sorted. Must follow \"sort=criterion,direction\" format as described in Mirakl API Documentation",
          "in" : "query",
          "name" : "sort",
          "schema" : {
            "type" : "string"
          }
        } ],
        "responses" : {
          "200" : {
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/OrdersPageResponse"
                }
              }
            },
            "description" : "List of orders"
          }
        },
        "security" : [ {
          "Bearer" : [ "connect:order:read" ]
        } ],
        "summary" : "List Mirakl Connect orders",
        "tags" : [ "Orders" ]
      }
    },
    "/v2/orders/returns" : {
      "get" : {
        "description" : "Use this API to synchronize Mirakl Connect returns with your system. We recommend integrating this API in asynchronous mode. You can retrieve all returns updated since the last call, and update your referential accordingly. To do so, schedule a task that calls this API using the <code>updated_from</code> parameter valued with the last execution time of the task.",
        "operationId" : "v2-listReturns",
        "parameters" : [ {
          "description" : "Filter by Connect order identifiers",
          "explode" : true,
          "in" : "query",
          "name" : "order_ids",
          "schema" : {
            "type" : "array",
            "items" : {
              "type" : "string"
            },
            "maxItems" : 100
          },
          "style" : "form"
        }, {
          "description" : "Filter by return statuses",
          "explode" : true,
          "in" : "query",
          "name" : "statuses",
          "schema" : {
            "type" : "array",
            "items" : {
              "type" : "string",
              "enum" : [ "REQUEST_INITIATED", "REQUEST_DECLINED", "OPENED", "RECEIVED", "CLOSED" ]
            },
            "maxItems" : 100
          },
          "style" : "form"
        }, {
          "description" : "Select returns that were last updated in Mirakl Connect from the specified date time.",
          "explode" : true,
          "in" : "query",
          "name" : "updated_from",
          "schema" : {
            "type" : "string",
            "format" : "date-time",
            "example" : "2021-01-01T08:30:00Z"
          },
          "style" : "form"
        }, {
          "description" : "Token to access the next or previous page",
          "explode" : true,
          "in" : "query",
          "name" : "page_token",
          "schema" : {
            "type" : "string"
          },
          "style" : "form"
        }, {
          "description" : "Maximum number of listed returns",
          "explode" : true,
          "in" : "query",
          "name" : "limit",
          "schema" : {
            "type" : "integer",
            "default" : 10,
            "maximum" : 100,
            "minimum" : 1
          },
          "style" : "form"
        }, {
          "description" : "How the results should be sorted. Must follow \"sort=criterion,direction\" format as described in Mirakl API Documentation",
          "in" : "query",
          "name" : "sort",
          "schema" : {
            "type" : "string"
          }
        } ],
        "responses" : {
          "200" : {
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/ReturnsPageResponse"
                }
              }
            },
            "description" : "List of returns"
          }
        },
        "security" : [ {
          "Bearer" : [ "connect:order-return:read" ]
        } ],
        "summary" : "List Mirakl Connect returns",
        "tags" : [ "Returns" ]
      }
    },
    "/v2/orders/{order_id}/refund" : {
      "post" : {
        "description" : "Use this API to refund order lines (all or part) of an order.",
        "operationId" : "v2-refundOrderLines",
        "parameters" : [ {
          "description" : "Order identifier in Mirakl Connect",
          "example" : "0024_COMMERCIAL_ID-A",
          "explode" : false,
          "in" : "path",
          "name" : "order_id",
          "required" : true,
          "schema" : {
            "type" : "string"
          },
          "style" : "simple"
        } ],
        "requestBody" : {
          "content" : {
            "application/json" : {
              "schema" : {
                "$ref" : "#/components/schemas/RefundOrderLinesRequest"
              }
            }
          },
          "required" : true
        },
        "responses" : {
          "202" : {
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/AsynchronousActionResponse"
                }
              }
            },
            "description" : "Accepted. The refund request will be processed asynchronously."
          },
          "400" : {
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/Error"
                }
              }
            },
            "description" : "The order has not been updated because of wrong or missing parameters."
          },
          "404" : {
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/Error"
                }
              }
            },
            "description" : "The order has not been updated because the order does not exist."
          }
        },
        "security" : [ {
          "Bearer" : [ "connect:order:refund" ]
        } ],
        "summary" : "Refund order lines",
        "tags" : [ "Orders" ]
      }
    },
    "/v2/orders/actions" : {
      "post" : {
        "description" : "Use this API to report to Connect the results of actions performed on orders in your system, such as synchronizing  back orders. This enables enhanced error tracking while providing a centralized view of all  order actions and errors within the Connect interface.\n\nWe recommend integrating this API when developing a connector, such as for a CMS, to ensure comprehensive tracking  of order actions and errors. This integration is optional if you process orders directly via the Connect API without using a connector.\n",
        "operationId" : "v2-reportOrderActions",
        "requestBody" : {
          "content" : {
            "application/json" : {
              "schema" : {
                "$ref" : "#/components/schemas/ActionRequest"
              }
            }
          },
          "required" : true
        },
        "responses" : {
          "200" : {
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/ActionsCreatedResponse"
                }
              }
            },
            "description" : "Action successfully created"
          },
          "400" : {
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/Error"
                }
              }
            },
            "description" : "Invalid request - input does not match schema or contains invalid values"
          }
        },
        "security" : [ {
          "Bearer" : [ "connect:order:action:write" ]
        } ],
        "summary" : "Log order action results and errors",
        "tags" : [ "Orders" ]
      }
    },
    "/v2/orders/returns/{return_id}/trackings" : {
      "put" : {
        "description" : "Use this API to update the tracking information of a return from Mirakl Connect. The API also updates the return tracking information on the sales channel.",
        "operationId" : "v2-updateReturnTrackingInformation",
        "parameters" : [ {
          "description" : "Return identifier in Mirakl Connect",
          "example" : 70885,
          "explode" : false,
          "in" : "path",
          "name" : "return_id",
          "required" : true,
          "schema" : {
            "type" : "string"
          },
          "style" : "simple"
        } ],
        "requestBody" : {
          "content" : {
            "application/json" : {
              "schema" : {
                "$ref" : "#/components/schemas/UpdateReturnTrackingInformationRequest"
              }
            }
          },
          "required" : true
        },
        "responses" : {
          "202" : {
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/AsynchronousActionResponse"
                }
              }
            },
            "description" : "Accepted. The accept request will be processed asynchronously."
          },
          "400" : {
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/Error"
                }
              }
            },
            "description" : "The return tracking information has not been updated because of wrong or missing parameters."
          },
          "404" : {
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/Error"
                }
              }
            },
            "description" : "The return tracking information has not been updated because the return does not exist."
          }
        },
        "security" : [ {
          "Bearer" : [ "connect:order-return:update-tracking-information" ]
        } ],
        "summary" : "Update return tracking information",
        "tags" : [ "Returns" ]
      }
    }
  },
  "servers" : [ {
    "description" : "Connect Production endpoint",
    "url" : "https://miraklconnect.com/api"
  } ],
  "x-group-parameters" : true
}