> ## Documentation Index
> Fetch the complete documentation index at: https://docs.procuros.io/llms.txt
> Use this file to discover all available pages before exploring further.

# Show Transaction

> Show a single transaction.



## OpenAPI

````yaml /en/api/v2/openapi-v2.yaml get /v2/all-transactions/{procurosTransactionId}
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: []
paths:
  /v2/all-transactions/{procurosTransactionId}:
    get:
      tags:
        - All Transactions
      summary: Show Transaction
      description: Show a single transaction.
      operationId: v2_show_transaction
      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
                            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
                            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
                            unitOfMeasure: EA
                            description: Deposit 1x crate + 6x bottles.
                            unitPrice: 3.3
        '422':
          description: Validation Error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/GeneralValidationErrorResponse'
        4XX:
          description: Client Error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/InternalErrorResponse'
        5XX:
          description: Server Error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/InternalErrorResponse'
components:
  schemas:
    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'
    GeneralValidationErrorResponse:
      type: object
      required:
        - message
        - errors
      properties:
        message:
          type: string
        errors:
          $ref: '#/components/schemas/ValidationError'
    InternalErrorResponse:
      type: object
      required:
        - message
      properties:
        message:
          type: string
    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
    TransactionStatus:
      type: string
      description: Current status of the transaction.
      enum:
        - PENDING
        - SUCCESS
        - FAILED
        - DROPPED
        - UNKNOWN
    TransactionFlow:
      type: string
      description: Flow (LIVE or TEST) of the transaction.
      enum:
        - LIVE
        - TEST
    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'
    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'
    ValidationError:
      type: object
      additionalProperties:
        type: array
        description: List of validation errors.
        minItems: 1
        items:
          type: string
    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: >-
                          Category of the tax, such as "sales", "import", etc.
                          This is free field attribute.
                      description:
                        type: string
            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/OrderResponseItem'
        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: >-
                          Category of the tax, such as "sales", "import", etc.
                          This is free field attribute.
                      description:
                        type: string
            modificationGroups:
              type: array
              items:
                $ref: '#/components/schemas/ModificationGroup'
    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
    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 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: >-
                          Category of the tax, such as "sales", "import", etc.
                          This is free field attribute.
                      description:
                        type: string
            modificationGroups:
              type: array
              items:
                $ref: '#/components/schemas/ModificationGroup'
    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 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: >-
                          Category of the tax, such as "sales", "import", etc.
                          This is free field attribute.
                      description:
                        type: string
            modificationGroups:
              type: array
              items:
                $ref: '#/components/schemas/ModificationGroup'
    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'
    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
    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
    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'
    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'
    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'
    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'
    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.
          allOf:
            - $ref: '#/components/schemas/Party'
        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'
        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
          minItems: 1
          description: There must be 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
          description: Defaults to 1.
          type: number
          format: float
        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.
        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.
        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'
    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'
    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` —
            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.
          allOf:
            - $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'
        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: >-
            Required on order response type `CHANGE`. Prohibited for `REJECT`
            type. The confirmed delivery date of the order response.
          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'
        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
          minItems: 1
          description: There must be 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
          type: number
          format: float
        confirmedQuantity:
          example: 2
          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'
        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.
        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.
        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'
    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.
          allOf:
            - $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'
        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'
        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.
    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'
    InvoiceHeader:
      type: object
      required:
        - buyer
        - supplier
        - invoiceIdentifier
        - invoiceDate
        - shippingNoticeIdentifier
        - shippingNoticeDate
        - 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.
          allOf:
            - $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'
        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
          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'
        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'
        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.
    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'
    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.
          allOf:
            - $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'
        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'
        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.
    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'
    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.
          allOf:
            - $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'
        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:
          example: 1
          type: integer
        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:
          example: 1
          type: integer
        shippedQuantity:
          type: number
          format: float
          example: 1
        orderedQuantity:
          type: number
          format: float
          example: 1
        requestedDeliveryDate:
          $ref: '#/components/schemas/DateTime'
        requestedDespatchDate:
          $ref: '#/components/schemas/DateTime'
        identifiers:
          type: array
          minItems: 1
          description: There must be 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
        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
        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'
        openQuantityAction:
          type: string
          enum:
            - DISCARDED
            - DELIVERED_LATER
    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.
          allOf:
            - $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'
        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.
    DispatchInstructionResponseTransportUnits:
      type: object
      required:
        - items
      properties:
        unitIdentifier:
          type: string
        unitType:
          type: string
          enum:
            - EURO_PALLET
            - EURO_PALLET_HALF
            - EURO_PALLET_QUARTER
            - CARTON
        containedTradeUnitCount:
          example: 1
          type: integer
        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'
        items:
          type: array
          minItems: 1
          items:
            $ref: '#/components/schemas/DispatchInstructionResponseItem'
    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.
    ReceivalNoticeTransportUnits:
      type: object
      required:
        - items
      properties:
        unitIdentifier:
          type: string
        unitType:
          type: string
          enum:
            - EURO_PALLET
            - EURO_PALLET_HALF
            - EURO_PALLET_QUARTER
            - CARTON
        containedTradeUnitCount:
          example: 1
          type: integer
        carrier:
          $ref: '#/components/schemas/TransportUnitCarrier'
        items:
          type: array
          minItems: 1
          items:
            $ref: '#/components/schemas/ReceivalNoticeItem'
    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
    RemittanceAdviceSummary:
      type: object
      properties:
        dueTotal:
          type: number
          format: float
        remittedTotal:
          type: number
          format: float
        correctionTotal:
          type: number
          format: float
    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:
          $ref: '#/components/schemas/Party'
          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.
        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'
    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
    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'
    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
    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
    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
    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.
    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
    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
    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
        description:
          type: string
          nullable: true
          example: Total item tax.
    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.
    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'
    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'
    ModeOfTransport:
      type: string
      description: Chosen mode of transport for the shipment.
      enum:
        - ROAD
        - RAIL
        - AIR
        - SEA
        - MULTIMODAL
    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
    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×80 cm), EURO_PALLET_HALF (1/2 Euro Pallet 80×60 cm),
            EURO_PALLET_QUARTER (1/4 Euro Pallet 60×40 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'
        items:
          type: array
          description: Line items contained in this transport unit.
          items:
            $ref: '#/components/schemas/ShippingNoticeItemWithSubSubItems'
    InvoiceItem:
      type: object
      required:
        - lineNumber
        - identifiers
        - isDepositItem
        - isInvoicedItem
        - quantity
        - unitPrice
        - tax
      properties:
        lineNumber:
          example: 1
          type: integer
        shippingNoticeIdentifier:
          type: string
          description: Shipping notice number/reference.
          example: SN-0001
        shippingNoticeDate:
          $ref: '#/components/schemas/DateTime'
        shippingNoticeLineNumber:
          example: 1
          type: integer
        orderIdentifier:
          type: string
          description: Order number assigned to the related purchase order by the buyer.
        orderDate:
          $ref: '#/components/schemas/DateTime'
        orderLineNumber:
          example: 1
          type: integer
        requestedDeliveryDate:
          $ref: '#/components/schemas/DateTime'
        expectedDeliveryDate:
          $ref: '#/components/schemas/DateTime'
        identifiers:
          type: array
          minItems: 1
          description: There must be 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
          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
          default: null
          description: >-
            The quantity of this item that is 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
          default: null
          description: The quantity ordered by the customer.
        unitPrice:
          type: number
          format: float
          default: null
          example: 2
        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.
        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'
        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'
        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'
    CreditNoteItem:
      type: object
      required:
        - lineNumber
        - identifiers
        - isDepositItem
        - isInvoicedItem
        - quantity
        - unitPrice
        - tax
      properties:
        lineNumber:
          example: 1
          type: integer
        shippingNoticeIdentifier:
          type: string
          description: Shipping notice number/reference.
          example: SN-0001
        shippingNoticeDate:
          $ref: '#/components/schemas/DateTime'
        shippingNoticeLineNumber:
          example: 1
          type: integer
        orderIdentifier:
          type: string
          description: Order number assigned to the related purchase order by the buyer.
        orderDate:
          $ref: '#/components/schemas/DateTime'
        orderLineNumber:
          example: 1
          type: integer
        requestedDeliveryDate:
          $ref: '#/components/schemas/DateTime'
        expectedDeliveryDate:
          $ref: '#/components/schemas/DateTime'
        identifiers:
          type: array
          minItems: 1
          description: There must be 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
          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
          default: null
          description: >-
            The quantity of this item that is 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
          default: null
          description: The quantity ordered by the customer.
        unitPrice:
          type: number
          format: float
          default: null
          example: 2
        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.
        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'
        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'
        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'
    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.
    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
    DispatchInstructionResponseItem:
      type: object
      properties:
        lineNumber:
          example: 1
          type: integer
        instructionLineNumber:
          example: 1
          type: integer
        orderLineNumber:
          example: 1
          type: integer
        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
        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
        shippedQuantity:
          type: number
          format: float
          example: 1
        openQuantityAction:
          type: string
          enum:
            - DISCARDED
            - DELIVERED_LATER
        unitOfMeasure:
          $ref: '#/components/schemas/UnitOfMeasure'
        unitPrice:
          type: number
          format: float
          default: null
          example: 2
        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
        tax:
          $ref: '#/components/schemas/Tax'
        identifiers:
          type: array
          minItems: 1
          description: There must be at least one identifier with domain `GS1` or `BUYER`.
          items:
            $ref: '#/components/schemas/ItemIdentifier'
        batches:
          type: array
          items:
            $ref: '#/components/schemas/Batch'
    ReceivalNoticeItem:
      type: object
      properties:
        lineNumber:
          example: 1
          type: integer
        receivedQuantity:
          type: number
          format: float
          example: 1
        shippedQuantity:
          type: number
          format: float
          example: 1
        identifiers:
          type: array
          minItems: 1
          description: There must be at least one identifier with domain `GS1` or `BUYER`.
          items:
            $ref: '#/components/schemas/ItemIdentifier'
        orderLineNumber:
          example: 1
          type: integer
        orderedQuantity:
          type: number
          format: float
          example: 1
        rejectedQuantity:
          type: number
          format: float
          example: 1
        rejectReason:
          type: string
        openQuantityAction:
          type: string
          enum:
            - DISCARDED
            - DELIVERED_LATER
        unitPrice:
          type: number
          format: float
          default: null
          example: 2
        currency:
          $ref: '#/components/schemas/Currency'
        unitOfMeasure:
          $ref: '#/components/schemas/UnitOfMeasure'
        description:
          type: string
          description: Item description.
        batches:
          type: array
          items:
            $ref: '#/components/schemas/Batch'
    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'
    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
        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.
        brand:
          type: string
          description: >-
            BRAND in a PRICAT (Price Catalogue) refers to the name of the
            product’s brand or manufacturer. It helps identify the product’s
            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’s 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üssel) 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'
        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'
    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'
    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'
    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
    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ßenstelle 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
    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
    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'
    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
    Date:
      type: string
      format: date
      pattern: ^\d{4}-\d{2}-\d{2}$
      example: '2021-11-11'
    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'
    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'
    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: There must be 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'
        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.
        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'
        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'
    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
  securitySchemes:
    api_token:
      type: http
      scheme: bearer
      description: The API Token of your ERP Connection.

````