{
"components": {
"parameters": {
"channel_id_path": {
"description": "Connect Channel identifier",
"explode": false,
"in": "path",
"name": "channel_id",
"required": true,
"schema": {
"type": "string",
"examples": [
"1234"
],
"minLength": 1
},
"style": "simple"
},
"store_id_path": {
"deprecated": true,
"description": "Store identifier in the channel",
"explode": false,
"in": "path",
"name": "store_id",
"required": true,
"schema": {
"type": "string",
"minLength": 1
},
"style": "simple"
}
},
"schemas": {
"ActionError": {
"type": "object",
"description": "Detailed information about an error encountered during action processing",
"properties": {
"code": {
"type": "string",
"description": "Machine-readable error code identifying the type of failure.\n\n\nEnum: `\"INVALID_INPUT\"`, `\"DATA_NOT_FOUND\"`, `\"UNEXPECTED\"`, `\"UNAVAILABLE\"`, `\"TOO_MANY_REQUEST\"`, `\"ACTION_NOT_SUPPORTED\"`, `\"ORDER_IN_WRONG_STATE\"`, `\"RETURN_IN_WRONG_STATE\"`, `\"CARRIER_NOT_SUPPORTED\"`, `\"MISSING_CARRIER\"`, `\"WAREHOUSE_ID_NOT_FOUND\"`, `\"WAREHOUSE_ID_REQUIRED\"`, `\"OTHER\"`\n"
},
"message": {
"type": "string",
"description": "Human-readable description of the error.\n",
"examples": [
"Cannot process cancellation: order is already shipped"
]
}
},
"required": [
"code",
"message"
]
},
"AddressRequest": {
"type": "object",
"properties": {
"additional_info": {
"type": "string",
"description": "Additional delivery instructions or notes."
},
"city": {
"type": "string",
"description": "City."
},
"company": {
"type": "string",
"description": "Company name, if applicable."
},
"country": {
"type": "string",
"description": "Country name."
},
"country_iso_code": {
"type": "string",
"description": "ISO 3166-1 alpha-3 country code (e.g. FRA, USA, DEU)."
},
"first_name": {
"type": "string",
"description": "Recipient's first name."
},
"last_name": {
"type": "string",
"description": "Recipient's last name."
},
"phone": {
"type": "string",
"description": "Phone number of the recipient."
},
"state": {
"type": "string",
"description": "State or region."
},
"street": {
"type": "string",
"description": "Street name and number."
},
"street_additional_info": {
"type": "string",
"description": "Additional street information (apartment, floor, building, etc.)."
},
"zip_code": {
"type": "string",
"description": "Postal or ZIP code."
}
},
"required": [
"city",
"last_name",
"street"
]
},
"AdjustmentRequest": {
"type": "object",
"properties": {
"channel_adjustment_id": {
"type": "string",
"description": "Unique identifier of the adjustment on the channel."
},
"created_at": {
"type": "string",
"format": "date-time",
"description": "Date and time when the adjustment was created on the channel."
},
"price": {
"$ref": "#/components/schemas/Money",
"description": "Refunded or cancelled amount, **tax excluded**. Taxes on the adjusted product amount are listed separately in `taxes`."
},
"quantity": {
"type": "integer",
"description": "Number of units affected by this adjustment. For a `CANCELATION`, this is the number of units cancelled. For a `REFUND`, this is the number of units for which the refund applies."
},
"reason": {
"type": "string",
"description": "Business reason for the adjustment.\n\nEnum: `\"CUSTOMER_CANCELATION\"`, `\"OUT_OF_STOCK\"`, `\"RETURN\"`, `\"ITEM_NOT_RECEIVED\"`, `\"AGREEMENT\"`, `\"DEFECT\"`, `\"UNABLE_TO_DELIVER\"`, `\"CHANNEL_SPECIFIC\"`\n"
},
"shipping_price": {
"$ref": "#/components/schemas/Money",
"description": "Refunded or cancelled shipping amount, **tax excluded**. Shipping taxes are listed separately in `shipping_taxes`."
},
"shipping_taxes": {
"type": "array",
"description": "Taxes on the adjusted shipping amount. These amounts are **not** included in `shipping_price`.",
"items": {
"$ref": "#/components/schemas/TaxRequest"
}
},
"taxes": {
"type": "array",
"description": "Refunded or cancelled taxes. These amounts should **not** be included in `price`.",
"items": {
"$ref": "#/components/schemas/TaxRequest"
}
},
"type": {
"type": "string",
"description": "Nature of the adjustment.\n\n`CANCELATION` means units were removed from the line (quantity reduction); connect will release the corresponding stock reservation.\n\n`REFUND` means a monetary compensation was issued without changing the ordered quantity.\n\n\nEnum: `\"REFUND\"`, `\"CANCELATION\"`\n"
}
},
"required": [
"channel_adjustment_id",
"created_at",
"price",
"quantity",
"reason",
"shipping_price",
"type"
]
},
"Attribute": {
"type": "object",
"discriminator": {
"mapping": {
"Boolean": "#/components/schemas/BooleanAttribute",
"List": "#/components/schemas/ListAttribute",
"Numeric": "#/components/schemas/NumericAttribute",
"Text": "#/components/schemas/TextAttribute"
},
"propertyName": "type"
},
"properties": {
"configuration_modes": {
"type": "array",
"description": "List of accepted configuration modes for providing the value",
"items": {
"$ref": "#/components/schemas/ConfigurationMode"
},
"minItems": 1
},
"descriptions": {
"type": "array",
"description": "Additional attribute descriptions",
"items": {
"$ref": "#/components/schemas/Localized"
}
},
"id": {
"type": "string",
"description": "Id of the attribute",
"minLength": 1
},
"labels": {
"type": "array",
"description": "Labels of the attribute",
"items": {
"$ref": "#/components/schemas/Localized"
},
"minItems": 1
},
"requirement_level": {
"type": "string",
"description": "Requirement level of the attribute\n\nEnum: `\"OPTIONAL\"`, `\"RECOMMENDED\"`, `\"REQUIRED\"`\n"
},
"type": {
"$ref": "#/components/schemas/AttributeType"
}
},
"required": [
"configuration_modes",
"id",
"labels",
"requirement_level",
"type"
]
},
"AttributeContext": {
"type": "object",
"description": "Additional context information about where this attribute label is located within \nthe marketplace's data structure. This helps with catalog transformation.\n",
"properties": {
"labels": {
"type": "array",
"description": "List of labels context for the attribute",
"items": {
"$ref": "#/components/schemas/Localized"
}
},
"path": {
"type": "string",
"description": "The path indicating where this attribute label is located in the marketplace's data structure.\nUsed for data mapping and transformation purposes.\n"
}
}
},
"AttributeType": {
"type": "string",
"description": "Enum: `\"Boolean\"`, `\"Numeric\"`, `\"Text\"`, `\"List\"`\n"
},
"BillingInfoRequest": {
"type": "object",
"description": "Billing information for invoice and payment purposes. Optional.",
"properties": {
"address": {
"$ref": "#/components/schemas/AddressRequest",
"description": "Billing address used for invoice and payment purposes."
}
}
},
"BooleanAttribute": {
"allOf": [
{
"$ref": "#/components/schemas/Attribute"
},
{
"type": "object",
"properties": {
"default_value": {
"type": "boolean",
"description": "Default boolean value of the attribute, used for required attributes only"
}
}
}
]
},
"BusinessInformationInput": {
"type": "object",
"properties": {
"currency": {
"type": "string",
"description": "Currency tag, expected in ISO 4217 format. Cannot be changed later.",
"example": "USD",
"maxLength": 3,
"minLength": 1,
"pattern": "^[A-Z]{3}$"
},
"kyc_status": {
"type": "string",
"description": "KYC (Know Your Customer) status of the configuration.\nIf KYC is not required, the status will be set to NOT_REQUIRED.\n\n\nEnum: `\"PENDING_SUBMISSION\"`, `\"PENDING_APPROVAL\"`, `\"REFUSED\"`, `\"APPROVED\"`, `\"NOT_REQUIRED\"`\n"
},
"kyc_status_reason": {
"type": "string",
"description": "Reason of a problem with the KYC configuration.\nThis information can be displayed to the seller if needed in Mirakl Connect\n"
},
"missing_configuration": {
"type": "boolean",
"description": "Indicates if the store is missing configuration to be properly functioning.\nThis can be either required information not filled or documents not sent.\nFalse indicates that there is no missing configuration for the store.\nTrue will raise a warning to the seller stating that they need to configure their store.\n"
},
"payment_information_configured": {
"type": "boolean",
"description": "Indicates if a payment method is configured for the store.\n"
},
"payment_information_warning": {
"type": "string",
"description": "Reason of a problem with the payment configuration.\nA null value indicates no problems encountered, payment configuration is valid.\nAny content will raise a warning in Mirakl Connect for the seller stating that there might be a problem \nwith how their payment method is configured in the Marketplace where their store is located.\n"
},
"quality_suspension_reasons": {
"type": "array",
"description": "List of reasons for the suspension of the store related to quality standard defined by the Marketplace.\nA null or empty value indicates no problems encountered, store is not suspended.\nAny content will raise a warning in Mirakl Connect for the seller stating that there might be \nquality issues with their store.\n",
"items": {
"$ref": "#/components/schemas/QualitySuspensionReason"
}
},
"shipping_warning": {
"type": "string",
"description": "Reason of a problem with the shipping configuration.\nA null value indicates no problems encountered, shipping configuration is valid.\n"
},
"sub_channels": {
"type": "array",
"description": "List of sales channels inside the Marketplace where the store is located.\nThis is useful for marketplaces where sellers have a global product catalog with multiple sales channels.\nOne store can be provided per seller with as many sub channels as the sales channels the store operates in.\nBy doing so, the store will receive offers, prices and stock updates per sub channel. Product events will come once for the store.\n\nSub channels are a critical part, it can impact the business of a seller. \nBy deleting one the seller participates in, all offers synchronization will stop for the marketplace sales channel it relates to. Orders should also not be sent anymore to Connect.\n\nBehavior for the sub channel field:\n- Can be null if it was never filled before.\n- Can be an empty array if it was never filled before.\n- Cannot be emptied if there was at least one item before.\nHow to:\n- Add a new sub channel: add it to the list.\n- Update an existing sub channel: update the item in the list with the same id.\n- Delete an existing sub channel: remove it from the list.\n",
"items": {
"$ref": "#/components/schemas/SubChannel"
}
},
"updated_at": {
"type": "string",
"format": "date-time",
"description": "Date of the last update of the store information.\nOlder event for a store will not be saved.\n"
}
},
"required": [
"currency",
"updated_at"
]
},
"CarrierRequest": {
"type": "object",
"properties": {
"channel_carrier_id": {
"type": "string",
"description": "Unique identifier of the carrier on the channel"
},
"name": {
"type": "string",
"description": "Display name of the carrier"
}
},
"required": [
"channel_carrier_id",
"name"
]
},
"ChannelCatalogCapabilities": {
"type": "object",
"properties": {
"offer_configuration": {
"$ref": "#/components/schemas/OfferConfiguration"
},
"use_case_configurations": {
"$ref": "#/components/schemas/UseCaseConfigurations"
}
}
},
"ConfigurationMode": {
"type": "string",
"description": "The user can configure an attribute via:\n- `CONSTANT`: a constant value for all the catalog\n- `VARIABLE`: a value that can be different for each item, based on an attribute\n\n\nEnum: `\"CONSTANT\"`, `\"VARIABLE\"`\n"
},
"ConnectStandardAttribute": {
"type": "string",
"description": "Equivalent of the attribute in Connect standard taxonomy\n\nEnum: `\"PRODUCT_ID\"`, `\"CATEGORY\"`, `\"BRAND\"`, `\"TITLE\"`, `\"DESCRIPTION\"`, `\"IMAGE\"`, `\"GTIN\"`, `\"VARIANT_GROUP_CODE\"`\n"
},
"CustomAttributeBooleanRequest": {
"allOf": [
{
"$ref": "#/components/schemas/CustomAttributeRequest"
},
{
"type": "object",
"properties": {
"value": {
"type": "boolean",
"description": "Attribute's boolean value",
"examples": [
"true"
]
}
}
}
],
"required": [
"id",
"type",
"value"
]
},
"CustomAttributeDateRequest": {
"allOf": [
{
"$ref": "#/components/schemas/CustomAttributeRequest"
},
{
"type": "object",
"properties": {
"value": {
"type": "string",
"format": "date-time",
"description": "Attribute's date value",
"examples": [
"2024-01-27T09:24:36.326Z"
]
}
}
}
],
"required": [
"id",
"type",
"value"
]
},
"CustomAttributeListRequest": {
"allOf": [
{
"$ref": "#/components/schemas/CustomAttributeRequest"
},
{
"type": "object",
"properties": {
"value": {
"type": "array",
"description": "Additional attribute values",
"items": {
"type": "string",
"maxLength": 10000
},
"maxItems": 1000,
"minItems": 1
}
}
}
],
"required": [
"id",
"type",
"value"
]
},
"CustomAttributeNumericRequest": {
"allOf": [
{
"$ref": "#/components/schemas/CustomAttributeRequest"
},
{
"type": "object",
"properties": {
"value": {
"type": "number",
"format": "with decimals",
"description": "Attribute's numeric value",
"examples": [
"1234.56"
],
"maximum": 1000000000,
"minimum": -1000000000
}
}
}
],
"required": [
"id",
"type",
"value"
]
},
"CustomAttributeRequest": {
"type": "object",
"description": "A custom attribute.",
"discriminator": {
"mapping": {
"BOOLEAN": "#/components/schemas/CustomAttributeBooleanRequest",
"DATE": "#/components/schemas/CustomAttributeDateRequest",
"LIST": "#/components/schemas/CustomAttributeListRequest",
"NUMERIC": "#/components/schemas/CustomAttributeNumericRequest",
"STRING": "#/components/schemas/CustomAttributeStringRequest"
},
"propertyName": "type"
},
"properties": {
"id": {
"type": "string",
"description": "Attribute's id",
"maxLength": 255,
"minLength": 1
},
"type": {
"type": "string",
"description": "The attribute's type\n\nEnum: `\"STRING\"`, `\"NUMERIC\"`, `\"BOOLEAN\"`, `\"DATE\"`, `\"LIST\"`\n"
}
},
"required": [
"id",
"type"
]
},
"CustomAttributeStringRequest": {
"allOf": [
{
"$ref": "#/components/schemas/CustomAttributeRequest"
},
{
"type": "object",
"properties": {
"value": {
"type": "string",
"description": "Attribute's string value",
"examples": [
"red"
],
"maxLength": 100000
}
}
}
],
"required": [
"id",
"type",
"value"
]
},
"CustomAttributesRequest": {
"type": "array",
"description": "Custom attributes",
"items": {
"$ref": "#/components/schemas/CustomAttributeRequest"
},
"maxItems": 1000,
"minItems": 0
},
"Diagnostic": {
"type": "object",
"description": "Represents a diagnostic message related to a catalog item.",
"properties": {
"channel_attribute_id": {
"type": [
"string",
"null"
],
"description": "The identifier of the channel attribute related to the diagnostic."
},
"channel_diagnostic_id": {
"type": [
"string",
"null"
],
"description": "The diagnostic identifier in the channel."
},
"connector_override_action": {
"type": [
"string",
"null"
],
"deprecated": true,
"description": "Enum: `\"REMOVED\"`, `null`\n"
},
"message": {
"type": "string",
"description": "The diagnostic message."
}
},
"required": [
"message"
]
},
"DiscountPricePeriod": {
"type": "object",
"description": "Configuration for discount price period.",
"properties": {
"end_date": {
"$ref": "#/components/schemas/PricingConfigurationField"
},
"start_date": {
"$ref": "#/components/schemas/PricingConfigurationField"
},
"support": {
"type": "string",
"description": "Support for the discount price period\n\nEnum: `\"SUPPORTED\"`, `\"UNSUPPORTED\"`\n"
}
},
"required": [
"end_date",
"start_date",
"support"
]
},
"DocumentOriginRequest": {
"type": "object",
"properties": {
"channel_id": {
"type": "string",
"description": "Unique identifier of the sales channel"
},
"channel_store_id": {
"type": "string",
"description": "Store identifier on the sales channel."
},
"sub_channel_code": {
"type": "string",
"description": "Code of the sub-channel on which the document was uploaded."
}
},
"required": [
"channel_id",
"channel_store_id"
]
},
"EmbeddedAttribute": {
"type": "object",
"discriminator": {
"mapping": {
"Decimal": "#/components/schemas/EmbeddedDecimalAttribute",
"Integer": "#/components/schemas/EmbeddedIntegerAttribute",
"List": "#/components/schemas/EmbeddedListAttribute",
"Media": "#/components/schemas/EmbeddedMediaAttribute",
"Text": "#/components/schemas/EmbeddedTextAttribute"
},
"propertyName": "type"
},
"properties": {
"connect_standard_attributes": {
"type": "array",
"description": "Map one attribute per standard type (e.g., your main image attribute to IMAGE). \nFor multi-lingual catalogs, multiple locale-specific attributes may map to TITLE and DESCRIPTION.\n",
"items": {
"$ref": "#/components/schemas/ConnectStandardAttribute"
}
},
"context": {
"$ref": "#/components/schemas/AttributeContext"
},
"descriptions": {
"type": "array",
"description": "Additional attribute descriptions with their associated locale",
"items": {
"$ref": "#/components/schemas/Localized"
}
},
"id": {
"$ref": "#/components/schemas/ProductAttributeId"
},
"labels": {
"type": "array",
"description": "Labels for the attribute with their associated locale",
"items": {
"$ref": "#/components/schemas/Localized"
},
"minItems": 1
},
"requirement_level": {
"$ref": "#/components/schemas/RequirementLevel"
},
"type": {
"$ref": "#/components/schemas/ProductAttributeType"
}
},
"required": [
"descriptions",
"id",
"labels",
"requirement_level",
"type"
]
},
"EmbeddedDecimalAttribute": {
"type": "object",
"allOf": [
{
"$ref": "#/components/schemas/EmbeddedAttribute"
}
],
"examples": [
"42.3"
],
"properties": {
"maximum": {
"type": "number",
"format": "double",
"description": "The maximum allowed value (inclusive)",
"example": 1000000
},
"minimum": {
"type": "number",
"format": "double",
"description": "The minimum number allowed (inclusive)",
"example": 0
},
"scale": {
"type": "integer",
"description": "Number of decimal places",
"minimum": 0
}
},
"required": [
"scale"
]
},
"EmbeddedIntegerAttribute": {
"type": "object",
"allOf": [
{
"$ref": "#/components/schemas/EmbeddedAttribute"
}
],
"examples": [
"42"
],
"properties": {
"maximum": {
"type": "integer",
"format": "int64",
"description": "The maximum Number allowed",
"example": 9999
},
"minimum": {
"type": "integer",
"format": "int64",
"description": "The minimum number allowed",
"example": -9999
}
}
},
"EmbeddedListAttribute": {
"type": "object",
"allOf": [
{
"$ref": "#/components/schemas/EmbeddedAttribute"
}
],
"properties": {
"available_values": {
"type": "array",
"description": "List of available values for the attribute",
"items": {
"$ref": "#/components/schemas/ProductListAttributeValue"
},
"maxItems": 1000,
"minItems": 1
},
"max_values": {
"type": "integer",
"description": "Maximum number of values a given product can have for this attribute",
"minimum": 1
}
},
"required": [
"available_values"
]
},
"EmbeddedMediaAttribute": {
"type": "object",
"allOf": [
{
"$ref": "#/components/schemas/EmbeddedAttribute"
}
],
"properties": {
"media_type": {
"type": "string",
"description": "Specifies the type of media associated with the attribute.\nWhen `media_type` is set to `IMAGE`, this attribute serves the role of an Image (e.g., for display or illustration purposes).\n\n\nEnum: `\"IMAGE\"`, `\"OTHER\"`\n"
}
}
},
"EmbeddedTextAttribute": {
"type": "object",
"allOf": [
{
"$ref": "#/components/schemas/EmbeddedAttribute"
}
],
"properties": {
"max_length": {
"type": "integer",
"description": "Maximum length for Text attributes",
"example": 255,
"minimum": 1
},
"min_length": {
"type": "integer",
"description": "Minimum length for Text attributes",
"example": 3,
"minimum": 0
}
}
},
"EqualsRuleConditionPayload": {
"type": "object",
"properties": {
"attribute": {
"$ref": "#/components/schemas/ProductAttributeId"
},
"value": {
"$ref": "#/components/schemas/EqualsRuleConditionPayloadValue"
}
},
"required": [
"attribute",
"value"
]
},
"EqualsRuleConditionPayloadValue": {
"description": "The value to compare against",
"oneOf": [
{
"type": "string"
},
{
"type": "number"
},
{
"type": "boolean"
}
]
},
"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"
]
}
},
"required": [
"code",
"message"
]
},
"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"
]
}
},
"required": [
"message"
]
},
"FulfillmentRequest": {
"type": "object",
"properties": {
"code": {
"type": "string",
"description": "Identifier of the fulfillment partner. Only meaningful when `type` is `FULFILLED_BY_PARTNER`. Ignored for `FULFILLED_BY_SELLER`."
},
"type": {
"type": "string",
"description": "Indicates who is responsible for physically fulfilling the order.\n\n\nEnum: `\"FULFILLED_BY_SELLER\"`, `\"FULFILLED_BY_PARTNER\"`\n"
}
},
"required": [
"type"
]
},
"InRuleConditionPayload": {
"type": "object",
"properties": {
"attribute": {
"$ref": "#/components/schemas/ProductAttributeId"
},
"values": {
"type": "array",
"description": "List of values to check against",
"items": {
"$ref": "#/components/schemas/InRuleConditionPayloadValue"
}
}
},
"required": [
"attribute",
"values"
]
},
"InRuleConditionPayloadValue": {
"oneOf": [
{
"type": "string"
},
{
"type": "number"
},
{
"type": "boolean"
}
]
},
"IsSetRuleConditionPayload": {
"type": "object",
"properties": {
"attribute": {
"$ref": "#/components/schemas/ProductAttributeId"
}
},
"required": [
"attribute"
]
},
"ListAttribute": {
"allOf": [
{
"$ref": "#/components/schemas/Attribute"
},
{
"type": "object",
"properties": {
"default_values": {
"type": "array",
"description": "Default values of the attribute (use the id in your attribute values), used for required attributes only",
"items": {
"type": "string"
}
},
"max_size": {
"type": "integer",
"description": "Max number of values to select. `1` means selection of a single value.",
"minimum": 1
},
"values": {
"type": "array",
"items": {
"$ref": "#/components/schemas/ListAttributeItem",
"description": "List of available values"
},
"maxItems": 100
}
}
}
],
"required": [
"max_size",
"values"
]
},
"ListAttributeItem": {
"type": "object",
"properties": {
"id": {
"type": "string",
"description": "id",
"minLength": 1
},
"labels": {
"type": "array",
"items": {
"$ref": "#/components/schemas/Localized"
}
}
},
"required": [
"id"
]
},
"Locale": {
"type": "string",
"description": "The language format can be ISO-639 or ISO-639_ISO-3166",
"examples": [
"en_US"
]
},
"Localized": {
"type": "object",
"properties": {
"locale": {
"$ref": "#/components/schemas/Locale"
},
"value": {
"type": "string",
"description": "The localized value in this locale"
}
},
"required": [
"locale",
"value"
]
},
"Money": {
"type": "object",
"properties": {
"amount": {
"type": "number",
"description": "Monetary amount. Must be zero or positive.",
"minimum": 0
},
"currency": {
"type": "string",
"description": "ISO 4217 currency code (e.g. EUR, USD, GBP)."
}
},
"required": [
"amount",
"currency"
]
},
"NumericAttribute": {
"allOf": [
{
"$ref": "#/components/schemas/Attribute"
},
{
"type": "object",
"properties": {
"default_value": {
"type": "number",
"description": "Default numeric value of the attribute, used for required attributes only"
}
}
}
]
},
"OfferConfiguration": {
"type": "object",
"properties": {
"custom_attributes": {
"type": "array",
"description": "Attributes the sellers must configure for offer-related features",
"items": {
"$ref": "#/components/schemas/Attribute"
}
},
"pricing_configuration": {
"$ref": "#/components/schemas/PricingConfiguration"
}
}
},
"OrderLineRequest": {
"type": "object",
"properties": {
"adjustments": {
"type": "array",
"description": "Post-order modifications on this line, such as partial cancellations or refunds. Each adjustment represents a discrete event that occurred after the order was placed. Adjustments are append-only: send all past adjustments on every upsert.",
"items": {
"$ref": "#/components/schemas/AdjustmentRequest"
}
},
"can_cancel": {
"type": "boolean",
"description": "Whether the order line is currently eligible for cancellation."
},
"can_refund": {
"type": "boolean",
"description": "Whether the order line is currently eligible for refund."
},
"channel_order_line_id": {
"type": "string",
"description": "Unique identifier of the order line on the channel. Must be unique across **all** orders of the channel, not just within the current order."
},
"created_at": {
"type": "string",
"format": "date-time",
"description": "Date and time when the order line was created on the channel."
},
"custom_attributes": {
"$ref": "#/components/schemas/CustomAttributesRequest"
},
"price": {
"$ref": "#/components/schemas/Money",
"description": "Total price of the order line, **tax excluded**. This is the price for the entire order line, i.e. `unit price × quantity`, not the unit price. Taxes are listed separately in the `taxes` array and should **not** be included in this amount."
},
"product": {
"$ref": "#/components/schemas/ProductRequest"
},
"quantity": {
"type": "integer",
"description": "Number of units ordered for this product."
},
"shipping_taxes": {
"type": "array",
"description": "Taxes applied to the shipping price. These amounts are **not** included in `total_shipping_price`.",
"items": {
"$ref": "#/components/schemas/TaxRequest"
}
},
"status": {
"type": "string",
"description": "Current lifecycle status of the order line. Lines within the same order can have different statuses (e.g. one line shipped while another is still awaiting shipment). See `order.status` for the meaning of each value.\n\nEnum: `\"AWAITING_ACCEPTANCE\"`, `\"AWAITING_FRAUD_CHECK\"`, `\"AWAITING_PAYMENT\"`, `\"AWAITING_SHIPMENT\"`, `\"CHANNEL_SPECIFIC\"`, `\"CLOSED\"`, `\"DELIVERED\"`, `\"SHIPPED\"`\n"
},
"status_reason": {
"type": "string",
"description": "Reason that explains why this order line reached its current status. See `order.status_reason` for the meaning of each value.\n\nEnum: `\"ACCEPTANCE_TIMEOUT\"`, `\"AUTOMATICALLY_CLOSED\"`, `\"CANCELED\"`, `\"FRAUD_CHECK_FAILED\"`, `\"FRAUD_CHECK_TIMEOUT\"`, `\"PAYMENT_TIMEOUT\"`, `\"REFUNDED\"`, `\"REFUSED\"`, `\"REFUSED_PAYMENT\"`\n"
},
"taxes": {
"type": "array",
"description": "Taxes applied to the product price. These amounts should **not** be included in `price`. Each entry represents a distinct tax type (e.g. VAT, GST).",
"items": {
"$ref": "#/components/schemas/TaxRequest"
}
},
"total_shipping_price": {
"$ref": "#/components/schemas/Money",
"description": "Total shipping price for this order line, **tax excluded**. This is the total amount (not per-unit) for the shipping of this line. Shipping taxes are listed separately in `shipping_taxes`."
},
"updated_at": {
"type": "string",
"format": "date-time",
"description": "Date and time of the last update of this order line on the channel."
}
},
"required": [
"can_cancel",
"can_refund",
"channel_order_line_id",
"created_at",
"price",
"product",
"quantity",
"status",
"total_shipping_price",
"updated_at"
]
},
"OrderRequest": {
"type": "object",
"properties": {
"billing_info": {
"$ref": "#/components/schemas/BillingInfoRequest"
},
"channel_order_id": {
"type": "string",
"description": "Unique identifier of the order on the channel. Must be unique across all orders of the channel. Combined with `origin.channel_id`, it forms the global Connect order identifier."
},
"channel_updated_at": {
"type": "string",
"format": "date-time",
"description": "Date and time of the last update on the channel. Connect uses this timestamp to handle updates versioning: an order is updated only if this value is greater or equal to the current stored value in Connect. This means that an update whose `channel_updated_at` is older than the currently stored value will be silently ignored."
},
"created_at": {
"type": "string",
"format": "date-time",
"description": "Date and time when the order was placed on the channel."
},
"custom_attributes": {
"$ref": "#/components/schemas/CustomAttributesRequest"
},
"fulfillment": {
"$ref": "#/components/schemas/FulfillmentRequest"
},
"has_incident": {
"type": "boolean",
"description": "Indicates whether the order has an active incident or dispute."
},
"order_lines": {
"type": "array",
"description": "Lines composing the order. Each line corresponds to one distinct product in a given quantity.",
"items": {
"$ref": "#/components/schemas/OrderLineRequest"
},
"minItems": 1
},
"shipping_info": {
"$ref": "#/components/schemas/ShippingInfoRequest"
},
"status": {
"type": "string",
"description": "Current lifecycle status of the order.\n\n- `AWAITING_FRAUD_CHECK`: Order is pending fraud verification before being confirmed.\n- `AWAITING_ACCEPTANCE`: Order has been placed and is waiting for the seller to accept or refuse it.\n- `AWAITING_PAYMENT`: Order has been accepted but payment has not yet been confirmed.\n- `AWAITING_SHIPMENT`: Order is paid and accepted, waiting for the seller to ship.\n- `SHIPPED`: Order has been handed to a carrier.\n- `DELIVERED`: Order has been delivered to the buyer.\n- `CLOSED`: Order lifecycle is complete (delivered, cancelled, or refunded).\n- `CHANNEL_SPECIFIC`: The order has a status specific to the channel that does not map to any standard Connect status. Use `status_reason` to carry additional context.\n\n\nEnum: `\"AWAITING_ACCEPTANCE\"`, `\"AWAITING_FRAUD_CHECK\"`, `\"AWAITING_PAYMENT\"`, `\"AWAITING_SHIPMENT\"`, `\"CHANNEL_SPECIFIC\"`, `\"CLOSED\"`, `\"DELIVERED\"`, `\"SHIPPED\"`\n"
},
"status_reason": {
"type": "string",
"description": "Reason that explains why the order reached its current status.\nTypically used for terminal or exceptional statuses (e.g. `CLOSED`, `CHANNEL_SPECIFIC`).\n\n- `ACCEPTANCE_TIMEOUT`: Seller did not accept the order within the acceptance deadline.\n- `AUTOMATICALLY_CLOSED`: Order was automatically closed by the channel.\n- `CANCELED`: Order was cancelled.\n- `FRAUD_CHECK_FAILED`: Order failed fraud verification.\n- `FRAUD_CHECK_TIMEOUT`: Fraud check was not completed within the deadline.\n- `PAYMENT_TIMEOUT`: Payment was not received within the deadline.\n- `REFUNDED`: Order was fully refunded.\n- `REFUSED`: Order was refused by the seller.\n- `REFUSED_PAYMENT`: Payment was refused.\n\n\nEnum: `\"ACCEPTANCE_TIMEOUT\"`, `\"AUTOMATICALLY_CLOSED\"`, `\"CANCELED\"`, `\"FRAUD_CHECK_FAILED\"`, `\"FRAUD_CHECK_TIMEOUT\"`, `\"PAYMENT_TIMEOUT\"`, `\"REFUNDED\"`, `\"REFUSED\"`, `\"REFUSED_PAYMENT\"`\n"
},
"sub_channel_code": {
"type": "string",
"description": "Code of the sub-channel"
}
},
"required": [
"channel_order_id",
"channel_updated_at",
"created_at",
"fulfillment",
"order_lines",
"shipping_info",
"status"
]
},
"OriginRequest": {
"type": "object",
"properties": {
"channel_id": {
"type": "string",
"description": "Unique identifier of the sales channel"
},
"channel_store_id": {
"type": "string",
"description": "Store identifier on the sales channel."
}
},
"required": [
"channel_id",
"channel_store_id"
]
},
"PricingConfiguration": {
"type": "object",
"description": "Configuration for pricing capabilities.",
"properties": {
"discount_price_period": {
"$ref": "#/components/schemas/DiscountPricePeriod"
}
}
},
"PricingConfigurationField": {
"type": "object",
"description": "Pricing configuration field",
"properties": {
"requirement_level": {
"type": "string",
"description": "Requirement level of the attribute\n\nEnum: `\"OPTIONAL\"`, `\"REQUIRED\"`\n"
}
},
"required": [
"requirement_level"
]
},
"ProductAttribute": {
"type": "object",
"description": "An attribute of a product",
"discriminator": {
"mapping": {
"List": "#/components/schemas/ProductListAttribute",
"Text": "#/components/schemas/ProductTextAttribute"
},
"propertyName": "type"
},
"properties": {
"descriptions": {
"type": "array",
"description": "Additional attribute descriptions with their associated locale",
"items": {
"$ref": "#/components/schemas/Localized"
}
},
"id": {
"$ref": "#/components/schemas/ProductAttributeId"
},
"labels": {
"type": "array",
"description": "Labels for the attribute with their associated locale",
"items": {
"$ref": "#/components/schemas/Localized"
},
"minItems": 1
},
"type": {
"$ref": "#/components/schemas/ProductAttributeType"
}
},
"required": [
"id",
"labels",
"type"
]
},
"ProductAttributeId": {
"type": "string",
"description": "Anything that uniquely identifies the product attribute.",
"examples": [
"COLOR"
],
"maxLength": 255,
"minLength": 1
},
"ProductAttributeType": {
"type": "string",
"description": "Each type of attributes has a different set of properties\n\nEnum: `\"Text\"`, `\"Integer\"`, `\"Decimal\"`, `\"List\"`, `\"Media\"`\n"
},
"ProductListAttribute": {
"allOf": [
{
"$ref": "#/components/schemas/ProductAttribute"
},
{
"type": "object",
"properties": {
"available_values": {
"type": "array",
"description": "List of available values for the attribute",
"items": {
"$ref": "#/components/schemas/ProductListAttributeValue"
},
"maxItems": 1000,
"minItems": 1
},
"max_values": {
"type": "integer",
"description": "Maximum number of values a given product can have for this attribute",
"minimum": 1
}
}
}
],
"required": [
"available_values"
]
},
"ProductListAttributeValue": {
"type": "object",
"properties": {
"id": {
"type": "string",
"description": "Value of the attribute"
},
"labels": {
"type": "array",
"description": "Labels for the attribute value with their associated locale",
"items": {
"$ref": "#/components/schemas/Localized"
},
"minItems": 1
}
},
"required": [
"id"
]
},
"ProductRequest": {
"type": "object",
"properties": {
"id": {
"type": "string",
"description": "Unique identifier of the product on the channel."
},
"thumbnail_url": {
"type": "string",
"format": "uri",
"description": "URL of a product image."
},
"title": {
"type": "string",
"description": "Display name of the product as shown to the buyer."
}
},
"required": [
"id",
"title"
]
},
"ProductTextAttribute": {
"allOf": [
{
"$ref": "#/components/schemas/ProductAttribute"
},
{
"type": "object"
}
]
},
"ProductType": {
"type": "object",
"properties": {
"context": {
"$ref": "#/components/schemas/ProductTypeContext"
},
"embedded_attributes": {
"type": "array",
"description": "List of embedded attributes for the product type",
"items": {
"$ref": "#/components/schemas/EmbeddedAttribute"
}
},
"labels": {
"type": "array",
"description": "List of labels for the product type",
"items": {
"$ref": "#/components/schemas/Localized"
},
"minItems": 1
},
"rules": {
"type": "array",
"description": "List of rules associated with the product type",
"items": {
"$ref": "#/components/schemas/ProductTypeRuleReference"
}
}
},
"required": [
"embedded_attributes",
"labels"
]
},
"ProductTypeContext": {
"type": "object",
"description": "Additional context information about where this product type label is located within \nthe marketplace's data structure. This helps with catalog transformation.\n",
"properties": {
"labels": {
"type": "array",
"description": "List of labels context for the product type",
"items": {
"$ref": "#/components/schemas/Localized"
}
}
}
},
"ProductTypeId": {
"type": "string",
"description": "Anything that uniquely identifies the product type.",
"examples": [
"Smartphones"
],
"maxLength": 255,
"minLength": 1
},
"ProductTypeRule": {
"type": "object",
"description": "A rule associated with the product type",
"properties": {
"id": {
"type": "string",
"description": "Unique identifier of the rule",
"example": "rule-1234"
},
"then": {
"$ref": "#/components/schemas/ProductTypeRuleActionAll"
},
"when": {
"$ref": "#/components/schemas/ProductTypeRuleCondition"
}
},
"required": [
"id",
"then",
"when"
]
},
"ProductTypeRuleActionAll": {
"type": "object",
"description": "A set of actions to apply when the rule is triggered",
"properties": {
"all": {
"type": "array",
"description": "List of actions to apply",
"items": {
"$ref": "#/components/schemas/ProductTypeRuleActionRedefineAttribute"
}
}
},
"required": [
"all"
]
},
"ProductTypeRuleActionRedefineAttribute": {
"type": "object",
"description": "An action to redefine an attribute's properties",
"properties": {
"redefine": {
"$ref": "#/components/schemas/RedefineAttributeActionPayload"
}
},
"required": [
"redefine"
],
"title": "Redefine attribute"
},
"ProductTypeRuleCondition": {
"description": "Condition to trigger the rule",
"oneOf": [
{
"$ref": "#/components/schemas/ProductTypeRuleConditionAll"
},
{
"$ref": "#/components/schemas/ProductTypeRuleConditionAny"
},
{
"$ref": "#/components/schemas/ProductTypeRuleConditionNot"
},
{
"$ref": "#/components/schemas/ProductTypeRuleConditionIsSet"
},
{
"$ref": "#/components/schemas/ProductTypeRuleConditionEquals"
},
{
"$ref": "#/components/schemas/ProductTypeRuleConditionIn"
}
]
},
"ProductTypeRuleConditionAll": {
"type": "object",
"description": "A set of conditions that must all be met to trigger the rule",
"properties": {
"all": {
"type": "array",
"description": "List of conditions to satisfy",
"items": {
"$ref": "#/components/schemas/ProductTypeRuleCondition"
}
}
},
"required": [
"all"
],
"title": "All"
},
"ProductTypeRuleConditionAny": {
"type": "object",
"description": "A set of conditions where at least one must be met to trigger the rule",
"properties": {
"any": {
"type": "array",
"description": "List of conditions where at least one must be satisfied",
"items": {
"$ref": "#/components/schemas/ProductTypeRuleCondition"
}
}
},
"required": [
"any"
],
"title": "Any"
},
"ProductTypeRuleConditionEquals": {
"type": "object",
"description": "A condition that checks if a specific attribute equals a given value",
"properties": {
"equals": {
"$ref": "#/components/schemas/EqualsRuleConditionPayload"
}
},
"required": [
"equals"
],
"title": "Equals"
},
"ProductTypeRuleConditionIn": {
"type": "object",
"description": "A condition that checks if a specific attribute's value is in a given list of",
"properties": {
"in": {
"$ref": "#/components/schemas/InRuleConditionPayload"
}
},
"required": [
"in"
],
"title": "In"
},
"ProductTypeRuleConditionIsSet": {
"type": "object",
"description": "A condition that checks if a specific attribute is set",
"properties": {
"isSet": {
"$ref": "#/components/schemas/IsSetRuleConditionPayload"
}
},
"required": [
"isSet"
],
"title": "IsSet"
},
"ProductTypeRuleConditionNot": {
"type": "object",
"description": "A condition that must not be met to trigger the rule",
"properties": {
"not": {
"$ref": "#/components/schemas/ProductTypeRuleCondition"
}
},
"required": [
"not"
],
"title": "Not"
},
"ProductTypeRuleReference": {
"type": "object",
"description": "A reference to a rule associated with the product type",
"properties": {
"ref": {
"type": "string",
"description": "The unique identifier of the referenced rule",
"examples": [
"rule-1234"
]
}
},
"required": [
"ref"
]
},
"QualitySuspensionReason": {
"type": "object",
"properties": {
"period": {
"type": "string",
"description": "Period considered by the Marketplace for the statistics related to the rule.\n",
"example": "Last month"
},
"rule": {
"type": "string",
"description": "Rule that triggered the suspension of the store.\nThis can be a rule related to quality, payment, shipping or any other rule defined by the Marketplace.\nBy assembling every parameters, we can build a human readable description of the rule.\n",
"example": "Evaluation Grade last month was lower than 3.5 expected to never be lower than 4.0"
},
"rule_comparison_method": {
"type": "string",
"description": "Comparison method used by the Marketplace to evaluate the rule.\n",
"example": "lower than"
},
"rule_type": {
"type": "string",
"description": "Type of the rule that triggered the suspension of the store such as DECIMAL or INTEGER.\n",
"example": "DECIMAL"
},
"stat_value": {
"type": "number",
"format": "with decimals",
"description": "Value of the statistic that triggered the rule.\nThis is the value that was compared to the threshold defined by the Marketplace.\n",
"example": 3.5
},
"threshold": {
"type": "number",
"format": "with decimals",
"description": "Threshold value defined by the Marketplace for the rule.\nIf the stat_value is lower than this threshold, the store is considered suspended.\n"
}
},
"required": [
"rule"
]
},
"RedefineAttributeActionPayload": {
"type": "object",
"properties": {
"attribute": {
"$ref": "#/components/schemas/ProductAttributeId"
},
"requirementLevel": {
"$ref": "#/components/schemas/RequirementLevel"
}
},
"required": [
"attribute",
"requirementLevel"
]
},
"RequirementLevel": {
"type": "string",
"description": "Requirement level of the attribute when creating or updating a product\n\nEnum: `\"OPTIONAL\"`, `\"RECOMMENDED\"`, `\"REQUIRED\"`\n"
},
"ReturnErrorDetail": {
"type": "object",
"properties": {
"code": {
"type": "string",
"description": "Machine-readable error code"
},
"field": {
"type": "string",
"description": "JsonPath to the field where the error occurred"
},
"message": {
"type": "string",
"description": "Human-readable error message"
}
},
"required": [
"code",
"message"
]
},
"ReturnLineRequest": {
"type": "object",
"properties": {
"channel_order_line_id": {
"type": "string",
"description": "Order line identifier on the sales channel"
},
"quantity": {
"type": "integer",
"description": "Quantity of items being returned"
},
"reason": {
"type": "string",
"description": "Reason for the return\n\nEnum: `\"WRONG_ITEM\"`, `\"MISSING_ITEM\"`, `\"DEFECTIVE_ITEM\"`, `\"DAMAGED_ITEM\"`, `\"UNWANTED_ITEM\"`, `\"OTHER\"`\n"
}
},
"required": [
"channel_order_line_id",
"quantity",
"reason"
]
},
"ReturnRequest": {
"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"
},
"street_additional_info": {
"type": "string",
"description": "Additional street information"
},
"zip_code": {
"type": "string",
"description": "Postal code"
}
},
"required": [
"city",
"country_iso_code",
"street"
]
},
"channel_order_id": {
"type": "string",
"description": "Order identifier on the sales channel"
},
"channel_return_id": {
"type": "string",
"description": "Return identifier on the sales channel"
},
"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"
},
"label_url": {
"type": "string",
"description": "URL for the return shipping label"
},
"method": {
"type": "string",
"description": "Shipping method name on the sales channel"
},
"rejection_reason": {
"type": "string",
"description": "Reason for the return rejection\n\nEnum: `\"RETURN_WINDOW_CLOSED\"`, `\"NOT_ELIGIBLE_FOR_RETURN\"`, `\"FINAL_SALES\"`, `\"OTHER\"`\n"
},
"return_lines": {
"type": "array",
"items": {
"$ref": "#/components/schemas/ReturnLineRequest"
},
"minItems": 1
},
"rma_id": {
"type": "string",
"description": "Return Merchandise Authorization ID"
},
"status": {
"type": "string",
"description": "Current return status\n\nEnum: `\"REQUEST_INITIATED\"`, `\"REQUEST_DECLINED\"`, `\"OPENED\"`, `\"RECEIVED\"`, `\"CLOSED\"`, `\"CHANNEL_SPECIFIC\"`\n"
},
"sub_channel_code": {
"type": "string",
"description": "Code of the sub-channel"
},
"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"
}
}
}
},
"required": [
"channel_order_id",
"channel_return_id",
"channel_updated_at",
"created_at",
"return_lines",
"status"
]
},
"ShippingInfoRequest": {
"type": "object",
"description": "Shipping destination and logistics information for the order.",
"properties": {
"address": {
"$ref": "#/components/schemas/AddressRequest",
"description": "Delivery address of the recipient."
},
"carrier": {
"type": "string",
"description": "Name of the carrier handling the shipment, as defined on the channel."
},
"delivery_date": {
"type": "object",
"description": "Estimated delivery window communicated to the buyer.",
"properties": {
"earliest": {
"type": "string",
"format": "date-time",
"description": "Earliest expected delivery date."
},
"latest": {
"type": "string",
"format": "date-time",
"description": "Latest expected delivery date."
}
},
"required": [
"earliest",
"latest"
]
},
"email": {
"type": "string",
"format": "email",
"description": "Email address of the recipient."
},
"method": {
"type": "string",
"description": "Shipping service level or method name (e.g. standard, express, next-day)."
},
"pudo_id": {
"type": "string",
"description": "Identifier of the pick-up/drop-off point (PUDO) when the delivery targets a relay point, locker, or store rather than a home address."
},
"shipping_deadline": {
"type": "string",
"format": "date-time",
"description": "Latest date and time by which the seller must ship the order."
}
}
},
"StoreId": {
"type": "string",
"description": "Store identifier in the channel",
"minLength": 1
},
"SubChannel": {
"type": "object",
"properties": {
"currency": {
"type": "string",
"description": "Currency tag of the sub-channel, expected in ISO 4217 format. Cannot be changed later.",
"example": "USD",
"maxLength": 3,
"minLength": 1,
"pattern": "^[A-Z]{3}$"
},
"id": {
"type": "string",
"description": "Id of the sub-channel inside the Marketplace where the store is located.",
"example": 12345
},
"name": {
"type": "string",
"description": "Name of the sub-channel inside the Marketplace where the store is located.",
"example": "Premium Sellers"
}
},
"required": [
"currency",
"id",
"name"
]
},
"TaxRequest": {
"type": "object",
"properties": {
"amount": {
"$ref": "#/components/schemas/Money",
"description": "Total amount for this tax entry."
},
"channel_collectible": {
"$ref": "#/components/schemas/Money",
"description": "Amount collected by the operator (marketplace facilitator)."
},
"code": {
"type": "string",
"description": "Identifier of the tax type, as defined by the channel (e.g. VAT, GST, HST)."
},
"rate": {
"type": "number",
"description": "Tax rate expressed as a decimal (e.g. `0.20` for 20%)."
},
"seller_collectible": {
"$ref": "#/components/schemas/Money",
"description": "Amount the seller must collect and declare to tax authorities."
}
},
"required": [
"amount",
"code"
]
},
"TaxonomyRuleRequest": {
"type": "object",
"description": "Request to create a taxonomy rule",
"properties": {
"rules": {
"type": "array",
"description": "List of rules to create",
"items": {
"$ref": "#/components/schemas/ProductTypeRule"
},
"minItems": 1
}
},
"required": [
"rules"
]
},
"TextAttribute": {
"allOf": [
{
"$ref": "#/components/schemas/Attribute"
},
{
"type": "object",
"properties": {
"default_value": {
"type": "string",
"description": "Default text value of the attribute, used for required attributes only"
},
"max_size": {
"type": "integer",
"description": "Max characters size"
}
}
}
],
"required": [
"max_size"
]
},
"UpdateActionRequest": {
"type": "object",
"description": "Request payload for updating an asynchronous action's status",
"properties": {
"errors": {
"type": "array",
"description": "List of errors encountered during action processing.\nRequired when status is FAILED.\nMultiple errors can be included to provide comprehensive failure details.\n",
"items": {
"$ref": "#/components/schemas/ActionError"
}
},
"status": {
"type": "string",
"description": "The final status of the asynchronous action:\n* SUCCESS - The action completed successfully with no errors\n* FAILED - The action encountered errors and could not be completed\n (requires error details in the errors array)\n\n\nEnum: `\"SUCCESS\"`, `\"FAILED\"`\n"
}
},
"required": [
"status"
]
},
"UpdateAnonymizeAfterRequest": {
"type": "object",
"properties": {
"orders": {
"type": "array",
"items": {
"$ref": "#/components/schemas/UpdateAnonymizeAfterRequestItem"
},
"maxItems": 100,
"minItems": 1
}
},
"required": [
"orders"
]
},
"UpdateAnonymizeAfterRequestItem": {
"type": "object",
"properties": {
"anonymize_after": {
"type": "string",
"format": "date-time",
"description": "The date after which the order should be anonymized. The date must be in ISO 8601 format (YYYY-MM-DDTHH:mm:ssZ) and in the futur relative to time of call (note: a tolerance of few minutes will be tolerated to prevent false positive errors)",
"examples": [
"2023-10-01T00:00:00Z"
]
},
"channel_id": {
"type": "string",
"description": "The ID of the channel on which the order was placed.",
"examples": [
1234
]
},
"channel_order_id": {
"type": "string",
"description": "The ID of the order on the channel.",
"examples": [
"COMMERCIAL_ID-A"
]
},
"sub_channel_code": {
"type": "string",
"description": "Code of the sub-channel"
}
},
"required": [
"anonymize_after",
"channel_id",
"channel_order_id"
]
},
"UpdateStoreCatalogItem": {
"type": "object",
"properties": {
"diagnostics": {
"type": [
"array",
"null"
],
"deprecated": true,
"description": "A list of general diagnostics related to the store catalog item (deprecated use offer_diagnostics instead).",
"items": {
"$ref": "#/components/schemas/Diagnostic"
},
"maxItems": 100,
"minItems": 0
},
"id": {
"type": "string",
"description": "The item identifier of the store catalog item."
},
"offer_diagnostics": {
"type": [
"array",
"null"
],
"description": "A list of diagnostics related to the offer status of the store catalog item, this list should reflect all the current active diagnostics. Use an empty list to clear all the diagnostics.",
"items": {
"$ref": "#/components/schemas/Diagnostic"
},
"maxItems": 100,
"minItems": 0
},
"offer_status": {
"type": "string",
"description": "The status of the offer in the channel. Possible values are:\n- OFFER_ACTIVE: The offer is active and visible in the channel.\nOnly price, stock and offer specific information updates will be sent from now on.\n(no product or offer creation will be sent from connect once an offer is declared as active).\n- OFFER_DOES_NOT_EXIST: The offer is not found in the channel.\nAn offer creation attempt will be sent.\n- ACTION_REQUIRED: The offer requires an action, such as updates or fixes, before it can be active.\nAn offer creation will be retried after the action.\n\n\nEnum: `\"OFFER_ACTIVE\"`, `\"OFFER_DOES_NOT_EXIST\"`, `\"ACTION_REQUIRED\"`\n"
},
"product_diagnostics": {
"type": [
"array",
"null"
],
"description": "A list of diagnostics related to the product status of the store catalog item, this list should reflect all the current active diagnostics. Use an empty list to clear all the diagnostics.",
"items": {
"$ref": "#/components/schemas/Diagnostic"
},
"maxItems": 100,
"minItems": 0
},
"product_status": {
"type": "string",
"description": "The status of the product in the channel. Possible values are:\n- PRODUCT_DOES_NOT_EXIST: The product is not found in the channel.\n- PRODUCT_PENDING_APPROVAL: The product has been submitted and is waiting for approval in the channel.\n- PRODUCT_REFUSED: The product was reviewed but rejected by the channel.\n- PRODUCT_CREATED: The product exists and has been successfully created in the channel.\n- ACTION_REQUIRED: The product requires an action, such as updates or fixes, before it can proceed.\n\n\nEnum: `\"PRODUCT_DOES_NOT_EXIST\"`, `\"PRODUCT_PENDING_APPROVAL\"`, `\"PRODUCT_REFUSED\"`, `\"PRODUCT_CREATED\"`, `\"ACTION_REQUIRED\"`\n"
}
},
"required": [
"id"
]
},
"UpdateStoreCatalogItemsRequest": {
"type": "object",
"properties": {
"store_catalog_items": {
"type": "array",
"items": {
"$ref": "#/components/schemas/UpdateStoreCatalogItem"
},
"maxItems": 10000,
"minItems": 1
}
},
"required": [
"store_catalog_items"
]
},
"UploadOrderDocumentMetadata": {
"type": "object",
"properties": {
"channel_document_id": {
"type": "string",
"description": "The channel document ID, it must be unique in the channel."
},
"channel_type": {
"type": "string",
"description": "Channel-specific document type.\n\nThis field is optional and should be provided when type is CHANNEL_SPECIFIC. It allows connectors to store the original document type from the marketplace.\n"
},
"entity": {
"type": "object",
"description": "Entity this document is associated with.",
"properties": {
"id": {
"type": "string",
"description": "The id of the entity (e.g. returnId for type : RETURN) this document is associated with.\n",
"examples": [
"caf30673-ea3d-4113-9a18-674850f6a290"
]
},
"type": {
"type": "string",
"description": "Type of entity this document is associated with.\n\nEnum: `\"RETURN\"`\n"
}
},
"required": [
"id",
"type"
]
},
"filename": {
"type": "string",
"description": "Name of the document (only this field counts as the file name).\n",
"examples": [
"UPS_1Z999AA10123456784.pdf",
"DHL_JJD0000123456.jpg",
"中国邮政_774602727890.png"
],
"maxLength": 255,
"minLength": 1
},
"type": {
"type": "string",
"description": "Type of the document\n\nEnum: `\"RETURN_LABEL\"`, `\"CUSTOMER_INVOICE\"`, `\"DELIVERY_SLIP\"`, `\"SHIPMENT_DELIVERY_SLIP\"`, `\"CHANNEL_SPECIFIC\"`\n"
}
},
"required": [
"channel_document_id",
"filename",
"type"
]
},
"UpsertCarriersRequest": {
"type": "object",
"properties": {
"carriers": {
"type": "array",
"description": "List of carriers available on the channel",
"items": {
"$ref": "#/components/schemas/CarrierRequest"
},
"maxItems": 5000,
"minItems": 1
}
},
"required": [
"carriers"
]
},
"UpsertOrdersRequest": {
"type": "object",
"properties": {
"orders": {
"type": "array",
"description": "List of orders to create or update.",
"items": {
"$ref": "#/components/schemas/OrderRequest"
},
"maxItems": 100,
"minItems": 1
},
"origin": {
"$ref": "#/components/schemas/OriginRequest"
}
},
"required": [
"orders",
"origin"
]
},
"UpsertReturnsRequest": {
"type": "object",
"properties": {
"origin": {
"$ref": "#/components/schemas/OriginRequest"
},
"returns": {
"type": "array",
"items": {
"$ref": "#/components/schemas/ReturnRequest"
},
"maxItems": 100,
"minItems": 1
}
},
"required": [
"origin",
"returns"
]
},
"UpsertReturnsResponse": {
"type": "object",
"properties": {
"return_errors": {
"type": "array",
"items": {
"type": "object",
"properties": {
"channel_order_id": {
"type": "string"
},
"channel_return_id": {
"type": "string"
},
"details": {
"type": "array",
"items": {
"$ref": "#/components/schemas/ReturnErrorDetail"
}
}
}
}
},
"return_success": {
"type": "array",
"items": {
"type": "object",
"properties": {
"channel_order_id": {
"type": "string"
},
"channel_return_id": {
"type": "string"
}
}
}
}
}
},
"UseCaseConfiguration": {
"type": "object",
"description": "Configuration for a specific use case. \nThis API provides the configuration of required offer fields by use cases\n",
"properties": {
"optional": {
"$ref": "#/components/schemas/UseCaseConfigurationAttributes",
"description": "Optional fields for the use case"
},
"required": {
"$ref": "#/components/schemas/UseCaseConfigurationAttributes",
"description": "Required fields for the use case"
},
"support": {
"type": "string",
"description": "Support for the use case\n\nEnum: `\"SUPPORTED\"`, `\"UNSUPPORTED\"`\n"
}
},
"required": [
"required",
"support"
]
},
"UseCaseConfigurationAttributes": {
"type": "object",
"properties": {
"custom_attributes": {
"type": "array",
"items": {
"type": "string"
}
},
"standard_attributes": {
"type": "array",
"items": {
"type": "string",
"description": "Enum: `\"ID\"`, `\"STANDARD_PRICE\"`, `\"DISCOUNT_PRICE\"`, `\"STOCK\"`, `\"GTIN\"`\n"
}
}
}
},
"UseCaseConfigurations": {
"type": "object",
"description": "Configuration for offer related features by use case. \nThis API provides the configuration of required offer fields by use cases\n",
"properties": {
"offer_creation": {
"$ref": "#/components/schemas/UseCaseConfiguration",
"description": "Configuration for offer creation"
},
"offer_update": {
"$ref": "#/components/schemas/UseCaseConfiguration",
"description": "Configuration for offer update"
}
},
"required": [
"offer_creation",
"offer_update"
]
}
},
"securitySchemes": {
"Bearer": {
"bearerFormat": "JWT",
"scheme": "bearer",
"type": "http"
}
}
},
"info": {
"description": "{% partial file=\"/partial-content/product/connect-channel-platform/rest/connect/openapi-description.md\" /%}",
"title": "Mirakl Connect Channel Platform APIs",
"version": ""
},
"openapi": "3.1.0",
"paths": {
"/v1/catalog-configuration/channels/{channel_id}": {
"parameters": [
{
"$ref": "#/components/parameters/channel_id_path"
}
],
"post": {
"description": "
10 MB.\n\nSupported formats are :\n - PDF\n - JPEG\n - PNG\n - CSV\n"
},
"metadata": {
"$ref": "#/components/schemas/UploadOrderDocumentMetadata"
},
"origin": {
"$ref": "#/components/schemas/DocumentOriginRequest"
}
},
"required": [
"file",
"metadata",
"origin"
]
}
}
},
"required": true
},
"responses": {
"204": {
"description": "No Content"
},
"400": {
"content": {
"application/json": {
"examples": {
"application/json-auto": {
"summary": "Complete example with value types (application/json)",
"value": {
"code": "DATA_NOT_FOUND",
"message": "An error occurred while processing your request",
"errors": [
{
"message": "An error occurred while processing your request: id is null",
"field": "input.account.id",
"extensions": {
"minLength": 1,
"maxLength": 255
}
}
],
"extensions": {
"minLength": 1,
"maxLength": 255
}
}
}
},
"schema": {
"$ref": "#/components/schemas/Error"
}
}
},
"description": "Bad Request"
}
},
"security": [
{
"Bearer": [
"connect-channel-platform:order-document:upload"
]
}
],
"summary": "uploadOrderDocument - Upload order document",
"tags": [
"Orders"
],
"x-codeSamples": [
{
"lang": "cURL",
"source": "curl -i -X POST \\\n https://miraklconnect.com/api/channel-platform/v1/orders/{channel_order_id}/documents \\\n -H 'Content-Type: multipart/form-data' \\\n -F 'file=@path/to/file' \\\n -F 'origin=\"{\\\"channel_id\\\":\\\"string\\\",\\\"channel_store_id\\\":\\\"string\\\",\\\"sub_channel_code\\\":\\\"string\\\"}\";type=application/json' \\\n -F 'metadata=\"{\\\"channel_document_id\\\":\\\"string\\\",\\\"filename\\\":\\\"UPS_1Z999AA10123456784.pdf\\\",\\\"type\\\":\\\"RETURN_LABEL\\\",\\\"channel_type\\\":\\\"string\\\",\\\"entity\\\":{\\\"id\\\":\\\"caf30673-ea3d-4113-9a18-674850f6a290\\\",\\\"type\\\":\\\"RETURN\\\"}}\";type=application/json'\n"
}
]
}
},
"/v1/channels/{channel_id}/stores/{channel_store_id}": {
"put": {
"description": "