{
  "openapi": "3.0.3",
  "info": {
    "title": "Procuros API",
    "description": "Manage Procuros Transactions.",
    "version": "2.0.0"
  },
  "servers": [
    {
      "url": "https://api.procuros.io/"
    },
    {
      "url": "https://api.procuros-staging.io/"
    }
  ],
  "security": [
    {
      "api_token": []
    }
  ],
  "components": {
    "securitySchemes": {
      "api_token": {
        "type": "http",
        "scheme": "bearer",
        "description": "The API Token of your ERP Connection."
      }
    },
    "schemas": {
      "Attachment": {
        "type": "object",
        "properties": {
          "fileName": {
            "type": "string",
            "description": "Name of the file."
          },
          "url": {
            "type": "string",
            "format": "uri",
            "description": "URL to the file."
          },
          "mimeType": {
            "type": "string",
            "description": "MIME type of the file."
          }
        }
      },
      "Date": {
        "type": "string",
        "format": "date",
        "pattern": "^\\d{4}-\\d{2}-\\d{2}$",
        "example": "2021-11-11"
      },
      "DateTime": {
        "type": "string",
        "format": "date-time",
        "pattern": "\\d{4}(.\\d{2}){2}(\\s|T)(\\d{2}.){2}\\d{2}(.\\d{6}(Z?))?",
        "example": "2021-10-23T00:00:00.000000Z"
      },
      "Currency": {
        "type": "string",
        "description": "ISO 4217 standard three-letter currency code.",
        "pattern": "^[A-Z]{3}$",
        "example": "EUR"
      },
      "PaymentTerm": {
        "type": "object",
        "required": [
          "payInNumberOfDays",
          "percentage"
        ],
        "properties": {
          "payInNumberOfDays": {
            "type": "integer",
            "example": 7
          },
          "percentage": {
            "type": "number",
            "description": "Discount in % which is granted if payment is made not later than payInNumberOfDays after invoice date.",
            "format": "float",
            "example": 3.5
          }
        }
      },
      "Tax": {
        "type": "object",
        "required": [
          "amount",
          "percentage"
        ],
        "properties": {
          "amount": {
            "type": "number",
            "format": "float",
            "description": "Tax value in currency.",
            "example": 0.15
          },
          "percentage": {
            "type": "number",
            "format": "float",
            "description": "Tax value in percentage.",
            "example": 19.0
          },
          "description": {
            "type": "string",
            "nullable": true,
            "example": "Total item tax."
          },
          "category": {
            "type": "string",
            "description": "VAT category for this tax. One of VAT, EXEMPT, ZERO_RATED, VAT_REVERSE_CHARGE, VAT_INTRA_COMMUNITY, VAT_EXPORT or VAT_OUT_OF_SCOPE.",
            "example": "VAT"
          }
        }
      },
      "UnitOfMeasure": {
        "type": "string",
        "description": "Subset of the the UN/CEFACT Unit of Measure Common Codes.",
        "default": "EA",
        "enum": [
          "EA",
          "GRM",
          "HUR",
          "KGM",
          "LTR",
          "MLT",
          "MTK",
          "MTR",
          "PCK",
          "SET",
          "CS",
          "CA",
          "DAY",
          "WEE",
          "MON",
          "CT",
          "CQ",
          "CU",
          "BJ",
          "BO",
          "MTQ",
          "PF",
          "BG",
          "RO",
          "TNE",
          "BE",
          "CMT",
          "KMT",
          "PR",
          "TU"
        ]
      },
      "AdditionalOrderIdentifiers": {
        "type": "object",
        "description": "Additional order identifiers for different parties in the transaction.",
        "properties": {
          "supplierOrderIdentifier": {
            "type": "string",
            "description": "Supplier order identifier.",
            "example": "SUP-12345"
          },
          "shipToOrderIdentifier": {
            "type": "string",
            "description": "Ship-to order identifier.",
            "example": "ST-67890"
          },
          "shipFromOrderIdentifier": {
            "type": "string",
            "description": "Ship-from order identifier.",
            "example": "SF-11111"
          },
          "billToOrderIdentifier": {
            "type": "string",
            "description": "Bill-to order identifier.",
            "example": "BT-22222"
          },
          "billFromOrderIdentifier": {
            "type": "string",
            "description": "Bill-from order identifier.",
            "example": "BF-33333"
          },
          "finalRecipientOrderIdentifier": {
            "type": "string",
            "description": "Final recipient order identifier.",
            "example": "FR-44444"
          },
          "technicalRecipientOrderIdentifier": {
            "type": "string",
            "description": "Technical recipient order identifier.",
            "example": "TR-55555"
          }
        }
      },
      "ItemIdentifier": {
        "type": "object",
        "properties": {
          "identifier": {
            "type": "string",
            "description": "Party identifier within the 'domain' such as EAN/GTIN on GS1 domain, buyer's internal SKU on BUYER domain, etc.",
            "example": "43000000000011"
          },
          "domain": {
            "type": "string",
            "description": "Identification system the identifier belongs to.",
            "default": "GS1",
            "enum": [
              "GS1",
              "BUYER",
              "SUPPLIER"
            ]
          }
        }
      },
      "ItemSubstitution": {
        "type": "object",
        "description": "A reference to the counterpart article in a substitution.",
        "properties": {
          "identifiers": {
            "type": "array",
            "description": "Identifiers of the referenced article. Each entry must carry a `domain` and an `identifier`; name the counterpart with the same identifiers used on its own line item.",
            "items": {
              "$ref": "#/components/schemas/ItemIdentifier"
            }
          }
        }
      },
      "Batch": {
        "type": "object",
        "properties": {
          "batchIdentifier": {
            "type": "string"
          },
          "expirationDate": {
            "$ref": "#/components/schemas/Date"
          },
          "quantity": {
            "type": "number",
            "format": "float",
            "description": "How much of the shipping notice line item belongs to this batch. The sum of all batch quantities must be equal to the \"shippedQuantity\" of the shipping notice line item."
          },
          "netWeight": {
            "type": "number",
            "format": "float",
            "description": "Net weight of the batch in grams."
          },
          "grossWeight": {
            "type": "number",
            "format": "float",
            "description": "Gross weight of the batch in grams."
          }
        }
      },
      "SerialNumber": {
        "type": "object",
        "description": "A single serialized unit of a line item.",
        "required": [
          "identifiers"
        ],
        "properties": {
          "identifiers": {
            "type": "object",
            "description": "Identifiers of the serialized unit. At least one identifier should be provided.",
            "properties": {
              "serial": {
                "type": "string",
                "maxLength": 255,
                "description": "Manufacturer serial number of the unit.",
                "example": "SN-2024-000123"
              },
              "imei": {
                "type": "string",
                "maxLength": 255,
                "description": "International Mobile Equipment Identity (IMEI) of the unit.",
                "example": "490154203237518"
              }
            }
          },
          "batchIdentifier": {
            "type": "string",
            "maxLength": 255,
            "description": "Identifier of the batch this unit belongs to. References the \"batchIdentifier\" of an entry in \"batches\".",
            "example": "BATCH-001-2024"
          }
        }
      },
      "ModeOfTransport": {
        "type": "string",
        "description": "Chosen mode of transport for the shipment.",
        "enum": [
          "ROAD",
          "RAIL",
          "AIR",
          "SEA",
          "MULTIMODAL"
        ]
      },
      "TransportUnitCarrier": {
        "type": "object",
        "description": "Carrier information for a transport unit.",
        "properties": {
          "name": {
            "type": "string",
            "description": "Carrier name.",
            "example": "DHL Express"
          },
          "trackingNumber": {
            "type": "string",
            "description": "Tracking number.",
            "example": "00340434161234567890"
          },
          "trackingUrl": {
            "type": "string",
            "description": "Tracking URL.",
            "example": "https://www.dhl.com/en/express/tracking.html?AWB=123456789&brand=DHL"
          }
        }
      },
      "TransportLabel": {
        "type": "object",
        "description": "Transport label (ZPL + PDF) for a transport unit.",
        "readOnly": true,
        "properties": {
          "zplUrl": {
            "type": "string",
            "description": "URL to the raw ZPL of the transport label.",
            "example": "https://s3.example.com/sscc-labels/340434100000000017.zpl"
          },
          "pdfUrl": {
            "type": "string",
            "description": "URL to the rendered PDF of the transport label.",
            "example": "https://s3.example.com/sscc-labels/340434100000000017.pdf"
          }
        }
      },
      "IncoTerms": {
        "type": "string",
        "description": "International Commercial Terms (INCOTERMS) as published by the International Chamber of Commerce (ICC).",
        "enum": [
          "EXW",
          "FCA",
          "CPT",
          "CIP",
          "DAP",
          "DDP",
          "FAS",
          "FOB",
          "CFR",
          "CIF",
          "DAT"
        ]
      },
      "Certifications": {
        "type": "object",
        "description": "Item certifications for various standards and organizations.",
        "properties": {
          "deBnn": {
            "type": "string",
            "description": "DE-BNN (Bundesverband Naturkost Naturwaren) certification number",
            "example": "NUMBER-123"
          },
          "eudr": {
            "type": "object",
            "description": "EU Deforestation Regulation (EUDR) compliance information",
            "properties": {
              "verificationNumber": {
                "type": "string",
                "description": "Number issued by the EU Due Diligence System confirming the submitted due diligence statement",
                "example": "FAHLHGK7"
              },
              "referenceNumber": {
                "type": "string",
                "description": "Unique number issued by the EU Due Diligence System that identifies the reported product lot",
                "example": "24ITYGBJFOS258"
              }
            }
          }
        }
      },
      "CertificationsRequired": {
        "type": "object",
        "description": "Indicates which certifications are required for the ordered item.",
        "properties": {
          "fairtrade": {
            "type": "boolean",
            "nullable": true,
            "description": "Whether Fairtrade certification is required for this item."
          },
          "supplierQa": {
            "type": "boolean",
            "nullable": true,
            "description": "Whether supplier quality assurance certification is required for this item."
          },
          "eudr": {
            "type": "boolean",
            "nullable": true,
            "description": "Whether EU Deforestation Regulation (EUDR) certification is required for this item."
          }
        }
      },
      "LineItemAttachmentType": {
        "type": "string",
        "description": "Type/classification of the line item attachment document.",
        "enum": [
          "DECLARATION_OF_CONFORMITY",
          "ENERGY_LABEL",
          "EU_DATASHEET",
          "SAFETY_DATASHEET",
          "TECHNICAL_DATASHEET",
          "PRODUCT_LABEL"
        ]
      },
      "LineItemAttachment": {
        "type": "object",
        "description": "Document attachment for a line item, such as technical datasheets, product labels, or compliance documents.",
        "properties": {
          "fileName": {
            "type": "string",
            "description": "Name of the attachment file."
          },
          "url": {
            "type": "string",
            "format": "uri",
            "description": "URL to the attachment file."
          },
          "mimeType": {
            "type": "string",
            "description": "MIME type of the attachment file (e.g., application/pdf)."
          },
          "type": {
            "$ref": "#/components/schemas/LineItemAttachmentType"
          }
        }
      },
      "Order": {
        "type": "object",
        "title": "Order",
        "description": "A purchase order is a formal request from a buying organization to a supplier to fulfill a contract. ",
        "required": [
          "header",
          "items"
        ],
        "properties": {
          "header": {
            "$ref": "#/components/schemas/OrderHeader"
          },
          "items": {
            "type": "array",
            "minItems": 1,
            "items": {
              "$ref": "#/components/schemas/OrderItem"
            }
          },
          "summary": {
            "description": "The summary is required if a modificationGroup exists on the order, otherwise the summary is optional. In API v3, the summary will be mandatory in any case.",
            "type": "object",
            "required": [
              "subtotalAmount",
              "grossAmount",
              "netAmount",
              "dueAmount",
              "totalCharges",
              "totalAllowances",
              "tax"
            ],
            "properties": {
              "subtotalAmount": {
                "type": "number",
                "format": "float",
                "description": "The sum of all line item subtotal amounts. The line item subtotal already includes all line item modifications."
              },
              "grossAmount": {
                "type": "number",
                "format": "float",
                "description": "The netAmount plus taxes."
              },
              "netAmount": {
                "type": "number",
                "format": "float",
                "description": "The subtotalAmount plus totalCharges and minus totalAllowances."
              },
              "dueAmount": {
                "type": "number",
                "format": "float",
                "description": "The grossAmount minus deposit. Note: deposits are not yet supported, therefore dueAmount will always equal grossAmount for now."
              },
              "totalCharges": {
                "type": "number",
                "format": "float",
                "description": "The total sum of all charges applied on document-level. Does not include charges applied on item-level."
              },
              "totalAllowances": {
                "type": "number",
                "format": "float",
                "description": "The total sum of all allowances applied on invoice level. Does not include allowances applied on item-level."
              },
              "tax": {
                "type": "object",
                "minItems": 1,
                "required": [
                  "total",
                  "items"
                ],
                "properties": {
                  "total": {
                    "type": "number",
                    "format": "float"
                  },
                  "description": {
                    "type": "string",
                    "example": "Total item tax."
                  },
                  "items": {
                    "type": "array",
                    "items": {
                      "type": "object",
                      "required": [
                        "percentage",
                        "taxableAmount",
                        "taxAmount",
                        "category"
                      ],
                      "properties": {
                        "percentage": {
                          "type": "number",
                          "format": "float"
                        },
                        "taxableAmount": {
                          "type": "number",
                          "format": "float"
                        },
                        "taxAmount": {
                          "type": "number",
                          "format": "float"
                        },
                        "category": {
                          "type": "string",
                          "description": "VAT category for this tax amount. One of VAT, EXEMPT, ZERO_RATED, VAT_REVERSE_CHARGE, VAT_INTRA_COMMUNITY, VAT_EXPORT or VAT_OUT_OF_SCOPE."
                        },
                        "description": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              },
              "modificationGroups": {
                "type": "array",
                "items": {
                  "$ref": "#/components/schemas/ModificationGroup"
                }
              }
            }
          }
        }
      },
      "OrderHeader": {
        "type": "object",
        "required": [
          "buyer",
          "supplier",
          "orderIdentifier",
          "orderDate"
        ],
        "properties": {
          "buyer": {
            "$ref": "#/components/schemas/Party"
          },
          "supplier": {
            "$ref": "#/components/schemas/Party"
          },
          "shipTo": {
            "description": "If this is kept empty, the \"buyer\" is used as the \"shipTo\" party. Note: unlike other party fields, identifiers are optional for shipTo.",
            "allOf": [
              {
                "$ref": "#/components/schemas/ShipToParty"
              }
            ]
          },
          "billTo": {
            "description": "If this is kept empty, the \"buyer\" is used as the \"billTo\" party.",
            "allOf": [
              {
                "$ref": "#/components/schemas/Party"
              }
            ]
          },
          "finalRecipient": {
            "description": "Used in case the shipTo is not the final recipient. Mostly used in dropshipping or cross-docking scenarios. Identifiers are optional.",
            "allOf": [
              {
                "$ref": "#/components/schemas/FinalRecipientParty"
              }
            ]
          },
          "technicalRecipient": {
            "description": "Used when the recipient of the message differs from the supplier party. Common in scenarios where invoices or documents need to be sent to a centralized receiving entity (e.g., a group headquarters or shared services center) that differs from the actual supplier in the transaction.",
            "allOf": [
              {
                "$ref": "#/components/schemas/Party"
              }
            ]
          },
          "technicalSender": {
            "description": "Used when the sender of the message differs from the buyer party. Common in scenarios where orders or documents are sent from a centralized sending entity (e.g., a group headquarters or shared services center) that differs from the actual buyer in the transaction.",
            "allOf": [
              {
                "$ref": "#/components/schemas/Party"
              }
            ]
          },
          "orderIdentifier": {
            "type": "string",
            "example": "PO9383-R45",
            "description": "Order number assigned to this purchase order by the buyer."
          },
          "orderDate": {
            "$ref": "#/components/schemas/DateTime"
          },
          "AdditionalOrderIdentifiers": {
            "$ref": "#/components/schemas/AdditionalOrderIdentifiers"
          },
          "type": {
            "type": "string",
            "description": "Type of the order as assigned by sender."
          },
          "requestedDeliveryDate": {
            "description": "Requested delivery date. Use ISO 8601 date format: YYYY-MM-DD (e.g. 2023-12-06).",
            "allOf": [
              {
                "$ref": "#/components/schemas/DateTime"
              }
            ]
          },
          "requestedEarliestDeliveryDate": {
            "description": "Earliest date of the requested delivery window. Use ISO 8601 date format: YYYY-MM-DD (e.g. 2023-12-06).",
            "allOf": [
              {
                "$ref": "#/components/schemas/DateTime"
              }
            ]
          },
          "requestedLatestDeliveryDate": {
            "description": "Latest date of the requested delivery window. Use ISO 8601 date format: YYYY-MM-DD (e.g. 2023-12-06).",
            "allOf": [
              {
                "$ref": "#/components/schemas/DateTime"
              }
            ]
          },
          "currency": {
            "$ref": "#/components/schemas/Currency"
          },
          "paymentTerms": {
            "type": "array",
            "description": "Used for defining payment targets and optional discounts.",
            "items": {
              "$ref": "#/components/schemas/PaymentTerm"
            }
          },
          "comments": {
            "type": "string",
            "maxLength": 100000,
            "description": "Arbitrary human-readable information buyers can send within purchase orders"
          },
          "deliveryInformation": {
            "type": "string",
            "maxLength": 100000,
            "description": "Delivery information for the order."
          },
          "purchasingInformation": {
            "type": "string",
            "maxLength": 100000,
            "description": "Additional information about purchasing."
          },
          "legalInformation": {
            "type": "string",
            "maxLength": 100000,
            "description": "Legal notices and information."
          },
          "promotionCode": {
            "type": "string",
            "maxLength": 255,
            "description": "Promotion code applied to the entire order."
          },
          "contractReference": {
            "type": "string",
            "maxLength": 255,
            "description": "Contract reference for the order."
          },
          "version": {
            "type": "integer",
            "description": "The document version number. Subsequent updates should increment this number by 1."
          },
          "attachments": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/Attachment"
            }
          }
        }
      },
      "OrderItem": {
        "type": "object",
        "properties": {
          "lineNumber": {
            "example": 1,
            "description": "LineNumber attribute may remain constant for any item through updates to the order, therefor lineNumbers may not be consecutive.",
            "type": "integer"
          },
          "identifiers": {
            "type": "array",
            "description": "Which identifiers are required depends on your trade partner. Most trade partners expect at least one identifier with domain `GS1` or `BUYER`.",
            "items": {
              "$ref": "#/components/schemas/ItemIdentifier"
            }
          },
          "isDepositItem": {
            "type": "boolean",
            "description": "If true, the item is a deposit item such as bottle deposit (German: Pfandartikel)."
          },
          "quantity": {
            "example": 2.0,
            "description": "Defaults to 1.",
            "type": "number",
            "format": "float"
          },
          "freeQuantity": {
            "type": "number",
            "format": "float",
            "example": 1.0,
            "default": null,
            "description": "The quantity of this item that is free of charge, in addition to (not part of) `quantity`. For example, an order line with `quantity` 10 and `freeQuantity` 2 means 12 units are delivered in total, 2 of which are free of charge. For subitems, this must be the total free quantity of this item. For example, the parent item is a display of chocolate bars and has free quantity set to 2. Each display contains 50 chocolate bars. Therefore, the free quantity of the \"Chocolate Bar\" subitem is 100 (2x50)."
          },
          "unitOfMeasure": {
            "$ref": "#/components/schemas/UnitOfMeasure"
          },
          "description": {
            "type": "string"
          },
          "comments": {
            "type": "string"
          },
          "unitPrice": {
            "example": 4.75,
            "type": "number",
            "format": "float"
          },
          "pricingUnitOfMeasure": {
            "type": "string",
            "maxLength": 255,
            "description": "The unit of measure used for pricing. This field specifies the unit that the price refers to, which may differ from the quantity unit (e.g., price per carton when quantity is in pieces)."
          },
          "pricingUnitQuantity": {
            "type": "number",
            "format": "float",
            "description": "The quantity of base units contained in the pricing unit of measure. For example, if the price is per carton (pricingUnitOfMeasure: \"CT\") and each carton contains 100 pieces, this field stores 100."
          },
          "recommendedRetailPrice": {
            "example": 5.25,
            "type": "number",
            "format": "float"
          },
          "tax": {
            "$ref": "#/components/schemas/Tax"
          },
          "promotionCode": {
            "type": "string",
            "maxLength": 255,
            "description": "Promotion code applied to this item."
          },
          "contractReference": {
            "type": "string",
            "maxLength": 255,
            "description": "Contract reference for this item."
          },
          "requestedDeliveryDate": {
            "description": "Requested delivery date for this item. Use ISO 8601 date format: YYYY-MM-DD (e.g. 2023-12-06).",
            "allOf": [
              {
                "$ref": "#/components/schemas/DateTime"
              }
            ]
          },
          "requestedEarliestDeliveryDate": {
            "$ref": "#/components/schemas/DateTime"
          },
          "requestedLatestDeliveryDate": {
            "$ref": "#/components/schemas/DateTime"
          },
          "deliveryGracePeriodInDays": {
            "type": "integer",
            "description": "Delivery grace period in days."
          },
          "minimumRemainingShelfLifeInDays": {
            "type": "integer",
            "description": "Minimum remaining shelf life in days."
          },
          "netWeight": {
            "type": "number",
            "format": "float",
            "description": "Net weight of the item in grams."
          },
          "grossWeight": {
            "type": "number",
            "format": "float",
            "description": "Gross weight of the item in grams."
          },
          "originCountryCode": {
            "type": "string",
            "description": "ISO 3166-1 alpha-2 country code.",
            "example": "DE"
          },
          "colorCode": {
            "type": "string",
            "description": "Color code of the item."
          },
          "colorName": {
            "type": "string",
            "description": "Color name of the item."
          },
          "size": {
            "type": "string",
            "description": "Size of the item."
          },
          "dimension": {
            "type": "string",
            "description": "Dimension of the item."
          },
          "hsCode": {
            "type": "string",
            "description": "Harmonized System Code of the item."
          },
          "cnCode": {
            "type": "string",
            "description": "The 8-digit Combined Nomenclature (CN) code classifying this product for EU customs and trade statistics. Suppliers are responsible for providing a valid code."
          },
          "organicControlPointNumber": {
            "type": "string",
            "maxLength": 255,
            "description": "Organic Control Point Number of the supplier - OCPN is a unique identifier that verifies that a producer of organic products is adhering to the standards for organic production."
          },
          "fscNumber": {
            "type": "string",
            "description": "An FSC number refers to an identification number issued by the Forest Stewardship Council (FSC), an international organization that certifies sustainable forestry practices."
          },
          "mscNumber": {
            "type": "string",
            "description": "An MSC number refers to an identification number issued by the Marine Stewardship Council (MSC), an international organization that certifies sustainable fishing practices."
          },
          "season": {
            "type": "string",
            "description": "The season or collection period this item belongs to. Used to group and filter assortment by seasonal release.",
            "example": "SS27"
          },
          "gender": {
            "type": "string",
            "description": "The target gender this item is designed for (e.g. Male, Female, Unisex). Used to classify and filter assortment by gender segment.",
            "example": "unisex"
          },
          "brand": {
            "type": "string",
            "description": "Brand or manufacturer name of the product (e.g., BOSCH, Kela).",
            "example": "BOSCH"
          },
          "consumerGroup": {
            "type": "string",
            "description": "Gender for which this item is marketed (e.g., Unisex, Damen, Herren)."
          },
          "assortment": {
            "type": "string",
            "description": "Collection which the item belongs to (e.g., ME_GEN, COA_FB, COA_G, COA_OR, MB_EP, MB_EX, MB_LS, VCA_CE, LAN_ARP, JCH_IWF, JCH_IWC, LAC_L)."
          },
          "category": {
            "type": "string",
            "description": "Product category classification (e.g., 1008)."
          },
          "subCategory": {
            "type": "string",
            "description": "Product sub-category classification."
          },
          "certificationsRequired": {
            "$ref": "#/components/schemas/CertificationsRequired"
          },
          "attachments": {
            "type": "array",
            "description": "Document attachments for this line item, such as technical datasheets, product labels, or compliance documentation.",
            "items": {
              "$ref": "#/components/schemas/LineItemAttachment"
            }
          },
          "modificationGroups": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/ModificationGroup"
            }
          }
        }
      },
      "OrderResponse": {
        "type": "object",
        "title": "Order Response",
        "required": [
          "header"
        ],
        "properties": {
          "header": {
            "$ref": "#/components/schemas/OrderResponseHeader"
          },
          "items": {
            "type": "array",
            "description": "Conditional based on the `type` field in the header: Required when type is `CHANGE`; optional when type is `ACCEPT` (omit to confirm all lines as-is, or include to selectively confirm specific items); prohibited when type is `REJECT` or when type is omitted/null (both treated as a full rejection). When the type is `CHANGE`, it must contain ALL order line items, regardless whether or not `orderedQuantity` and `confirmedQuantity` are equal.",
            "minItems": 1,
            "items": {
              "$ref": "#/components/schemas/OrderResponseItemWithSubSubItems"
            }
          },
          "summary": {
            "description": "The summary is required if a modificationGroup exists on the order response, otherwise the summary is optional. In API v3, the summary will be mandatory in any case.",
            "type": "object",
            "required": [
              "subtotalAmount",
              "grossAmount",
              "netAmount",
              "dueAmount",
              "totalCharges",
              "totalAllowances",
              "tax"
            ],
            "properties": {
              "subtotalAmount": {
                "type": "number",
                "format": "float",
                "description": "The sum of all line item subtotal amounts. The line item subtotal already includes all line item modifications."
              },
              "grossAmount": {
                "type": "number",
                "format": "float",
                "description": "The netAmount plus taxes."
              },
              "netAmount": {
                "type": "number",
                "format": "float",
                "description": "The subtotalAmount plus totalCharges and minus totalAllowances."
              },
              "dueAmount": {
                "type": "number",
                "format": "float",
                "description": "The grossAmount minus deposit. Note: deposits are not yet supported, therefore dueAmount will always equal grossAmount for now."
              },
              "totalCharges": {
                "type": "number",
                "format": "float",
                "description": "The total sum of all charges applied on document-level. Does not include charges applied on item-level."
              },
              "totalAllowances": {
                "type": "number",
                "format": "float",
                "description": "The total sum of all allowances applied on invoice level. Does not include allowances applied on item-level."
              },
              "tax": {
                "type": "object",
                "minItems": 1,
                "required": [
                  "total",
                  "items"
                ],
                "properties": {
                  "total": {
                    "type": "number",
                    "format": "float"
                  },
                  "description": {
                    "type": "string",
                    "example": "Total item tax."
                  },
                  "items": {
                    "type": "array",
                    "items": {
                      "type": "object",
                      "required": [
                        "percentage",
                        "taxableAmount",
                        "taxAmount",
                        "category"
                      ],
                      "properties": {
                        "percentage": {
                          "type": "number",
                          "format": "float"
                        },
                        "taxableAmount": {
                          "type": "number",
                          "format": "float"
                        },
                        "taxAmount": {
                          "type": "number",
                          "format": "float"
                        },
                        "category": {
                          "type": "string",
                          "description": "VAT category for this tax amount. One of VAT, EXEMPT, ZERO_RATED, VAT_REVERSE_CHARGE, VAT_INTRA_COMMUNITY, VAT_EXPORT or VAT_OUT_OF_SCOPE."
                        },
                        "description": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              },
              "modificationGroups": {
                "type": "array",
                "items": {
                  "$ref": "#/components/schemas/ModificationGroup"
                }
              }
            }
          }
        }
      },
      "OrderResponseHeader": {
        "type": "object",
        "required": [
          "buyer",
          "supplier",
          "orderResponseIdentifier",
          "orderResponseDate",
          "orderIdentifier"
        ],
        "properties": {
          "type": {
            "type": "string",
            "description": "Type of the order response. `ACCEPT` means the order was accepted exactly as ordered. `REJECT` means the order was fully rejected. `CHANGE` means part of the order was accepted but either line item quantities or delivery date are changed. **If this field is omitted or set to null, the response is treated identically to `REJECT` \u2014 items are prohibited and the order is considered fully rejected. It is strongly recommended to always provide an explicit type.**",
            "enum": [
              "ACCEPT",
              "REJECT",
              "CHANGE"
            ]
          },
          "version": {
            "type": "integer",
            "description": "If you are sending multiple order responses, this field must be incremented by 1 for each response."
          },
          "buyer": {
            "$ref": "#/components/schemas/Party"
          },
          "supplier": {
            "$ref": "#/components/schemas/Party"
          },
          "shipTo": {
            "description": "If this is kept empty, the \"buyer\" is used as the \"shipTo\" party. Note: unlike other party fields, identifiers are optional for shipTo.",
            "allOf": [
              {
                "$ref": "#/components/schemas/ShipToParty"
              }
            ]
          },
          "billTo": {
            "description": "If this is kept empty, the \"buyer\" is used as the \"billTo\" party.",
            "allOf": [
              {
                "$ref": "#/components/schemas/Party"
              }
            ]
          },
          "finalRecipient": {
            "description": "Used in case the shipTo is not the final recipient. Mostly used in dropshipping or cross-docking scenarios. Identifiers are optional.",
            "allOf": [
              {
                "$ref": "#/components/schemas/FinalRecipientParty"
              }
            ]
          },
          "technicalRecipient": {
            "description": "Used when the recipient of the message differs from the buyer or bill_to party. Common in scenarios where invoices or documents need to be sent to a centralized receiving entity (e.g., a group headquarters or shared services center) that differs from the actual buyer or billing party in the transaction.",
            "allOf": [
              {
                "$ref": "#/components/schemas/Party"
              }
            ]
          },
          "technicalSender": {
            "description": "Used when the sender of the message differs from the supplier party. Common in scenarios where orders or documents are sent from a centralized sending entity (e.g., a group headquarters or shared services center) that differs from the actual buyer in the transaction.",
            "allOf": [
              {
                "$ref": "#/components/schemas/Party"
              }
            ]
          },
          "orderResponseIdentifier": {
            "type": "string",
            "example": "RE-PO9383-R45",
            "description": "Order response number assigned by the supplier to identify this order response."
          },
          "orderResponseDate": {
            "$ref": "#/components/schemas/DateTime"
          },
          "orderIdentifier": {
            "type": "string",
            "example": "PO9383-R45",
            "description": "Order number assigned to this purchase order by the buyer."
          },
          "orderDate": {
            "$ref": "#/components/schemas/DateTime"
          },
          "AdditionalOrderIdentifiers": {
            "$ref": "#/components/schemas/AdditionalOrderIdentifiers"
          },
          "confirmedDeliveryDate": {
            "description": "Optional. Prohibited for `REJECT` type. The confirmed date on which the goods arrive at the destination. Can be omitted, for example when only the `confirmedShipmentDate` is known. Do not send the shipment date in this field. Whether it is required depends on your trade partner.",
            "allOf": [
              {
                "$ref": "#/components/schemas/DateTime"
              }
            ]
          },
          "confirmedShipmentDate": {
            "description": "The confirmed date on which the goods leave the supplier (shipment/dispatch date). Distinct from the confirmed delivery date, which is when the goods arrive at the destination.",
            "allOf": [
              {
                "$ref": "#/components/schemas/DateTime"
              }
            ]
          },
          "requestedDeliveryDate": {
            "description": "Required on order response type `CHANGE`. Prohibited for `REJECT` type. The requested delivery date of the order.",
            "allOf": [
              {
                "$ref": "#/components/schemas/DateTime"
              }
            ]
          },
          "requestedEarliestDeliveryDate": {
            "description": "Earliest date of the requested delivery window. Use ISO 8601 date format: YYYY-MM-DD (e.g. 2023-12-06).",
            "allOf": [
              {
                "$ref": "#/components/schemas/DateTime"
              }
            ]
          },
          "requestedLatestDeliveryDate": {
            "description": "Latest date of the requested delivery window. Use ISO 8601 date format: YYYY-MM-DD (e.g. 2023-12-06).",
            "allOf": [
              {
                "$ref": "#/components/schemas/DateTime"
              }
            ]
          },
          "currency": {
            "$ref": "#/components/schemas/Currency"
          },
          "paymentTerms": {
            "type": "array",
            "description": "Used for defining payment targets and optional discounts.",
            "items": {
              "$ref": "#/components/schemas/PaymentTerm"
            }
          },
          "comments": {
            "type": "string",
            "maxLength": 100000,
            "description": "Arbitrary human-readable information buyers can send within purchase orders"
          },
          "deliveryInformation": {
            "type": "string",
            "maxLength": 100000,
            "description": "Delivery information for the order."
          },
          "purchasingInformation": {
            "type": "string",
            "maxLength": 100000,
            "description": "Additional information about purchasing."
          },
          "legalInformation": {
            "type": "string",
            "maxLength": 100000,
            "description": "Legal notices and information."
          },
          "contractReference": {
            "type": "string",
            "maxLength": 255,
            "description": "Contract reference for the order."
          },
          "promotionCode": {
            "type": "string",
            "maxLength": 255,
            "description": "Promotion code applied to the entire order."
          }
        }
      },
      "OrderResponseItem": {
        "type": "object",
        "properties": {
          "lineNumber": {
            "example": 1,
            "type": "integer"
          },
          "orderLineNumber": {
            "type": "integer",
            "description": "The line number of the order item that this response item refers to."
          },
          "identifiers": {
            "type": "array",
            "description": "Which identifiers are required depends on your trade partner. Most trade partners expect at least one identifier with domain `GS1` or `BUYER`.",
            "items": {
              "$ref": "#/components/schemas/ItemIdentifier"
            }
          },
          "isDepositItem": {
            "type": "boolean",
            "description": "If true, the item is a deposit item such as bottle deposit (German: Pfandartikel)."
          },
          "orderedQuantity": {
            "example": 2.0,
            "type": "number",
            "format": "float"
          },
          "confirmedQuantity": {
            "example": 2.0,
            "type": "number",
            "format": "float"
          },
          "requestedDeliveryDate": {
            "$ref": "#/components/schemas/DateTime"
          },
          "requestedEarliestDeliveryDate": {
            "$ref": "#/components/schemas/DateTime"
          },
          "requestedLatestDeliveryDate": {
            "$ref": "#/components/schemas/DateTime"
          },
          "confirmedDeliveryDate": {
            "$ref": "#/components/schemas/DateTime"
          },
          "confirmedEarliestDeliveryDate": {
            "$ref": "#/components/schemas/DateTime"
          },
          "confirmedLatestDeliveryDate": {
            "$ref": "#/components/schemas/DateTime"
          },
          "confirmedShipmentDate": {
            "$ref": "#/components/schemas/DateTime"
          },
          "unitOfMeasure": {
            "$ref": "#/components/schemas/UnitOfMeasure"
          },
          "description": {
            "type": "string"
          },
          "comments": {
            "type": "string"
          },
          "unitPrice": {
            "example": 4.75,
            "type": "number",
            "format": "float"
          },
          "pricingUnitOfMeasure": {
            "type": "string",
            "maxLength": 255,
            "description": "The unit of measure used for pricing. This field specifies the unit that the price refers to, which may differ from the quantity unit (e.g., price per carton when quantity is in pieces)."
          },
          "pricingUnitQuantity": {
            "type": "number",
            "format": "float",
            "description": "The quantity of base units contained in the pricing unit of measure. For example, if the price is per carton (pricingUnitOfMeasure: \"CT\") and each carton contains 100 pieces, this field stores 100."
          },
          "recommendedRetailPrice": {
            "example": 5.25,
            "type": "number",
            "format": "float"
          },
          "tax": {
            "$ref": "#/components/schemas/Tax"
          },
          "contractReference": {
            "type": "string",
            "maxLength": 255,
            "description": "Contract reference for this item."
          },
          "promotionCode": {
            "type": "string",
            "maxLength": 255,
            "description": "Promotion code applied to this item."
          },
          "minimumRemainingShelfLifeInDays": {
            "type": "integer",
            "description": "Minimum remaining shelf life in days."
          },
          "netWeight": {
            "type": "number",
            "format": "float",
            "description": "Net weight of the item in grams."
          },
          "grossWeight": {
            "type": "number",
            "format": "float",
            "description": "Gross weight of the item in grams."
          },
          "originCountryCode": {
            "type": "string",
            "description": "ISO 3166-1 alpha-2 country code.",
            "example": "DE"
          },
          "colorCode": {
            "type": "string",
            "description": "Color code of the item."
          },
          "colorName": {
            "type": "string",
            "description": "Color name of the item."
          },
          "size": {
            "type": "string",
            "description": "Size of the item."
          },
          "dimension": {
            "type": "string",
            "description": "Dimension of the item."
          },
          "hsCode": {
            "type": "string",
            "description": "Harmonized System Code of the item."
          },
          "cnCode": {
            "type": "string",
            "description": "The 8-digit Combined Nomenclature (CN) code classifying this product for EU customs and trade statistics. Suppliers are responsible for providing a valid code."
          },
          "organicControlPointNumber": {
            "type": "string",
            "maxLength": 255,
            "description": "Organic Control Point Number of the supplier - OCPN is a unique identifier that verifies that a producer of organic products is adhering to the standards for organic production."
          },
          "fscNumber": {
            "type": "string",
            "description": "An FSC number refers to an identification number issued by the Forest Stewardship Council (FSC), an international organization that certifies sustainable forestry practices."
          },
          "mscNumber": {
            "type": "string",
            "description": "An MSC number refers to an identification number issued by the Marine Stewardship Council (MSC), an international organization that certifies sustainable fishing practices."
          },
          "season": {
            "type": "string",
            "description": "The season or collection period this item belongs to. Used to group and filter assortment by seasonal release.",
            "example": "SS27"
          },
          "gender": {
            "type": "string",
            "description": "The target gender this item is designed for (e.g. Male, Female, Unisex). Used to classify and filter assortment by gender segment.",
            "example": "unisex"
          },
          "substituteOf": {
            "allOf": [
              {
                "$ref": "#/components/schemas/ItemSubstitution"
              }
            ],
            "description": "The originally ordered article that this line item substitutes. Set on the substitute line item."
          },
          "substitutedBy": {
            "allOf": [
              {
                "$ref": "#/components/schemas/ItemSubstitution"
              }
            ],
            "description": "The article delivered to substitute this originally ordered line item, which typically carries a shipped or confirmed quantity of 0. Set on the originally ordered line item."
          },
          "modificationGroups": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/ModificationGroup"
            }
          },
          "attachments": {
            "type": "array",
            "description": "Document attachments for this line item response, such as technical datasheets, product labels, or compliance documentation.",
            "items": {
              "$ref": "#/components/schemas/LineItemAttachment"
            }
          }
        }
      },
      "OrderResponseItemWithSubItems": {
        "allOf": [
          {
            "$ref": "#/components/schemas/OrderResponseItem"
          },
          {
            "type": "object",
            "properties": {
              "subItems": {
                "type": "array",
                "description": "Sub items of this sub order response item.",
                "items": {
                  "$ref": "#/components/schemas/OrderResponseItem"
                }
              }
            }
          }
        ]
      },
      "OrderResponseItemWithSubSubItems": {
        "allOf": [
          {
            "$ref": "#/components/schemas/OrderResponseItem"
          },
          {
            "type": "object",
            "properties": {
              "subItems": {
                "type": "array",
                "description": "Sub items of this order response item. Supports two levels of nesting.",
                "items": {
                  "$ref": "#/components/schemas/OrderResponseItemWithSubItems"
                }
              }
            }
          }
        ]
      },
      "Invoice": {
        "type": "object",
        "title": "Invoice",
        "description": "Invoices describe purchase orders, line items, partners involved, accounting distribution, payment terms, discounts, shipping and special handling, taxes, deposit and prepayment, and remittance information.",
        "required": [
          "header",
          "items"
        ],
        "properties": {
          "header": {
            "$ref": "#/components/schemas/InvoiceHeader"
          },
          "items": {
            "type": "array",
            "minItems": 1,
            "items": {
              "$ref": "#/components/schemas/InvoiceItemWithSubSubItems"
            }
          },
          "summary": {
            "description": "The summary is required if a modificationGroup exists on the invoice, otherwise the summary is optional. In API v3, the summary will be mandatory in any case.",
            "type": "object",
            "required": [
              "dueAmount"
            ],
            "properties": {
              "subtotalAmount": {
                "type": "number",
                "format": "float",
                "description": "The sum of all line item subtotal amounts. The line item subtotal already includes all line item modifications."
              },
              "grossAmount": {
                "type": "number",
                "format": "float",
                "description": "The netAmount plus taxes."
              },
              "netAmount": {
                "type": "number",
                "format": "float",
                "description": "The subtotalAmount plus totalCharges and minus totalAllowances."
              },
              "dueAmount": {
                "type": "number",
                "format": "float",
                "description": "The amount still owed, that is grossAmount minus paidAmount. It equals grossAmount when nothing was paid up front."
              },
              "paidAmount": {
                "type": "number",
                "format": "float",
                "description": "The part of the invoice already settled before it was issued, for example a prepayment or a deposit. dueAmount is already net of this value.",
                "example": 155.53
              },
              "totalCharges": {
                "type": "number",
                "format": "float",
                "description": "The total sum of all charges applied on document-level. Does not include charges applied on item-level."
              },
              "totalAllowances": {
                "type": "number",
                "format": "float",
                "description": "The total sum of all allowances applied on invoice level. Does not include allowances applied on item-level."
              },
              "tax": {
                "type": "object",
                "minItems": 1,
                "required": [
                  "total",
                  "items"
                ],
                "properties": {
                  "total": {
                    "type": "number",
                    "format": "float"
                  },
                  "description": {
                    "type": "string",
                    "example": "Total item tax."
                  },
                  "items": {
                    "type": "array",
                    "items": {
                      "type": "object",
                      "required": [
                        "percentage",
                        "taxableAmount",
                        "taxAmount",
                        "category"
                      ],
                      "properties": {
                        "percentage": {
                          "type": "number",
                          "format": "float"
                        },
                        "taxableAmount": {
                          "type": "number",
                          "format": "float"
                        },
                        "taxAmount": {
                          "type": "number",
                          "format": "float"
                        },
                        "category": {
                          "type": "string",
                          "description": "VAT category for this tax amount. One of VAT, EXEMPT, ZERO_RATED, VAT_REVERSE_CHARGE, VAT_INTRA_COMMUNITY, VAT_EXPORT or VAT_OUT_OF_SCOPE."
                        },
                        "description": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              },
              "modificationGroups": {
                "type": "array",
                "items": {
                  "$ref": "#/components/schemas/ModificationGroup"
                }
              }
            }
          }
        }
      },
      "InvoiceHeader": {
        "type": "object",
        "required": [
          "buyer",
          "supplier",
          "invoiceIdentifier",
          "invoiceDate",
          "orderIdentifier",
          "orderDate"
        ],
        "properties": {
          "buyer": {
            "$ref": "#/components/schemas/Party"
          },
          "supplier": {
            "$ref": "#/components/schemas/Party"
          },
          "shipTo": {
            "description": "If this is kept empty, the \"buyer\" is used as the \"shipTo\" party. Note: unlike other party fields, identifiers are optional for shipTo.",
            "allOf": [
              {
                "$ref": "#/components/schemas/ShipToParty"
              }
            ]
          },
          "billTo": {
            "description": "If this is kept empty, the \"buyer\" is used as the \"billTo\" party.",
            "allOf": [
              {
                "$ref": "#/components/schemas/Party"
              }
            ]
          },
          "billFrom": {
            "description": "If this is kept empty, the \"supplier\" is used as the \"billFrom\" party.",
            "allOf": [
              {
                "$ref": "#/components/schemas/Party"
              }
            ]
          },
          "finalRecipient": {
            "description": "Used in case the shipTo is not the final recipient. Mostly used in dropshipping or cross-docking scenarios. Identifiers are optional.",
            "allOf": [
              {
                "$ref": "#/components/schemas/FinalRecipientParty"
              }
            ]
          },
          "technicalRecipient": {
            "description": "Used when the recipient of the message differs from the buyer or bill_to party. Common in scenarios where invoices or documents need to be sent to a centralized receiving entity (e.g., a group headquarters or shared services center) that differs from the actual buyer or billing party in the transaction.",
            "allOf": [
              {
                "$ref": "#/components/schemas/Party"
              }
            ]
          },
          "technicalSender": {
            "description": "Used when the sender of the message differs from the supplier party. Common in scenarios where orders or documents are sent from a centralized sending entity (e.g., a group headquarters or shared services center) that differs from the actual buyer in the transaction.",
            "allOf": [
              {
                "$ref": "#/components/schemas/Party"
              }
            ]
          },
          "invoiceIdentifier": {
            "type": "string",
            "description": "Invoice number/reference.",
            "example": "IV-0001"
          },
          "invoiceDate": {
            "$ref": "#/components/schemas/DateTime"
          },
          "invoiceValueDate": {
            "$ref": "#/components/schemas/DateTime"
          },
          "invoiceDueDate": {
            "$ref": "#/components/schemas/DateTime"
          },
          "shippingNoticeIdentifier": {
            "type": "string",
            "nullable": true,
            "description": "Shared shipping notice number/reference for an invoice covering a single shipping notice.",
            "example": "SN-0001"
          },
          "shippingNoticeDate": {
            "type": "string",
            "format": "date-time",
            "pattern": "\\d{4}(.\\d{2}){2}(\\s|T)(\\d{2}.){2}\\d{2}(.\\d{6}(Z?))?",
            "example": "2021-10-23T00:00:00.000000Z",
            "nullable": true
          },
          "orderIdentifier": {
            "type": "string",
            "description": "Order number assigned to the related purchase order by the buyer."
          },
          "orderDate": {
            "$ref": "#/components/schemas/DateTime"
          },
          "AdditionalOrderIdentifiers": {
            "$ref": "#/components/schemas/AdditionalOrderIdentifiers"
          },
          "requestedDeliveryDate": {
            "$ref": "#/components/schemas/DateTime"
          },
          "expectedDeliveryDate": {
            "$ref": "#/components/schemas/DateTime"
          },
          "paymentTerms": {
            "type": "array",
            "description": "Used for defining payment targets and optional discounts.",
            "items": {
              "$ref": "#/components/schemas/PaymentTerm"
            }
          },
          "comments": {
            "type": "string",
            "maxLength": 100000,
            "description": "Arbitrary human-readable information buyers can send within invoices"
          },
          "deliveryInformation": {
            "type": "string",
            "maxLength": 100000,
            "description": "Information about the delivery process."
          },
          "purchasingInformation": {
            "type": "string",
            "maxLength": 100000,
            "description": "Additional information about purchasing."
          },
          "legalInformation": {
            "type": "string",
            "maxLength": 100000,
            "description": "Legal notices and information."
          },
          "currency": {
            "$ref": "#/components/schemas/Currency"
          },
          "paymentMethod": {
            "type": "string",
            "description": "How the document is to be paid.",
            "enum": [
              "CASH",
              "CREDIT_TRANSFER",
              "BANK_CARD",
              "DIRECT_DEBIT",
              "CREDIT_CARD"
            ]
          },
          "type": {
            "type": "string",
            "enum": [
              "PARTIAL_INVOICE"
            ]
          },
          "promotionCode": {
            "type": "string",
            "maxLength": 255,
            "description": "Promotion code applied to the entire invoice. Does not affect invoice calculations."
          },
          "organicControlPointNumber": {
            "type": "string",
            "maxLength": 255,
            "description": "Organic Control Point Number of the supplier - OCPN is a unique identifier that verifies that a producer of organic products is adhering to the standards for organic production."
          },
          "contractReference": {
            "type": "string",
            "maxLength": 255,
            "description": "Contract reference for the invoice."
          },
          "version": {
            "type": "integer",
            "description": "The document version number. Subsequent updates should increment this number by 1."
          }
        }
      },
      "InvoiceItem": {
        "type": "object",
        "required": [
          "lineNumber",
          "identifiers",
          "isDepositItem",
          "isInvoicedItem",
          "quantity",
          "unitPrice",
          "tax"
        ],
        "properties": {
          "lineNumber": {
            "type": "integer",
            "example": 1
          },
          "shippingNoticeIdentifier": {
            "type": "string",
            "description": "For invoices covering multiple shipping notices, provide the shipping notice number/reference for this item and omit the header-level shipping notice fields.",
            "example": "SN-0001"
          },
          "shippingNoticeDate": {
            "description": "For invoices covering multiple shipping notices, provide the shipping notice date for this item and omit the header-level shipping notice fields.",
            "allOf": [
              {
                "$ref": "#/components/schemas/DateTime"
              }
            ]
          },
          "shippingNoticeLineNumber": {
            "type": "integer",
            "description": "Optional shipping notice line number for this item when the invoice covers multiple shipping notices.",
            "example": 1
          },
          "orderIdentifier": {
            "type": "string",
            "description": "Order number assigned to the related purchase order by the buyer."
          },
          "orderDate": {
            "$ref": "#/components/schemas/DateTime"
          },
          "orderLineNumber": {
            "type": "integer",
            "example": 1
          },
          "requestedDeliveryDate": {
            "$ref": "#/components/schemas/DateTime"
          },
          "expectedDeliveryDate": {
            "$ref": "#/components/schemas/DateTime"
          },
          "identifiers": {
            "type": "array",
            "minItems": 1,
            "description": "Which identifiers are required depends on your trade partner. Most trade partners expect at least one identifier with domain `GS1` or `BUYER`.",
            "items": {
              "$ref": "#/components/schemas/ItemIdentifier"
            }
          },
          "isDepositItem": {
            "type": "boolean",
            "description": "If true, the item is a deposit item such as bottle deposit (German: Pfandartikel)."
          },
          "isInvoicedItem": {
            "type": "boolean",
            "description": "Determine if this item is the invoiced item. Only invoiced items can have a unitPrice != 0. If an item is not invoiced and no parent item is invoiced either, sub items must exist."
          },
          "description": {
            "type": "string",
            "description": "Item description."
          },
          "comments": {
            "type": "string"
          },
          "quantity": {
            "type": "number",
            "format": "float",
            "example": 1.0,
            "description": "For subitems, this must be the total quantity of this item. For example, the parent item is a display of chocolate bars and has quantity 2. Each display contains 50 chocolate bars. Therefore, the quantity of the \"Chocolate Bar\" subitem is 100 (2x50)."
          },
          "freeQuantity": {
            "type": "number",
            "format": "float",
            "example": 1.0,
            "default": null,
            "description": "The quantity of this item that is free of charge, in addition to (not part of) `quantity`. For example, an order line with `quantity` 10 and `freeQuantity` 2 means 12 units are delivered in total, 2 of which are free of charge. For subitems, this must be the total free quantity of this item. For example, the parent item is a display of chocolate bars and has free quantity set to 2. Each display contains 50 chocolate bars. Therefore, the free quantity of the \"Chocolate Bar\" subitem is 100 (2x50)."
          },
          "orderedQuantity": {
            "type": "number",
            "format": "float",
            "example": 1.0,
            "default": null,
            "description": "The quantity ordered by the customer."
          },
          "unitPrice": {
            "type": "number",
            "format": "float",
            "default": null,
            "example": 2.0
          },
          "pricingUnitOfMeasure": {
            "type": "string",
            "maxLength": 255,
            "description": "The unit of measure used for pricing. This field specifies the unit that the price refers to, which may differ from the quantity unit (e.g., price per carton when quantity is in pieces)."
          },
          "pricingUnitQuantity": {
            "type": "number",
            "format": "float",
            "description": "The quantity of base units contained in the pricing unit of measure. For example, if the price is per carton (pricingUnitOfMeasure: \"CT\") and each carton contains 100 pieces, this field stores 100."
          },
          "recommendedRetailPrice": {
            "type": "number",
            "format": "float",
            "default": null,
            "example": 2.5
          },
          "netWeight": {
            "type": "number",
            "format": "float",
            "description": "Net weight of the item in grams."
          },
          "grossWeight": {
            "type": "number",
            "format": "float",
            "description": "Gross weight of the item in grams."
          },
          "originCountryCode": {
            "type": "string",
            "description": "ISO 3166-1 alpha-2 country code.",
            "example": "DE"
          },
          "colorCode": {
            "type": "string",
            "maxLength": 255,
            "description": "Color code of the item."
          },
          "colorName": {
            "type": "string",
            "maxLength": 255,
            "description": "Color name of the item."
          },
          "size": {
            "type": "string",
            "maxLength": 255,
            "description": "Size of the item."
          },
          "dimension": {
            "type": "string",
            "maxLength": 255,
            "description": "Dimension of the item."
          },
          "hsCode": {
            "type": "string",
            "maxLength": 255,
            "description": "Harmonized System Code of the item."
          },
          "cnCode": {
            "type": "string",
            "description": "The 8-digit Combined Nomenclature (CN) code classifying this product for EU customs and trade statistics. Suppliers are responsible for providing a valid code."
          },
          "organicControlPointNumber": {
            "type": "string",
            "maxLength": 255,
            "description": "Organic Control Point Number of the supplier - OCPN is a unique identifier that verifies that a producer of organic products is adhering to the standards for organic production."
          },
          "fscNumber": {
            "type": "string",
            "description": "An FSC number refers to an identification number issued by the Forest Stewardship Council (FSC), an international organization that certifies sustainable forestry practices."
          },
          "mscNumber": {
            "type": "string",
            "description": "An MSC number refers to an identification number issued by the Marine Stewardship Council (MSC), an international organization that certifies sustainable fishing practices."
          },
          "certifications": {
            "$ref": "#/components/schemas/Certifications"
          },
          "substituteOf": {
            "allOf": [
              {
                "$ref": "#/components/schemas/ItemSubstitution"
              }
            ],
            "description": "The originally ordered article that this line item substitutes. Set on the substitute line item."
          },
          "substitutedBy": {
            "allOf": [
              {
                "$ref": "#/components/schemas/ItemSubstitution"
              }
            ],
            "description": "The article delivered to substitute this originally ordered line item, which typically carries a shipped or confirmed quantity of 0. Set on the originally ordered line item."
          },
          "promotionCode": {
            "type": "string",
            "maxLength": 255,
            "description": "Promotion code applied to this item. Does not affect invoice calculations."
          },
          "contractReference": {
            "type": "string",
            "maxLength": 255,
            "description": "Contract reference for this item."
          },
          "tax": {
            "$ref": "#/components/schemas/Tax"
          },
          "batches": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/Batch"
            }
          },
          "serialNumbers": {
            "type": "array",
            "description": "Serial numbers of the individual units of this line item.",
            "items": {
              "$ref": "#/components/schemas/SerialNumber"
            }
          },
          "modificationGroups": {
            "description": "If a Modification Group is provided, the Invoice Summary is required.",
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/ModificationGroup"
            }
          },
          "unitOfMeasure": {
            "$ref": "#/components/schemas/UnitOfMeasure"
          }
        }
      },
      "InvoiceItemWithSubItems": {
        "allOf": [
          {
            "$ref": "#/components/schemas/InvoiceItem"
          },
          {
            "type": "object",
            "properties": {
              "subItems": {
                "type": "array",
                "description": "Sub items of this sub invoice item.",
                "items": {
                  "$ref": "#/components/schemas/InvoiceItem"
                }
              }
            }
          }
        ]
      },
      "InvoiceItemWithSubSubItems": {
        "allOf": [
          {
            "$ref": "#/components/schemas/InvoiceItem"
          },
          {
            "type": "object",
            "properties": {
              "subItems": {
                "type": "array",
                "description": "Sub items of this invoice item. Supports two levels of nesting.",
                "items": {
                  "$ref": "#/components/schemas/InvoiceItemWithSubItems"
                }
              }
            }
          }
        ]
      },
      "ShippingNotice": {
        "type": "object",
        "title": "Shipping Notice",
        "required": [
          "header",
          "transportUnits"
        ],
        "properties": {
          "header": {
            "$ref": "#/components/schemas/ShippingNoticeHeader"
          },
          "transportUnits": {
            "type": "array",
            "description": "Transport units (e.g. pallets, cartons) contained in the shipment. Can be nested in case of sandwich pallets.",
            "minItems": 1,
            "items": {
              "$ref": "#/components/schemas/ShippingNoticeTransportUnitWithSubTransportUnits"
            }
          }
        }
      },
      "ShippingNoticeHeader": {
        "type": "object",
        "required": [
          "buyer",
          "supplier",
          "shippingNoticeIdentifier",
          "shippingNoticeDate",
          "orderIdentifier"
        ],
        "properties": {
          "buyer": {
            "allOf": [
              {
                "$ref": "#/components/schemas/Party"
              }
            ]
          },
          "supplier": {
            "allOf": [
              {
                "$ref": "#/components/schemas/Party"
              }
            ]
          },
          "shipFrom": {
            "description": "Used in case the shipment is sent by a third-party logistics provider.",
            "allOf": [
              {
                "$ref": "#/components/schemas/Party"
              }
            ]
          },
          "shipTo": {
            "description": "If this is kept empty, the \"buyer\" is used as the \"shipTo\" party. Note: unlike other party fields, identifiers are optional for shipTo.",
            "allOf": [
              {
                "$ref": "#/components/schemas/ShipToParty"
              }
            ]
          },
          "billTo": {
            "description": "If this is kept empty, the \"buyer\" is used as the \"billTo\" party.",
            "allOf": [
              {
                "$ref": "#/components/schemas/Party"
              }
            ]
          },
          "finalRecipient": {
            "description": "Used in case the shipTo is not the final recipient. Mostly used in dropshipping or cross-docking scenarios. Identifiers are optional.",
            "allOf": [
              {
                "$ref": "#/components/schemas/FinalRecipientParty"
              }
            ]
          },
          "technicalRecipient": {
            "description": "Used when the recipient of the message differs from the buyer or bill_to party. Common in scenarios where invoices or documents need to be sent to a centralized receiving entity (e.g., a group headquarters or shared services center) that differs from the actual buyer or billing party in the transaction.",
            "allOf": [
              {
                "$ref": "#/components/schemas/Party"
              }
            ]
          },
          "technicalSender": {
            "description": "Used when the sender of the message differs from the supplier party. Common in scenarios where orders or documents are sent from a centralized sending entity (e.g., a group headquarters or shared services center) that differs from the actual buyer in the transaction.",
            "allOf": [
              {
                "$ref": "#/components/schemas/Party"
              }
            ]
          },
          "shippingNoticeIdentifier": {
            "type": "string"
          },
          "shippingNoticeDate": {
            "$ref": "#/components/schemas/DateTime"
          },
          "orderIdentifier": {
            "type": "string",
            "description": "Order number assigned to the related purchase order by the buyer."
          },
          "orderDate": {
            "$ref": "#/components/schemas/DateTime"
          },
          "AdditionalOrderIdentifiers": {
            "$ref": "#/components/schemas/AdditionalOrderIdentifiers"
          },
          "requestedDeliveryDate": {
            "$ref": "#/components/schemas/DateTime"
          },
          "requestedEarliestDeliveryDate": {
            "description": "Earliest date of the requested delivery window.",
            "allOf": [
              {
                "$ref": "#/components/schemas/DateTime"
              }
            ]
          },
          "requestedLatestDeliveryDate": {
            "description": "Latest date of the requested delivery window.",
            "allOf": [
              {
                "$ref": "#/components/schemas/DateTime"
              }
            ]
          },
          "expectedDeliveryDate": {
            "$ref": "#/components/schemas/DateTime"
          },
          "requestedDespatchDate": {
            "$ref": "#/components/schemas/DateTime"
          },
          "despatchDate": {
            "description": "If this is kept empty, the \"shippingNoticeDate\" is used as \"despatchDate\".",
            "allOf": [
              {
                "$ref": "#/components/schemas/DateTime"
              }
            ]
          },
          "carrier": {
            "type": "string",
            "default": null,
            "description": "Carriers company name."
          },
          "trackingNumber": {
            "type": "string",
            "default": null
          },
          "trackingUrl": {
            "type": "string",
            "default": null
          },
          "modeOfTransport": {
            "$ref": "#/components/schemas/ModeOfTransport"
          },
          "incoTerms": {
            "$ref": "#/components/schemas/IncoTerms"
          },
          "shippingMethod": {
            "type": "string"
          },
          "status": {
            "type": "string"
          },
          "comments": {
            "type": "string",
            "maxLength": 100000,
            "description": "Arbitrary human-readable information buyers can send within purchase orders"
          },
          "deliveryInformation": {
            "type": "string",
            "maxLength": 100000,
            "description": "Information about the delivery process."
          },
          "purchasingInformation": {
            "type": "string",
            "maxLength": 100000,
            "description": "Additional information about purchasing."
          },
          "legalInformation": {
            "type": "string",
            "maxLength": 100000,
            "description": "Legal notices and information."
          },
          "currency": {
            "$ref": "#/components/schemas/Currency"
          },
          "version": {
            "type": "integer",
            "description": "The document version number. Subsequent updates should increment this number by 1."
          }
        }
      },
      "ShippingNoticeTransportUnit": {
        "type": "object",
        "description": "If a TransportUnit does not contain sub items (like packages on a pallet), it must contain a nonempty list of items. ",
        "required": [
          "items"
        ],
        "properties": {
          "unitIdentifier": {
            "type": "string",
            "description": "Transport unit number. (SSCC or NVE)",
            "example": "340000000000001"
          },
          "unitType": {
            "type": "string",
            "description": "Transport unit type. Supported values: EURO_PALLET (Euro Pallet 120\u00d780 cm), EURO_PALLET_HALF (1/2 Euro Pallet 80\u00d760 cm), EURO_PALLET_QUARTER (1/4 Euro Pallet 60\u00d740 cm), PALLET (generic/non-Euro pallet), PACKAGE, CARTON, CONTAINER.",
            "enum": [
              "EURO_PALLET",
              "EURO_PALLET_HALF",
              "EURO_PALLET_QUARTER",
              "CARTON",
              "PACKAGE",
              "PALLET",
              "CONTAINER"
            ]
          },
          "containedTradeUnitCount": {
            "type": "integer",
            "description": "Number of contained trade units. (cases, cartons, etc.)"
          },
          "requestedDeliveryDate": {
            "$ref": "#/components/schemas/DateTime"
          },
          "expectedDeliveryDate": {
            "$ref": "#/components/schemas/DateTime"
          },
          "requestedDespatchDate": {
            "$ref": "#/components/schemas/DateTime"
          },
          "despatchDate": {
            "$ref": "#/components/schemas/DateTime"
          },
          "carrier": {
            "$ref": "#/components/schemas/TransportUnitCarrier"
          },
          "transportLabel": {
            "$ref": "#/components/schemas/TransportLabel"
          },
          "items": {
            "type": "array",
            "description": "Line items contained in this transport unit.",
            "items": {
              "$ref": "#/components/schemas/ShippingNoticeItemWithSubSubItems"
            }
          }
        }
      },
      "ShippingNoticeTransportUnitWithSubTransportUnits": {
        "allOf": [
          {
            "$ref": "#/components/schemas/ShippingNoticeTransportUnit"
          },
          {
            "type": "object",
            "properties": {
              "transportUnits": {
                "type": "array",
                "description": "Contained transport units (e.g. sandwich pallet layers).",
                "items": {
                  "$ref": "#/components/schemas/ShippingNoticeTransportUnit"
                }
              }
            }
          }
        ]
      },
      "ShippingNoticeItem": {
        "type": "object",
        "required": [
          "lineNumber",
          "identifiers",
          "isDepositItem",
          "orderedQuantity",
          "shippedQuantity"
        ],
        "properties": {
          "lineNumber": {
            "type": "integer"
          },
          "orderLineNumber": {
            "type": "integer",
            "description": "Line number used on the order."
          },
          "orderIdentifier": {
            "type": "string",
            "description": "Order number assigned to the related purchase order by the buyer."
          },
          "identifiers": {
            "type": "array",
            "minItems": 1,
            "description": "Which identifiers are required depends on your trade partner. Most trade partners expect at least one identifier with domain `GS1` or `BUYER`.",
            "items": {
              "$ref": "#/components/schemas/ItemIdentifier"
            }
          },
          "isDepositItem": {
            "type": "boolean",
            "description": "If true, the item is a deposit item such as bottle deposit (German: Pfandartikel)."
          },
          "description": {
            "type": "string",
            "description": "Item description."
          },
          "comments": {
            "type": "string"
          },
          "orderedQuantity": {
            "type": "number",
            "description": "The quantity ordered by the customer. For subitems, this must be the total quantity of this item. For example, the parent item is a display of chocolate bars and has quantity 2. Each display contains 50 chocolate bars. Therefore, the quantity of the \"Chocolate Bar\" subitem is 100 (2x50)."
          },
          "shippedQuantity": {
            "type": "number",
            "description": "The quantity shipped to the customer. For subitems, this must be the total quantity of this item. For example, the parent item is a display of chocolate bars and has quantity 2. Each display contains 50 chocolate bars. Therefore, the quantity of the \"Chocolate Bar\" subitem is 100 (2x50)."
          },
          "openQuantityAction": {
            "type": "string",
            "enum": [
              "DISCARDED",
              "DELIVERED_LATER"
            ],
            "description": "Method used to handle mismatches between \"orderedQuantity\" and \"shippedQuantity\". Required if \"orderedQuantity\" and \"shippedQuantity\" mismatch, otherwise prohibited."
          },
          "batches": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/Batch"
            }
          },
          "serialNumbers": {
            "type": "array",
            "description": "Serial numbers of the individual units of this line item.",
            "items": {
              "$ref": "#/components/schemas/SerialNumber"
            }
          },
          "unitPrice": {
            "type": "number",
            "example": 1.5,
            "format": "float",
            "default": null
          },
          "recommendedRetailPrice": {
            "type": "number",
            "example": 1.75,
            "format": "float",
            "default": null
          },
          "tax": {
            "$ref": "#/components/schemas/Tax"
          },
          "minimumRemainingShelfLifeInDays": {
            "type": "integer",
            "description": "Minimum remaining shelf life in days."
          },
          "promotionCode": {
            "type": "string",
            "maxLength": 255,
            "description": "Promotion code applied to this item."
          },
          "contractReference": {
            "type": "string",
            "maxLength": 255,
            "description": "Contract reference for this item."
          },
          "netWeight": {
            "type": "number",
            "format": "float",
            "description": "Net weight of the item in grams."
          },
          "grossWeight": {
            "type": "number",
            "format": "float",
            "description": "Gross weight of the item in grams."
          },
          "originCountryCode": {
            "type": "string",
            "description": "ISO 3166-1 alpha-2 country code.",
            "example": "DE"
          },
          "colorCode": {
            "type": "string",
            "maxLength": 255,
            "description": "Color code of the item."
          },
          "colorName": {
            "type": "string",
            "maxLength": 255,
            "description": "Color name of the item."
          },
          "size": {
            "type": "string",
            "maxLength": 255,
            "description": "Size of the item."
          },
          "dimension": {
            "type": "string",
            "maxLength": 255,
            "description": "Dimension of the item."
          },
          "hsCode": {
            "type": "string",
            "maxLength": 255,
            "description": "Harmonized System Code of the item."
          },
          "cnCode": {
            "type": "string",
            "description": "The 8-digit Combined Nomenclature (CN) code classifying this product for EU customs and trade statistics. Suppliers are responsible for providing a valid code."
          },
          "organicControlPointNumber": {
            "type": "string",
            "maxLength": 255,
            "description": "Organic Control Point Number of the supplier - OCPN is a unique identifier that verifies that a producer of organic products is adhering to the standards for organic production."
          },
          "fscNumber": {
            "type": "string",
            "description": "An FSC number refers to an identification number issued by the Forest Stewardship Council (FSC), an international organization that certifies sustainable forestry practices."
          },
          "mscNumber": {
            "type": "string",
            "description": "An MSC number refers to an identification number issued by the Marine Stewardship Council (MSC), an international organization that certifies sustainable fishing practices."
          },
          "certifications": {
            "$ref": "#/components/schemas/Certifications"
          },
          "substituteOf": {
            "allOf": [
              {
                "$ref": "#/components/schemas/ItemSubstitution"
              }
            ],
            "description": "The originally ordered article that this line item substitutes. Set on the substitute line item."
          },
          "substitutedBy": {
            "allOf": [
              {
                "$ref": "#/components/schemas/ItemSubstitution"
              }
            ],
            "description": "The article delivered to substitute this originally ordered line item, which typically carries a shipped or confirmed quantity of 0. Set on the originally ordered line item."
          },
          "unitOfMeasure": {
            "$ref": "#/components/schemas/UnitOfMeasure"
          },
          "breeder": {
            "allOf": [
              {
                "$ref": "#/components/schemas/Party"
              },
              {
                "type": "object",
                "required": [
                  "identifiers"
                ],
                "properties": {
                  "identifiers": {
                    "type": "array",
                    "minItems": 1,
                    "items": {
                      "$ref": "#/components/schemas/ShippingNoticePartyIdentifier"
                    }
                  }
                }
              }
            ]
          },
          "fattener": {
            "allOf": [
              {
                "$ref": "#/components/schemas/Party"
              },
              {
                "type": "object",
                "required": [
                  "identifiers"
                ],
                "properties": {
                  "identifiers": {
                    "type": "array",
                    "minItems": 1,
                    "items": {
                      "$ref": "#/components/schemas/ShippingNoticePartyIdentifier"
                    }
                  }
                }
              }
            ]
          },
          "slaughterer": {
            "allOf": [
              {
                "$ref": "#/components/schemas/Party"
              },
              {
                "type": "object",
                "required": [
                  "identifiers"
                ],
                "properties": {
                  "identifiers": {
                    "type": "array",
                    "minItems": 1,
                    "items": {
                      "$ref": "#/components/schemas/ShippingNoticePartyIdentifier"
                    }
                  }
                }
              }
            ]
          },
          "cutter": {
            "allOf": [
              {
                "$ref": "#/components/schemas/Party"
              },
              {
                "type": "object",
                "required": [
                  "identifiers"
                ],
                "properties": {
                  "identifiers": {
                    "type": "array",
                    "minItems": 1,
                    "items": {
                      "$ref": "#/components/schemas/ShippingNoticePartyIdentifier"
                    }
                  }
                }
              }
            ]
          },
          "slaughterDate": {
            "$ref": "#/components/schemas/Date"
          },
          "tradeClass": {
            "type": "string",
            "maxLength": 255
          },
          "earTag": {
            "type": "string",
            "maxLength": 255
          },
          "birthdate": {
            "$ref": "#/components/schemas/Date"
          },
          "gender": {
            "type": "string",
            "enum": [
              "MALE",
              "FEMALE"
            ]
          }
        }
      },
      "ShippingNoticeItemWithSubItems": {
        "allOf": [
          {
            "$ref": "#/components/schemas/ShippingNoticeItem"
          },
          {
            "type": "object",
            "properties": {
              "subItems": {
                "type": "array",
                "description": "Sub items of this sub shipping notice item.",
                "items": {
                  "$ref": "#/components/schemas/ShippingNoticeItem"
                }
              }
            }
          }
        ]
      },
      "ShippingNoticeItemWithSubSubItems": {
        "allOf": [
          {
            "$ref": "#/components/schemas/ShippingNoticeItem"
          },
          {
            "type": "object",
            "properties": {
              "subItems": {
                "type": "array",
                "description": "Sub items of this shipping notice item. Supports two levels of nesting.",
                "items": {
                  "$ref": "#/components/schemas/ShippingNoticeItemWithSubItems"
                }
              }
            }
          }
        ]
      },
      "Party": {
        "type": "object",
        "required": [
          "identifiers"
        ],
        "properties": {
          "name": {
            "type": "string",
            "description": "Mandatory if the deprecated \"name\" attribute on the \"PostalAddress\" object is omitted."
          },
          "identifiers": {
            "type": "array",
            "minItems": 1,
            "items": {
              "$ref": "#/components/schemas/PartyIdentifier"
            }
          },
          "postalAddress": {
            "$ref": "#/components/schemas/PostalAddress"
          },
          "contacts": {
            "type": "array",
            "minItems": 1,
            "items": {
              "$ref": "#/components/schemas/Contact"
            }
          },
          "financialInstitution": {
            "type": "object",
            "properties": {
              "name": {
                "type": "string"
              },
              "institutionId": {
                "type": "string"
              },
              "institutionIdDomain": {
                "type": "string"
              },
              "accountNumber": {
                "type": "string"
              },
              "accountHolder": {
                "type": "string"
              }
            }
          }
        }
      },
      "ShipToParty": {
        "type": "object",
        "description": "A party object where identifiers are optional, used specifically for shipTo fields.",
        "properties": {
          "name": {
            "type": "string",
            "description": "Mandatory if the deprecated \"name\" attribute on the \"PostalAddress\" object is omitted."
          },
          "identifiers": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/PartyIdentifier"
            }
          },
          "postalAddress": {
            "$ref": "#/components/schemas/PostalAddress"
          },
          "contacts": {
            "type": "array",
            "minItems": 1,
            "items": {
              "$ref": "#/components/schemas/Contact"
            }
          },
          "financialInstitution": {
            "type": "object",
            "properties": {
              "name": {
                "type": "string"
              },
              "institutionId": {
                "type": "string"
              },
              "institutionIdDomain": {
                "type": "string"
              },
              "accountNumber": {
                "type": "string"
              },
              "accountHolder": {
                "type": "string"
              }
            }
          }
        }
      },
      "FinalRecipientParty": {
        "type": "object",
        "description": "A party object where identifiers are optional, used specifically for finalRecipient fields.",
        "properties": {
          "name": {
            "type": "string",
            "description": "Mandatory if the deprecated \"name\" attribute on the \"PostalAddress\" object is omitted."
          },
          "identifiers": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/PartyIdentifier"
            }
          },
          "postalAddress": {
            "$ref": "#/components/schemas/PostalAddress"
          },
          "contacts": {
            "type": "array",
            "minItems": 1,
            "items": {
              "$ref": "#/components/schemas/Contact"
            }
          },
          "financialInstitution": {
            "type": "object",
            "properties": {
              "name": {
                "type": "string"
              },
              "institutionId": {
                "type": "string"
              },
              "institutionIdDomain": {
                "type": "string"
              },
              "accountNumber": {
                "type": "string"
              },
              "accountHolder": {
                "type": "string"
              }
            }
          }
        }
      },
      "PartyIdentifier": {
        "type": "object",
        "required": [
          "identifier",
          "domain"
        ],
        "properties": {
          "identifier": {
            "type": "string",
            "description": "Party identifier within the \"domain\" such as GLN on GS1 domain, DUNS number on DUNS domain, etc.",
            "example": "1100001016310"
          },
          "domain": {
            "type": "string",
            "description": "Identification system the identifier belongs to.",
            "default": "GS1",
            "enum": [
              "GS1",
              "DUNS",
              "VAT_DE",
              "FED_TAX",
              "SENDER_INTERNAL",
              "RECEIVER_INTERNAL"
            ]
          }
        }
      },
      "ShippingNoticePartyIdentifier": {
        "type": "object",
        "required": [
          "identifier",
          "domain"
        ],
        "properties": {
          "identifier": {
            "type": "string",
            "description": "Party identifier within the \"domain\" such as GLN on GS1 domain, DUNS number on DUNS domain, etc.",
            "example": "1100001016310"
          },
          "domain": {
            "type": "string",
            "description": "Identification system the identifier belongs to.",
            "default": "GS1",
            "enum": [
              "GS1",
              "DUNS",
              "VAT_DE",
              "FED_TAX",
              "SENDER_INTERNAL",
              "RECEIVER_INTERNAL",
              "VVVO",
              "VETERINARY"
            ]
          }
        }
      },
      "PostalAddress": {
        "type": "object",
        "description": "Depending on the transaction different properties are required. Only on an invoice a full address is required.",
        "properties": {
          "name": {
            "type": "string",
            "example": "ACME Germany GmbH - Au\u00dfenstelle Hamburg",
            "deprecated": true,
            "description": "Use the \"name\" attribute on the \"Party\" object instead."
          },
          "street": {
            "type": "string",
            "example": "Sternstrasse 23"
          },
          "addressExtra": {
            "type": "string",
            "example": "E4"
          },
          "city": {
            "type": "string",
            "example": "Hamburg"
          },
          "postalCode": {
            "type": "string",
            "example": "21571"
          },
          "state": {
            "type": "string",
            "example": "HH"
          },
          "countryCode": {
            "type": "string",
            "minLength": 2,
            "maxLength": 2,
            "pattern": "^[A-Z]{2}$",
            "description": "ISO 3166-1 standard two-letter country code.",
            "example": "DE"
          }
        }
      },
      "Contact": {
        "type": "object",
        "properties": {
          "firstName": {
            "type": "string",
            "example": "Atikin"
          },
          "lastName": {
            "type": "string",
            "example": "Iar"
          },
          "phone": {
            "type": "string",
            "example": "+491763021548"
          },
          "mobile": {
            "type": "string",
            "example": "+447881561299"
          },
          "email": {
            "type": "string",
            "example": "orders@buyer.com",
            "format": "email"
          },
          "fax": {
            "type": "string",
            "example": "+491763021548-11"
          },
          "department": {
            "type": "string",
            "example": "Purchasing"
          }
        }
      },
      "ProcurosTransactionId": {
        "type": "string",
        "description": "Unique ID assigned to every transaction on the Procuros Network.",
        "format": "uuid",
        "example": "949b2f25-fd9d-4c58-8899-b4dc277f8cf9"
      },
      "TransactionType": {
        "type": "string",
        "description": "Type of transaction.",
        "enum": [
          "ORDER",
          "ORDER_RESPONSE",
          "SHIPPING_NOTICE",
          "INVOICE",
          "CREDIT_NOTE",
          "DISPATCH_INSTRUCTION",
          "DISPATCH_INSTRUCTION_RESPONSE",
          "RECEIVAL_NOTICE",
          "REMITTANCE_ADVICE",
          "PRODUCT_CATALOG",
          "INVENTORY_REPORT",
          "SALES_REPORT"
        ]
      },
      "TransactionContent": {
        "oneOf": [
          {
            "$ref": "#/components/schemas/Order"
          },
          {
            "$ref": "#/components/schemas/OrderResponse"
          },
          {
            "$ref": "#/components/schemas/ShippingNotice"
          },
          {
            "$ref": "#/components/schemas/Invoice"
          },
          {
            "$ref": "#/components/schemas/CreditNote"
          },
          {
            "$ref": "#/components/schemas/DispatchInstruction"
          },
          {
            "$ref": "#/components/schemas/DispatchInstructionResponse"
          },
          {
            "$ref": "#/components/schemas/ReceivalNotice"
          },
          {
            "$ref": "#/components/schemas/RemittanceAdvice"
          },
          {
            "$ref": "#/components/schemas/ProductCatalog"
          },
          {
            "$ref": "#/components/schemas/InventoryReport"
          },
          {
            "$ref": "#/components/schemas/SalesReport"
          }
        ]
      },
      "Transaction": {
        "type": "object",
        "required": [
          "procurosTransactionId",
          "status",
          "flow",
          "createdAt",
          "type",
          "content",
          "isLatestVersion"
        ],
        "properties": {
          "procurosTransactionId": {
            "$ref": "#/components/schemas/ProcurosTransactionId"
          },
          "type": {
            "$ref": "#/components/schemas/TransactionType"
          },
          "status": {
            "$ref": "#/components/schemas/TransactionStatus"
          },
          "flow": {
            "$ref": "#/components/schemas/TransactionFlow"
          },
          "createdAt": {
            "$ref": "#/components/schemas/DateTime"
          },
          "replacesProcurosTransactionId": {
            "type": "string",
            "format": "uuid",
            "nullable": true,
            "description": "ID of the transaction this one replaces (i.e. this is a newer version of that transaction).",
            "example": "949b2f25-fd9d-4c58-8899-b4dc277f8cf9"
          },
          "replacedByProcurosTransactionId": {
            "type": "string",
            "format": "uuid",
            "nullable": true,
            "description": "ID of the transaction that replaced this one (i.e. a newer version exists).",
            "example": null
          },
          "isLatestVersion": {
            "type": "boolean",
            "description": "Whether this is the latest version of the transaction. False when a newer version exists (see replacedByProcurosTransactionId).",
            "example": true
          },
          "content": {
            "$ref": "#/components/schemas/TransactionContent"
          }
        }
      },
      "TransactionFlow": {
        "type": "string",
        "description": "Flow (LIVE or TEST) of the transaction.",
        "enum": [
          "LIVE",
          "TEST"
        ]
      },
      "TransactionStatus": {
        "type": "string",
        "description": "Current status of the transaction.",
        "enum": [
          "PENDING",
          "SUCCESS",
          "FAILED",
          "DROPPED",
          "UNKNOWN"
        ]
      },
      "ReceivedTransaction": {
        "type": "object",
        "required": [
          "procurosTransactionId",
          "type",
          "content",
          "isLatestVersion"
        ],
        "properties": {
          "procurosTransactionId": {
            "$ref": "#/components/schemas/ProcurosTransactionId"
          },
          "type": {
            "$ref": "#/components/schemas/TransactionType"
          },
          "replacesProcurosTransactionId": {
            "type": "string",
            "format": "uuid",
            "nullable": true,
            "description": "ID of the transaction this one replaces (i.e. this is a newer version of that transaction).",
            "example": "949b2f25-fd9d-4c58-8899-b4dc277f8cf9"
          },
          "replacedByProcurosTransactionId": {
            "type": "string",
            "format": "uuid",
            "nullable": true,
            "description": "ID of the transaction that replaced this one (i.e. a newer version exists).",
            "example": null
          },
          "isLatestVersion": {
            "type": "boolean",
            "description": "Whether this is the latest version of the transaction. False when a newer version exists (see replacedByProcurosTransactionId).",
            "example": true
          },
          "content": {
            "$ref": "#/components/schemas/TransactionContent"
          }
        }
      },
      "SentTransaction": {
        "oneOf": [
          {
            "$ref": "#/components/schemas/SentOrderTransaction"
          },
          {
            "$ref": "#/components/schemas/SentOrderResponseTransaction"
          },
          {
            "$ref": "#/components/schemas/SentShippingNoticeTransaction"
          },
          {
            "$ref": "#/components/schemas/SentInvoiceTransaction"
          },
          {
            "$ref": "#/components/schemas/SentCreditNoteTransaction"
          },
          {
            "$ref": "#/components/schemas/SentDispatchInstructionTransaction"
          },
          {
            "$ref": "#/components/schemas/SentDispatchInstructionResponseTransaction"
          },
          {
            "$ref": "#/components/schemas/SentReceivalNoticeTransaction"
          },
          {
            "$ref": "#/components/schemas/SentRemittanceAdviceTransaction"
          },
          {
            "$ref": "#/components/schemas/SentProductCatalogTransaction"
          },
          {
            "$ref": "#/components/schemas/SentInventoryReportTransaction"
          },
          {
            "$ref": "#/components/schemas/SentSalesReportTransaction"
          }
        ],
        "discriminator": {
          "propertyName": "type",
          "mapping": {
            "ORDER": "#/components/schemas/SentOrderTransaction",
            "ORDER_RESPONSE": "#/components/schemas/SentOrderResponseTransaction",
            "SHIPPING_NOTICE": "#/components/schemas/SentShippingNoticeTransaction",
            "INVOICE": "#/components/schemas/SentInvoiceTransaction",
            "CREDIT_NOTE": "#/components/schemas/SentCreditNoteTransaction",
            "DISPATCH_INSTRUCTION": "#/components/schemas/SentDispatchInstructionTransaction",
            "DISPATCH_INSTRUCTION_RESPONSE": "#/components/schemas/SentDispatchInstructionResponseTransaction",
            "RECEIVAL_NOTICE": "#/components/schemas/SentReceivalNoticeTransaction",
            "REMITTANCE_ADVICE": "#/components/schemas/SentRemittanceAdviceTransaction",
            "PRODUCT_CATALOG": "#/components/schemas/SentProductCatalogTransaction",
            "INVENTORY_REPORT": "#/components/schemas/SentInventoryReportTransaction",
            "SALES_REPORT": "#/components/schemas/SentSalesReportTransaction"
          }
        }
      },
      "SentOrderTransaction": {
        "type": "object",
        "title": "Order",
        "required": [
          "type",
          "content"
        ],
        "properties": {
          "type": {
            "type": "string",
            "enum": [
              "ORDER"
            ]
          },
          "content": {
            "$ref": "#/components/schemas/Order"
          }
        }
      },
      "SentOrderResponseTransaction": {
        "type": "object",
        "title": "Order Response",
        "required": [
          "type",
          "content"
        ],
        "properties": {
          "type": {
            "type": "string",
            "enum": [
              "ORDER_RESPONSE"
            ]
          },
          "content": {
            "$ref": "#/components/schemas/OrderResponse"
          }
        }
      },
      "SentShippingNoticeTransaction": {
        "type": "object",
        "title": "Shipping Notice",
        "required": [
          "type",
          "content"
        ],
        "properties": {
          "type": {
            "type": "string",
            "enum": [
              "SHIPPING_NOTICE"
            ]
          },
          "content": {
            "$ref": "#/components/schemas/ShippingNotice"
          }
        }
      },
      "SentInvoiceTransaction": {
        "type": "object",
        "title": "Invoice",
        "required": [
          "type",
          "content"
        ],
        "properties": {
          "type": {
            "type": "string",
            "enum": [
              "INVOICE"
            ]
          },
          "content": {
            "$ref": "#/components/schemas/Invoice"
          }
        }
      },
      "SentCreditNoteTransaction": {
        "type": "object",
        "title": "Credit Note",
        "required": [
          "type",
          "content"
        ],
        "properties": {
          "type": {
            "type": "string",
            "enum": [
              "CREDIT_NOTE"
            ]
          },
          "content": {
            "$ref": "#/components/schemas/CreditNote"
          }
        }
      },
      "SentDispatchInstructionTransaction": {
        "type": "object",
        "title": "Dispatch Instruction",
        "required": [
          "type",
          "content"
        ],
        "properties": {
          "type": {
            "type": "string",
            "enum": [
              "DISPATCH_INSTRUCTION"
            ]
          },
          "content": {
            "$ref": "#/components/schemas/DispatchInstruction"
          }
        }
      },
      "SentDispatchInstructionResponseTransaction": {
        "type": "object",
        "title": "Dispatch Instruction Response",
        "required": [
          "type",
          "content"
        ],
        "properties": {
          "type": {
            "type": "string",
            "enum": [
              "DISPATCH_INSTRUCTION_RESPONSE"
            ]
          },
          "content": {
            "$ref": "#/components/schemas/DispatchInstructionResponse"
          }
        }
      },
      "SentReceivalNoticeTransaction": {
        "type": "object",
        "title": "Receival Notice",
        "required": [
          "type",
          "content"
        ],
        "properties": {
          "type": {
            "type": "string",
            "enum": [
              "RECEIVAL_NOTICE"
            ]
          },
          "content": {
            "$ref": "#/components/schemas/ReceivalNotice"
          }
        }
      },
      "SentRemittanceAdviceTransaction": {
        "type": "object",
        "title": "Remittance Advice",
        "required": [
          "type",
          "content"
        ],
        "properties": {
          "type": {
            "type": "string",
            "enum": [
              "REMITTANCE_ADVICE"
            ]
          },
          "content": {
            "$ref": "#/components/schemas/RemittanceAdvice"
          }
        }
      },
      "SentProductCatalogTransaction": {
        "type": "object",
        "title": "Product Catalog",
        "required": [
          "type",
          "content"
        ],
        "properties": {
          "type": {
            "type": "string",
            "enum": [
              "PRODUCT_CATALOG"
            ]
          },
          "content": {
            "$ref": "#/components/schemas/ProductCatalog"
          }
        }
      },
      "SentInventoryReportTransaction": {
        "type": "object",
        "title": "Inventory Report",
        "required": [
          "type",
          "content"
        ],
        "properties": {
          "type": {
            "type": "string",
            "enum": [
              "INVENTORY_REPORT"
            ]
          },
          "content": {
            "$ref": "#/components/schemas/InventoryReport"
          }
        }
      },
      "SentSalesReportTransaction": {
        "type": "object",
        "title": "Sales Report",
        "required": [
          "type",
          "content"
        ],
        "properties": {
          "type": {
            "type": "string",
            "enum": [
              "SALES_REPORT"
            ]
          },
          "content": {
            "$ref": "#/components/schemas/SalesReport"
          }
        }
      },
      "ErrorType": {
        "type": "string",
        "description": "The type of the error. `DATA` indicates that the error is caused by invalid or insufficient data and can be resolved by a user. `INTERNAL` indicates a system-level error that cannot be fixed by a user.",
        "enum": [
          "DATA",
          "INTERNAL"
        ]
      },
      "InternalErrorResponse": {
        "type": "object",
        "required": [
          "message"
        ],
        "properties": {
          "message": {
            "type": "string"
          }
        }
      },
      "ClientErrorResponse": {
        "type": "object",
        "required": [
          "message",
          "errorUrl"
        ],
        "properties": {
          "message": {
            "type": "string"
          },
          "errorUrl": {
            "type": "string",
            "description": "URL linking to the error on the Procuros Portal."
          }
        }
      },
      "ValidationError": {
        "type": "object",
        "additionalProperties": {
          "type": "array",
          "description": "List of validation errors.",
          "minItems": 1,
          "items": {
            "type": "string"
          }
        }
      },
      "GeneralValidationErrorResponse": {
        "type": "object",
        "required": [
          "message",
          "errors"
        ],
        "properties": {
          "message": {
            "type": "string"
          },
          "errors": {
            "$ref": "#/components/schemas/ValidationError"
          }
        }
      },
      "TransactionValidationErrorResponse": {
        "type": "object",
        "required": [
          "message",
          "errors",
          "errorUrl"
        ],
        "properties": {
          "message": {
            "type": "string"
          },
          "errors": {
            "$ref": "#/components/schemas/ValidationError"
          },
          "errorUrl": {
            "type": "string",
            "description": "URL linking to the error on the Procuros Portal."
          }
        }
      },
      "ExportCustomersResult": {
        "type": "array",
        "items": {
          "type": "object",
          "required": [
            "systemIdentifier",
            "isEnabled",
            "mainParty"
          ],
          "properties": {
            "systemIdentifier": {
              "type": "string",
              "example": "KU-1029",
              "description": "The internal ERP system identifier this trade partner has on your side. Will be supplied back to you through the \"SYNC_ENABLED_TRADE_PARTNERS\" task."
            },
            "isEnabled": {
              "type": "boolean",
              "example": false,
              "description": "Indicates whether the trade partner is enabled for Procuros."
            },
            "mainParty": {
              "description": "Main party (address + contacts) of the trade partner.",
              "allOf": [
                {
                  "$ref": "#/components/schemas/Party"
                }
              ]
            },
            "additionalParties": {
              "type": "object",
              "properties": {
                "shipTo": {
                  "type": "array",
                  "description": "Additional ship-to (delivery) parties that exist for this trade partner.",
                  "items": {
                    "$ref": "#/components/schemas/Party"
                  }
                },
                "billTo": {
                  "type": "array",
                  "description": "Additional bill-to (billing) parties that exist for this trade partner.",
                  "items": {
                    "$ref": "#/components/schemas/Party"
                  }
                },
                "payTo": {
                  "type": "array",
                  "description": "Additional pay-to (remittance) parties that exist for this trade partner.",
                  "items": {
                    "$ref": "#/components/schemas/Party"
                  }
                }
              }
            }
          }
        }
      },
      "ExportSuppliersResult": {
        "type": "array",
        "items": {
          "type": "object",
          "required": [
            "systemIdentifier",
            "isEnabled",
            "mainParty"
          ],
          "properties": {
            "systemIdentifier": {
              "type": "string",
              "example": "KU-1029",
              "description": "The internal ERP system identifier this trade partner has on your side. Will be supplied back to you through the \"SYNC_ENABLED_TRADE_PARTNERS\" task."
            },
            "isEnabled": {
              "type": "boolean",
              "example": false,
              "description": "Indicates whether the trade partner is enabled for Procuros."
            },
            "mainParty": {
              "description": "Main party (address + contacts) of the trade partner.",
              "allOf": [
                {
                  "$ref": "#/components/schemas/Party"
                }
              ]
            },
            "additionalParties": {
              "type": "object",
              "properties": {
                "shipTo": {
                  "type": "array",
                  "description": "Additional ship-to (delivery) parties that exist for this trade partner.",
                  "items": {
                    "$ref": "#/components/schemas/Party"
                  }
                },
                "billTo": {
                  "type": "array",
                  "description": "Additional bill-to (billing) parties that exist for this trade partner.",
                  "items": {
                    "$ref": "#/components/schemas/Party"
                  }
                },
                "payTo": {
                  "type": "array",
                  "description": "Additional pay-to (remittance) parties that exist for this trade partner.",
                  "items": {
                    "$ref": "#/components/schemas/Party"
                  }
                }
              }
            }
          }
        }
      },
      "SyncEnabledTradePartnersPayload": {
        "type": "object",
        "required": [
          "customers",
          "suppliers"
        ],
        "properties": {
          "customers": {
            "type": "array",
            "items": {
              "type": "string",
              "example": "KU-1092",
              "description": "Your internal ERP system identifier of the trade partner as supplied to Procuros through your response to the \"EXPORT_CUSTOMERS\" task."
            }
          },
          "suppliers": {
            "type": "array",
            "items": {
              "type": "string",
              "example": "SU-1092",
              "description": "Your internal ERP system identifier of the trade partner as supplied to Procuros through your response to the \"EXPORT_SUPPLIERS\" task."
            }
          }
        }
      },
      "ModificationGroup": {
        "type": "object",
        "required": [
          "basis",
          "level",
          "modifications"
        ],
        "properties": {
          "basis": {
            "type": "number",
            "format": "float",
            "example": 1.5,
            "description": "The net base amount on which the modifications are applied. For item-level modifications on level 1, this equals the line item subtotal (quantity * unitPrice). For document-level modifications on level 1, this equals the subtotalAmount of the invoice."
          },
          "level": {
            "type": "integer",
            "example": 1,
            "description": "Determines in which order the modifications group should be applied. Starting at 1 and continuously increasing. There should be no modification groups with the same level."
          },
          "modifications": {
            "type": "array",
            "minItems": 1,
            "items": {
              "$ref": "#/components/schemas/Modification"
            }
          }
        }
      },
      "Modification": {
        "type": "object",
        "description": "One of percentage and amount is required.",
        "properties": {
          "type": {
            "type": "string",
            "description": "Type of the modification",
            "enum": [
              "ALLOWANCE",
              "CHARGE"
            ]
          },
          "calculationType": {
            "type": "string",
            "description": "Type of the calculation",
            "enum": [
              "ABSOLUTE",
              "RELATIVE"
            ]
          },
          "reasonCode": {
            "type": "string",
            "description": "Reason for the modification",
            "enum": [
              "SHIPPING",
              "PACKAGING",
              "HANDLING",
              "DISCOUNT",
              "INSURANCE"
            ]
          },
          "description": {
            "type": "string",
            "description": "Description for the modification"
          },
          "percentage": {
            "type": "number",
            "format": "float",
            "example": 1.5
          },
          "amount": {
            "type": "number",
            "format": "float",
            "example": 5.5
          },
          "tax": {
            "$ref": "#/components/schemas/Tax"
          }
        }
      },
      "CreditNote": {
        "type": "object",
        "title": "Credit Note",
        "description": "A credit note is a document sent to a customer in order to correct a mistake on an order or an invoice, or to refund an amount paid for products or services.",
        "required": [
          "header",
          "items",
          "summary"
        ],
        "properties": {
          "header": {
            "$ref": "#/components/schemas/CreditNoteHeader"
          },
          "items": {
            "type": "array",
            "minItems": 1,
            "items": {
              "$ref": "#/components/schemas/CreditNoteItemWithSubSubItems"
            }
          },
          "summary": {
            "description": "The summary is required if a modificationGroup exists on the invoice, otherwise the summary is optional. In API v3, the summary will be mandatory in any case.",
            "type": "object",
            "required": [
              "dueAmount"
            ],
            "properties": {
              "subtotalAmount": {
                "type": "number",
                "format": "float",
                "description": "The sum of all line item subtotal amounts. The line item subtotal already includes all line item modifications."
              },
              "grossAmount": {
                "type": "number",
                "format": "float",
                "description": "The netAmount plus taxes."
              },
              "netAmount": {
                "type": "number",
                "format": "float",
                "description": "The subtotalAmount plus totalCharges and minus totalAllowances."
              },
              "dueAmount": {
                "type": "number",
                "format": "float",
                "description": "The amount still owed, that is grossAmount minus paidAmount. It equals grossAmount when nothing was paid up front."
              },
              "paidAmount": {
                "type": "number",
                "format": "float",
                "description": "The part of the invoice already settled before it was issued, for example a prepayment or a deposit. dueAmount is already net of this value.",
                "example": 155.53
              },
              "totalCharges": {
                "type": "number",
                "format": "float",
                "description": "The total sum of all charges applied on document-level. Does not include charges applied on item-level."
              },
              "totalAllowances": {
                "type": "number",
                "format": "float",
                "description": "The total sum of all allowances applied on invoice level. Does not include allowances applied on item-level."
              },
              "tax": {
                "type": "object",
                "minItems": 1,
                "required": [
                  "total",
                  "items"
                ],
                "properties": {
                  "total": {
                    "type": "number",
                    "format": "float"
                  },
                  "description": {
                    "type": "string",
                    "example": "Total item tax."
                  },
                  "items": {
                    "type": "array",
                    "items": {
                      "type": "object",
                      "required": [
                        "percentage",
                        "taxableAmount",
                        "taxAmount",
                        "category"
                      ],
                      "properties": {
                        "percentage": {
                          "type": "number",
                          "format": "float"
                        },
                        "taxableAmount": {
                          "type": "number",
                          "format": "float"
                        },
                        "taxAmount": {
                          "type": "number",
                          "format": "float"
                        },
                        "category": {
                          "type": "string",
                          "description": "VAT category for this tax amount. One of VAT, EXEMPT, ZERO_RATED, VAT_REVERSE_CHARGE, VAT_INTRA_COMMUNITY, VAT_EXPORT or VAT_OUT_OF_SCOPE."
                        },
                        "description": {
                          "type": "string"
                        }
                      }
                    }
                  }
                }
              },
              "modificationGroups": {
                "type": "array",
                "items": {
                  "$ref": "#/components/schemas/ModificationGroup"
                }
              }
            }
          }
        }
      },
      "CreditNoteHeader": {
        "type": "object",
        "required": [
          "buyer",
          "supplier",
          "creditNoteIdentifier",
          "creditNoteDate"
        ],
        "properties": {
          "buyer": {
            "$ref": "#/components/schemas/Party"
          },
          "supplier": {
            "$ref": "#/components/schemas/Party"
          },
          "shipTo": {
            "description": "If this is kept empty, the \"buyer\" is used as the \"shipTo\" party. Note: unlike other party fields, identifiers are optional for shipTo.",
            "allOf": [
              {
                "$ref": "#/components/schemas/ShipToParty"
              }
            ]
          },
          "billTo": {
            "description": "If this is kept empty, the \"buyer\" is used as the \"billTo\" party.",
            "allOf": [
              {
                "$ref": "#/components/schemas/Party"
              }
            ]
          },
          "billFrom": {
            "description": "If this is kept empty, the \"supplier\" is used as the \"billFrom\" party.",
            "allOf": [
              {
                "$ref": "#/components/schemas/Party"
              }
            ]
          },
          "finalRecipient": {
            "description": "Used in case the shipTo is not the final recipient. Mostly used in dropshipping or cross-docking scenarios. Identifiers are optional.",
            "allOf": [
              {
                "$ref": "#/components/schemas/FinalRecipientParty"
              }
            ]
          },
          "technicalRecipient": {
            "description": "Used when the recipient of the message differs from the buyer or bill_to party. Common in scenarios where invoices or documents need to be sent to a centralized receiving entity (e.g., a group headquarters or shared services center) that differs from the actual buyer or billing party in the transaction.",
            "allOf": [
              {
                "$ref": "#/components/schemas/Party"
              }
            ]
          },
          "technicalSender": {
            "description": "Used when the sender of the message differs from the supplier party. Common in scenarios where orders or documents are sent from a centralized sending entity (e.g., a group headquarters or shared services center) that differs from the actual buyer in the transaction.",
            "allOf": [
              {
                "$ref": "#/components/schemas/Party"
              }
            ]
          },
          "creditNoteIdentifier": {
            "type": "string",
            "description": "Credit note number/reference.",
            "example": "CN-0001"
          },
          "creditNoteDate": {
            "$ref": "#/components/schemas/DateTime"
          },
          "creditNoteValueDate": {
            "$ref": "#/components/schemas/DateTime"
          },
          "creditNoteDueDate": {
            "$ref": "#/components/schemas/DateTime"
          },
          "type": {
            "type": "string",
            "description": "Credit note message type",
            "enum": [
              "CORRECTION",
              "VALUE_CREDIT"
            ]
          },
          "invoiceIdentifier": {
            "type": "string",
            "description": "Invoice number/reference.",
            "example": "IV-0001"
          },
          "invoiceDate": {
            "$ref": "#/components/schemas/DateTime"
          },
          "shippingNoticeIdentifier": {
            "type": "string",
            "description": "Shipping notice number/reference.",
            "example": "SN-0001"
          },
          "shippingNoticeDate": {
            "$ref": "#/components/schemas/DateTime"
          },
          "orderIdentifier": {
            "type": "string",
            "description": "Order number assigned to the related purchase order by the buyer."
          },
          "orderDate": {
            "$ref": "#/components/schemas/DateTime"
          },
          "requestedDeliveryDate": {
            "$ref": "#/components/schemas/DateTime"
          },
          "expectedDeliveryDate": {
            "$ref": "#/components/schemas/DateTime"
          },
          "paymentTerms": {
            "type": "array",
            "description": "Used for defining payment targets and optional discounts.",
            "items": {
              "$ref": "#/components/schemas/PaymentTerm"
            }
          },
          "comments": {
            "type": "string",
            "maxLength": 100000,
            "description": "Arbitrary human-readable information buyers can send within invoices"
          },
          "deliveryInformation": {
            "type": "string",
            "maxLength": 100000,
            "description": "Information about the delivery process."
          },
          "purchasingInformation": {
            "type": "string",
            "maxLength": 100000,
            "description": "Additional information about purchasing."
          },
          "legalInformation": {
            "type": "string",
            "maxLength": 100000,
            "description": "Legal notices and information."
          },
          "currency": {
            "$ref": "#/components/schemas/Currency"
          },
          "paymentMethod": {
            "type": "string",
            "description": "How the document is to be paid.",
            "enum": [
              "CASH",
              "CREDIT_TRANSFER",
              "BANK_CARD",
              "DIRECT_DEBIT",
              "CREDIT_CARD"
            ]
          },
          "promotionCode": {
            "type": "string",
            "maxLength": 255,
            "description": "Promotion code applied to the entire invoice. Does not affect invoice calculations."
          },
          "contractReference": {
            "type": "string",
            "maxLength": 255,
            "description": "Contract reference for the credit note."
          },
          "reason": {
            "type": "string",
            "maxLength": 255,
            "description": "Reason for the credit note"
          },
          "organicControlPointNumber": {
            "type": "string",
            "maxLength": 255,
            "description": "Organic Control Point Number of the supplier - OCPN is a unique identifier that verifies that a producer of organic products is adhering to the standards for organic production."
          },
          "version": {
            "type": "integer",
            "description": "The document version number. Subsequent updates should increment this number by 1."
          }
        }
      },
      "CreditNoteItem": {
        "type": "object",
        "required": [
          "lineNumber",
          "identifiers",
          "isDepositItem",
          "isInvoicedItem",
          "quantity",
          "unitPrice",
          "tax"
        ],
        "properties": {
          "lineNumber": {
            "type": "integer",
            "example": 1
          },
          "shippingNoticeIdentifier": {
            "type": "string",
            "description": "Shipping notice number/reference.",
            "example": "SN-0001"
          },
          "shippingNoticeDate": {
            "$ref": "#/components/schemas/DateTime"
          },
          "shippingNoticeLineNumber": {
            "type": "integer",
            "example": 1
          },
          "orderIdentifier": {
            "type": "string",
            "description": "Order number assigned to the related purchase order by the buyer."
          },
          "orderDate": {
            "$ref": "#/components/schemas/DateTime"
          },
          "orderLineNumber": {
            "type": "integer",
            "example": 1
          },
          "requestedDeliveryDate": {
            "$ref": "#/components/schemas/DateTime"
          },
          "expectedDeliveryDate": {
            "$ref": "#/components/schemas/DateTime"
          },
          "identifiers": {
            "type": "array",
            "minItems": 1,
            "description": "Which identifiers are required depends on your trade partner. Most trade partners expect at least one identifier with domain `GS1` or `BUYER`.",
            "items": {
              "$ref": "#/components/schemas/ItemIdentifier"
            }
          },
          "isDepositItem": {
            "type": "boolean",
            "description": "If true, the item is a deposit item such as bottle deposit (German: Pfandartikel)."
          },
          "isInvoicedItem": {
            "type": "boolean",
            "description": "Determine if this item is the invoiced item. Only invoiced items can have a unitPrice != 0. If an item is not invoiced and no parent item is invoiced either, sub items must exist."
          },
          "description": {
            "type": "string",
            "description": "Item description."
          },
          "comments": {
            "type": "string"
          },
          "quantity": {
            "type": "number",
            "format": "float",
            "example": 1.0,
            "description": "For subitems, this must be the total quantity of this item. For example, the parent item is a display of chocolate bars and has quantity 2. Each display contains 50 chocolate bars. Therefore, the quantity of the \"Chocolate Bar\" subitem is 100 (2x50)."
          },
          "freeQuantity": {
            "type": "number",
            "format": "float",
            "example": 1.0,
            "default": null,
            "description": "The quantity of this item that is free of charge, in addition to (not part of) `quantity`. For example, an order line with `quantity` 10 and `freeQuantity` 2 means 12 units are delivered in total, 2 of which are free of charge. For subitems, this must be the total free quantity of this item. For example, the parent item is a display of chocolate bars and has free quantity set to 2. Each display contains 50 chocolate bars. Therefore, the free quantity of the \"Chocolate Bar\" subitem is 100 (2x50)."
          },
          "orderedQuantity": {
            "type": "number",
            "format": "float",
            "example": 1.0,
            "default": null,
            "description": "The quantity ordered by the customer."
          },
          "unitPrice": {
            "type": "number",
            "format": "float",
            "default": null,
            "example": 2.0
          },
          "pricingUnitOfMeasure": {
            "type": "string",
            "maxLength": 255,
            "description": "The unit of measure used for pricing. This field specifies the unit that the price refers to, which may differ from the quantity unit (e.g., price per carton when quantity is in pieces)."
          },
          "pricingUnitQuantity": {
            "type": "number",
            "format": "float",
            "description": "The quantity of base units contained in the pricing unit of measure. For example, if the price is per carton (pricingUnitOfMeasure: \"CT\") and each carton contains 100 pieces, this field stores 100."
          },
          "recommendedRetailPrice": {
            "type": "number",
            "format": "float",
            "default": null,
            "example": 2.5
          },
          "netWeight": {
            "type": "number",
            "format": "float",
            "description": "Net weight of the item in grams."
          },
          "grossWeight": {
            "type": "number",
            "format": "float",
            "description": "Gross weight of the item in grams."
          },
          "originCountryCode": {
            "type": "string",
            "minLength": 2,
            "maxLength": 2,
            "pattern": "^[A-Z]{2}$",
            "description": "ISO 3166-1 standard two-letter country code.",
            "example": "DE"
          },
          "colorCode": {
            "type": "string",
            "maxLength": 255,
            "description": "Color code of the item."
          },
          "colorName": {
            "type": "string",
            "maxLength": 255,
            "description": "Color name of the item."
          },
          "size": {
            "type": "string",
            "maxLength": 255,
            "description": "Size of the item."
          },
          "dimension": {
            "type": "string",
            "maxLength": 255,
            "description": "Dimension of the item."
          },
          "hsCode": {
            "type": "string",
            "maxLength": 255,
            "description": "Harmonized System Code of the item."
          },
          "cnCode": {
            "type": "string",
            "description": "The 8-digit Combined Nomenclature (CN) code classifying this product for EU customs and trade statistics. Suppliers are responsible for providing a valid code."
          },
          "organicControlPointNumber": {
            "type": "string",
            "maxLength": 255,
            "description": "Organic Control Point Number of the supplier - OCPN is a unique identifier that verifies that a producer of organic products is adhering to the standards for organic production."
          },
          "fscNumber": {
            "type": "string",
            "description": "An FSC number refers to an identification number issued by the Forest Stewardship Council (FSC), an international organization that certifies sustainable forestry practices."
          },
          "mscNumber": {
            "type": "string",
            "description": "An MSC number refers to an identification number issued by the Marine Stewardship Council (MSC), an international organization that certifies sustainable fishing practices."
          },
          "certifications": {
            "$ref": "#/components/schemas/Certifications"
          },
          "substituteOf": {
            "allOf": [
              {
                "$ref": "#/components/schemas/ItemSubstitution"
              }
            ],
            "description": "The originally ordered article that this line item substitutes. Set on the substitute line item."
          },
          "substitutedBy": {
            "allOf": [
              {
                "$ref": "#/components/schemas/ItemSubstitution"
              }
            ],
            "description": "The article delivered to substitute this originally ordered line item, which typically carries a shipped or confirmed quantity of 0. Set on the originally ordered line item."
          },
          "promotionCode": {
            "type": "string",
            "maxLength": 255,
            "description": "Promotion code applied to this item. Does not affect invoice calculations."
          },
          "reason": {
            "type": "string",
            "maxLength": 255,
            "description": "Reason for the credit note"
          },
          "tax": {
            "$ref": "#/components/schemas/Tax"
          },
          "batches": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/Batch"
            }
          },
          "serialNumbers": {
            "type": "array",
            "description": "Serial numbers of the individual units of this line item.",
            "items": {
              "$ref": "#/components/schemas/SerialNumber"
            }
          },
          "modificationGroups": {
            "description": "If a Modification Group is provided, the Invoice Summary is required.",
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/ModificationGroup"
            }
          },
          "unitOfMeasure": {
            "$ref": "#/components/schemas/UnitOfMeasure"
          },
          "contractReference": {
            "type": "string",
            "maxLength": 255,
            "description": "Contract reference for the credit note item."
          }
        }
      },
      "CreditNoteItemWithSubItems": {
        "allOf": [
          {
            "$ref": "#/components/schemas/CreditNoteItem"
          },
          {
            "type": "object",
            "properties": {
              "subItems": {
                "type": "array",
                "description": "Sub items of this sub credit note item.",
                "items": {
                  "$ref": "#/components/schemas/CreditNoteItem"
                }
              }
            }
          }
        ]
      },
      "CreditNoteItemWithSubSubItems": {
        "allOf": [
          {
            "$ref": "#/components/schemas/CreditNoteItem"
          },
          {
            "type": "object",
            "properties": {
              "subItems": {
                "type": "array",
                "description": "Sub items of this credit note item. Supports two levels of nesting.",
                "items": {
                  "$ref": "#/components/schemas/CreditNoteItemWithSubItems"
                }
              }
            }
          }
        ]
      },
      "DispatchInstruction": {
        "type": "object",
        "title": "Dispatch Instruction",
        "required": [
          "header",
          "items"
        ],
        "properties": {
          "header": {
            "$ref": "#/components/schemas/DispatchInstructionHeader"
          },
          "items": {
            "type": "array",
            "minItems": 1,
            "items": {
              "allOf": [
                {
                  "$ref": "#/components/schemas/DispatchInstructionItem"
                },
                {
                  "type": "object",
                  "properties": {
                    "subItems": {
                      "type": "array",
                      "description": "Sub items of this dispatch instruction item. Supports two levels of nesting.",
                      "items": {
                        "allOf": [
                          {
                            "$ref": "#/components/schemas/DispatchInstructionItem"
                          },
                          {
                            "type": "object",
                            "properties": {
                              "subItems": {
                                "type": "array",
                                "description": "Sub items of this sub dispatch instruction item.",
                                "items": {
                                  "$ref": "#/components/schemas/DispatchInstructionItem"
                                }
                              }
                            }
                          }
                        ]
                      }
                    }
                  }
                }
              ]
            }
          }
        }
      },
      "DispatchInstructionHeader": {
        "type": "object",
        "required": [
          "shipmentIdentifier",
          "shipFrom"
        ],
        "properties": {
          "orderIdentifier": {
            "type": "string",
            "description": "Order number assigned to the related purchase order by the buyer."
          },
          "orderDate": {
            "$ref": "#/components/schemas/DateTime"
          },
          "shipmentIdentifier": {
            "type": "string",
            "description": "Shipment identifier number/reference.",
            "example": "SI-0001"
          },
          "noticeDate": {
            "$ref": "#/components/schemas/DateTime"
          },
          "requestedDeliveryDate": {
            "$ref": "#/components/schemas/DateTime"
          },
          "requestedDespatchDate": {
            "$ref": "#/components/schemas/DateTime"
          },
          "shipFrom": {
            "$ref": "#/components/schemas/Party"
          },
          "shipTo": {
            "description": "If this is kept empty, the \"customer\" is used as the \"shipTo\" party. Note: unlike other party fields, identifiers are optional for shipTo.",
            "allOf": [
              {
                "$ref": "#/components/schemas/ShipToParty"
              }
            ]
          },
          "billTo": {
            "description": "If this is kept empty, the \"customer\" is used as the \"billTo\" party.",
            "allOf": [
              {
                "$ref": "#/components/schemas/Party"
              }
            ]
          },
          "finalRecipient": {
            "description": "Used in case the shipTo is not the final recipient. Mostly used in dropshipping or cross-docking scenarios. Identifiers are optional.",
            "allOf": [
              {
                "$ref": "#/components/schemas/FinalRecipientParty"
              }
            ]
          },
          "technicalRecipient": {
            "description": "Used when the recipient of the message differs from the buyer or bill_to party. Common in scenarios where invoices or documents need to be sent to a centralized receiving entity (e.g., a group headquarters or shared services center) that differs from the actual buyer or billing party in the transaction.",
            "allOf": [
              {
                "$ref": "#/components/schemas/Party"
              }
            ]
          },
          "technicalSender": {
            "description": "Used when the sender of the message differs from the supplier party. Common in scenarios where orders or documents are sent from a centralized sending entity (e.g., a group headquarters or shared services center) that differs from the actual buyer in the transaction.",
            "allOf": [
              {
                "$ref": "#/components/schemas/Party"
              }
            ]
          },
          "customer": {
            "$ref": "#/components/schemas/Party"
          },
          "supplier": {
            "$ref": "#/components/schemas/Party"
          },
          "modeOfTransport": {
            "$ref": "#/components/schemas/ModeOfTransport"
          },
          "incoTerms": {
            "$ref": "#/components/schemas/IncoTerms"
          },
          "shippingMethod": {
            "type": "string"
          },
          "pickingNotes": {
            "type": "string"
          },
          "deliveryNotes": {
            "type": "string"
          },
          "comments": {
            "type": "string",
            "maxLength": 100000,
            "description": "Arbitrary human-readable information buyers can send within dispatch instructions"
          },
          "currency": {
            "$ref": "#/components/schemas/Currency"
          },
          "version": {
            "type": "integer",
            "description": "The document version number. Subsequent updates should increment this number by 1."
          }
        }
      },
      "DispatchInstructionItem": {
        "type": "object",
        "required": [
          "shippingNoticeLineNumber",
          "shippedQuantity",
          "orderedQuantity",
          "identifiers",
          "batches"
        ],
        "properties": {
          "orderLineNumber": {
            "type": "integer",
            "example": 1
          },
          "orderIdentifier": {
            "type": "string",
            "description": "Order number assigned to the related purchase order by the buyer. Allows referencing different orders on different line items within the same dispatch instruction.",
            "example": "ORDER_123456"
          },
          "shippingNoticeLineNumber": {
            "type": "integer",
            "example": 1
          },
          "shippedQuantity": {
            "type": "number",
            "format": "float",
            "example": 1.0
          },
          "orderedQuantity": {
            "type": "number",
            "format": "float",
            "example": 1.0
          },
          "requestedDeliveryDate": {
            "$ref": "#/components/schemas/DateTime"
          },
          "requestedDespatchDate": {
            "$ref": "#/components/schemas/DateTime"
          },
          "identifiers": {
            "type": "array",
            "description": "Which identifiers are required depends on your trade partner. Most trade partners expect at least one identifier with domain `GS1` or `BUYER`.",
            "items": {
              "$ref": "#/components/schemas/ItemIdentifier"
            }
          },
          "unitOfMeasure": {
            "$ref": "#/components/schemas/UnitOfMeasure"
          },
          "unitPrice": {
            "type": "number",
            "format": "float",
            "default": null,
            "example": 2.0
          },
          "pricingUnitOfMeasure": {
            "type": "string",
            "maxLength": 255,
            "description": "The unit of measure used for pricing. This field specifies the unit that the price refers to, which may differ from the quantity unit (e.g., price per carton when quantity is in pieces)."
          },
          "pricingUnitQuantity": {
            "type": "number",
            "format": "float",
            "description": "The quantity of base units contained in the pricing unit of measure. For example, if the price is per carton (pricingUnitOfMeasure: \"CT\") and each carton contains 100 pieces, this field stores 100."
          },
          "recommendedRetailPrice": {
            "type": "number",
            "format": "float",
            "default": null,
            "example": 2.0
          },
          "tax": {
            "$ref": "#/components/schemas/Tax"
          },
          "currency": {
            "$ref": "#/components/schemas/Currency"
          },
          "description": {
            "type": "string",
            "description": "Item description."
          },
          "comments": {
            "type": "string",
            "maxLength": 100000
          },
          "minimumRemainingShelfLifeInDays": {
            "type": "integer",
            "description": "Minimum remaining shelf life in days."
          },
          "netWeight": {
            "type": "number",
            "format": "float",
            "description": "Net weight of the item in grams."
          },
          "grossWeight": {
            "type": "number",
            "format": "float",
            "description": "Gross weight of the item in grams."
          },
          "originCountryCode": {
            "type": "string",
            "description": "ISO 3166-1 alpha-2 country code.",
            "example": "DE"
          },
          "colorCode": {
            "type": "string",
            "maxLength": 255,
            "description": "Color code of the item."
          },
          "colorName": {
            "type": "string",
            "maxLength": 255,
            "description": "Color name of the item."
          },
          "size": {
            "type": "string",
            "maxLength": 255,
            "description": "Size of the item."
          },
          "dimension": {
            "type": "string",
            "maxLength": 255,
            "description": "Dimension of the item."
          },
          "hsCode": {
            "type": "string",
            "maxLength": 255,
            "description": "Harmonized System Code of the item."
          },
          "organicControlPointNumber": {
            "type": "string",
            "maxLength": 255,
            "description": "Organic Control Point Number of the supplier - OCPN is a unique identifier that verifies that a producer of organic products is adhering to the standards for organic production."
          },
          "batches": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/Batch"
            }
          },
          "serialNumbers": {
            "type": "array",
            "description": "Serial numbers of the individual units of this line item.",
            "items": {
              "$ref": "#/components/schemas/SerialNumber"
            }
          },
          "openQuantityAction": {
            "type": "string",
            "enum": [
              "DISCARDED",
              "DELIVERED_LATER"
            ]
          }
        }
      },
      "DispatchInstructionResponse": {
        "type": "object",
        "title": "Dispatch Instruction Response",
        "required": [
          "header",
          "transportUnits"
        ],
        "properties": {
          "header": {
            "$ref": "#/components/schemas/DispatchInstructionResponseHeader"
          },
          "transportUnits": {
            "type": "array",
            "minItems": 1,
            "items": {
              "allOf": [
                {
                  "$ref": "#/components/schemas/DispatchInstructionResponseTransportUnits"
                },
                {
                  "type": "object"
                }
              ]
            }
          }
        }
      },
      "DispatchInstructionResponseTransportUnits": {
        "type": "object",
        "required": [
          "items"
        ],
        "properties": {
          "unitIdentifier": {
            "type": "string"
          },
          "unitType": {
            "type": "string",
            "enum": [
              "EURO_PALLET",
              "EURO_PALLET_HALF",
              "EURO_PALLET_QUARTER",
              "CARTON"
            ]
          },
          "containedTradeUnitCount": {
            "type": "integer",
            "example": 1
          },
          "requestedDeliveryDate": {
            "$ref": "#/components/schemas/DateTime"
          },
          "expectedDeliveryDate": {
            "$ref": "#/components/schemas/DateTime"
          },
          "requestedDespatchDate": {
            "$ref": "#/components/schemas/DateTime"
          },
          "despatchDate": {
            "$ref": "#/components/schemas/DateTime"
          },
          "carrier": {
            "$ref": "#/components/schemas/TransportUnitCarrier"
          },
          "transportLabel": {
            "$ref": "#/components/schemas/TransportLabel"
          },
          "items": {
            "type": "array",
            "minItems": 1,
            "items": {
              "$ref": "#/components/schemas/DispatchInstructionResponseItem"
            }
          }
        }
      },
      "DispatchInstructionResponseHeader": {
        "type": "object",
        "required": [
          "shippingNoticeIdentifier",
          "supplier"
        ],
        "properties": {
          "orderIdentifier": {
            "type": "string",
            "description": "Order number assigned to the related purchase order by the buyer."
          },
          "orderDate": {
            "$ref": "#/components/schemas/DateTime"
          },
          "shippingNoticeIdentifier": {
            "type": "string",
            "description": "Shipment identifier number/reference.",
            "example": "SI-0001"
          },
          "requestedDespatchDate": {
            "$ref": "#/components/schemas/DateTime"
          },
          "dispatchInstructionResponseDate": {
            "$ref": "#/components/schemas/DateTime"
          },
          "shippingNoticeDate": {
            "$ref": "#/components/schemas/DateTime"
          },
          "requestedDeliveryDate": {
            "$ref": "#/components/schemas/DateTime"
          },
          "expectedDeliveryDate": {
            "$ref": "#/components/schemas/DateTime"
          },
          "carrier": {
            "type": "string"
          },
          "trackingNumber": {
            "type": "string"
          },
          "trackingUrl": {
            "type": "string"
          },
          "comments": {
            "type": "string",
            "maxLength": 100000,
            "description": "Arbitrary human-readable information buyers can send within dispatch instruction responses"
          },
          "buyer": {
            "$ref": "#/components/schemas/Party"
          },
          "supplier": {
            "$ref": "#/components/schemas/Party"
          },
          "shipTo": {
            "description": "Note: unlike other party fields, identifiers are optional for shipTo.",
            "allOf": [
              {
                "$ref": "#/components/schemas/ShipToParty"
              }
            ]
          },
          "billTo": {
            "$ref": "#/components/schemas/Party"
          },
          "shipFrom": {
            "$ref": "#/components/schemas/Party"
          },
          "finalRecipient": {
            "description": "Used in case the shipTo is not the final recipient. Mostly used in dropshipping or cross-docking scenarios. Identifiers are optional.",
            "allOf": [
              {
                "$ref": "#/components/schemas/FinalRecipientParty"
              }
            ]
          },
          "technicalRecipient": {
            "description": "Used when the recipient of the message differs from the buyer or bill_to party. Common in scenarios where invoices or documents need to be sent to a centralized receiving entity (e.g., a group headquarters or shared services center) that differs from the actual buyer or billing party in the transaction.",
            "allOf": [
              {
                "$ref": "#/components/schemas/Party"
              }
            ]
          },
          "technicalSender": {
            "description": "Used when the sender of the message differs from the supplier party. Common in scenarios where orders or documents are sent from a centralized sending entity (e.g., a group headquarters or shared services center) that differs from the actual buyer in the transaction.",
            "allOf": [
              {
                "$ref": "#/components/schemas/Party"
              }
            ]
          },
          "modeOfTransport": {
            "$ref": "#/components/schemas/ModeOfTransport"
          },
          "incoTerms": {
            "$ref": "#/components/schemas/IncoTerms"
          },
          "shippingMethod": {
            "type": "string"
          },
          "status": {
            "type": "string"
          },
          "currency": {
            "$ref": "#/components/schemas/Currency"
          },
          "version": {
            "type": "integer",
            "description": "The document version number. Subsequent updates should increment this number by 1."
          }
        }
      },
      "DispatchInstructionResponseItem": {
        "type": "object",
        "properties": {
          "lineNumber": {
            "type": "integer",
            "example": 1
          },
          "instructionLineNumber": {
            "type": "integer",
            "example": 1
          },
          "orderLineNumber": {
            "type": "integer",
            "example": 1
          },
          "isDepositItem": {
            "type": "boolean",
            "description": "If true, the item is a deposit item such as bottle deposit (German: Pfandartikel)."
          },
          "description": {
            "type": "string",
            "description": "Item description."
          },
          "comments": {
            "type": "string",
            "maxLength": 100000
          },
          "substituteOf": {
            "allOf": [
              {
                "$ref": "#/components/schemas/ItemSubstitution"
              }
            ],
            "description": "The originally ordered article that this line item substitutes. Set on the substitute line item."
          },
          "substitutedBy": {
            "allOf": [
              {
                "$ref": "#/components/schemas/ItemSubstitution"
              }
            ],
            "description": "The article delivered to substitute this originally ordered line item, which typically carries a shipped or confirmed quantity of 0. Set on the originally ordered line item."
          },
          "netWeight": {
            "type": "number",
            "format": "float",
            "description": "Net weight of the item in grams."
          },
          "grossWeight": {
            "type": "number",
            "format": "float",
            "description": "Gross weight of the item in grams."
          },
          "originCountryCode": {
            "type": "string",
            "description": "ISO 3166-1 alpha-2 country code.",
            "example": "DE"
          },
          "colorCode": {
            "type": "string",
            "maxLength": 255,
            "description": "Color code of the item."
          },
          "colorName": {
            "type": "string",
            "maxLength": 255,
            "description": "Color name of the item."
          },
          "size": {
            "type": "string",
            "maxLength": 255,
            "description": "Size of the item."
          },
          "dimension": {
            "type": "string",
            "maxLength": 255,
            "description": "Dimension of the item."
          },
          "hsCode": {
            "type": "string",
            "maxLength": 255,
            "description": "Harmonized System Code of the item."
          },
          "organicControlPointNumber": {
            "type": "string",
            "maxLength": 255,
            "description": "Organic Control Point Number of the supplier - OCPN is a unique identifier that verifies that a producer of organic products is adhering to the standards for organic production."
          },
          "orderedQuantity": {
            "type": "number",
            "format": "float",
            "example": 1.0
          },
          "shippedQuantity": {
            "type": "number",
            "format": "float",
            "example": 1.0
          },
          "openQuantityAction": {
            "type": "string",
            "enum": [
              "DISCARDED",
              "DELIVERED_LATER"
            ]
          },
          "unitOfMeasure": {
            "$ref": "#/components/schemas/UnitOfMeasure"
          },
          "unitPrice": {
            "type": "number",
            "format": "float",
            "default": null,
            "example": 2.0
          },
          "pricingUnitOfMeasure": {
            "type": "string",
            "maxLength": 255,
            "description": "The unit of measure used for pricing. This field specifies the unit that the price refers to, which may differ from the quantity unit (e.g., price per carton when quantity is in pieces)."
          },
          "pricingUnitQuantity": {
            "type": "number",
            "format": "float",
            "description": "The quantity of base units contained in the pricing unit of measure. For example, if the price is per carton (pricingUnitOfMeasure: \"CT\") and each carton contains 100 pieces, this field stores 100."
          },
          "recommendedRetailPrice": {
            "type": "number",
            "format": "float",
            "default": null,
            "example": 2.0
          },
          "tax": {
            "$ref": "#/components/schemas/Tax"
          },
          "identifiers": {
            "type": "array",
            "description": "Which identifiers are required depends on your trade partner. Most trade partners expect at least one identifier with domain `GS1` or `BUYER`.",
            "items": {
              "$ref": "#/components/schemas/ItemIdentifier"
            }
          },
          "batches": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/Batch"
            }
          },
          "serialNumbers": {
            "type": "array",
            "description": "Serial numbers of the individual units of this line item.",
            "items": {
              "$ref": "#/components/schemas/SerialNumber"
            }
          }
        }
      },
      "ReceivalNotice": {
        "type": "object",
        "title": "Receival Notice",
        "required": [
          "header",
          "transportUnits"
        ],
        "properties": {
          "header": {
            "$ref": "#/components/schemas/ReceivalNoticeHeader"
          },
          "transportUnits": {
            "type": "array",
            "minItems": 1,
            "items": {
              "allOf": [
                {
                  "$ref": "#/components/schemas/ReceivalNoticeTransportUnits"
                },
                {
                  "type": "object"
                }
              ]
            }
          }
        }
      },
      "ReceivalNoticeTransportUnits": {
        "type": "object",
        "required": [
          "items"
        ],
        "properties": {
          "unitIdentifier": {
            "type": "string"
          },
          "unitType": {
            "type": "string",
            "enum": [
              "EURO_PALLET",
              "EURO_PALLET_HALF",
              "EURO_PALLET_QUARTER",
              "CARTON"
            ]
          },
          "containedTradeUnitCount": {
            "type": "integer",
            "example": 1
          },
          "carrier": {
            "$ref": "#/components/schemas/TransportUnitCarrier"
          },
          "items": {
            "type": "array",
            "minItems": 1,
            "items": {
              "$ref": "#/components/schemas/ReceivalNoticeItem"
            }
          }
        }
      },
      "ReceivalNoticeHeader": {
        "type": "object",
        "required": [
          "receivalAdviceNumber",
          "receivalDate",
          "supplier",
          "customer"
        ],
        "properties": {
          "receivalAdviceNumber": {
            "type": "string"
          },
          "receivalDate": {
            "$ref": "#/components/schemas/DateTime"
          },
          "deliveryNoteNumber": {
            "type": "string"
          },
          "customerOrderNumber": {
            "type": "string"
          },
          "shipTo": {
            "description": "Note: unlike other party fields, identifiers are optional for shipTo.",
            "allOf": [
              {
                "$ref": "#/components/schemas/ShipToParty"
              }
            ]
          },
          "customer": {
            "$ref": "#/components/schemas/Party"
          },
          "deliveryNoteDate": {
            "$ref": "#/components/schemas/DateTime"
          },
          "orderDate": {
            "$ref": "#/components/schemas/DateTime"
          },
          "shipFrom": {
            "$ref": "#/components/schemas/Party"
          },
          "billTo": {
            "$ref": "#/components/schemas/Party"
          },
          "supplier": {
            "$ref": "#/components/schemas/Party"
          },
          "technicalRecipient": {
            "description": "Used when the recipient of the message differs from the buyer or bill_to party. Common in scenarios where invoices or documents need to be sent to a centralized receiving entity (e.g., a group headquarters or shared services center) that differs from the actual buyer or billing party in the transaction.",
            "allOf": [
              {
                "$ref": "#/components/schemas/Party"
              }
            ]
          },
          "technicalSender": {
            "description": "Used when the sender of the message differs from the supplier party. Common in scenarios where orders or documents are sent from a centralized sending entity (e.g., a group headquarters or shared services center) that differs from the actual buyer in the transaction.",
            "allOf": [
              {
                "$ref": "#/components/schemas/Party"
              }
            ]
          },
          "comments": {
            "type": "string",
            "maxLength": 100000,
            "description": "Arbitrary human-readable information buyers can send within dispatch instruction responses"
          },
          "carrierId": {
            "type": "string"
          },
          "carrierDomain": {
            "type": "string"
          },
          "trackingNumber": {
            "type": "string"
          },
          "trackingUrl": {
            "type": "string"
          },
          "version": {
            "type": "integer",
            "description": "The document version number. Subsequent updates should increment this number by 1."
          }
        }
      },
      "ReceivalNoticeItem": {
        "type": "object",
        "properties": {
          "lineNumber": {
            "type": "integer",
            "example": 1
          },
          "receivedQuantity": {
            "type": "number",
            "format": "float",
            "example": 1.0
          },
          "shippedQuantity": {
            "type": "number",
            "format": "float",
            "example": 1.0
          },
          "identifiers": {
            "type": "array",
            "description": "Which identifiers are required depends on your trade partner. Most trade partners expect at least one identifier with domain `GS1` or `BUYER`.",
            "items": {
              "$ref": "#/components/schemas/ItemIdentifier"
            }
          },
          "orderLineNumber": {
            "type": "integer",
            "example": 1
          },
          "orderedQuantity": {
            "type": "number",
            "format": "float",
            "example": 1.0
          },
          "rejectedQuantity": {
            "type": "number",
            "format": "float",
            "example": 1.0
          },
          "rejectReason": {
            "type": "string"
          },
          "openQuantityAction": {
            "type": "string",
            "enum": [
              "DISCARDED",
              "DELIVERED_LATER"
            ]
          },
          "unitPrice": {
            "type": "number",
            "format": "float",
            "default": null,
            "example": 2.0
          },
          "currency": {
            "$ref": "#/components/schemas/Currency"
          },
          "unitOfMeasure": {
            "$ref": "#/components/schemas/UnitOfMeasure"
          },
          "description": {
            "type": "string",
            "description": "Item description."
          },
          "batches": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/Batch"
            }
          },
          "serialNumbers": {
            "type": "array",
            "description": "Serial numbers of the individual units of this line item.",
            "items": {
              "$ref": "#/components/schemas/SerialNumber"
            }
          }
        }
      },
      "RemittanceAdvice": {
        "type": "object",
        "title": "Remittance Advice",
        "required": [
          "header",
          "items",
          "summary"
        ],
        "properties": {
          "header": {
            "$ref": "#/components/schemas/RemittanceAdviceHeader"
          },
          "items": {
            "type": "array",
            "minItems": 1,
            "items": {
              "allOf": [
                {
                  "$ref": "#/components/schemas/RemittanceAdviceItem"
                },
                {
                  "type": "object"
                }
              ]
            }
          },
          "summary": {
            "$ref": "#/components/schemas/RemittanceAdviceSummary"
          }
        }
      },
      "RemittanceAdviceHeader": {
        "type": "object",
        "required": [
          "adviceNumber",
          "adviceDate"
        ],
        "properties": {
          "adviceNumber": {
            "type": "string"
          },
          "adviceDate": {
            "$ref": "#/components/schemas/DateTime"
          },
          "paymentMethod": {
            "type": "string"
          },
          "paymentReference": {
            "type": "string"
          },
          "remittanceDate": {
            "$ref": "#/components/schemas/DateTime"
          },
          "currency": {
            "$ref": "#/components/schemas/Currency"
          },
          "payFrom": {
            "$ref": "#/components/schemas/Party"
          },
          "payTo": {
            "$ref": "#/components/schemas/Party"
          },
          "buyer": {
            "$ref": "#/components/schemas/Party"
          },
          "supplier": {
            "$ref": "#/components/schemas/Party"
          },
          "technicalRecipient": {
            "description": "Used when the recipient of the message differs from the buyer or bill_to party. Common in scenarios where invoices or documents need to be sent to a centralized receiving entity (e.g., a group headquarters or shared services center) that differs from the actual buyer or billing party in the transaction.",
            "allOf": [
              {
                "$ref": "#/components/schemas/Party"
              }
            ]
          },
          "technicalSender": {
            "description": "Used when the sender of the message differs from the supplier party. Common in scenarios where orders or documents are sent from a centralized sending entity (e.g., a group headquarters or shared services center) that differs from the actual buyer in the transaction.",
            "allOf": [
              {
                "$ref": "#/components/schemas/Party"
              }
            ]
          },
          "version": {
            "type": "integer",
            "description": "The document version number. Subsequent updates should increment this number by 1."
          }
        }
      },
      "RemittanceAdviceItem": {
        "type": "object",
        "properties": {
          "documentNumber": {
            "type": "string"
          },
          "documentDate": {
            "$ref": "#/components/schemas/DateTime"
          },
          "externalDocumentNumber": {
            "type": "string"
          },
          "documentType": {
            "type": "string"
          },
          "dueTotal": {
            "type": "number",
            "format": "float"
          },
          "remittedTotal": {
            "type": "number",
            "format": "float"
          },
          "tax": {
            "$ref": "#/components/schemas/Tax"
          },
          "correctionTotal": {
            "type": "number",
            "format": "float"
          },
          "buyer": {
            "$ref": "#/components/schemas/Party"
          },
          "shipTo": {
            "description": "Note: unlike other party fields, identifiers are optional for shipTo.",
            "allOf": [
              {
                "$ref": "#/components/schemas/ShipToParty"
              }
            ]
          },
          "corrections": {
            "type": "array",
            "minItems": 1,
            "items": {
              "allOf": [
                {
                  "$ref": "#/components/schemas/RemittanceAdviceItemCorrection"
                },
                {
                  "type": "object"
                }
              ]
            }
          }
        }
      },
      "RemittanceAdviceItemCorrection": {
        "type": "object",
        "required": [
          "amount",
          "total"
        ],
        "properties": {
          "basis": {
            "type": "number",
            "format": "float"
          },
          "reason": {
            "type": "string"
          },
          "amount": {
            "type": "number",
            "format": "float"
          },
          "total": {
            "type": "number",
            "format": "float"
          },
          "tax": {
            "$ref": "#/components/schemas/Tax"
          }
        }
      },
      "RemittanceAdviceSummary": {
        "type": "object",
        "properties": {
          "dueTotal": {
            "type": "number",
            "format": "float"
          },
          "remittedTotal": {
            "type": "number",
            "format": "float"
          },
          "correctionTotal": {
            "type": "number",
            "format": "float"
          }
        }
      },
      "SalesReport": {
        "type": "object",
        "title": "Sales Report",
        "required": [
          "header",
          "locations"
        ],
        "properties": {
          "header": {
            "$ref": "#/components/schemas/SalesReportHeader"
          },
          "locations": {
            "type": "array",
            "minItems": 1,
            "items": {
              "$ref": "#/components/schemas/SalesReportLocation"
            }
          }
        }
      },
      "SalesReportHeader": {
        "type": "object",
        "required": [
          "salesReportIdentifier",
          "salesReportDate",
          "salesPeriodStartDate",
          "salesPeriodEndDate",
          "supplier",
          "buyer"
        ],
        "properties": {
          "salesReportIdentifier": {
            "type": "string"
          },
          "salesReportDate": {
            "$ref": "#/components/schemas/DateTime"
          },
          "salesPeriodStartDate": {
            "$ref": "#/components/schemas/DateTime"
          },
          "salesPeriodEndDate": {
            "$ref": "#/components/schemas/DateTime"
          },
          "currency": {
            "$ref": "#/components/schemas/Currency"
          },
          "supplier": {
            "$ref": "#/components/schemas/Party"
          },
          "buyer": {
            "$ref": "#/components/schemas/Party"
          },
          "technicalRecipient": {
            "description": "Used when the recipient of the message differs from the buyer or bill_to party. Common in scenarios where invoices or documents need to be sent to a centralized receiving entity (e.g., a group headquarters or shared services center) that differs from the actual buyer or billing party in the transaction.",
            "allOf": [
              {
                "$ref": "#/components/schemas/Party"
              }
            ]
          },
          "technicalSender": {
            "description": "Used when the sender of the message differs from the supplier party. Common in scenarios where orders or documents are sent from a centralized sending entity (e.g., a group headquarters or shared services center) that differs from the actual buyer in the transaction.",
            "allOf": [
              {
                "$ref": "#/components/schemas/Party"
              }
            ]
          },
          "comments": {
            "type": "string",
            "maxLength": 100000,
            "description": "Arbitrary human-readable information"
          }
        }
      },
      "SalesReportLocation": {
        "type": "object",
        "required": [
          "location",
          "items"
        ],
        "properties": {
          "location": {
            "$ref": "#/components/schemas/Party"
          },
          "salesPeriodStartDate": {
            "$ref": "#/components/schemas/DateTime"
          },
          "salesPeriodEndDate": {
            "$ref": "#/components/schemas/DateTime"
          },
          "items": {
            "type": "array",
            "minItems": 1,
            "items": {
              "$ref": "#/components/schemas/SalesReportLocationItem"
            }
          }
        }
      },
      "SalesReportLocationItem": {
        "type": "object",
        "required": [
          "lineNumber",
          "identifiers",
          "salesQuantity"
        ],
        "properties": {
          "lineNumber": {
            "type": "integer"
          },
          "identifiers": {
            "type": "array",
            "minItems": 1,
            "items": {
              "$ref": "#/components/schemas/ItemIdentifier"
            }
          },
          "description": {
            "type": "string"
          },
          "unitOfMeasure": {
            "$ref": "#/components/schemas/UnitOfMeasure"
          },
          "unitPrice": {
            "type": "number",
            "format": "float"
          },
          "pricingUnitOfMeasure": {
            "type": "string",
            "maxLength": 255,
            "description": "The unit of measure used for pricing. This field specifies the unit that the price refers to, which may differ from the quantity unit (e.g., price per carton when quantity is in pieces)."
          },
          "pricingUnitQuantity": {
            "type": "number",
            "format": "float",
            "description": "The quantity of base units contained in the pricing unit of measure. For example, if the price is per carton (pricingUnitOfMeasure: \"CT\") and each carton contains 100 pieces, this field stores 100."
          },
          "netUnitPrice": {
            "type": "number",
            "format": "float"
          },
          "recommendedRetailPrice": {
            "type": "number",
            "format": "float"
          },
          "salesQuantity": {
            "type": "number",
            "format": "float"
          },
          "lineGrossAmount": {
            "type": "number",
            "format": "float"
          },
          "lineNetAmount": {
            "type": "number",
            "format": "float"
          },
          "lineTaxAmount": {
            "type": "number",
            "format": "float"
          },
          "comments": {
            "type": "string",
            "maxLength": 100000,
            "description": "Arbitrary human-readable information"
          },
          "netWeight": {
            "type": "integer",
            "description": "In grams"
          },
          "grossWeight": {
            "type": "integer",
            "description": "In grams"
          },
          "hsCode": {
            "type": "string"
          },
          "originCountryCode": {
            "type": "string",
            "description": "ISO 3166-1 alpha-2 country code.",
            "example": "DE"
          },
          "colorCode": {
            "type": "string",
            "description": "Color code of the item."
          },
          "colorName": {
            "type": "string",
            "description": "Color name of the item."
          },
          "size": {
            "type": "string",
            "description": "Size of the item."
          },
          "dimension": {
            "type": "string",
            "description": "Dimension of the item."
          },
          "organicControlPointNumber": {
            "type": "string",
            "maxLength": 255,
            "description": "Organic Control Point Number of the supplier - OCPN is a unique identifier that verifies that a producer of organic products is adhering to the standards for organic production."
          },
          "fscNumber": {
            "type": "string",
            "description": "An FSC number refers to an identification number issued by the Forest Stewardship Council (FSC), an international organization that certifies sustainable forestry practices."
          },
          "mscNumber": {
            "type": "string",
            "description": "An MSC number refers to an identification number issued by the Marine Stewardship Council (MSC), an international organization that certifies sustainable fishing practices."
          },
          "category": {
            "type": "string",
            "description": "Relevant category for the sales report item."
          },
          "subCategory": {
            "type": "string",
            "description": "Relevant subcategory for the sales report item."
          },
          "tax": {
            "$ref": "#/components/schemas/Tax"
          }
        }
      },
      "InventoryReport": {
        "type": "object",
        "title": "Inventory Report",
        "required": [
          "header",
          "items"
        ],
        "properties": {
          "header": {
            "$ref": "#/components/schemas/InventoryReportHeader"
          },
          "items": {
            "type": "array",
            "minItems": 1,
            "items": {
              "$ref": "#/components/schemas/InventoryReportItem"
            }
          }
        }
      },
      "InventoryReportHeader": {
        "type": "object",
        "required": [
          "inventoryReportIdentifier",
          "inventoryReportDate",
          "warehouse",
          "goodsOwner"
        ],
        "properties": {
          "inventoryReportIdentifier": {
            "type": "string"
          },
          "inventoryReportDate": {
            "$ref": "#/components/schemas/DateTime"
          },
          "warehouse": {
            "$ref": "#/components/schemas/Party"
          },
          "goodsOwner": {
            "$ref": "#/components/schemas/Party"
          },
          "technicalRecipient": {
            "description": "Used when the recipient of the message differs from the buyer or bill_to party. Common in scenarios where invoices or documents need to be sent to a centralized receiving entity (e.g., a group headquarters or shared services center) that differs from the actual buyer or billing party in the transaction.",
            "allOf": [
              {
                "$ref": "#/components/schemas/Party"
              }
            ]
          },
          "technicalSender": {
            "description": "Used when the sender of the message differs from the supplier party. Common in scenarios where orders or documents are sent from a centralized sending entity (e.g., a group headquarters or shared services center) that differs from the actual buyer in the transaction.",
            "allOf": [
              {
                "$ref": "#/components/schemas/Party"
              }
            ]
          },
          "comments": {
            "type": "string",
            "maxLength": 100000,
            "description": "Arbitrary human-readable information warehouse can send within inventory reports"
          },
          "version": {
            "type": "integer",
            "description": "The document version number. Subsequent updates should increment this number by 1."
          }
        }
      },
      "InventoryReportItem": {
        "type": "object",
        "properties": {
          "name": {
            "type": "string"
          },
          "lineNumber": {
            "type": "integer"
          },
          "availableQuantity": {
            "type": "number",
            "format": "float"
          },
          "blockedQuantity": {
            "type": "number",
            "format": "float"
          },
          "orderedQuantity": {
            "type": "number",
            "format": "float"
          },
          "identity": {
            "type": "object",
            "properties": {
              "senderPartnerId": {
                "type": "string"
              },
              "receiverPartnerId": {
                "type": "string"
              },
              "gtin": {
                "type": "string"
              }
            }
          },
          "unitOfMeasure": {
            "$ref": "#/components/schemas/UnitOfMeasure"
          },
          "unitPrice": {
            "type": "number",
            "format": "float"
          },
          "pricingUnitOfMeasure": {
            "type": "string",
            "maxLength": 255,
            "description": "The unit of measure used for pricing. This field specifies the unit that the price refers to, which may differ from the quantity unit (e.g., price per carton when quantity is in pieces)."
          },
          "pricingUnitQuantity": {
            "type": "number",
            "format": "float",
            "description": "The quantity of base units contained in the pricing unit of measure. For example, if the price is per carton (pricingUnitOfMeasure: \"CT\") and each carton contains 100 pieces, this field stores 100."
          },
          "tax": {
            "$ref": "#/components/schemas/Tax"
          },
          "netWeight": {
            "type": "integer",
            "description": "In grams"
          },
          "grossWeight": {
            "type": "integer",
            "description": "In grams"
          },
          "hsCode": {
            "type": "string"
          },
          "originCountryCode": {
            "type": "string",
            "description": "ISO 3166-1 alpha-2 country code.",
            "example": "DE"
          },
          "colorCode": {
            "type": "string",
            "description": "Color code of the item."
          },
          "colorName": {
            "type": "string",
            "description": "Color name of the item."
          },
          "size": {
            "type": "string",
            "description": "Size of the item."
          },
          "dimension": {
            "type": "string",
            "description": "Dimension of the item."
          },
          "comment": {
            "type": "string"
          },
          "batches": {
            "type": "array",
            "items": {
              "allOf": [
                {
                  "$ref": "#/components/schemas/Batch"
                },
                {
                  "properties": {
                    "status": {
                      "type": "string"
                    },
                    "statusReason": {
                      "type": "string"
                    }
                  }
                }
              ]
            }
          },
          "serialNumbers": {
            "type": "array",
            "description": "Serial numbers of the individual units of this line item.",
            "items": {
              "$ref": "#/components/schemas/SerialNumber"
            }
          }
        }
      },
      "ProductCatalogIdentity": {
        "type": "object",
        "description": "Product identity containing sender partner ID, receiver partner ID, and GTIN.",
        "properties": {
          "senderPartnerId": {
            "type": "string",
            "description": "Sender partner product identifier (e.g., supplier SKU).",
            "example": "SUPPLIER-SKU-12345"
          },
          "receiverPartnerId": {
            "type": "string",
            "description": "Receiver partner product identifier (e.g., buyer SKU).",
            "example": "BUYER-SKU-67890"
          },
          "gtin": {
            "type": "string",
            "description": "Global Trade Item Number (GTIN/EAN).",
            "example": "4260123456789"
          }
        }
      },
      "ProductCatalog": {
        "type": "object",
        "title": "Product Catalog",
        "required": [
          "header",
          "items"
        ],
        "properties": {
          "header": {
            "$ref": "#/components/schemas/ProductCatalogHeader"
          },
          "items": {
            "type": "array",
            "minItems": 1,
            "items": {
              "$ref": "#/components/schemas/ProductCatalogItemWithSubSubItems"
            }
          }
        }
      },
      "ProductCatalogHeader": {
        "type": "object",
        "required": [
          "catalogDate",
          "sender",
          "receiver"
        ],
        "properties": {
          "catalogNumber": {
            "type": "string"
          },
          "catalogDate": {
            "$ref": "#/components/schemas/DateTime"
          },
          "sender": {
            "$ref": "#/components/schemas/Party"
          },
          "receiver": {
            "$ref": "#/components/schemas/Party"
          },
          "importer": {
            "description": "GPSR Importer Contact Address in a PRICAT refers to the official address of the importer responsible under the General Product Safety Regulation (GPSR). This ensures traceability and compliance with safety requirements for products entering the market. NAD+IM (Importer) with CTA/COM contact details $ref: "
          },
          "manufacturer": {
            "description": "GPSR Manufacturer Contact Address in a PRICAT refers to the official address of the product's manufacturer as required under the General Product Safety Regulation (GPSR). It enables traceability and confirms the manufacturer's responsibility for product safety.",
            "$ref": "#/components/schemas/Party"
          },
          "technicalRecipient": {
            "description": "Used when the recipient of the message differs from the receiver party. Common in scenarios where invoices or documents need to be sent to a centralized receiving entity (e.g., a group headquarters or shared services center) that differs from the actual receiver in the transaction.",
            "allOf": [
              {
                "$ref": "#/components/schemas/Party"
              }
            ]
          },
          "technicalSender": {
            "description": "Used when the sender of the message differs from the supplier party. Common in scenarios where orders or documents are sent from a centralized sending entity (e.g., a group headquarters or shared services center) that differs from the actual buyer in the transaction.",
            "allOf": [
              {
                "$ref": "#/components/schemas/Party"
              }
            ]
          },
          "comments": {
            "type": "string",
            "maxLength": 100000,
            "description": "Arbitrary human-readable information buyers can send within product catalogs"
          },
          "version": {
            "type": "integer",
            "description": "The document version number. Subsequent updates should increment this number by 1."
          }
        }
      },
      "ProductCatalogItemWithSubSubItems": {
        "allOf": [
          {
            "$ref": "#/components/schemas/ProductCatalogItem"
          },
          {
            "type": "object",
            "properties": {
              "subItems": {
                "type": "array",
                "description": "Sub items of this product catalog item. Supports two levels of nesting.",
                "items": {
                  "$ref": "#/components/schemas/ProductCatalogItemWithSubItems"
                }
              }
            }
          }
        ]
      },
      "ProductCatalogItemWithSubItems": {
        "allOf": [
          {
            "$ref": "#/components/schemas/ProductCatalogItem"
          },
          {
            "type": "object",
            "properties": {
              "subItems": {
                "type": "array",
                "description": "Sub items of this product catalog item.",
                "items": {
                  "$ref": "#/components/schemas/ProductCatalogItem"
                }
              }
            }
          }
        ]
      },
      "ProductCatalogItem": {
        "type": "object",
        "required": [
          "lineNumber",
          "quantity",
          "identity"
        ],
        "properties": {
          "name": {
            "type": "string"
          },
          "lineNumber": {
            "type": "integer"
          },
          "quantity": {
            "type": "number",
            "format": "float"
          },
          "identity": {
            "$ref": "#/components/schemas/ProductCatalogIdentity"
          },
          "predecessorIdentity": {
            "$ref": "#/components/schemas/ProductCatalogIdentity"
          },
          "successorIdentity": {
            "$ref": "#/components/schemas/ProductCatalogIdentity"
          },
          "alternativeIdentifiers": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/ProductCatalogIdentity"
            }
          },
          "action": {
            "type": "string",
            "enum": [
              "NEW",
              "CHANGED",
              "DELETED"
            ]
          },
          "currency": {
            "$ref": "#/components/schemas/Currency"
          },
          "unitOfMeasure": {
            "$ref": "#/components/schemas/UnitOfMeasure"
          },
          "isOrderable": {
            "type": "boolean"
          },
          "unitPrice": {
            "type": "number",
            "format": "float"
          },
          "pricingUnitOfMeasure": {
            "type": "string",
            "maxLength": 255,
            "description": "The unit of measure used for pricing. This field specifies the unit that the price refers to, which may differ from the quantity unit (e.g., price per carton when quantity is in pieces)."
          },
          "pricingUnitQuantity": {
            "type": "number",
            "format": "float",
            "description": "The quantity of base units contained in the pricing unit of measure. For example, if the price is per carton (pricingUnitOfMeasure: \"CT\") and each carton contains 100 pieces, this field stores 100."
          },
          "unitPriceValidFromDate": {
            "$ref": "#/components/schemas/DateTime"
          },
          "unitPriceValidUntilDate": {
            "$ref": "#/components/schemas/DateTime"
          },
          "recommendedRetailPrice": {
            "type": "number",
            "format": "float"
          },
          "recommendedRetailPriceValidFromDate": {
            "$ref": "#/components/schemas/DateTime"
          },
          "recommendedRetailPriceValidUntilDate": {
            "$ref": "#/components/schemas/DateTime"
          },
          "minimumOrderQuantity": {
            "type": "number",
            "format": "float"
          },
          "taxPercentage": {
            "type": "number",
            "format": "float"
          },
          "depositAmount": {
            "type": "number",
            "format": "float",
            "description": "Deposit amount in the currency of the item."
          },
          "shortDescription": {
            "type": "string"
          },
          "description": {
            "type": "string"
          },
          "perUnitQuantity": {
            "type": "number",
            "format": "float",
            "description": "Quantity of consumer units (pieces, bottles) contained in this item."
          },
          "length": {
            "type": "integer",
            "description": "In millimeters"
          },
          "width": {
            "type": "integer",
            "description": "In millimeters"
          },
          "height": {
            "type": "integer",
            "description": "In millimeters"
          },
          "netWeight": {
            "type": "integer",
            "description": "In grams"
          },
          "grossWeight": {
            "type": "integer",
            "description": "In grams"
          },
          "drainedWeight": {
            "type": "integer",
            "description": "In grams"
          },
          "volume": {
            "type": "integer",
            "description": "In cubic centimeters"
          },
          "category": {
            "type": "string",
            "description": "Used for product category, commodity group"
          },
          "subCategory": {
            "type": "string"
          },
          "unNumber": {
            "type": "integer",
            "description": "4-digit number assigned by the United Nations to classify hazardous substances and articles."
          },
          "hsCode": {
            "type": "string"
          },
          "cnCode": {
            "type": "string",
            "description": "The 8-digit Combined Nomenclature (CN) code classifying this product for EU customs and trade statistics. Suppliers are responsible for providing a valid code."
          },
          "htsCode": {
            "type": "string"
          },
          "deliverableFromDate": {
            "$ref": "#/components/schemas/DateTime"
          },
          "isDangerous": {
            "type": "boolean"
          },
          "hasExpiryDate": {
            "type": "boolean"
          },
          "hasBatchNumber": {
            "type": "boolean"
          },
          "hasSerialNumber": {
            "type": "boolean"
          },
          "minimumRemainingShelfLifeInDays": {
            "type": "integer",
            "description": "Minimum remaining shelf life in days."
          },
          "sourceIdentifier": {
            "type": "string",
            "description": "Identifies the source (warehouse, supplier, etc.) from which the item can be procured."
          },
          "originCountryCode": {
            "type": "string",
            "description": "ISO 3166-1 alpha-2 country code.",
            "example": "DE"
          },
          "colorCode": {
            "type": "string",
            "description": "Color code of the item."
          },
          "colorName": {
            "type": "string",
            "description": "Color name of the item."
          },
          "size": {
            "type": "string",
            "description": "Size of the item."
          },
          "dimension": {
            "type": "string",
            "description": "Dimension of the item."
          },
          "organicControlPointNumber": {
            "type": "string",
            "maxLength": 255,
            "description": "Organic Control Point Number of the supplier - OCPN is a unique identifier that verifies that a producer of organic products is adhering to the standards for organic production."
          },
          "fscNumber": {
            "type": "string",
            "description": "An FSC number refers to an identification number issued by the Forest Stewardship Council (FSC), an international organization that certifies sustainable forestry practices."
          },
          "mscNumber": {
            "type": "string",
            "description": "An MSC number refers to an identification number issued by the Marine Stewardship Council (MSC), an international organization that certifies sustainable fishing practices."
          },
          "season": {
            "type": "string",
            "description": "The season or collection period this item belongs to. Used to group and filter assortment by seasonal release.",
            "example": "SS27"
          },
          "gender": {
            "type": "string",
            "description": "The target gender this item is designed for (e.g. Male, Female, Unisex). Used to classify and filter assortment by gender segment.",
            "example": "unisex"
          },
          "brand": {
            "type": "string",
            "description": "BRAND in a PRICAT (Price Catalogue) refers to the name of the product\u2019s brand or manufacturer. It helps identify the product\u2019s origin and is essential for classification, marketing, and buyer recognition."
          },
          "declarationOfConformity": {
            "type": "string",
            "description": "Declaration of Conformity in a PRICAT refers to a formal statement by the manufacturer confirming that the product meets all applicable EU safety, health, and environmental requirements. It is key for regulatory compliance and market approval."
          },
          "userManual": {
            "type": "string",
            "description": "User Manual / Instructions in a PRICAT refers to the documentation provided with a product that explains its proper use, safety guidelines, and maintenance. It ensures safe handling and compliance with regulatory requirements."
          },
          "energyLabel": {
            "type": "string",
            "description": "Energy Label in a PRICAT refers to the standardized label indicating a product\u2019s energy efficiency class. It helps buyers assess energy consumption and supports compliance with EU energy labeling regulations."
          },
          "safetyDatasheet": {
            "type": "string",
            "description": "Safety Datasheet in a PRICAT refers to a document providing detailed information on the safe handling, storage, and disposal of a product. It is essential for compliance with chemical safety regulations and workplace protection."
          },
          "technicalDatasheet": {
            "type": "string",
            "description": "(Technical) Datasheet in a PRICAT refers to a document outlining the key technical specifications, features, and performance data of a product. It supports accurate product evaluation, comparison, and integration into systems or catalogues."
          },
          "euDatasheet": {
            "type": "string",
            "description": "EU Datasheet in a PRICAT refers to a product information sheet tailored to meet EU regulatory and market requirements. It typically includes technical specifications, compliance details, and other essential data for distribution within the EU."
          },
          "safetyInstructions": {
            "type": "string",
            "description": "Safety Instructions / Warnings in a PRICAT refer to mandatory information on potential hazards and safe usage of a product. They help ensure user safety and compliance with legal and regulatory standards."
          },
          "materialComposition": {
            "type": "string",
            "description": "All material components"
          },
          "ingredients": {
            "type": "string",
            "description": "A simple string field to transmit the list of ingredients of a food item"
          },
          "allergens": {
            "type": "array",
            "description": "An array of allergens that are contained in a food item",
            "items": {
              "type": "object",
              "properties": {
                "identifiers": {
                  "type": "object",
                  "description": "Identifiers for the allergen",
                  "properties": {
                    "gdsn": {
                      "type": "string",
                      "description": "GDSN identifier of the allergen"
                    },
                    "usda": {
                      "type": "string",
                      "description": "USDA identifier of the allergen"
                    },
                    "bls": {
                      "type": "string",
                      "description": "BLS identifier of the allergen"
                    },
                    "senderInternal": {
                      "type": "string",
                      "description": "Sender internal identifier of the allergen"
                    },
                    "receiverInternal": {
                      "type": "string",
                      "description": "Receiver internal identifier of the allergen"
                    }
                  }
                },
                "name": {
                  "type": "string",
                  "description": "Name of the allergen"
                },
                "presence": {
                  "type": "string",
                  "description": "Presence of the allergen in the product",
                  "enum": [
                    "PRESENT",
                    "TRACES",
                    "FREE_FROM",
                    "UNKNOWN"
                  ]
                }
              }
            }
          },
          "nutritionalInformation": {
            "type": "object",
            "description": "Comprehensive nutritional information for the product",
            "properties": {
              "energy": {
                "type": "object",
                "properties": {
                  "totalInKcal": {
                    "type": "number",
                    "format": "float",
                    "description": "Total energy in kilocalories"
                  },
                  "totalInKj": {
                    "type": "number",
                    "format": "float",
                    "description": "Total energy in kilojoules"
                  }
                }
              },
              "fats": {
                "type": "object",
                "properties": {
                  "totalInGrams": {
                    "type": "number",
                    "format": "float"
                  },
                  "saturatedInGrams": {
                    "type": "number",
                    "format": "float"
                  },
                  "monounsaturatedInGrams": {
                    "type": "number",
                    "format": "float"
                  },
                  "polyunsaturatedInGrams": {
                    "type": "number",
                    "format": "float"
                  },
                  "transFatsInGrams": {
                    "type": "number",
                    "format": "float"
                  },
                  "omega3FattyAcidsInGrams": {
                    "type": "number",
                    "format": "float"
                  },
                  "omega6FattyAcidsInGrams": {
                    "type": "number",
                    "format": "float"
                  },
                  "omega9FattyAcidsInGrams": {
                    "type": "number",
                    "format": "float"
                  },
                  "epaInGrams": {
                    "type": "number",
                    "format": "float",
                    "description": "Eicosapentaenoic acid in grams"
                  },
                  "dhaInGrams": {
                    "type": "number",
                    "format": "float",
                    "description": "Docosahexaenoic acid in grams"
                  },
                  "cholesterolInMilligrams": {
                    "type": "number",
                    "format": "float"
                  }
                }
              },
              "carbohydrates": {
                "type": "object",
                "properties": {
                  "totalInGrams": {
                    "type": "number",
                    "format": "float"
                  },
                  "sugarsInGrams": {
                    "type": "number",
                    "format": "float"
                  },
                  "addedSugarsInGrams": {
                    "type": "number",
                    "format": "float"
                  },
                  "polyolsInGrams": {
                    "type": "number",
                    "format": "float"
                  },
                  "starchInGrams": {
                    "type": "number",
                    "format": "float"
                  },
                  "lactoseInGrams": {
                    "type": "number",
                    "format": "float"
                  }
                }
              },
              "fiber": {
                "type": "object",
                "properties": {
                  "totalInGrams": {
                    "type": "number",
                    "format": "float"
                  },
                  "solubleInGrams": {
                    "type": "number",
                    "format": "float"
                  },
                  "insolubleInGrams": {
                    "type": "number",
                    "format": "float"
                  },
                  "betaGlucansInGrams": {
                    "type": "number",
                    "format": "float"
                  }
                }
              },
              "proteins": {
                "type": "object",
                "properties": {
                  "totalInGrams": {
                    "type": "number",
                    "format": "float"
                  },
                  "aminoAcids": {
                    "type": "object",
                    "properties": {
                      "alanineInGrams": {
                        "type": "number",
                        "format": "float"
                      },
                      "arginineInGrams": {
                        "type": "number",
                        "format": "float"
                      },
                      "asparticAcidInGrams": {
                        "type": "number",
                        "format": "float"
                      },
                      "cysteineInGrams": {
                        "type": "number",
                        "format": "float"
                      },
                      "glutamicAcidInGrams": {
                        "type": "number",
                        "format": "float"
                      },
                      "glycineInGrams": {
                        "type": "number",
                        "format": "float"
                      },
                      "histidineInGrams": {
                        "type": "number",
                        "format": "float"
                      },
                      "isoleucineInGrams": {
                        "type": "number",
                        "format": "float"
                      },
                      "leucineInGrams": {
                        "type": "number",
                        "format": "float"
                      },
                      "lysineInGrams": {
                        "type": "number",
                        "format": "float"
                      },
                      "methionineInGrams": {
                        "type": "number",
                        "format": "float"
                      },
                      "phenylalanineInGrams": {
                        "type": "number",
                        "format": "float"
                      },
                      "prolineInGrams": {
                        "type": "number",
                        "format": "float"
                      },
                      "serineInGrams": {
                        "type": "number",
                        "format": "float"
                      },
                      "threonineInGrams": {
                        "type": "number",
                        "format": "float"
                      },
                      "tryptophanInGrams": {
                        "type": "number",
                        "format": "float"
                      },
                      "tyrosineInGrams": {
                        "type": "number",
                        "format": "float"
                      },
                      "valineInGrams": {
                        "type": "number",
                        "format": "float"
                      }
                    }
                  }
                }
              },
              "saltInGrams": {
                "type": "number",
                "format": "float"
              },
              "sodiumInGrams": {
                "type": "number",
                "format": "float"
              },
              "alcoholInGrams": {
                "type": "number",
                "format": "float"
              },
              "waterInGrams": {
                "type": "number",
                "format": "float"
              },
              "caffeineInMilligrams": {
                "type": "number",
                "format": "float"
              },
              "taurineInMilligrams": {
                "type": "number",
                "format": "float"
              },
              "vitamins": {
                "type": "object",
                "properties": {
                  "vitaminAInMicrograms": {
                    "type": "number",
                    "format": "float"
                  },
                  "betaCaroteneInMicrograms": {
                    "type": "number",
                    "format": "float"
                  },
                  "vitaminDInMicrograms": {
                    "type": "number",
                    "format": "float"
                  },
                  "vitaminEInMicrograms": {
                    "type": "number",
                    "format": "float"
                  },
                  "vitaminKInMicrograms": {
                    "type": "number",
                    "format": "float"
                  },
                  "vitaminCInMicrograms": {
                    "type": "number",
                    "format": "float"
                  },
                  "vitaminB1ThiaminInMicrograms": {
                    "type": "number",
                    "format": "float"
                  },
                  "vitaminB2RiboflavinInMicrograms": {
                    "type": "number",
                    "format": "float"
                  },
                  "vitaminB3NiacinInMicrograms": {
                    "type": "number",
                    "format": "float"
                  },
                  "vitaminB5PantothenicAcidInMicrograms": {
                    "type": "number",
                    "format": "float"
                  },
                  "vitaminB6PyridoxinInMicrograms": {
                    "type": "number",
                    "format": "float"
                  },
                  "vitaminB7BiotinInMicrograms": {
                    "type": "number",
                    "format": "float"
                  },
                  "vitaminB9FolicAcidInMicrograms": {
                    "type": "number",
                    "format": "float"
                  },
                  "vitaminB12CyanocobalaminInMicrograms": {
                    "type": "number",
                    "format": "float"
                  }
                }
              },
              "minerals": {
                "type": "object",
                "properties": {
                  "calciumInMilligrams": {
                    "type": "number",
                    "format": "float"
                  },
                  "chlorideInMilligrams": {
                    "type": "number",
                    "format": "float"
                  },
                  "chromiumInMicrograms": {
                    "type": "number",
                    "format": "float"
                  },
                  "cobaltInMicrograms": {
                    "type": "number",
                    "format": "float"
                  },
                  "copperInMilligrams": {
                    "type": "number",
                    "format": "float"
                  },
                  "fluorideInMilligrams": {
                    "type": "number",
                    "format": "float"
                  },
                  "iodineInMicrograms": {
                    "type": "number",
                    "format": "float"
                  },
                  "ironInMilligrams": {
                    "type": "number",
                    "format": "float"
                  },
                  "lithiumInMicrograms": {
                    "type": "number",
                    "format": "float"
                  },
                  "magnesiumInMilligrams": {
                    "type": "number",
                    "format": "float"
                  },
                  "manganeseInMilligrams": {
                    "type": "number",
                    "format": "float"
                  },
                  "molybdenumInMicrograms": {
                    "type": "number",
                    "format": "float"
                  },
                  "nickelInMicrograms": {
                    "type": "number",
                    "format": "float"
                  },
                  "phosphorusInMilligrams": {
                    "type": "number",
                    "format": "float"
                  },
                  "potassiumInMilligrams": {
                    "type": "number",
                    "format": "float"
                  },
                  "seleniumInMicrograms": {
                    "type": "number",
                    "format": "float"
                  },
                  "siliconInMilligrams": {
                    "type": "number",
                    "format": "float"
                  },
                  "zincInMilligrams": {
                    "type": "number",
                    "format": "float"
                  }
                }
              },
              "otherCompounds": {
                "type": "object",
                "properties": {
                  "oxalicAcidInMilligrams": {
                    "type": "number",
                    "format": "float"
                  },
                  "purinesInMilligrams": {
                    "type": "number",
                    "format": "float"
                  },
                  "uricAcidInMilligrams": {
                    "type": "number",
                    "format": "float"
                  },
                  "bicarbonateInMilligrams": {
                    "type": "number",
                    "format": "float"
                  }
                }
              },
              "specialDietaryInfo": {
                "type": "object",
                "properties": {
                  "breadUnitsBe": {
                    "type": "number",
                    "format": "float",
                    "description": "Bread units (BE) for diabetic dietary planning"
                  },
                  "meatFishWeightPerUnitInGrams": {
                    "type": "number",
                    "format": "float"
                  }
                }
              }
            }
          },
          "additives": {
            "type": "array",
            "description": "Food additives contained in the product",
            "items": {
              "type": "object",
              "properties": {
                "identifiers": {
                  "type": "object",
                  "description": "Identifiers for the additive",
                  "properties": {
                    "gdsn": {
                      "type": "string",
                      "description": "GDSN identifier of the additive (e.g., E300)"
                    },
                    "usda": {
                      "type": "string",
                      "description": "USDA identifier of the additive"
                    },
                    "bls": {
                      "type": "string",
                      "description": "BLS (Bundeslebensmittelschl\u00fcssel) identifier"
                    },
                    "senderInternal": {
                      "type": "string",
                      "description": "Sender internal identifier of the additive"
                    },
                    "receiverInternal": {
                      "type": "string",
                      "description": "Receiver internal identifier of the additive"
                    }
                  }
                },
                "name": {
                  "type": "string",
                  "description": "Name of the additive"
                }
              }
            }
          },
          "images": {
            "type": "array",
            "description": "Images of the product catalog item.",
            "items": {
              "$ref": "#/components/schemas/Attachment"
            }
          },
          "comment": {
            "type": "string"
          },
          "batches": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/Batch"
            }
          },
          "serialNumbers": {
            "type": "array",
            "description": "Serial numbers of the individual units of this line item.",
            "items": {
              "$ref": "#/components/schemas/SerialNumber"
            }
          },
          "packagingUnits": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/ProductCatalogItemPackagingUnit"
            }
          },
          "modificationGroups": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/ModificationGroup"
            }
          },
          "manufacturer": {
            "$ref": "#/components/schemas/Party"
          },
          "importer": {
            "$ref": "#/components/schemas/Party"
          }
        }
      },
      "ProductCatalogSubItem": {
        "type": "object",
        "required": [
          "lineNumber",
          "quantity",
          "identity"
        ],
        "properties": {
          "lineNumber": {
            "type": "integer"
          },
          "quantity": {
            "type": "number",
            "format": "float"
          },
          "identity": {
            "type": "object",
            "properties": {
              "senderPartnerId": {
                "type": "string"
              },
              "receiverPartnerId": {
                "type": "string"
              },
              "gtin": {
                "type": "string"
              }
            }
          },
          "unitOfMeasure": {
            "$ref": "#/components/schemas/UnitOfMeasure"
          },
          "description": {
            "type": "string"
          }
        }
      },
      "ProductCatalogItemPackagingUnit": {
        "type": "object",
        "required": [
          "quantity"
        ],
        "properties": {
          "quantity": {
            "type": "number",
            "format": "float"
          },
          "identity": {
            "$ref": "#/components/schemas/ProductCatalogIdentity"
          },
          "isOrderable": {
            "type": "boolean"
          },
          "length": {
            "type": "integer",
            "description": "In millimeters"
          },
          "width": {
            "type": "integer",
            "description": "In millimeters"
          },
          "height": {
            "type": "integer",
            "description": "In millimeters"
          },
          "netWeight": {
            "type": "integer",
            "description": "In grams"
          },
          "grossWeight": {
            "type": "integer",
            "description": "In grams"
          },
          "volume": {
            "type": "integer",
            "description": "In cubic centimeters"
          },
          "unitOfMeasure": {
            "$ref": "#/components/schemas/UnitOfMeasure"
          }
        }
      }
    }
  },
  "paths": {
    "/v2/transactions": {
      "get": {
        "operationId": "v2_list_received_transactions",
        "summary": "List Incoming Transactions",
        "description": "List unprocessed incoming transactions from your trade partners.",
        "tags": [
          "Incoming Transactions"
        ],
        "parameters": [
          {
            "name": "filter[type]",
            "in": "query",
            "required": false,
            "allowReserved": true,
            "schema": {
              "$ref": "#/components/schemas/TransactionType"
            }
          },
          {
            "name": "cursor",
            "in": "query",
            "description": "Page cursor",
            "required": false,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "per_page",
            "in": "query",
            "description": "Number of transactions returned per page.",
            "required": false,
            "schema": {
              "type": "integer",
              "default": 100,
              "minimum": 1,
              "maximum": 100
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Success",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "items",
                    "hasMore",
                    "perPage",
                    "count",
                    "nextCursor",
                    "nextPageUrl"
                  ],
                  "properties": {
                    "items": {
                      "type": "array",
                      "items": {
                        "$ref": "#/components/schemas/ReceivedTransaction"
                      }
                    },
                    "hasMore": {
                      "type": "boolean",
                      "description": "Whether or not more transactions can be fetched on the next page."
                    },
                    "perPage": {
                      "type": "integer",
                      "description": "Amount of transactions returned per page."
                    },
                    "count": {
                      "type": "integer",
                      "description": "Amount of transactions on the current page."
                    },
                    "nextCursor": {
                      "type": "string",
                      "nullable": true,
                      "description": "Supplied to the `cursor` query parameter. See [Pagination] for more info."
                    },
                    "nextPageUrl": {
                      "type": "string",
                      "format": "url",
                      "nullable": true,
                      "description": "Prebuilt URL to retrieve the next page of transactions."
                    }
                  }
                },
                "examples": {
                  "List of transactions": {
                    "value": {
                      "hasMore": false,
                      "perPage": 100,
                      "count": 3,
                      "nextCursor": null,
                      "nextPageUrl": null,
                      "items": [
                        {
                          "procurosTransactionId": "949b2f25-fd9d-4c58-8899-b4dc277f8cf9",
                          "type": "ORDER",
                          "content": {
                            "header": {
                              "buyer": {
                                "name": "ACME Co. Ltd.",
                                "identifiers": [
                                  {
                                    "identifier": "1100001016310",
                                    "domain": "GS1"
                                  }
                                ],
                                "postalAddress": {
                                  "name": "ACME Co. Ltd.",
                                  "street": "Elroy-Fritsch-Ring 15",
                                  "city": "Berlin",
                                  "countryCode": "DE",
                                  "postalCode": "82643"
                                },
                                "contacts": [
                                  {
                                    "firstName": "John",
                                    "lastName": "Doe",
                                    "email": "jane.doe@example.com",
                                    "fax": "(818) 463-6124",
                                    "phone": "+1.352.856.0626"
                                  }
                                ]
                              },
                              "supplier": {
                                "name": "Testsupplier",
                                "identifiers": [
                                  {
                                    "identifier": "1100001016312",
                                    "domain": "GS1"
                                  }
                                ]
                              },
                              "shipTo": {
                                "identifiers": [
                                  {
                                    "identifier": "1100001016313",
                                    "domain": "GS1"
                                  }
                                ]
                              },
                              "billTo": {
                                "identifiers": [
                                  {
                                    "identifier": "1100001016314",
                                    "domain": "GS1"
                                  }
                                ]
                              },
                              "orderIdentifier": "PO9383-R45",
                              "orderDate": "2021-09-30",
                              "currency": "EUR",
                              "requestedDeliveryDate": "2021-10-05",
                              "comments": "Something to comment"
                            },
                            "items": [
                              {
                                "lineNumber": 1,
                                "identifiers": [
                                  {
                                    "identifier": "4300348765432",
                                    "domain": "GS1"
                                  },
                                  {
                                    "identifier": "PROD-77-LS",
                                    "domain": "BUYER"
                                  },
                                  {
                                    "identifier": "sp_gr_8",
                                    "domain": "SUPPLIER"
                                  }
                                ],
                                "isDepositItem": false,
                                "quantity": 20.0,
                                "unitOfMeasure": "EA",
                                "description": "First product description.",
                                "unitPrice": 0.15
                              },
                              {
                                "lineNumber": 2,
                                "identifiers": [
                                  {
                                    "identifier": "4300348765433",
                                    "domain": "GS1"
                                  },
                                  {
                                    "identifier": "PROD-78-LS",
                                    "domain": "BUYER"
                                  },
                                  {
                                    "identifier": "sp_gr_9",
                                    "domain": "SUPPLIER"
                                  }
                                ],
                                "isDepositItem": false,
                                "quantity": 19.0,
                                "unitOfMeasure": "EA",
                                "description": "Sparkling Water - Crate (6x0.75l).",
                                "unitPrice": 1.5
                              },
                              {
                                "lineNumber": 3,
                                "identifiers": [
                                  {
                                    "identifier": "4300348765434",
                                    "domain": "GS1"
                                  },
                                  {
                                    "identifier": "PFAND-00B-LS",
                                    "domain": "SUPPLIER"
                                  }
                                ],
                                "isDepositItem": true,
                                "quantity": 19.0,
                                "unitOfMeasure": "EA",
                                "description": "Deposit 1x crate + 6x bottles.",
                                "unitPrice": 3.3
                              }
                            ]
                          }
                        },
                        {
                          "procurosTransactionId": "94fe13aa-8c9b-40e5-9937-42b852185858",
                          "type": "SHIPPING_NOTICE",
                          "content": {
                            "header": {
                              "buyer": {
                                "name": "ACME Co. Ltd.",
                                "identifiers": [
                                  {
                                    "identifier": "1100001016310",
                                    "domain": "GS1"
                                  }
                                ],
                                "postalAddress": {
                                  "city": "Berlin",
                                  "countryCode": "DE",
                                  "name": "ACME Co. Ltd.",
                                  "postalCode": "82643",
                                  "street": "Elroy-Fritsch-Ring 15"
                                },
                                "contacts": [
                                  {
                                    "firstName": "Jane",
                                    "lastName": "Doe",
                                    "email": "jane.doe@example.com",
                                    "fax": "(818) 463-6124",
                                    "phone": "+1.352.856.0626"
                                  }
                                ]
                              },
                              "supplier": {
                                "name": "Testsupplier",
                                "identifiers": [
                                  {
                                    "identifier": "1100001016312",
                                    "domain": "GS1"
                                  }
                                ]
                              },
                              "shipTo": {
                                "identifiers": [
                                  {
                                    "identifier": "1100001016313",
                                    "domain": "GS1"
                                  }
                                ]
                              },
                              "billTo": {
                                "identifiers": [
                                  {
                                    "identifier": "1100001016314",
                                    "domain": "GS1"
                                  }
                                ]
                              },
                              "shippingNoticeIdentifier": "SN9383-R45",
                              "shippingNoticeDate": "2021-11-24",
                              "orderIdentifier": "PO9383-R45",
                              "orderDate": "2021-11-20",
                              "despatchDate": "2021-11-05",
                              "requestedDeliveryDate": "2021-11-06",
                              "expectedDeliveryDate": "2021-11-06",
                              "carrier": "Example Delivery Solution",
                              "trackingNumber": "b52ea6a7-c2ea-3bfc-a63f-19140d3b3af5",
                              "trackingUrl": "https://api.procuros.com/example",
                              "comments": "Something to comment"
                            },
                            "transportUnits": [
                              {
                                "items": [
                                  {
                                    "lineNumber": 1,
                                    "orderLineNumber": 1,
                                    "identifiers": [
                                      {
                                        "identifier": "4300348765432",
                                        "domain": "GS1"
                                      },
                                      {
                                        "identifier": "PROD-77-LS",
                                        "domain": "BUYER"
                                      },
                                      {
                                        "identifier": "sp_gr_8",
                                        "domain": "SUPPLIER"
                                      }
                                    ],
                                    "isDepositItem": false,
                                    "orderedQuantity": 20.0,
                                    "shippedQuantity": 20.0,
                                    "unitPrice": 200.0,
                                    "description": "First product description."
                                  },
                                  {
                                    "lineNumber": 2,
                                    "orderLineNumber": 2,
                                    "identifiers": [
                                      {
                                        "identifier": "4300348765433",
                                        "domain": "GS1"
                                      },
                                      {
                                        "identifier": "PROD-78-LS",
                                        "domain": "BUYER"
                                      },
                                      {
                                        "identifier": "sp_gr_9",
                                        "domain": "SUPPLIER"
                                      }
                                    ],
                                    "isDepositItem": false,
                                    "orderedQuantity": 19.0,
                                    "shippedQuantity": 15.0,
                                    "openQuantityAction": "DISCARDED",
                                    "unitPrice": 1.5,
                                    "description": "Second product description."
                                  }
                                ]
                              }
                            ]
                          }
                        },
                        {
                          "procurosTransactionId": "94fe1224-ae01-4587-8155-8e852cbbe75d",
                          "type": "INVOICE",
                          "content": {
                            "header": {
                              "buyer": {
                                "name": "ACME Co. Ltd.",
                                "identifiers": [
                                  {
                                    "identifier": "4522704465331",
                                    "domain": "GS1"
                                  },
                                  {
                                    "identifier": "DE123456789",
                                    "domain": "VAT_DE"
                                  }
                                ],
                                "postalAddress": {
                                  "city": "Berlin",
                                  "countryCode": "DE",
                                  "name": "ACME Co. Ltd.",
                                  "postalCode": "82643",
                                  "street": "Elroy-Fritsch-Ring 15"
                                },
                                "contacts": [
                                  {
                                    "firstName": "Jane",
                                    "lastName": "Doe",
                                    "email": "jane.doe@example.com",
                                    "fax": "(818) 463-6124",
                                    "phone": "+1.352.856.0626"
                                  }
                                ]
                              },
                              "supplier": {
                                "name": "Testsupplier",
                                "identifiers": [
                                  {
                                    "identifier": "4231930775745",
                                    "domain": "GS1"
                                  },
                                  {
                                    "identifier": "DE234567890",
                                    "domain": "VAT_DE"
                                  }
                                ]
                              },
                              "shipTo": {
                                "identifiers": [
                                  {
                                    "identifier": "1100001016313",
                                    "domain": "GS1"
                                  }
                                ]
                              },
                              "billTo": {
                                "identifiers": [
                                  {
                                    "identifier": "1100001016314",
                                    "domain": "GS1"
                                  }
                                ]
                              },
                              "invoiceIdentifier": "IV9383-R45",
                              "invoiceDate": "2021-11-11",
                              "shippingNoticeIdentifier": "SN9383-R45",
                              "shippingNoticeDate": "2021-11-04",
                              "orderIdentifier": "PO9383-R45",
                              "orderDate": "2021-11-10",
                              "paymentTerms": [
                                {
                                  "payInNumberOfDays": 28,
                                  "percentage": 3.0
                                }
                              ],
                              "comments": "Something to comment"
                            },
                            "items": [
                              {
                                "lineNumber": 1,
                                "identifiers": [
                                  {
                                    "identifier": "4300348765432",
                                    "domain": "GS1"
                                  },
                                  {
                                    "identifier": "PROD-77-LS",
                                    "domain": "BUYER"
                                  },
                                  {
                                    "identifier": "sp_gr_8",
                                    "domain": "SUPPLIER"
                                  }
                                ],
                                "isDepositItem": false,
                                "quantity": 20,
                                "unitPrice": 200.0,
                                "description": "First product description.",
                                "tax": {
                                  "amount": 760.0,
                                  "percentage": 19.0,
                                  "description": "Total tax amount."
                                }
                              },
                              {
                                "lineNumber": 2,
                                "identifiers": [
                                  {
                                    "identifier": "4300348765433",
                                    "domain": "GS1"
                                  },
                                  {
                                    "identifier": "PROD-78-LS",
                                    "domain": "BUYER"
                                  },
                                  {
                                    "identifier": "sp_gr_9",
                                    "domain": "SUPPLIER"
                                  }
                                ],
                                "isDepositItem": false,
                                "quantity": 15.0,
                                "unitPrice": 1.5,
                                "description": "Second product description.",
                                "tax": {
                                  "amount": 26.775,
                                  "percentage": 19,
                                  "description": "Total tax amount."
                                }
                              }
                            ]
                          }
                        }
                      ]
                    }
                  }
                }
              }
            }
          },
          "4XX": {
            "description": "Client Error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/InternalErrorResponse"
                }
              }
            }
          },
          "422": {
            "description": "Validation Error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/GeneralValidationErrorResponse"
                }
              }
            }
          },
          "5XX": {
            "description": "Server Error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/InternalErrorResponse"
                }
              }
            }
          }
        }
      },
      "post": {
        "operationId": "v2_send_transaction",
        "summary": "Send Transaction",
        "description": "Create and send a new transaction to one of your trade partners.",
        "tags": [
          "Outgoing Transactions"
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/SentTransaction"
              },
              "examples": {
                "Order": {
                  "value": {
                    "type": "ORDER",
                    "content": {
                      "header": {
                        "buyer": {
                          "name": "ACME Co. Ltd.",
                          "identifiers": [
                            {
                              "identifier": "1100001016310",
                              "domain": "GS1"
                            }
                          ],
                          "postalAddress": {
                            "city": "Berlin",
                            "countryCode": "DE",
                            "name": "ACME Co. Ltd.",
                            "postalCode": "82643",
                            "street": "Elroy-Fritsch-Ring 15"
                          },
                          "contacts": [
                            {
                              "firstName": "Jane",
                              "lastName": "Doe",
                              "email": "jane.doe@example.com",
                              "fax": "(818) 463-6124",
                              "phone": "+1.352.856.0626"
                            }
                          ]
                        },
                        "supplier": {
                          "name": "Testsupplier",
                          "identifiers": [
                            {
                              "identifier": "1100001016312",
                              "domain": "GS1"
                            }
                          ]
                        },
                        "shipTo": {
                          "identifiers": [
                            {
                              "identifier": "1100001016313",
                              "domain": "GS1"
                            }
                          ]
                        },
                        "billTo": {
                          "identifiers": [
                            {
                              "identifier": "1100001016314",
                              "domain": "GS1"
                            }
                          ]
                        },
                        "orderIdentifier": "PO9383-R45",
                        "orderDate": "2021-09-30",
                        "AdditionalOrderIdentifiers": {
                          "supplierOrderIdentifier": "SUP-12345",
                          "shipToOrderIdentifier": "ST-67890",
                          "billToOrderIdentifier": "BT-22222",
                          "finalRecipientOrderIdentifier": "FR-44444",
                          "technicalRecipientOrderIdentifier": "TR-55555"
                        },
                        "currency": "EUR",
                        "requestedDeliveryDate": "2021-10-05",
                        "paymentTerms": [
                          {
                            "payInNumberOfDays": 28,
                            "percentage": 3.0
                          }
                        ]
                      },
                      "items": [
                        {
                          "lineNumber": 1,
                          "identifiers": [
                            {
                              "identifier": "4300348765432",
                              "domain": "GS1"
                            },
                            {
                              "identifier": "PROD-77-LS",
                              "domain": "BUYER"
                            },
                            {
                              "identifier": "sp_gr_8",
                              "domain": "SUPPLIER"
                            }
                          ],
                          "isDepositItem": false,
                          "quantity": 10.0,
                          "unitOfMeasure": "EA",
                          "description": "First product description.",
                          "unitPrice": 1.23,
                          "tax": {
                            "percentage": 7,
                            "description": "Umsatzsteuer"
                          },
                          "brand": "kela",
                          "assortment": "ME_GEN",
                          "consumerGroup": "Unisex",
                          "category": "1008",
                          "subCategory": "Beverages",
                          "modificationGroups": [
                            {
                              "modifications": [
                                {
                                  "type": "ALLOWANCE",
                                  "reasonCode": "DISCOUNT",
                                  "description": "Contract trade discount",
                                  "percentage": 7
                                }
                              ]
                            }
                          ]
                        }
                      ]
                    }
                  }
                },
                "Minimal Order": {
                  "value": {
                    "type": "ORDER",
                    "content": {
                      "header": {
                        "buyer": {
                          "identifiers": [
                            {
                              "identifier": "1100001016310",
                              "domain": "GS1"
                            }
                          ]
                        },
                        "supplier": {
                          "identifiers": [
                            {
                              "identifier": "1100001016312",
                              "domain": "GS1"
                            }
                          ]
                        },
                        "orderIdentifier": "PO9383-R46",
                        "orderDate": "2021-09-30",
                        "currency": "EUR",
                        "requestedDeliveryDate": "2021-10-05"
                      },
                      "items": [
                        {
                          "lineNumber": 1,
                          "identifiers": [
                            {
                              "identifier": "4300348765432",
                              "domain": "GS1"
                            }
                          ],
                          "isDepositItem": false,
                          "quantity": 20.0,
                          "unitOfMeasure": "EA"
                        },
                        {
                          "lineNumber": 2,
                          "identifiers": [
                            {
                              "identifier": "4300348765433",
                              "domain": "GS1"
                            }
                          ],
                          "isDepositItem": false,
                          "quantity": 19.0,
                          "unitOfMeasure": "EA"
                        }
                      ]
                    }
                  }
                },
                "Order Response | ACCEPT": {
                  "value": {
                    "type": "ORDER_RESPONSE",
                    "content": {
                      "header": {
                        "buyer": {
                          "name": "ACME Co. Ltd.",
                          "identifiers": [
                            {
                              "identifier": "1100001016310",
                              "domain": "GS1"
                            }
                          ],
                          "postalAddress": {
                            "city": "Berlin",
                            "countryCode": "DE",
                            "name": "ACME Co. Ltd.",
                            "postalCode": "82643",
                            "street": "Elroy-Fritsch-Ring 15"
                          },
                          "contacts": [
                            {
                              "firstName": "Jane",
                              "lastName": "Doe",
                              "email": "jane.doe@example.com",
                              "fax": "(818) 463-6124",
                              "phone": "+1.352.856.0626"
                            }
                          ]
                        },
                        "supplier": {
                          "name": "Testsupplier",
                          "identifiers": [
                            {
                              "identifier": "1100001016312",
                              "domain": "GS1"
                            }
                          ]
                        },
                        "shipTo": {
                          "identifiers": [
                            {
                              "identifier": "1100001016313",
                              "domain": "GS1"
                            }
                          ]
                        },
                        "billTo": {
                          "identifiers": [
                            {
                              "identifier": "1100001016314",
                              "domain": "GS1"
                            }
                          ]
                        },
                        "type": "ACCEPT",
                        "orderResponseIdentifier": "RE-PO9383-R45",
                        "orderResponseDate": "2021-10-01",
                        "orderIdentifier": "PO9383-R45",
                        "orderDate": "2021-09-30",
                        "AdditionalOrderIdentifiers": {
                          "supplierOrderIdentifier": "SUP-12345",
                          "shipToOrderIdentifier": "ST-67890",
                          "billToOrderIdentifier": "BT-22222",
                          "finalRecipientOrderIdentifier": "FR-44444",
                          "technicalRecipientOrderIdentifier": "TR-55555"
                        },
                        "requestedDeliveryDate": "2021-10-05",
                        "confirmedDeliveryDate": "2021-10-05",
                        "currency": "EUR"
                      }
                    }
                  }
                },
                "Order Response | REJECT": {
                  "value": {
                    "type": "ORDER_RESPONSE",
                    "content": {
                      "header": {
                        "buyer": {
                          "name": "ACME Co. Ltd.",
                          "identifiers": [
                            {
                              "identifier": "1100001016310",
                              "domain": "GS1"
                            }
                          ],
                          "postalAddress": {
                            "city": "Berlin",
                            "countryCode": "DE",
                            "name": "ACME Co. Ltd.",
                            "postalCode": "82643",
                            "street": "Elroy-Fritsch-Ring 15"
                          },
                          "contacts": [
                            {
                              "firstName": "Jane",
                              "lastName": "Doe",
                              "email": "jane.doe@example.com",
                              "fax": "(818) 463-6124",
                              "phone": "+1.352.856.0626"
                            }
                          ]
                        },
                        "supplier": {
                          "name": "Testsupplier",
                          "identifiers": [
                            {
                              "identifier": "1100001016312",
                              "domain": "GS1"
                            }
                          ]
                        },
                        "shipTo": {
                          "identifiers": [
                            {
                              "identifier": "1100001016313",
                              "domain": "GS1"
                            }
                          ]
                        },
                        "billTo": {
                          "identifiers": [
                            {
                              "identifier": "1100001016314",
                              "domain": "GS1"
                            }
                          ]
                        },
                        "type": "REJECT",
                        "orderResponseIdentifier": "RE-PO9383-R45",
                        "orderResponseDate": "2021-10-01",
                        "orderIdentifier": "PO9383-R45",
                        "orderDate": "2021-09-30",
                        "AdditionalOrderIdentifiers": {
                          "supplierOrderIdentifier": "SUP-12345",
                          "shipToOrderIdentifier": "ST-67890",
                          "billToOrderIdentifier": "BT-22222",
                          "finalRecipientOrderIdentifier": "FR-44444",
                          "technicalRecipientOrderIdentifier": "TR-55555"
                        },
                        "currency": "EUR",
                        "comments": "Something to comment"
                      }
                    }
                  }
                },
                "Order Response | CHANGE": {
                  "value": {
                    "type": "ORDER_RESPONSE",
                    "content": {
                      "header": {
                        "buyer": {
                          "name": "ACME Co. Ltd.",
                          "identifiers": [
                            {
                              "identifier": "1100001016310",
                              "domain": "GS1"
                            }
                          ],
                          "postalAddress": {
                            "city": "Berlin",
                            "countryCode": "DE",
                            "name": "ACME Co. Ltd.",
                            "postalCode": "82643",
                            "street": "Elroy-Fritsch-Ring 15"
                          },
                          "contacts": [
                            {
                              "firstName": "Jane",
                              "lastName": "Doe",
                              "email": "jane.doe@example.com",
                              "fax": "(818) 463-6124",
                              "phone": "+1.352.856.0626"
                            }
                          ]
                        },
                        "supplier": {
                          "name": "Testsupplier",
                          "identifiers": [
                            {
                              "identifier": "1100001016312",
                              "domain": "GS1"
                            }
                          ]
                        },
                        "shipTo": {
                          "identifiers": [
                            {
                              "identifier": "1100001016313",
                              "domain": "GS1"
                            }
                          ]
                        },
                        "billTo": {
                          "identifiers": [
                            {
                              "identifier": "1100001016314",
                              "domain": "GS1"
                            }
                          ]
                        },
                        "type": "CHANGE",
                        "orderResponseIdentifier": "RE-PO9383-R45",
                        "orderResponseDate": "2021-10-01",
                        "orderIdentifier": "PO9383-R45",
                        "orderDate": "2021-09-30",
                        "AdditionalOrderIdentifiers": {
                          "supplierOrderIdentifier": "SUP-12345",
                          "shipToOrderIdentifier": "ST-67890",
                          "billToOrderIdentifier": "BT-22222",
                          "finalRecipientOrderIdentifier": "FR-44444",
                          "technicalRecipientOrderIdentifier": "TR-55555"
                        },
                        "requestedDeliveryDate": "2021-10-05",
                        "confirmedDeliveryDate": "2021-10-05",
                        "currency": "EUR",
                        "comments": "Something to comment"
                      },
                      "items": [
                        {
                          "lineNumber": 1,
                          "identifiers": [
                            {
                              "identifier": "4300348765432",
                              "domain": "GS1"
                            },
                            {
                              "identifier": "PROD-77-LS",
                              "domain": "BUYER"
                            },
                            {
                              "identifier": "sp_gr_8",
                              "domain": "SUPPLIER"
                            }
                          ],
                          "isDepositItem": false,
                          "orderedQuantity": 20.0,
                          "confirmedQuantity": 15.0,
                          "unitOfMeasure": "EA",
                          "description": "First product description.",
                          "unitPrice": 0.15
                        },
                        {
                          "lineNumber": 2,
                          "identifiers": [
                            {
                              "identifier": "4300348765433",
                              "domain": "GS1"
                            },
                            {
                              "identifier": "PROD-78-LS",
                              "domain": "BUYER"
                            },
                            {
                              "identifier": "sp_gr_9",
                              "domain": "SUPPLIER"
                            }
                          ],
                          "isDepositItem": false,
                          "orderedQuantity": 19.0,
                          "confirmedQuantity": 19.0,
                          "unitOfMeasure": "EA",
                          "description": "Second product description.",
                          "unitPrice": 1.5
                        }
                      ]
                    }
                  }
                },
                "Shipping Notice": {
                  "value": {
                    "type": "SHIPPING_NOTICE",
                    "content": {
                      "header": {
                        "buyer": {
                          "name": "ACME Co. Ltd.",
                          "identifiers": [
                            {
                              "identifier": "1100001016310",
                              "domain": "GS1"
                            }
                          ],
                          "postalAddress": {
                            "city": "Berlin",
                            "countryCode": "DE",
                            "name": "ACME Co. Ltd.",
                            "postalCode": "82643",
                            "street": "Elroy-Fritsch-Ring 15"
                          },
                          "contacts": [
                            {
                              "firstName": "Jane",
                              "lastName": "Doe",
                              "email": "jane.doe@example.com",
                              "fax": "(818) 463-6124",
                              "phone": "+1.352.856.0626"
                            }
                          ]
                        },
                        "supplier": {
                          "name": "Testsupplier",
                          "identifiers": [
                            {
                              "identifier": "1100001016312",
                              "domain": "GS1"
                            }
                          ]
                        },
                        "shipTo": {
                          "identifiers": [
                            {
                              "identifier": "1100001016313",
                              "domain": "GS1"
                            }
                          ]
                        },
                        "billTo": {
                          "identifiers": [
                            {
                              "identifier": "1100001016314",
                              "domain": "GS1"
                            }
                          ]
                        },
                        "shippingNoticeIdentifier": "SN9383-R45",
                        "shippingNoticeDate": "2021-11-24",
                        "orderIdentifier": "PO9383-R45",
                        "orderDate": "2021-11-20",
                        "AdditionalOrderIdentifiers": {
                          "supplierOrderIdentifier": "SUP-12345",
                          "shipFromOrderIdentifier": "SF-11111",
                          "shipToOrderIdentifier": "ST-67890",
                          "billToOrderIdentifier": "BT-22222",
                          "finalRecipientOrderIdentifier": "FR-44444"
                        },
                        "despatchDate": "2021-11-05",
                        "requestedDeliveryDate": "2021-11-06",
                        "expectedDeliveryDate": "2021-11-06",
                        "carrier": "Example Delivery Solution",
                        "trackingNumber": "b52ea6a7-c2ea-3bfc-a63f-19140d3b3af5",
                        "trackingUrl": "https://api.procuros.com/example"
                      },
                      "transportUnits": [
                        {
                          "unitIdentifier": "34000000000001",
                          "unitType": "EURO_PALLET",
                          "containedTradeUnitCount": 10,
                          "items": [
                            {
                              "lineNumber": 1,
                              "orderLineNumber": 1,
                              "identifiers": [
                                {
                                  "identifier": "4300348765432",
                                  "domain": "GS1"
                                },
                                {
                                  "identifier": "PROD-77-LS",
                                  "domain": "BUYER"
                                },
                                {
                                  "identifier": "sp_gr_8",
                                  "domain": "SUPPLIER"
                                }
                              ],
                              "isDepositItem": false,
                              "orderedQuantity": 20.0,
                              "shippedQuantity": 20.0,
                              "description": "First product description.",
                              "certifications": {
                                "deBnn": "NUMBER-123"
                              },
                              "batches": [
                                {
                                  "batchIdentifier": "BATCH_ID_1'",
                                  "expirationDate": "2022-12-24",
                                  "quantity": 15.0
                                },
                                {
                                  "batchIdentifier": "BATCH_ID_2'",
                                  "expirationDate": "2022-12-31",
                                  "quantity": 5.0
                                }
                              ]
                            },
                            {
                              "lineNumber": 2,
                              "orderLineNumber": 2,
                              "identifiers": [
                                {
                                  "identifier": "4300348765433",
                                  "domain": "GS1"
                                },
                                {
                                  "identifier": "PROD-78-LS",
                                  "domain": "BUYER"
                                },
                                {
                                  "identifier": "sp_gr_9",
                                  "domain": "SUPPLIER"
                                }
                              ],
                              "isDepositItem": false,
                              "orderedQuantity": 19.0,
                              "shippedQuantity": 15.0,
                              "openQuantityAction": "DISCARDED",
                              "batches": [
                                {
                                  "batchIdentifier": "BATCH_ID_2'",
                                  "expirationDate": "2022-05-01",
                                  "quantity": 15.0
                                }
                              ],
                              "description": "Sparkling Water - Crate (6x0.75l)."
                            }
                          ]
                        }
                      ]
                    }
                  }
                },
                "Invoice": {
                  "value": {
                    "type": "INVOICE",
                    "content": {
                      "header": {
                        "buyer": {
                          "name": "ACME Co. Ltd.",
                          "identifiers": [
                            {
                              "identifier": "1100001016310",
                              "domain": "GS1"
                            }
                          ],
                          "postalAddress": {
                            "city": "Berlin",
                            "countryCode": "DE",
                            "name": "ACME Co. Ltd.",
                            "postalCode": "82643",
                            "street": "Elroy-Fritsch-Ring 15"
                          },
                          "contacts": [
                            {
                              "firstName": "Jane",
                              "lastName": "Doe",
                              "email": "jane.doe@example.com",
                              "fax": "(818) 463-6124",
                              "phone": "+1.352.856.0626"
                            }
                          ]
                        },
                        "supplier": {
                          "name": "Testsupplier",
                          "identifiers": [
                            {
                              "identifier": "1100001016312",
                              "domain": "GS1"
                            }
                          ]
                        },
                        "shipTo": {
                          "identifiers": [
                            {
                              "identifier": "1100001016313",
                              "domain": "GS1"
                            }
                          ]
                        },
                        "billTo": {
                          "identifiers": [
                            {
                              "identifier": "1100001016314",
                              "domain": "GS1"
                            }
                          ]
                        },
                        "invoiceIdentifier": "IV9383-R45",
                        "invoiceDate": "2021-11-11",
                        "shippingNoticeIdentifier": "SN9383-R45",
                        "shippingNoticeDate": "2021-11-04",
                        "orderIdentifier": "PO9383-R45",
                        "orderDate": "2021-11-20",
                        "AdditionalOrderIdentifiers": {
                          "supplierOrderIdentifier": "SUP-12345",
                          "shipToOrderIdentifier": "ST-67890",
                          "billToOrderIdentifier": "BT-22222",
                          "billFromOrderIdentifier": "BF-33333",
                          "finalRecipientOrderIdentifier": "FR-44444"
                        },
                        "paymentTerms": [
                          {
                            "payInNumberOfDays": 28,
                            "percentage": 3.0
                          }
                        ]
                      },
                      "items": [
                        {
                          "lineNumber": 1,
                          "identifiers": [
                            {
                              "identifier": "4300348765432",
                              "domain": "GS1"
                            },
                            {
                              "identifier": "PROD-77-LS",
                              "domain": "BUYER"
                            },
                            {
                              "identifier": "sp_gr_8",
                              "domain": "SUPPLIER"
                            }
                          ],
                          "isDepositItem": false,
                          "quantity": 20,
                          "unitPrice": 200.0,
                          "description": "First product description.",
                          "certifications": {
                            "deBnn": "NUMBER-123"
                          },
                          "tax": {
                            "amount": 760.0,
                            "percentage": 19.0,
                            "description": "Total tax amount."
                          }
                        },
                        {
                          "lineNumber": 2,
                          "identifiers": [
                            {
                              "identifier": "4300348765433",
                              "domain": "GS1"
                            },
                            {
                              "identifier": "PROD-78-LS",
                              "domain": "BUYER"
                            },
                            {
                              "identifier": "sp_gr_9",
                              "domain": "SUPPLIER"
                            }
                          ],
                          "isDepositItem": false,
                          "quantity": 15.0,
                          "unitPrice": 1.5,
                          "description": "Second product description.",
                          "tax": {
                            "amount": 26.775,
                            "percentage": 19,
                            "description": "Total tax amount."
                          }
                        }
                      ]
                    }
                  }
                },
                "CreditNote": {
                  "value": {
                    "type": "CREDIT_NOTE",
                    "content": {
                      "header": {
                        "buyer": {
                          "name": "ACME Co. Ltd.",
                          "identifiers": [
                            {
                              "identifier": "1100001016310",
                              "domain": "GS1"
                            }
                          ],
                          "postalAddress": {
                            "city": "Berlin",
                            "countryCode": "DE",
                            "name": "ACME Co. Ltd.",
                            "postalCode": "82643",
                            "street": "Elroy-Fritsch-Ring 15"
                          },
                          "contacts": [
                            {
                              "firstName": "Jane",
                              "lastName": "Doe",
                              "email": "jane.doe@example.com",
                              "fax": "(818) 463-6124",
                              "phone": "+1.352.856.0626"
                            }
                          ]
                        },
                        "supplier": {
                          "name": "Testsupplier",
                          "identifiers": [
                            {
                              "identifier": "1100001016312",
                              "domain": "GS1"
                            }
                          ]
                        },
                        "shipTo": {
                          "identifiers": [
                            {
                              "identifier": "1100001016313",
                              "domain": "GS1"
                            }
                          ]
                        },
                        "billTo": {
                          "identifiers": [
                            {
                              "identifier": "1100001016314",
                              "domain": "GS1"
                            }
                          ]
                        },
                        "creditNoteIdentifier": "CN9383-R45",
                        "creditNoteDate": "2021-11-20",
                        "invoiceIdentifier": "IV9383-R45",
                        "invoiceDate": "2021-11-11",
                        "shippingNoticeIdentifier": "SN9383-R45",
                        "shippingNoticeDate": "2021-11-04",
                        "orderIdentifier": "PO9383-R45",
                        "orderDate": "2021-11-20",
                        "reason": "customer refund",
                        "paymentTerms": [
                          {
                            "payInNumberOfDays": 28,
                            "percentage": 3.0
                          }
                        ]
                      },
                      "items": [
                        {
                          "lineNumber": 1,
                          "identifiers": [
                            {
                              "identifier": "4300348765432",
                              "domain": "GS1"
                            },
                            {
                              "identifier": "PROD-77-LS",
                              "domain": "BUYER"
                            },
                            {
                              "identifier": "sp_gr_8",
                              "domain": "SUPPLIER"
                            }
                          ],
                          "isDepositItem": false,
                          "quantity": 20,
                          "unitPrice": 200.0,
                          "description": "First product description.",
                          "certifications": {
                            "deBnn": "NUMBER-123"
                          },
                          "tax": {
                            "amount": 760.0,
                            "percentage": 19.0,
                            "description": "Total tax amount."
                          }
                        },
                        {
                          "lineNumber": 2,
                          "identifiers": [
                            {
                              "identifier": "4300348765433",
                              "domain": "GS1"
                            },
                            {
                              "identifier": "PROD-78-LS",
                              "domain": "BUYER"
                            },
                            {
                              "identifier": "sp_gr_9",
                              "domain": "SUPPLIER"
                            }
                          ],
                          "isDepositItem": false,
                          "quantity": 15.0,
                          "unitPrice": 1.5,
                          "description": "Second product description.",
                          "tax": {
                            "amount": 26.775,
                            "percentage": 19,
                            "description": "Total tax amount."
                          }
                        }
                      ]
                    }
                  }
                },
                "DispatchInstruction": {
                  "value": {
                    "type": "DISPATCH_INSTRUCTION",
                    "content": {
                      "header": {
                        "orderIdentifier": "ORDER-123",
                        "orderDate": "2022-05-01T18:39:09-08:00",
                        "shipmentIdentifier": "SHIPMENT-123",
                        "noticeDate": "2022-05-01T18:39:09-08:00",
                        "requestedDeliveryDate": "2022-05-01T18:39:09-08:00",
                        "shipFrom": {
                          "name": "Foo GmbH",
                          "identifiers": [
                            {
                              "domain": "GS1",
                              "identifier": "abc"
                            }
                          ],
                          "postalAddress": {
                            "name": "Foo",
                            "street": "Musterstra\u00dfe 123",
                            "addressExtra": "1st Floor",
                            "city": "Hamburg",
                            "postalCode": "12345",
                            "state": "HH",
                            "countryCode": "DE"
                          },
                          "contacts": [
                            {
                              "firstName": "Max",
                              "lastName": "Muster",
                              "phone": "+49 12345",
                              "mobile": "+49 12345",
                              "email": "foo@bar.com",
                              "fax": "+49 12345"
                            }
                          ]
                        },
                        "shipTo": {
                          "name": "Foo GmbH",
                          "identifiers": [
                            {
                              "domain": "GS1",
                              "identifier": "abc"
                            }
                          ],
                          "postalAddress": {
                            "name": "Foo",
                            "street": "Musterstra\u00dfe 123",
                            "addressExtra": "1st Floor",
                            "city": "Hamburg",
                            "postalCode": "12345",
                            "state": "HH",
                            "countryCode": "DE"
                          },
                          "contacts": [
                            {
                              "firstName": "Max",
                              "lastName": "Muster",
                              "phone": "+49 12345",
                              "mobile": "+49 12345",
                              "email": "foo@bar.com",
                              "fax": "+49 12345"
                            }
                          ]
                        },
                        "billTo": {
                          "name": "Foo GmbH",
                          "identifiers": [
                            {
                              "domain": "GS1",
                              "identifier": "abc"
                            }
                          ],
                          "postalAddress": {
                            "name": "Foo",
                            "street": "Musterstra\u00dfe 123",
                            "addressExtra": "1st Floor",
                            "city": "Hamburg",
                            "postalCode": "12345",
                            "state": "HH",
                            "countryCode": "DE"
                          },
                          "contacts": [
                            {
                              "firstName": "Max",
                              "lastName": "Muster",
                              "phone": "+49 12345",
                              "mobile": "+49 12345",
                              "email": "foo@bar.com",
                              "fax": "+49 12345"
                            }
                          ]
                        },
                        "customer": {
                          "name": "Foo GmbH",
                          "identifiers": [
                            {
                              "domain": "GS1",
                              "identifier": "abc"
                            }
                          ],
                          "postalAddress": {
                            "name": "Foo",
                            "street": "Musterstra\u00dfe 123",
                            "addressExtra": "1st Floor",
                            "city": "Hamburg",
                            "postalCode": "12345",
                            "state": "HH",
                            "countryCode": "DE"
                          },
                          "contacts": [
                            {
                              "firstName": "Max",
                              "lastName": "Muster",
                              "phone": "+49 12345",
                              "mobile": "+49 12345",
                              "email": "foo@bar.com",
                              "fax": "+49 12345"
                            }
                          ]
                        },
                        "supplier": {
                          "name": "Foo GmbH",
                          "identifiers": [
                            {
                              "domain": "GS1",
                              "identifier": "abc"
                            }
                          ],
                          "postalAddress": {
                            "name": "Foo",
                            "street": "Musterstra\u00dfe 123",
                            "addressExtra": "1st Floor",
                            "city": "Hamburg",
                            "postalCode": "12345",
                            "state": "HH",
                            "countryCode": "DE"
                          },
                          "contacts": [
                            {
                              "firstName": "Max",
                              "lastName": "Muster",
                              "phone": "+49 12345",
                              "mobile": "+49 12345",
                              "email": "foo@bar.com",
                              "fax": "+49 12345"
                            }
                          ]
                        },
                        "comments": "Some Comment"
                      },
                      "items": [
                        {
                          "orderLineNumber": 1,
                          "shippingNoticeLineNumber": 1,
                          "shippedQuantity": 1,
                          "orderedQuantity": 1,
                          "identifiers": [
                            {
                              "domain": "GS1",
                              "identifier": "abc"
                            }
                          ],
                          "unitOfMeasure": "EA",
                          "unitPrice": 1,
                          "currency": "EUR",
                          "description": "Some Description",
                          "batches": [
                            {
                              "batchIdentifier": "abc",
                              "expirationDate": "2022-12-31",
                              "quantity": 30
                            }
                          ],
                          "openQuantityAction": "DISCARDED"
                        }
                      ]
                    }
                  }
                },
                "DispatchInstructionResponse": {
                  "value": {
                    "type": "DISPATCH_INSTRUCTION_RESPONSE",
                    "content": {
                      "header": {
                        "orderId": null,
                        "orderDate": null,
                        "shipmentId": "48148",
                        "shippingNoticeIdentifier": "SHIPMENT-123",
                        "shippingNoticeDate": "2022-10-12T12:53:51.000000Z",
                        "dispatchInstructionResponseDate": "2022-10-12T12:53:51.000000Z",
                        "responseDate": "2022-10-12T12:53:51.000000Z",
                        "shipmentDate": "2022-10-12T12:53:51.000000Z",
                        "requestedDeliveryDate": "2022-10-11T22:00:00.000000Z",
                        "expectedDeliveryDate": "2022-10-11T22:00:00.000000Z",
                        "shipFrom": {
                          "name": "Foo GmbH",
                          "identifiers": [
                            {
                              "domain": "GS1",
                              "identifier": "GS1"
                            }
                          ],
                          "postalAddress": {
                            "name": "Foo",
                            "street": "Musterstra\u00dfe 123",
                            "addressExtra": "1st Floor",
                            "city": "Hamburg",
                            "postalCode": "12345",
                            "state": "HH",
                            "countryCode": "DE"
                          },
                          "contacts": [
                            {
                              "firstName": "Max",
                              "lastName": "Muster",
                              "phone": "+49 12345",
                              "mobile": "+49 12345",
                              "email": "foo@bar.com",
                              "fax": "+49 12345"
                            }
                          ]
                        },
                        "shipTo": {
                          "name": "Foo GmbH",
                          "identifiers": [
                            {
                              "domain": "GS1",
                              "identifier": "GS1"
                            }
                          ],
                          "postalAddress": {
                            "name": "Foo",
                            "street": "Musterstra\u00dfe 123",
                            "addressExtra": "1st Floor",
                            "city": "Hamburg",
                            "postalCode": "12345",
                            "state": "HH",
                            "countryCode": "DE"
                          },
                          "contacts": [
                            {
                              "title": "Dr.",
                              "salutation": "Herr",
                              "firstName": "Max",
                              "lastName": "Muster",
                              "phone": "+49 12345",
                              "mobile": "+49 12345",
                              "email": "foo@bar.com",
                              "fax": "+49 12345"
                            }
                          ]
                        },
                        "billTo": {
                          "name": "Foo GmbH",
                          "identifiers": [
                            {
                              "domain": "GS1",
                              "identifier": "GS1"
                            }
                          ],
                          "postalAddress": {
                            "name": "Foo",
                            "street": "Musterstra\u00dfe 123",
                            "addressExtra": "1st Floor",
                            "city": "Hamburg",
                            "postalCode": "12345",
                            "state": "HH",
                            "countryCode": "DE"
                          },
                          "contacts": [
                            {
                              "title": "Dr.",
                              "salutation": "Herr",
                              "firstName": "Max",
                              "lastName": "Muster",
                              "phone": "+49 12345",
                              "mobile": "+49 12345",
                              "email": "foo@bar.com",
                              "fax": "+49 12345"
                            }
                          ]
                        },
                        "buyer": {
                          "name": "Foo GmbH",
                          "identifiers": [
                            {
                              "domain": "GS1",
                              "identifier": "GS1"
                            }
                          ],
                          "postalAddress": {
                            "name": "Foo",
                            "street": "Musterstra\u00dfe 123",
                            "addressExtra": "1st Floor",
                            "city": "Hamburg",
                            "postalCode": "12345",
                            "state": "HH",
                            "countryCode": "DE"
                          },
                          "contacts": [
                            {
                              "title": "Dr.",
                              "salutation": "Herr",
                              "firstName": "Max",
                              "lastName": "Muster",
                              "phone": "+49 12345",
                              "mobile": "+49 12345",
                              "email": "foo@bar.com",
                              "fax": "+49 12345"
                            }
                          ]
                        },
                        "supplier": {
                          "name": "Foo GmbH",
                          "identifiers": [
                            {
                              "domain": "GS1",
                              "identifier": "GS1"
                            }
                          ],
                          "postalAddress": {
                            "name": "Foo",
                            "street": "Musterstra\u00dfe 123",
                            "addressExtra": "1st Floor",
                            "city": "Hamburg",
                            "postalCode": "12345",
                            "state": "HH",
                            "countryCode": "DE"
                          },
                          "contacts": [
                            {
                              "title": "Dr.",
                              "salutation": "Herr",
                              "firstName": "Max",
                              "lastName": "Muster",
                              "phone": "+49 12345",
                              "mobile": "+49 12345",
                              "email": "foo@bar.com",
                              "fax": "+49 12345"
                            }
                          ]
                        },
                        "comments": null
                      },
                      "transportUnits": [
                        {
                          "unitIdentifier": "342601560208144493",
                          "unitType": null,
                          "containedTradeUnitCount": null,
                          "items": [
                            {
                              "lineNumber": 4,
                              "shippingNoticeLineNumber": 1,
                              "shippedQuantity": 1,
                              "orderedQuantity": 1,
                              "isDepositItem": false,
                              "identifiers": [
                                {
                                  "domain": "GS1",
                                  "identifier": "abc"
                                }
                              ],
                              "unitOfMeasure": "EA",
                              "unitPrice": null,
                              "currency": null,
                              "description": "",
                              "batches": [
                                {
                                  "batchIdentifier": "abc",
                                  "expirationDate": "2022-12-31",
                                  "quantity": 30
                                }
                              ],
                              "parentLineNumber": null,
                              "openQuantityAction": null
                            }
                          ]
                        }
                      ]
                    }
                  }
                },
                "ReceivalNotice": {
                  "value": {
                    "type": "RECEIVAL_NOTICE",
                    "content": {
                      "header": {
                        "receivalAdviceNumber": "receival-advice-number",
                        "receivalDate": "2022-10-12T12:53:51.000000Z",
                        "deliveryNoteNumber": "delivery-note-number",
                        "customerOrderNumber": "customer-order-number",
                        "deliveryNoteDate": "2022-10-12T12:53:51.000000Z",
                        "orderDate": "2022-10-12T12:53:51.000000Z",
                        "comments": "comment",
                        "carrierId": "carrierId",
                        "carrierDomain": "carrierDomain",
                        "trackingNumber": "trackingNumber",
                        "trackingUrl": "trackingUrl",
                        "shipFrom": {
                          "name": "Foo GmbH",
                          "identifiers": [
                            {
                              "domain": "GS1",
                              "identifier": "GS1"
                            }
                          ],
                          "postalAddress": {
                            "name": "Foo",
                            "street": "Musterstra\u00dfe 123",
                            "addressExtra": "1st Floor",
                            "city": "Hamburg",
                            "postalCode": "12345",
                            "state": "HH",
                            "countryCode": "DE"
                          },
                          "contacts": [
                            {
                              "title": "Dr.",
                              "salutation": "Herr",
                              "firstName": "Max",
                              "lastName": "Muster",
                              "phone": "+49 12345",
                              "mobile": "+49 12345",
                              "email": "foo@bar.com",
                              "fax": "+49 12345"
                            }
                          ]
                        },
                        "shipTo": {
                          "name": "Foo GmbH",
                          "identifiers": [
                            {
                              "domain": "GS1",
                              "identifier": "GS1"
                            }
                          ],
                          "postalAddress": {
                            "name": "Foo",
                            "street": "Musterstra\u00dfe 123",
                            "addressExtra": "1st Floor",
                            "city": "Hamburg",
                            "postalCode": "12345",
                            "state": "HH",
                            "countryCode": "DE"
                          },
                          "contacts": [
                            {
                              "title": "Dr.",
                              "salutation": "Herr",
                              "firstName": "Max",
                              "lastName": "Muster",
                              "phone": "+49 12345",
                              "mobile": "+49 12345",
                              "email": "foo@bar.com",
                              "fax": "+49 12345"
                            }
                          ]
                        },
                        "billTo": {
                          "name": "Foo GmbH",
                          "identifiers": [
                            {
                              "domain": "GS1",
                              "identifier": "GS1"
                            }
                          ],
                          "postalAddress": {
                            "name": "Foo",
                            "street": "Musterstra\u00dfe 123",
                            "addressExtra": "1st Floor",
                            "city": "Hamburg",
                            "postalCode": "12345",
                            "state": "HH",
                            "countryCode": "DE"
                          },
                          "contacts": [
                            {
                              "title": "Dr.",
                              "salutation": "Herr",
                              "firstName": "Max",
                              "lastName": "Muster",
                              "phone": "+49 12345",
                              "mobile": "+49 12345",
                              "email": "foo@bar.com",
                              "fax": "+49 12345"
                            }
                          ]
                        },
                        "customer": {
                          "name": "Foo GmbH",
                          "identifiers": [
                            {
                              "domain": "GS1",
                              "identifier": "GS1"
                            }
                          ],
                          "postalAddress": {
                            "name": "Foo",
                            "street": "Musterstra\u00dfe 123",
                            "addressExtra": "1st Floor",
                            "city": "Hamburg",
                            "postalCode": "12345",
                            "state": "HH",
                            "countryCode": "DE"
                          },
                          "contacts": [
                            {
                              "title": "Dr.",
                              "salutation": "Herr",
                              "firstName": "Max",
                              "lastName": "Muster",
                              "phone": "+49 12345",
                              "mobile": "+49 12345",
                              "email": "foo@bar.com",
                              "fax": "+49 12345"
                            }
                          ]
                        },
                        "supplier": {
                          "name": "Foo GmbH",
                          "identifiers": [
                            {
                              "domain": "GS1",
                              "identifier": "GS1"
                            }
                          ],
                          "postalAddress": {
                            "name": "Foo",
                            "street": "Musterstra\u00dfe 123",
                            "addressExtra": "1st Floor",
                            "city": "Hamburg",
                            "postalCode": "12345",
                            "state": "HH",
                            "countryCode": "DE"
                          },
                          "contacts": [
                            {
                              "title": "Dr.",
                              "salutation": "Herr",
                              "firstName": "Max",
                              "lastName": "Muster",
                              "phone": "+49 12345",
                              "mobile": "+49 12345",
                              "email": "foo@bar.com",
                              "fax": "+49 12345"
                            }
                          ]
                        }
                      },
                      "transportUnits": [
                        {
                          "unitIdentifier": "342601560208144493",
                          "unitType": null,
                          "containedTradeUnitCount": null,
                          "items": [
                            {
                              "lineNumber": 1,
                              "receivedQuantity": 10,
                              "shippedQuantity": 10,
                              "identifiers": [
                                {
                                  "domain": "GS1",
                                  "identifier": "abc"
                                }
                              ],
                              "unitOfMeasure": "EA",
                              "unitPrice": null,
                              "currency": null,
                              "description": "",
                              "batches": [
                                {
                                  "batchIdentifier": "abc",
                                  "expirationDate": "2022-12-31",
                                  "quantity": 30
                                }
                              ],
                              "parentLineNumber": null,
                              "openQuantityAction": null
                            }
                          ]
                        }
                      ]
                    }
                  }
                },
                "RemittanceAdvice": {
                  "value": {
                    "type": "REMITTANCE_ADVICE",
                    "content": {
                      "header": {
                        "adviceNumber": "AdviceNumber-643123",
                        "adviceDate": "2021-09-30",
                        "paymentMethod": "cash",
                        "paymentReference": "paymentReference-1234567890",
                        "remittanceDate": "2021-09-30",
                        "payFrom": {
                          "name": "Max Mustermann",
                          "identifiers": [
                            {
                              "identifier": "1100001016310",
                              "domain": "GS1"
                            }
                          ],
                          "postalAddress": {
                            "city": "Berlin",
                            "countryCode": "DE",
                            "name": "ACME Co. Ltd.",
                            "postalCode": "82643",
                            "street": "Elroy-Fritsch-Ring 15"
                          },
                          "financialInstitution": {
                            "name": "Deutsche Bank",
                            "institutionId": "Deutsche Bank",
                            "institutionIdDomain": "SWIFT",
                            "accountNumber": "DE123456789",
                            "accountHolder": "Foo Bar GmbH"
                          }
                        },
                        "payTo": {
                          "name": "John Doe",
                          "identifiers": [
                            {
                              "identifier": "1100001016310",
                              "domain": "GS1"
                            }
                          ],
                          "postalAddress": {
                            "city": "Berlin",
                            "countryCode": "DE",
                            "name": "ACME Co. Ltd.",
                            "postalCode": "82643",
                            "street": "Elroy-Fritsch-Ring 15"
                          }
                        },
                        "buyer": {
                          "name": "buyer",
                          "identifiers": [
                            {
                              "identifier": "1100001016310",
                              "domain": "GS1"
                            }
                          ],
                          "postalAddress": {
                            "city": "Berlin",
                            "countryCode": "DE",
                            "name": "ACME Co. Ltd.",
                            "postalCode": "82643",
                            "street": "Elroy-Fritsch-Ring 15"
                          }
                        },
                        "supplier": {
                          "name": "supplier",
                          "identifiers": [
                            {
                              "identifier": "3220010000022",
                              "domain": "GS1"
                            }
                          ],
                          "postalAddress": {
                            "city": "Berlin",
                            "countryCode": "DE",
                            "name": "ACME Co. Ltd.",
                            "postalCode": "82643",
                            "street": "Elroy-Fritsch-Ring 15"
                          }
                        },
                        "currency": "EUR"
                      },
                      "items": [
                        {
                          "documentNumber": "originalInvoiceNumber-1234567890",
                          "documentDate": "2021-09-30",
                          "externalDocumentNumber": "externalDocumentNumber-1234567890",
                          "documentType": "INVOICE",
                          "dueTotal": 100,
                          "remittedTotal": 20,
                          "tax": {
                            "percentage": 19,
                            "amount": 1.9,
                            "description": "MwSt. 19%"
                          },
                          "correctionTotal": 80,
                          "buyer": {
                            "name": "buyer",
                            "identifiers": [
                              {
                                "identifier": "1100001016310",
                                "domain": "GS1"
                              }
                            ],
                            "postalAddress": {
                              "city": "Berlin",
                              "countryCode": "DE",
                              "name": "ACME Co. Ltd.",
                              "postalCode": "82643",
                              "street": "Elroy-Fritsch-Ring 15"
                            }
                          },
                          "supplier": {
                            "name": "supplier",
                            "identifiers": [
                              {
                                "identifier": "1100001016310",
                                "domain": "GS1"
                              }
                            ],
                            "postalAddress": {
                              "city": "Berlin",
                              "countryCode": "DE",
                              "name": "ACME Co. Ltd.",
                              "postalCode": "82643",
                              "street": "Elroy-Fritsch-Ring 15"
                            }
                          },
                          "corrections": [
                            {
                              "basis": 20,
                              "reason": "reason-1234567890",
                              "amount": 200,
                              "tax": {
                                "percentage": 19,
                                "amount": 1.9,
                                "description": "MwSt. 19%"
                              },
                              "total": 200
                            }
                          ]
                        }
                      ],
                      "summary": {
                        "dueTotal": 100,
                        "remittedTotal": 20,
                        "correctionTotal": 80
                      }
                    }
                  }
                },
                "ProductCatalog": {
                  "value": {
                    "type": "PRODUCT_CATALOG",
                    "content": {
                      "header": {
                        "catalogDate": "2023-04-19",
                        "catalogNumber": "b3490ccc-de60-42f7-a9c0-3aead03c2e33",
                        "sender": {
                          "identifiers": [
                            {
                              "domain": "GS1",
                              "identifier": "3220010000001"
                            }
                          ]
                        },
                        "receiver": {
                          "identifiers": [
                            {
                              "domain": "GS1",
                              "identifier": "4300000000015"
                            }
                          ]
                        }
                      },
                      "items": [
                        {
                          "lineNumber": 1,
                          "quantity": 1,
                          "identity": {
                            "senderPartnerId": "92a338d2-989e-36b4-a88e-273a170b68d9",
                            "receiverPartnerId": "880ae9f9-6d4d-3336-9e87-6f7cfccd6716",
                            "gtin": "4388091401620"
                          },
                          "action": "NEW"
                        }
                      ]
                    }
                  }
                },
                "InventoryReport": {
                  "value": {
                    "type": "INVENTORY_REPORT",
                    "content": {
                      "header": {
                        "inventoryReportDate": "2023-04-19",
                        "inventoryReportIdentifier": "b3490ccc-de60-42f7-a9c0-3aead03c2e33",
                        "warehouse": {
                          "identifiers": [
                            {
                              "domain": "GS1",
                              "identifier": "3220010000001"
                            }
                          ]
                        },
                        "goodsOwner": {
                          "identifiers": [
                            {
                              "domain": "GS1",
                              "identifier": "4300000000015"
                            }
                          ]
                        }
                      },
                      "items": [
                        {
                          "lineNumber": 1,
                          "availableQuantity": 1,
                          "identity": {
                            "senderPartnerId": "92a338d2-989e-36b4-a88e-273a170b68d9",
                            "receiverPartnerId": "880ae9f9-6d4d-3336-9e87-6f7cfccd6716",
                            "gtin": "4388091401620"
                          }
                        }
                      ]
                    }
                  }
                },
                "SalesReport": {
                  "value": {
                    "type": "SALES_REPORT",
                    "content": {
                      "header": {
                        "salesReportDate": "2023-04-19",
                        "salesReportIdentifier": "b3490ccc-de60-42f7-a9c0-3aead03c2e33",
                        "salesPeriodStartDate": "2023-04-19",
                        "salesPeriodEndDate": "2023-05-19",
                        "buyer": {
                          "identifiers": [
                            {
                              "domain": "GS1",
                              "identifier": "3220010000001"
                            }
                          ]
                        },
                        "supplier": {
                          "identifiers": [
                            {
                              "domain": "GS1",
                              "identifier": "4300000000015"
                            }
                          ]
                        }
                      },
                      "locations": [
                        {
                          "location": {
                            "identifiers": [
                              {
                                "domain": "GS1",
                                "identifier": "4300000000016"
                              }
                            ]
                          },
                          "items": [
                            {
                              "salesReportLineIdentifier": 1,
                              "identifiers": [
                                {
                                  "domain": "SUPPLIER",
                                  "identifier": "123456789"
                                }
                              ],
                              "salesQuantity": 100,
                              "category": "1008",
                              "subCategory": "Beverages"
                            }
                          ]
                        }
                      ]
                    }
                  }
                }
              }
            }
          }
        },
        "responses": {
          "201": {
            "description": "Created",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "procurosTransactionId"
                  ],
                  "properties": {
                    "procurosTransactionId": {
                      "$ref": "#/components/schemas/ProcurosTransactionId"
                    }
                  }
                }
              }
            }
          },
          "202": {
            "description": "Accepted",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "message"
                  ],
                  "properties": {
                    "message": {
                      "type": "string",
                      "description": "Status message",
                      "example": "Trade relationship not yet active."
                    },
                    "procurosTransactionId": {
                      "$ref": "#/components/schemas/ProcurosTransactionId",
                      "description": "Included when a transaction record was created, even if it was not forwarded to the receiving Trade Partner."
                    }
                  }
                }
              }
            }
          },
          "4XX": {
            "description": "Client Error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ClientErrorResponse"
                }
              }
            }
          },
          "422": {
            "description": "Validation Error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/TransactionValidationErrorResponse"
                },
                "examples": {
                  "Invalid Payload": {
                    "value": {
                      "message": "The given data was invalid.",
                      "errors": {
                        "type": [
                          "Transaction type \"PAYMENT_ADVICE\" is not valid"
                        ]
                      },
                      "errorUrl": "https://portal.procuros.io/.../errors/{procurosErrorId}"
                    }
                  },
                  "Unknown Party": {
                    "value": {
                      "message": "The given data was invalid.",
                      "errors": {
                        "buyer": [
                          "Could not resolve party using provided identifiers"
                        ]
                      },
                      "errorUrl": "https://portal.procuros.io/.../errors/{procurosErrorId}"
                    }
                  }
                }
              }
            }
          },
          "5XX": {
            "description": "Server Error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/InternalErrorResponse"
                }
              }
            }
          }
        }
      }
    },
    "/v2/transactions/{procurosTransactionId}": {
      "parameters": [
        {
          "name": "procurosTransactionId",
          "in": "path",
          "required": true,
          "schema": {
            "type": "string",
            "format": "uuid"
          }
        }
      ],
      "put": {
        "operationId": "v2_mark_transaction_processed",
        "summary": "Mark Transaction Processed",
        "description": "Report whether your system processed an incoming transaction.\n\nSet `success` to `true` once the transaction has been processed, or `false` if processing failed (optionally with an `errorReason`, `errorType`, and `errorContext`).\n\nIf a transaction was previously reported as failed, you can recover it by calling this endpoint again with `success: true` once the issue has been resolved on your side (for example, after correcting missing master data in your system). The payload is reused from your system, so there is no need to fetch the transaction again: it moves to the delivered state and its associated error is resolved automatically.",
        "tags": [
          "Incoming Transactions"
        ],
        "requestBody": {
          "description": "Expected parameters to update a transaction.",
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "success"
                ],
                "properties": {
                  "success": {
                    "type": "boolean",
                    "description": "Whether or not your system was able to process the given transaction."
                  },
                  "errorReason": {
                    "type": "string",
                    "description": "Reason your system was not able to process the given transaction."
                  },
                  "errorType": {
                    "$ref": "#/components/schemas/ErrorType"
                  },
                  "errorContext": {
                    "type": "object",
                    "description": "Additional context/meta data for the error.",
                    "additionalProperties": {
                      "type": "string"
                    }
                  }
                }
              },
              "examples": {
                "Successfully Processed": {
                  "value": {
                    "success": true
                  }
                },
                "Failed to Process": {
                  "value": {
                    "success": false,
                    "errorReason": "Product GTIN '0001647296281' not found",
                    "errorType": "DATA"
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Success",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "data"
                  ],
                  "properties": {
                    "data": {
                      "type": "object",
                      "required": [
                        "message"
                      ],
                      "properties": {
                        "message": {
                          "type": "string",
                          "description": "Status message"
                        },
                        "errorUrl": {
                          "type": "string",
                          "description": "URL linking to the error on the Procuros Portal."
                        }
                      }
                    }
                  }
                },
                "examples": {
                  "Successfully Processed": {
                    "value": {
                      "data": {
                        "message": "OK."
                      }
                    }
                  },
                  "Failed to Process": {
                    "value": {
                      "data": {
                        "message": "OK.",
                        "errorUrl": "https://portal.procuros.io/transactions/{{procurosTransactionId}}/errors"
                      }
                    }
                  }
                }
              }
            }
          },
          "4XX": {
            "description": "Client Error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/InternalErrorResponse"
                }
              }
            }
          },
          "422": {
            "description": "Validation Error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/GeneralValidationErrorResponse"
                }
              }
            }
          },
          "5XX": {
            "description": "Server Error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/InternalErrorResponse"
                }
              }
            }
          }
        }
      }
    },
    "/v2/transactions/bulk/mark-processed": {
      "post": {
        "operationId": "v2_bulk_mark_transactions_processed",
        "summary": "Bulk Mark Transactions Processed",
        "description": "Mark a list of incoming transactions as processed in a single request.\n\nFor each item, set `success` to `true` once the transaction has been processed, or `false` if processing failed (optionally with an `errorReason`, `errorType`, and `errorContext`).\n\nTransactions previously reported as failed can be recovered by including them again with `success: true` once the issue has been resolved on your side. They move to the delivered state and their associated errors are resolved automatically.",
        "tags": [
          "Incoming Transactions"
        ],
        "requestBody": {
          "description": "Expected parameters to mark transactions as processed.",
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "items"
                ],
                "properties": {
                  "items": {
                    "type": "array",
                    "minItems": 1,
                    "maxItems": 1000,
                    "items": {
                      "type": "object",
                      "required": [
                        "procurosTransactionId",
                        "success"
                      ],
                      "properties": {
                        "procurosTransactionId": {
                          "$ref": "#/components/schemas/ProcurosTransactionId"
                        },
                        "success": {
                          "type": "boolean",
                          "description": "Whether or not your system was able to process the given transaction."
                        },
                        "errorReason": {
                          "type": "string",
                          "description": "Reason your system was not able to process the given transaction."
                        },
                        "errorType": {
                          "$ref": "#/components/schemas/ErrorType"
                        },
                        "errorContext": {
                          "type": "object",
                          "description": "Additional context/meta data for the error.",
                          "additionalProperties": {
                            "type": "string"
                          }
                        }
                      }
                    }
                  }
                }
              },
              "examples": {
                "Example": {
                  "value": [
                    {
                      "procurosTransactionId": "949b2ef2-3f40-465e-a7ee-ea3f9f189860",
                      "success": true
                    },
                    {
                      "procurosTransactionId": "949b2f25-fd9d-4c58-8899-b4dc277f8cf9",
                      "success": false,
                      "errorReason": "Product GTIN '0001647296281' not found",
                      "errorType": "DATA"
                    }
                  ]
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Success",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "data"
                  ],
                  "properties": {
                    "data": {
                      "type": "array",
                      "minItems": 1,
                      "items": {
                        "type": "object",
                        "required": [
                          "procurosTransactionId",
                          "message"
                        ],
                        "properties": {
                          "procurosTransactionId": {
                            "$ref": "#/components/schemas/ProcurosTransactionId"
                          },
                          "message": {
                            "type": "string",
                            "description": "Status message"
                          },
                          "errorUrl": {
                            "type": "string"
                          }
                        }
                      }
                    }
                  }
                },
                "examples": {
                  "Processed": {
                    "value": {
                      "data": [
                        {
                          "procurosTransactionId": "949b2ef2-3f40-465e-a7ee-ea3f9f189860",
                          "message": "OK."
                        },
                        {
                          "procurosTransactionId": "949b2f25-fd9d-4c58-8899-b4dc277f8cf9",
                          "message": "OK.",
                          "errorUrl": "https://portal.procuros.io/transactions/{{procurosTransactionId}}/errors"
                        }
                      ]
                    }
                  }
                }
              }
            }
          },
          "4XX": {
            "description": "Client Error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/InternalErrorResponse"
                }
              }
            }
          },
          "422": {
            "description": "Validation Error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/GeneralValidationErrorResponse"
                }
              }
            }
          },
          "5XX": {
            "description": "Server Error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/InternalErrorResponse"
                }
              }
            }
          }
        }
      }
    },
    "/v2/all-transactions": {
      "get": {
        "operationId": "v2_list_all_transactions",
        "summary": "List All Transactions",
        "description": "List all existing transactions to and from your trade partners.",
        "tags": [
          "All Transactions"
        ],
        "parameters": [
          {
            "name": "filter[type]",
            "in": "query",
            "required": false,
            "allowReserved": true,
            "schema": {
              "$ref": "#/components/schemas/TransactionType"
            }
          },
          {
            "name": "filter[flow]",
            "in": "query",
            "required": false,
            "allowReserved": true,
            "schema": {
              "$ref": "#/components/schemas/TransactionFlow"
            }
          },
          {
            "name": "filter[status]",
            "in": "query",
            "required": false,
            "allowReserved": true,
            "schema": {
              "$ref": "#/components/schemas/TransactionStatus"
            }
          },
          {
            "name": "filter[created_between]",
            "in": "query",
            "required": false,
            "allowReserved": true,
            "schema": {
              "type": "string",
              "description": "Filter transactions created between two dates. Format: YYYY-MM-DD,YYYY-MM-DD",
              "example": "2024-01-01,2024-01-31"
            }
          },
          {
            "name": "cursor",
            "in": "query",
            "description": "Page cursor",
            "required": false,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "per_page",
            "in": "query",
            "description": "Number of transactions returned per page.",
            "required": false,
            "schema": {
              "type": "integer",
              "default": 100,
              "minimum": 1,
              "maximum": 100
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Success",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "items",
                    "hasMore",
                    "perPage",
                    "count",
                    "nextCursor",
                    "nextPageUrl"
                  ],
                  "properties": {
                    "items": {
                      "type": "array",
                      "items": {
                        "$ref": "#/components/schemas/Transaction"
                      }
                    },
                    "hasMore": {
                      "type": "boolean",
                      "description": "Whether or not more transactions can be fetched on the next page."
                    },
                    "perPage": {
                      "type": "integer",
                      "description": "Amount of transactions returned per page."
                    },
                    "count": {
                      "type": "integer",
                      "description": "Amount of transactions on the current page."
                    },
                    "nextCursor": {
                      "type": "string",
                      "nullable": true,
                      "description": "Supplied to the `cursor` query parameter. See [Pagination] for more info."
                    },
                    "nextPageUrl": {
                      "type": "string",
                      "format": "url",
                      "nullable": true,
                      "description": "Prebuilt URL to retrieve the next page of transactions."
                    }
                  }
                },
                "examples": {
                  "List of transactions": {
                    "value": {
                      "hasMore": false,
                      "perPage": 100,
                      "count": 3,
                      "nextCursor": null,
                      "nextPageUrl": null,
                      "items": [
                        {
                          "procurosTransactionId": "949b2f25-fd9d-4c58-8899-b4dc277f8cf9",
                          "type": "ORDER",
                          "flow": "LIVE",
                          "status": "SUCCESS",
                          "createdAt": "2024-01-01T00:00:00+00:00",
                          "replacesProcurosTransactionId": null,
                          "replacedByProcurosTransactionId": null,
                          "isLatestVersion": true,
                          "content": {
                            "header": {
                              "buyer": {
                                "name": "ACME Co. Ltd.",
                                "identifiers": [
                                  {
                                    "identifier": "1100001016310",
                                    "domain": "GS1"
                                  }
                                ],
                                "postalAddress": {
                                  "name": "ACME Co. Ltd.",
                                  "street": "Elroy-Fritsch-Ring 15",
                                  "city": "Berlin",
                                  "countryCode": "DE",
                                  "postalCode": "82643"
                                },
                                "contacts": [
                                  {
                                    "firstName": "John",
                                    "lastName": "Doe",
                                    "email": "jane.doe@example.com",
                                    "fax": "(818) 463-6124",
                                    "phone": "+1.352.856.0626"
                                  }
                                ]
                              },
                              "supplier": {
                                "name": "Testsupplier",
                                "identifiers": [
                                  {
                                    "identifier": "1100001016312",
                                    "domain": "GS1"
                                  }
                                ]
                              },
                              "shipTo": {
                                "identifiers": [
                                  {
                                    "identifier": "1100001016313",
                                    "domain": "GS1"
                                  }
                                ]
                              },
                              "billTo": {
                                "identifiers": [
                                  {
                                    "identifier": "1100001016314",
                                    "domain": "GS1"
                                  }
                                ]
                              },
                              "orderIdentifier": "PO9383-R45",
                              "orderDate": "2021-09-30",
                              "currency": "EUR",
                              "requestedDeliveryDate": "2021-10-05",
                              "comments": "Something to comment"
                            },
                            "items": [
                              {
                                "lineNumber": 1,
                                "identifiers": [
                                  {
                                    "identifier": "4300348765432",
                                    "domain": "GS1"
                                  },
                                  {
                                    "identifier": "PROD-77-LS",
                                    "domain": "BUYER"
                                  },
                                  {
                                    "identifier": "sp_gr_8",
                                    "domain": "SUPPLIER"
                                  }
                                ],
                                "isDepositItem": false,
                                "quantity": 20.0,
                                "unitOfMeasure": "EA",
                                "description": "First product description.",
                                "unitPrice": 0.15
                              },
                              {
                                "lineNumber": 2,
                                "identifiers": [
                                  {
                                    "identifier": "4300348765433",
                                    "domain": "GS1"
                                  },
                                  {
                                    "identifier": "PROD-78-LS",
                                    "domain": "BUYER"
                                  },
                                  {
                                    "identifier": "sp_gr_9",
                                    "domain": "SUPPLIER"
                                  }
                                ],
                                "isDepositItem": false,
                                "quantity": 19.0,
                                "unitOfMeasure": "EA",
                                "description": "Sparkling Water - Crate (6x0.75l).",
                                "unitPrice": 1.5
                              },
                              {
                                "lineNumber": 3,
                                "identifiers": [
                                  {
                                    "identifier": "4300348765434",
                                    "domain": "GS1"
                                  },
                                  {
                                    "identifier": "PFAND-00B-LS",
                                    "domain": "SUPPLIER"
                                  }
                                ],
                                "isDepositItem": true,
                                "quantity": 19.0,
                                "unitOfMeasure": "EA",
                                "description": "Deposit 1x crate + 6x bottles.",
                                "unitPrice": 3.3
                              }
                            ]
                          }
                        },
                        {
                          "procurosTransactionId": "94fe13aa-8c9b-40e5-9937-42b852185858",
                          "type": "SHIPPING_NOTICE",
                          "flow": "LIVE",
                          "status": "SUCCESS",
                          "createdAt": "2024-01-01T00:00:00+00:00",
                          "replacesProcurosTransactionId": null,
                          "replacedByProcurosTransactionId": null,
                          "isLatestVersion": true,
                          "content": {
                            "header": {
                              "buyer": {
                                "name": "ACME Co. Ltd.",
                                "identifiers": [
                                  {
                                    "identifier": "1100001016310",
                                    "domain": "GS1"
                                  }
                                ],
                                "postalAddress": {
                                  "city": "Berlin",
                                  "countryCode": "DE",
                                  "name": "ACME Co. Ltd.",
                                  "postalCode": "82643",
                                  "street": "Elroy-Fritsch-Ring 15"
                                },
                                "contacts": [
                                  {
                                    "firstName": "Jane",
                                    "lastName": "Doe",
                                    "email": "jane.doe@example.com",
                                    "fax": "(818) 463-6124",
                                    "phone": "+1.352.856.0626"
                                  }
                                ]
                              },
                              "supplier": {
                                "name": "Testsupplier",
                                "identifiers": [
                                  {
                                    "identifier": "1100001016312",
                                    "domain": "GS1"
                                  }
                                ]
                              },
                              "shipTo": {
                                "identifiers": [
                                  {
                                    "identifier": "1100001016313",
                                    "domain": "GS1"
                                  }
                                ]
                              },
                              "billTo": {
                                "identifiers": [
                                  {
                                    "identifier": "1100001016314",
                                    "domain": "GS1"
                                  }
                                ]
                              },
                              "shippingNoticeIdentifier": "SN9383-R45",
                              "shippingNoticeDate": "2021-11-24",
                              "orderIdentifier": "PO9383-R45",
                              "orderDate": "2021-11-20",
                              "despatchDate": "2021-11-05",
                              "requestedDeliveryDate": "2021-11-06",
                              "expectedDeliveryDate": "2021-11-06",
                              "carrier": "Example Delivery Solution",
                              "trackingNumber": "b52ea6a7-c2ea-3bfc-a63f-19140d3b3af5",
                              "trackingUrl": "https://api.procuros.com/example",
                              "comments": "Something to comment"
                            },
                            "transportUnits": [
                              {
                                "items": [
                                  {
                                    "lineNumber": 1,
                                    "orderLineNumber": 1,
                                    "identifiers": [
                                      {
                                        "identifier": "4300348765432",
                                        "domain": "GS1"
                                      },
                                      {
                                        "identifier": "PROD-77-LS",
                                        "domain": "BUYER"
                                      },
                                      {
                                        "identifier": "sp_gr_8",
                                        "domain": "SUPPLIER"
                                      }
                                    ],
                                    "isDepositItem": false,
                                    "orderedQuantity": 20.0,
                                    "shippedQuantity": 20.0,
                                    "unitPrice": 200.0,
                                    "description": "First product description."
                                  },
                                  {
                                    "lineNumber": 2,
                                    "orderLineNumber": 2,
                                    "identifiers": [
                                      {
                                        "identifier": "4300348765433",
                                        "domain": "GS1"
                                      },
                                      {
                                        "identifier": "PROD-78-LS",
                                        "domain": "BUYER"
                                      },
                                      {
                                        "identifier": "sp_gr_9",
                                        "domain": "SUPPLIER"
                                      }
                                    ],
                                    "isDepositItem": false,
                                    "orderedQuantity": 19.0,
                                    "shippedQuantity": 15.0,
                                    "openQuantityAction": "DISCARDED",
                                    "unitPrice": 1.5,
                                    "description": "Second product description."
                                  }
                                ]
                              }
                            ]
                          }
                        },
                        {
                          "procurosTransactionId": "94fe1224-ae01-4587-8155-8e852cbbe75d",
                          "type": "INVOICE",
                          "flow": "LIVE",
                          "status": "SUCCESS",
                          "createdAt": "2024-01-01T00:00:00+00:00",
                          "replacesProcurosTransactionId": null,
                          "replacedByProcurosTransactionId": null,
                          "isLatestVersion": true,
                          "content": {
                            "header": {
                              "buyer": {
                                "name": "ACME Co. Ltd.",
                                "identifiers": [
                                  {
                                    "identifier": "4522704465331",
                                    "domain": "GS1"
                                  },
                                  {
                                    "identifier": "DE123456789",
                                    "domain": "VAT_DE"
                                  }
                                ],
                                "postalAddress": {
                                  "city": "Berlin",
                                  "countryCode": "DE",
                                  "name": "ACME Co. Ltd.",
                                  "postalCode": "82643",
                                  "street": "Elroy-Fritsch-Ring 15"
                                },
                                "contacts": [
                                  {
                                    "firstName": "Jane",
                                    "lastName": "Doe",
                                    "email": "jane.doe@example.com",
                                    "fax": "(818) 463-6124",
                                    "phone": "+1.352.856.0626"
                                  }
                                ]
                              },
                              "supplier": {
                                "name": "Testsupplier",
                                "identifiers": [
                                  {
                                    "identifier": "4231930775745",
                                    "domain": "GS1"
                                  },
                                  {
                                    "identifier": "DE234567890",
                                    "domain": "VAT_DE"
                                  }
                                ]
                              },
                              "shipTo": {
                                "identifiers": [
                                  {
                                    "identifier": "1100001016313",
                                    "domain": "GS1"
                                  }
                                ]
                              },
                              "billTo": {
                                "identifiers": [
                                  {
                                    "identifier": "1100001016314",
                                    "domain": "GS1"
                                  }
                                ]
                              },
                              "invoiceIdentifier": "IV9383-R45",
                              "invoiceDate": "2021-11-11",
                              "shippingNoticeIdentifier": "SN9383-R45",
                              "shippingNoticeDate": "2021-11-04",
                              "orderIdentifier": "PO9383-R45",
                              "orderDate": "2021-11-10",
                              "paymentTerms": [
                                {
                                  "payInNumberOfDays": 28,
                                  "percentage": 3.0
                                }
                              ],
                              "comments": "Something to comment"
                            },
                            "items": [
                              {
                                "lineNumber": 1,
                                "identifiers": [
                                  {
                                    "identifier": "4300348765432",
                                    "domain": "GS1"
                                  },
                                  {
                                    "identifier": "PROD-77-LS",
                                    "domain": "BUYER"
                                  },
                                  {
                                    "identifier": "sp_gr_8",
                                    "domain": "SUPPLIER"
                                  }
                                ],
                                "isDepositItem": false,
                                "quantity": 20,
                                "unitPrice": 200.0,
                                "description": "First product description.",
                                "tax": {
                                  "amount": 760.0,
                                  "percentage": 19.0,
                                  "description": "Total tax amount."
                                }
                              },
                              {
                                "lineNumber": 2,
                                "identifiers": [
                                  {
                                    "identifier": "4300348765433",
                                    "domain": "GS1"
                                  },
                                  {
                                    "identifier": "PROD-78-LS",
                                    "domain": "BUYER"
                                  },
                                  {
                                    "identifier": "sp_gr_9",
                                    "domain": "SUPPLIER"
                                  }
                                ],
                                "isDepositItem": false,
                                "quantity": 15.0,
                                "unitPrice": 1.5,
                                "description": "Second product description.",
                                "tax": {
                                  "amount": 26.775,
                                  "percentage": 19,
                                  "description": "Total tax amount."
                                }
                              }
                            ]
                          }
                        }
                      ]
                    }
                  }
                }
              }
            }
          },
          "4XX": {
            "description": "Client Error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/InternalErrorResponse"
                }
              }
            }
          },
          "422": {
            "description": "Validation Error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/GeneralValidationErrorResponse"
                }
              }
            }
          },
          "5XX": {
            "description": "Server Error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/InternalErrorResponse"
                }
              }
            }
          }
        }
      }
    },
    "/v2/all-transactions/{procurosTransactionId}": {
      "get": {
        "operationId": "v2_show_transaction",
        "summary": "Show Transaction",
        "description": "Show a single transaction.",
        "tags": [
          "All Transactions"
        ],
        "parameters": [
          {
            "name": "procurosTransactionId",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Success",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "data"
                  ],
                  "properties": {
                    "data": {
                      "$ref": "#/components/schemas/Transaction"
                    }
                  }
                },
                "examples": {
                  "Single Transaction": {
                    "value": {
                      "data": {
                        "procurosTransactionId": "949b2f25-fd9d-4c58-8899-b4dc277f8cf9",
                        "type": "ORDER",
                        "flow": "LIVE",
                        "status": "SUCCESS",
                        "createdAt": "2024-01-01T00:00:00+00:00",
                        "replacesProcurosTransactionId": null,
                        "replacedByProcurosTransactionId": null,
                        "isLatestVersion": true,
                        "content": {
                          "header": {
                            "buyer": {
                              "name": "ACME Co. Ltd.",
                              "identifiers": [
                                {
                                  "identifier": "1100001016310",
                                  "domain": "GS1"
                                }
                              ],
                              "postalAddress": {
                                "name": "ACME Co. Ltd.",
                                "street": "Elroy-Fritsch-Ring 15",
                                "city": "Berlin",
                                "countryCode": "DE",
                                "postalCode": "82643"
                              },
                              "contacts": [
                                {
                                  "firstName": "John",
                                  "lastName": "Doe",
                                  "email": "jane.doe@example.com",
                                  "fax": "(818) 463-6124",
                                  "phone": "+1.352.856.0626"
                                }
                              ]
                            },
                            "supplier": {
                              "name": "Testsupplier",
                              "identifiers": [
                                {
                                  "identifier": "1100001016312",
                                  "domain": "GS1"
                                }
                              ]
                            },
                            "shipTo": {
                              "identifiers": [
                                {
                                  "identifier": "1100001016313",
                                  "domain": "GS1"
                                }
                              ]
                            },
                            "billTo": {
                              "identifiers": [
                                {
                                  "identifier": "1100001016314",
                                  "domain": "GS1"
                                }
                              ]
                            },
                            "orderIdentifier": "PO9383-R45",
                            "orderDate": "2021-09-30",
                            "currency": "EUR",
                            "requestedDeliveryDate": "2021-10-05",
                            "comments": "Something to comment"
                          },
                          "items": [
                            {
                              "lineNumber": 1,
                              "identifiers": [
                                {
                                  "identifier": "4300348765432",
                                  "domain": "GS1"
                                },
                                {
                                  "identifier": "PROD-77-LS",
                                  "domain": "BUYER"
                                },
                                {
                                  "identifier": "sp_gr_8",
                                  "domain": "SUPPLIER"
                                }
                              ],
                              "isDepositItem": false,
                              "quantity": 20.0,
                              "unitOfMeasure": "EA",
                              "description": "First product description.",
                              "unitPrice": 0.15
                            },
                            {
                              "lineNumber": 2,
                              "identifiers": [
                                {
                                  "identifier": "4300348765433",
                                  "domain": "GS1"
                                },
                                {
                                  "identifier": "PROD-78-LS",
                                  "domain": "BUYER"
                                },
                                {
                                  "identifier": "sp_gr_9",
                                  "domain": "SUPPLIER"
                                }
                              ],
                              "isDepositItem": false,
                              "quantity": 19.0,
                              "unitOfMeasure": "EA",
                              "description": "Sparkling Water - Crate (6x0.75l).",
                              "unitPrice": 1.5
                            },
                            {
                              "lineNumber": 3,
                              "identifiers": [
                                {
                                  "identifier": "4300348765434",
                                  "domain": "GS1"
                                },
                                {
                                  "identifier": "PFAND-00B-LS",
                                  "domain": "SUPPLIER"
                                }
                              ],
                              "isDepositItem": true,
                              "quantity": 19.0,
                              "unitOfMeasure": "EA",
                              "description": "Deposit 1x crate + 6x bottles.",
                              "unitPrice": 3.3
                            }
                          ]
                        }
                      }
                    }
                  }
                }
              }
            }
          },
          "4XX": {
            "description": "Client Error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/InternalErrorResponse"
                }
              }
            }
          },
          "422": {
            "description": "Validation Error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/GeneralValidationErrorResponse"
                }
              }
            }
          },
          "5XX": {
            "description": "Server Error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/InternalErrorResponse"
                }
              }
            }
          }
        }
      }
    },
    "/v2/errors": {
      "post": {
        "operationId": "v2_report_error",
        "summary": "Report Outgoing Error",
        "description": "If you encounter an error while building an outgoing transaction payload, you can report it here. The error will enter the same exception handling process as an error reported while processing incoming transactions.",
        "tags": [
          "Outgoing Transactions"
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "errorReason",
                  "errorType"
                ],
                "properties": {
                  "errorReason": {
                    "type": "string",
                    "description": "The reason for the error."
                  },
                  "errorType": {
                    "$ref": "#/components/schemas/ErrorType"
                  },
                  "errorContext": {
                    "type": "object",
                    "description": "Additional context/meta data for the error.",
                    "additionalProperties": {
                      "type": "string"
                    }
                  },
                  "transactionIdentifier": {
                    "type": "string",
                    "description": "Provide if error can be assigned to a specific outgoing transaction. Depending on the transactionType: Order number, Invoice number, etc.",
                    "example": "IV-0001"
                  },
                  "transactionType": {
                    "description": "Provide if error can be assigned to a specific outgoing transaction.",
                    "allOf": [
                      {
                        "$ref": "#/components/schemas/TransactionType"
                      }
                    ]
                  }
                }
              }
            }
          }
        },
        "responses": {
          "201": {
            "description": "Created",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "message"
                  ],
                  "properties": {
                    "message": {
                      "type": "string",
                      "description": "Status message"
                    },
                    "errorUrl": {
                      "type": "string",
                      "description": "URL to the Procuros portal where users can view the error and mark it as resolved."
                    }
                  }
                },
                "example": {
                  "message": "OK.",
                  "errorUrl": "https://portal.procuros.io/.../errors/{{procurosErrorId}}"
                }
              }
            }
          },
          "4XX": {
            "description": "Client Error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/InternalErrorResponse"
                }
              }
            }
          },
          "422": {
            "description": "Validation Error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/GeneralValidationErrorResponse"
                }
              }
            }
          },
          "5XX": {
            "description": "Server Error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/InternalErrorResponse"
                }
              }
            }
          }
        }
      }
    },
    "/v2/ping": {
      "get": {
        "operationId": "v2_ping",
        "summary": "Test connection to API",
        "description": "Send an authorized request to the API to test the connectivity.",
        "tags": [
          "Misc"
        ],
        "responses": {
          "204": {
            "description": "Success"
          },
          "4XX": {
            "description": "Client Error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/InternalErrorResponse"
                }
              }
            }
          },
          "5XX": {
            "description": "Server Error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/InternalErrorResponse"
                }
              }
            }
          }
        }
      }
    }
  }
}
