Kuehne+Nagel OrderBooking API

Create and update order bookings by shipper's reference and poll a process state. Discriminated booking bodies for AIR, FCL and LCL, with UN/LOCODE-typed ports and airports.

OpenAPI Specification

kuehne-nagel-order-booking-v1-openapi.json Raw ↑
{
  "openapi" : "3.0.3",
  "info" : {
    "title" : "OrderBooking",
    "description" : "This API is part of the Kuehne+Nagel API layer. It handles bookings\nprimarily for external partners. To use this API you must be registered and set\nup as an API user. Access to the booking API depends on the Task Owner in the customer's\neSOP booking configuration.\n",
    "contact" : {
      "name" : "Kuehne+Nagel ESP Public APIs",
      "url" : "https://esp.kuehne-nagel.com",
      "email" : "webdev-esp-public-apis@kuehne-nagel.com"
    },
    "version" : "v1",
    "x-api-version" : "1.2.0",
    "x-api-id" : "3f19e4be-68bc-4529-8140-b14d0e5e59ae",
    "x-api-guideline-version" : "1.11.2"
  },
  "servers" : [ {
    "url" : "https://internal.api.kuehne-nagel.com/order-management/order-booking/v1"
  } ],
  "security" : [ {
    "default" : [ ]
  } ],
  "paths" : {
    "/bookings" : {
      "post" : {
        "tags" : [ "booking" ],
        "summary" : "Create and request a booking",
        "description" : "The authenticated API Client requests to add a new booking. The client\ncan refer to existing order lines or create new order lines on the fly.\nThe booking is created with unique booking number `shippersReference`, `bookingNumber`, `customerCode`\nand `supplierCode`. In one single booking, order lines from several different\npurchase orders of a single customer can be allocated. After a successful\ncreation the booking is updated with the booking attributes and the API brings\nthe booking in the \"Booking Requested\" state.\n",
        "operationId" : "createBooking",
        "requestBody" : {
          "content" : {
            "application/json" : {
              "schema" : {
                "$ref" : "#/components/schemas/Booking"
              }
            }
          },
          "required" : true
        },
        "responses" : {
          "201" : {
            "description" : "Booking created",
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/BookingCreated"
                }
              }
            }
          },
          "default" : {
            "$ref" : "#/components/responses/default"
          }
        },
        "security" : [ {
          "default" : [ ]
        } ],
        "x-auth-type" : "Application & Application User",
        "x-throttling-tier" : "10KPerMin"
      }
    },
    "/bookings/{shippersReference}" : {
      "put" : {
        "tags" : [ "booking" ],
        "summary" : "Update an existing booking",
        "description" : "After finding the existing booking by its `shippersReference` the\nauthenticated API Client updates the booking. The eSOP configuration\ndefines the permission for the business party's role to update a booking.\n",
        "operationId" : "updateBooking",
        "parameters" : [ {
          "$ref" : "#/components/parameters/ShippersReferenceParam"
        } ],
        "requestBody" : {
          "content" : {
            "application/json" : {
              "schema" : {
                "$ref" : "#/components/schemas/Booking"
              }
            }
          },
          "required" : true
        },
        "responses" : {
          "202" : {
            "description" : "Update of booking successfully ordered",
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/BookingAccepted"
                }
              }
            }
          },
          "default" : {
            "$ref" : "#/components/responses/default"
          }
        },
        "security" : [ {
          "default" : [ ]
        } ],
        "x-auth-type" : "Application & Application User",
        "x-throttling-tier" : "10KPerMin"
      }
    },
    "/process-states/{processStateId}" : {
      "get" : {
        "tags" : [ "process-state" ],
        "summary" : "Read an existing process state by processStateId",
        "description" : "The successful creation of the booking starts an async process. The current state of the process can be\nrequested via this endpoint.\n",
        "operationId" : "readProcessState",
        "parameters" : [ {
          "$ref" : "#/components/parameters/ProcessStateIdParam"
        } ],
        "responses" : {
          "200" : {
            "description" : "Process state found",
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/ProcessStateResponse"
                }
              }
            }
          },
          "default" : {
            "$ref" : "#/components/responses/default"
          }
        },
        "security" : [ {
          "default" : [ ]
        } ],
        "x-auth-type" : "Application & Application User",
        "x-throttling-tier" : "10KPerMin"
      }
    }
  },
  "components" : {
    "schemas" : {
      "Booking" : {
        "required" : [ "bookingType", "customerCode", "shippersReference", "supplierCode" ],
        "type" : "object",
        "properties" : {
          "bookingType" : {
            "type" : "string",
            "x-extensible-enum" : [ "AIR", "FCL", "LCL" ]
          },
          "shippersReference" : {
            "$ref" : "#/components/schemas/ShippersReference"
          },
          "customerCode" : {
            "$ref" : "#/components/schemas/CustomerCode"
          },
          "supplierCode" : {
            "$ref" : "#/components/schemas/SupplierCode"
          },
          "factoryCode" : {
            "$ref" : "#/components/schemas/FactoryCode"
          },
          "cargoInformation" : {
            "$ref" : "#/components/schemas/CargoInformation"
          },
          "termsOfTrade" : {
            "$ref" : "#/components/schemas/TermsOfTrade"
          },
          "insuranceByKn" : {
            "type" : "boolean",
            "description" : "Indicates whether insurance coverage is in place through KN"
          },
          "letterOfCredit" : {
            "$ref" : "#/components/schemas/LetterOfCredit"
          },
          "remarks" : {
            "maxLength" : 1024,
            "minLength" : 1,
            "type" : "string",
            "description" : "General comment or additional information related to the booking"
          },
          "documentToRelease" : {
            "pattern" : "FCR|SWB|BOL|HAWB",
            "type" : "string",
            "description" : "Indicates which document will be released"
          },
          "masterCommodity" : {
            "maxLength" : 1024,
            "minLength" : 1,
            "type" : "string",
            "description" : "Indicates the main commodity of the booking"
          },
          "references" : {
            "type" : "array",
            "items" : {
              "$ref" : "#/components/schemas/ReferenceDataPerAddressTypeCode"
            }
          },
          "pickupRequestDetails" : {
            "$ref" : "#/components/schemas/PickUpDeliveryDetails"
          },
          "purchaseOrderAllocations" : {
            "maxItems" : 999,
            "minItems" : 0,
            "type" : "array",
            "description" : "The orders and their lines that are allocated to the booking.",
            "items" : {
              "$ref" : "#/components/schemas/PurchaseOrder"
            }
          }
        },
        "description" : "Abstract base schema for the booking types AirBooking, LclBooking and FclBooking.",
        "discriminator" : {
          "propertyName" : "bookingType",
          "mapping" : {
            "AIR" : "#/components/schemas/AirBooking",
            "FCL" : "#/components/schemas/FclBooking",
            "LCL" : "#/components/schemas/LclBooking"
          }
        }
      },
      "UnLocationCode" : {
        "pattern" : "^[A-Z]{2}[A-Z0-9]{3}$",
        "type" : "string",
        "description" : "Standardized code for trade and transport locations including seaports and airports",
        "example" : "DEHAM"
      },
      "AirRoutingInformation" : {
        "type" : "object",
        "properties" : {
          "airportOfDeparture" : {
            "$ref" : "#/components/schemas/UnLocationCode"
          },
          "airportOfArrival" : {
            "$ref" : "#/components/schemas/UnLocationCode"
          }
        }
      },
      "CountryCode" : {
        "pattern" : "^AD|AE|AF|AG|AI|AL|AM|AO|AQ|AR|AS|AT|AU|AW|AX|AZ|BA|BB|BD|BE|BF|BG|BH|BI|BJ|BL|BM|BN|BO|BQ|BR|BS|BT|BV|BW|BY|BZ|CA|CC|CD|CF|CG|CH|CI|CK|CL|CM|CN|CO|CR|CU|CV|CW|CX|CY|CZ|DE|DJ|DK|DM|DO|DZ|EC|EE|EG|EH|ER|ES|ET|FI|FJ|FK|FM|FO|FR|GA|GB|GD|GE|GF|GG|GH|GI|GL|GM|GN|GP|GQ|GR|GS|GT|GU|GW|GY|HK|HM|HN|HR|HT|HU|IC|ID|IE|IL|IM|IN|IO|IQ|IR|IS|IT|JE|JM|JO|JP|KE|KG|KH|KI|KM|KN|KP|KR|KW|KY|KZ|LA|LB|LC|LI|LK|LR|LS|LT|LU|LV|LY|MA|MC|MD|ME|MF|MG|MH|MK|ML|MM|MN|MO|MP|MQ|MR|MS|MT|MU|MV|MW|MX|MY|MZ|NA|NC|NE|NF|NG|NI|NL|NO|NP|NR|NU|NZ|OM|PA|PE|PF|PG|PH|PK|PL|PM|PN|PR|PS|PT|PW|PY|QA|RE|RO|RS|RU|RW|SA|SB|SC|SD|SE|SG|SH|SI|SJ|SK|SL|SM|SN|SO|SR|SS|ST|SV|SX|SY|SZ|TC|TD|TF|TG|TH|TJ|TK|TL|TM|TN|TO|TR|TT|TV|TW|TZ|UA|UG|UM|US|UY|UZ|VA|VC|VE|VG|VI|VN|VU|WF|WS|XK|YE|YT|ZA|ZM|ZW$",
        "type" : "string",
        "format" : "iso-3166",
        "example" : "DE"
      },
      "PostalAddress" : {
        "type" : "object",
        "properties" : {
          "address1" : {
            "maxLength" : 255,
            "minLength" : 1,
            "type" : "string"
          },
          "address2" : {
            "maxLength" : 255,
            "minLength" : 1,
            "type" : "string"
          },
          "zipCode" : {
            "maxLength" : 12,
            "minLength" : 1,
            "type" : "string"
          },
          "city" : {
            "maxLength" : 255,
            "minLength" : 1,
            "type" : "string"
          },
          "countryCode" : {
            "$ref" : "#/components/schemas/CountryCode"
          }
        }
      },
      "Address" : {
        "allOf" : [ {
          "$ref" : "#/components/schemas/PostalAddress"
        }, {
          "type" : "object",
          "properties" : {
            "name" : {
              "maxLength" : 255,
              "minLength" : 1,
              "type" : "string"
            }
          }
        } ]
      },
      "AddressTypeCode" : {
        "maxLength" : 3,
        "minLength" : 2,
        "type" : "string"
      },
      "AddressWithType" : {
        "allOf" : [ {
          "$ref" : "#/components/schemas/Address"
        }, {
          "required" : [ "addressTypeCode" ],
          "type" : "object",
          "properties" : {
            "addressTypeCode" : {
              "$ref" : "#/components/schemas/AddressTypeCode"
            }
          }
        } ]
      },
      "BookingAddresses" : {
        "type" : "object",
        "properties" : {
          "shipper" : {
            "$ref" : "#/components/schemas/Address"
          },
          "consignee" : {
            "$ref" : "#/components/schemas/Address"
          },
          "additionalAddresses" : {
            "type" : "array",
            "items" : {
              "$ref" : "#/components/schemas/AddressWithType"
            }
          }
        }
      },
      "AirBookingAddresses" : {
        "allOf" : [ {
          "$ref" : "#/components/schemas/BookingAddresses"
        }, {
          "type" : "object",
          "properties" : {
            "seller" : {
              "$ref" : "#/components/schemas/Address"
            },
            "buyer" : {
              "$ref" : "#/components/schemas/Address"
            }
          }
        } ]
      },
      "Weight" : {
        "required" : [ "amountInKilogram" ],
        "type" : "object",
        "properties" : {
          "amountInKilogram" : {
            "multipleOf" : 0.01,
            "maximum" : 999999,
            "minimum" : 0.01,
            "type" : "number",
            "format" : "decimal"
          }
        },
        "description" : "Weight in kilogram"
      },
      "Packages" : {
        "required" : [ "amount", "packageType" ],
        "type" : "object",
        "properties" : {
          "amount" : {
            "maximum" : 999999,
            "minimum" : 1,
            "type" : "integer",
            "format" : "int32"
          },
          "packageType" : {
            "pattern" : "BAG|BAR|BLK|BOX|CRT|CTN|IBC|PKG|PLT|SLP",
            "type" : "string",
            "description" : "Package types: Bag (bag), Bar (bar), Bulk Grain (blk), Box (box), Carton (ctn),\nIntermediate Bulk Container (ibc), Package (pkg), Pallet (plt), Slip Sheet (slp)\n"
          }
        }
      },
      "PositiveInteger" : {
        "maximum" : 999999,
        "minimum" : 1,
        "type" : "integer",
        "format" : "int32"
      },
      "IntegerDimension" : {
        "required" : [ "amountInCentimeter" ],
        "type" : "object",
        "properties" : {
          "amountInCentimeter" : {
            "$ref" : "#/components/schemas/PositiveInteger"
          }
        }
      },
      "IntegerHeight" : {
        "description" : "Height in centimeter",
        "allOf" : [ {
          "$ref" : "#/components/schemas/IntegerDimension"
        } ]
      },
      "IntegerWidth" : {
        "description" : "Width in centimeter",
        "allOf" : [ {
          "$ref" : "#/components/schemas/IntegerDimension"
        } ]
      },
      "IntegerLength" : {
        "description" : "Length in centimeter",
        "allOf" : [ {
          "$ref" : "#/components/schemas/IntegerDimension"
        } ]
      },
      "AirPackageInformation" : {
        "type" : "object",
        "properties" : {
          "weight" : {
            "$ref" : "#/components/schemas/Weight"
          },
          "packages" : {
            "$ref" : "#/components/schemas/Packages"
          },
          "height" : {
            "$ref" : "#/components/schemas/IntegerHeight"
          },
          "width" : {
            "$ref" : "#/components/schemas/IntegerWidth"
          },
          "length" : {
            "$ref" : "#/components/schemas/IntegerLength"
          }
        }
      },
      "DateTime" : {
        "type" : "string",
        "format" : "date-time"
      },
      "Email" : {
        "type" : "string",
        "format" : "email"
      },
      "MediumLengthString" : {
        "maxLength" : 255,
        "minLength" : 1,
        "type" : "string"
      },
      "PickUpDeliveryDetails" : {
        "type" : "object",
        "properties" : {
          "address" : {
            "$ref" : "#/components/schemas/Address"
          },
          "email" : {
            "$ref" : "#/components/schemas/Email"
          },
          "phone" : {
            "$ref" : "#/components/schemas/MediumLengthString"
          },
          "plannedDate" : {
            "$ref" : "#/components/schemas/DateTime"
          }
        }
      },
      "ProductDetails" : {
        "type" : "object",
        "properties" : {
          "productGroupCode" : {
            "$ref" : "#/components/schemas/MediumLengthString"
          },
          "productCode" : {
            "$ref" : "#/components/schemas/MediumLengthString"
          }
        }
      },
      "Temperature" : {
        "required" : [ "amountInDegreeCelsius" ],
        "type" : "object",
        "properties" : {
          "amountInDegreeCelsius" : {
            "maximum" : 99.9,
            "minimum" : -99.9,
            "type" : "number",
            "format" : "decimal"
          }
        },
        "description" : "Temperature in degrees celsius"
      },
      "TemperatureControl" : {
        "type" : "object",
        "properties" : {
          "minTemperature" : {
            "$ref" : "#/components/schemas/Temperature"
          },
          "maxTemperature" : {
            "$ref" : "#/components/schemas/Temperature"
          }
        }
      },
      "AirBooking" : {
        "description" : "A booking specialized for Airfreight Transport",
        "allOf" : [ {
          "$ref" : "#/components/schemas/Booking"
        }, {
          "$ref" : "#/components/schemas/AirRoutingInformation"
        }, {
          "type" : "object",
          "properties" : {
            "addresses" : {
              "$ref" : "#/components/schemas/AirBookingAddresses"
            },
            "packageInformation" : {
              "maxItems" : 30,
              "minItems" : 1,
              "type" : "array",
              "items" : {
                "$ref" : "#/components/schemas/AirPackageInformation"
              }
            },
            "plannedArrivalAtAirportDate" : {
              "$ref" : "#/components/schemas/DateTime"
            },
            "exportAvailabilityDate" : {
              "$ref" : "#/components/schemas/DateTime"
            },
            "deliveryRequestDetails" : {
              "$ref" : "#/components/schemas/PickUpDeliveryDetails"
            },
            "quotationNumber" : {
              "maxLength" : 35,
              "minLength" : 1,
              "type" : "string"
            },
            "serviceLevelAgreement" : {
              "maxLength" : 35,
              "minLength" : 1,
              "type" : "string"
            },
            "productDetails" : {
              "$ref" : "#/components/schemas/ProductDetails"
            },
            "temperatureControl" : {
              "$ref" : "#/components/schemas/TemperatureControl"
            }
          }
        } ]
      },
      "SeaRoutingInformation" : {
        "type" : "object",
        "properties" : {
          "portOfLoading" : {
            "$ref" : "#/components/schemas/UnLocationCode"
          },
          "portOfDischarge" : {
            "$ref" : "#/components/schemas/UnLocationCode"
          }
        }
      },
      "SeaBooking" : {
        "description" : "Abstract base schema for the sea booking types LclBooking and FclBooking.",
        "allOf" : [ {
          "$ref" : "#/components/schemas/Booking"
        }, {
          "$ref" : "#/components/schemas/SeaRoutingInformation"
        }, {
          "type" : "object",
          "properties" : {
            "addresses" : {
              "$ref" : "#/components/schemas/BookingAddresses"
            },
            "cargoReadinessDate" : {
              "type" : "string",
              "description" : "Represents the date when the cargo is expected to be ready for shipment",
              "format" : "date"
            }
          }
        } ]
      },
      "ContainerNumber" : {
        "maxLength" : 11,
        "minLength" : 1,
        "pattern" : "^[A-Za-z]{3}[A-Za-z][0-9]{7}$|^[0-9]{1,3}$",
        "type" : "string",
        "example" : "ABCU1234567"
      },
      "Volume" : {
        "required" : [ "amountInCubicMeter" ],
        "type" : "object",
        "properties" : {
          "amountInCubicMeter" : {
            "multipleOf" : 0.001,
            "maximum" : 99999,
            "minimum" : 0.001,
            "type" : "number",
            "format" : "decimal"
          }
        },
        "description" : "Volume in cubic meter"
      },
      "NonEmptyString" : {
        "minLength" : 1,
        "type" : "string"
      },
      "ReferenceDataPerAddressTypeCode" : {
        "required" : [ "addressTypeCode", "referenceCodeToValue" ],
        "type" : "object",
        "properties" : {
          "addressTypeCode" : {
            "$ref" : "#/components/schemas/AddressTypeCode"
          },
          "referenceCodeToValue" : {
            "type" : "object",
            "additionalProperties" : {
              "$ref" : "#/components/schemas/NonEmptyString"
            }
          }
        },
        "description" : "ReferenceDataPerAddressTypeCode allows the user to store arbitrary key/values pairs where\nkeys and values are strings.\n"
      },
      "Humidity" : {
        "required" : [ "amountInPercent" ],
        "type" : "object",
        "properties" : {
          "amountInPercent" : {
            "maximum" : 100,
            "minimum" : 0,
            "type" : "number",
            "format" : "decimal"
          }
        },
        "description" : "Humidity in percent"
      },
      "Ventilation" : {
        "required" : [ "amountInCubicMeterPerHour" ],
        "type" : "object",
        "properties" : {
          "amountInCubicMeterPerHour" : {
            "maximum" : 999999,
            "minimum" : 0,
            "type" : "number",
            "format" : "decimal"
          }
        },
        "description" : "Ventilation in cubic meter per hour"
      },
      "AtmosphereSettings" : {
        "type" : "object",
        "properties" : {
          "temperature" : {
            "$ref" : "#/components/schemas/Temperature"
          },
          "humidity" : {
            "$ref" : "#/components/schemas/Humidity"
          },
          "ventilation" : {
            "$ref" : "#/components/schemas/Ventilation"
          }
        }
      },
      "Container" : {
        "type" : "object",
        "properties" : {
          "containerNumber" : {
            "$ref" : "#/components/schemas/ContainerNumber"
          },
          "containerType" : {
            "maxLength" : 4,
            "minLength" : 3,
            "type" : "string",
            "example" : "22B0"
          },
          "weight" : {
            "$ref" : "#/components/schemas/Weight"
          },
          "volume" : {
            "$ref" : "#/components/schemas/Volume"
          },
          "packages" : {
            "$ref" : "#/components/schemas/Packages"
          },
          "references" : {
            "type" : "array",
            "items" : {
              "$ref" : "#/components/schemas/ReferenceDataPerAddressTypeCode"
            }
          },
          "atmosphereSettings" : {
            "$ref" : "#/components/schemas/AtmosphereSettings"
          },
          "sealNumber" : {
            "maxLength" : 17,
            "minLength" : 1,
            "pattern" : "^[a-zA-Z0-9]{1,17}$",
            "type" : "string",
            "example" : "TH169581"
          }
        }
      },
      "FclBooking" : {
        "description" : "A booking specialized for Full Container Load Transport.",
        "allOf" : [ {
          "$ref" : "#/components/schemas/SeaBooking"
        }, {
          "type" : "object",
          "properties" : {
            "containers" : {
              "maxItems" : 30,
              "minItems" : 0,
              "type" : "array",
              "items" : {
                "$ref" : "#/components/schemas/Container"
              }
            }
          }
        } ]
      },
      "LclBooking" : {
        "description" : "A booking specialized for Less than Container Load Transport.",
        "allOf" : [ {
          "$ref" : "#/components/schemas/SeaBooking"
        }, {
          "type" : "object",
          "properties" : {
            "totalWeight" : {
              "$ref" : "#/components/schemas/Weight"
            },
            "totalVolume" : {
              "$ref" : "#/components/schemas/Volume"
            },
            "totalPackages" : {
              "$ref" : "#/components/schemas/Packages"
            }
          }
        } ]
      },
      "ShippersReference" : {
        "maxLength" : 35,
        "minLength" : 1,
        "type" : "string"
      },
      "CustomerCode" : {
        "pattern" : "^[A-Z]{5}[0-9]{2}$",
        "type" : "string",
        "description" : "Unique identifier assigned to a customer",
        "example" : "DEHAM01"
      },
      "SupplierCode" : {
        "maxLength" : 70,
        "minLength" : 1,
        "type" : "string",
        "description" : "Unique identifier assigned to a supplier"
      },
      "FactoryCode" : {
        "maxLength" : 255,
        "minLength" : 1,
        "type" : "string",
        "description" : "Unique identifier assigned to a factory"
      },
      "CargoInformation" : {
        "type" : "object",
        "properties" : {
          "dangerousGoods" : {
            "type" : "boolean",
            "description" : "Indicates if the freight contains dangerous goods"
          },
          "batteries" : {
            "type" : "boolean",
            "description" : "Indicates if the freight contains batteries"
          },
          "batteriesRemarks" : {
            "maxLength" : 1024,
            "minLength" : 1,
            "type" : "string",
            "description" : "Further details for the contained batteries"
          },
          "woodenPackagingMaterial" : {
            "type" : "boolean",
            "description" : "Indicates if the freight contains wooden packaging material"
          }
        }
      },
      "Incoterm" : {
        "pattern" : "^CFR|CIF|CIP|CPT|CTO|DAF|DAP|DAT|DCT|DDP|DDU|DEQ|DES|DIC|DIT|DPU|EXQ|EXW|FAS|FCA|FOB|FOC|FOT|PRC|PUO$",
        "type" : "string",
        "description" : "Internationally recognized delivery terms for commercial contracts published by the ICC"
      },
      "TermsOfTrade" : {
        "type" : "object",
        "properties" : {
          "incoterm" : {
            "$ref" : "#/components/schemas/Incoterm"
          },
          "location" : {
            "maxLength" : 35,
            "minLength" : 1,
            "type" : "string",
            "description" : "Specifies the location where the incoterm standards are applied"
          }
        }
      },
      "LetterOfCredit" : {
        "type" : "object",
        "properties" : {
          "letterOfCreditNumber" : {
            "maxLength" : 35,
            "minLength" : 1,
            "type" : "string",
            "description" : "Unique identification number associated with the letter of credit"
          },
          "letterOfCreditExpiryDate" : {
            "type" : "string",
            "description" : "Denotes the date on which the letter of credit expires",
            "format" : "date"
          }
        },
        "description" : "Financial instrument guaranteeing payment to the exporter upon satisfactory delivery of goods"
      },
      "OrderAddress" : {
        "allOf" : [ {
          "$ref" : "#/components/schemas/Address"
        }, {
          "type" : "object",
          "properties" : {
            "state" : {
              "$ref" : "#/components/schemas/NonEmptyString"
            },
            "stateCode" : {
              "$ref" : "#/components/schemas/NonEmptyString"
            },
            "postBox" : {
              "$ref" : "#/components/schemas/NonEmptyString"
            },
            "identifier" : {
              "$ref" : "#/components/schemas/NonEmptyString"
            }
          }
        } ]
      },
      "ContactInformation" : {
        "type" : "object",
        "properties" : {
          "name" : {
            "$ref" : "#/components/schemas/NonEmptyString"
          },
          "email" : {
            "$ref" : "#/components/schemas/Email"
          },
          "phone" : {
            "$ref" : "#/components/schemas/NonEmptyString"
          },
          "mobile" : {
            "$ref" : "#/components/schemas/NonEmptyString"
          },
          "fax" : {
            "$ref" : "#/components/schemas/NonEmptyString"
          }
        }
      },
      "AdditionalParty" : {
        "type" : "object",
        "properties" : {
          "partyCode" : {
            "$ref" : "#/components/schemas/NonEmptyString"
          },
          "address" : {
            "$ref" : "#/components/schemas/OrderAddress"
          },
          "contactInformation" : {
            "minItems" : 0,
            "type" : "array",
            "items" : {
              "$ref" : "#/components/schemas/ContactInformation"
            }
          }
        }
      },
      "BusinessParty" : {
        "allOf" : [ {
          "$ref" : "#/components/schemas/AdditionalParty"
        }, {
          "required" : [ "partyCode" ],
          "type" : "object"
        } ]
      },
      "Parties" : {
        "required" : [ "customer", "supplier" ],
        "type" : "object",
        "properties" : {
          "customer" : {
            "$ref" : "#/components/schemas/BusinessParty"
          },
          "supplier" : {
            "$ref" : "#/components/schemas/BusinessParty"
          },
          "factory" : {
            "$ref" : "#/components/schemas/BusinessParty"
          },
          "additionalParties" : {
            "type" : "object",
            "additionalProperties" : {
              "$ref" : "#/components/schemas/AdditionalParty"
            }
          }
        }
      },
      "Date" : {
        "type" : "string",
        "format" : "date"
      },
      "OrderIdentificationKeyAttributes" : {
        "type" : "object",
        "properties" : {
          "purchaseOrderDate" : {
            "$ref" : "#/components/schemas/Date"
          },
          "orderNumber" : {
            "$ref" : "#/components/schemas/NonEmptyString"
          },
          "orderDate" : {
            "$ref" : "#/components/schemas/Date"
          },
          "invoiceNumber" : {
            "$ref" : "#/components/schemas/NonEmptyString"
          },
          "invoiceDate" : {
            "$ref" : "#/components/schemas/Date"
          },
          "shipmentId" : {
            "$ref" : "#/components/schemas/NonEmptyString"
          },
          "shipmentDate" : {
            "$ref" : "#/components/schemas/Date"
          },
          "contractNumber" : {
            "$ref" : "#/components/schemas/NonEmptyString"
          },
          "contractDate" : {
            "$ref" : "#/components/schemas/Date"
          },
          "salesOrderNumber" : {
            "$ref" : "#/components/schemas/NonEmptyString"
          },
          "salesOrderDate" : {
            "$ref" : "#/components/schemas/Date"
          },
          "deliveryNoteNumber" : {
            "$ref" : "#/components/schemas/NonEmptyString"
          },
          "deliveryNoteDate" : {
            "$ref" : "#/components/schemas/Date"
          },
          "warehouseReceiptNumber" : {
            "$ref" : "#/components/schemas/NonEmptyString"
          },
          "warehouseReceiptDate" : {
            "$ref" : "#/components/schemas/Date"
          },
          "commercialInvoiceNumber" : {
            "$ref" : "#/components/schemas/NonEmptyString"
          },
          "commercialInvoiceDate" : {
            "$ref" : "#/components/schemas/Date"
          },
          "packingListNumber" : {
            "$ref" : "#/components/schemas/NonEmptyString"
          },
          "packingListDate" : {
            "$ref" : "#/components/schemas/Date"
          },
          "deliveryTicketNumber" : {
            "$ref" : "#/components/schemas/NonEmptyString"
          },
          "deliveryTicketDate" : {
            "$ref" : "#/components/schemas/Date"
          },
          "proformaInvoiceNumber" : {
            "$ref" : "#/components/schemas/NonEmptyString"
          },
          "proformaInvoiceDate" : {
            "$ref" : "#/components/schemas/Date"
          },
          "transactionId" : {
            "$ref" : "#/components/schemas/NonEmptyString"
          },
          "transactionDate" : {
            "$ref" : "#/components/schemas/Date"
          },
          "orderReleaseNumber" : {
            "$ref" : "#/components/schemas/NonEmptyString"
          },
          "orderReleaseDate" : {
            "$ref" : "#/components/schemas/Date"
          },
          "raisedBy" : {
            "$ref" : "#/components/schemas/NonEmptyString"
          },
          "supplierReference" : {
            "$ref" : "#/components/schemas/NonEmptyString"
          },
          "workOrderNumber" : {
            "$ref" : "#/components/schemas/NonEmptyString"
          },
          "proformaOrderNumber" : {
            "$ref" : "#/components/schemas/NonEmptyString"
          },
          "allocationNumber" : {
            "$ref" : "#/components/schemas/NonEmptyString"
          },
          "supplierOrderNumber" : {
            "$ref" : "#/components/schemas/NonEmptyString"
          }
        }
      },
      "ItemIdentificationAttributes" : {
        "type" : "object",
        "properties" : {
          "europeanArticleNumber" : {
            "$ref" : "#/components/schemas/NonEmptyString"
          },
          "lotNumber" : {
            "$ref" : "#/components/schemas/NonEmptyString"
          },
          "catalogueNumber" : {
            "$ref" : "#/components/schemas/NonEmptyString"
          },
          "partNumber" : {
            "$ref" : "#/components/schemas/NonEmptyString"
          },
          "packUniversalProductCode" : {
            "$ref" : "#/components/schemas/NonEmptyString"
          },
          "materialNumber" : {
            "$ref" : "#/components/schemas/NonEmptyString"
          },
          "productNumber" : {
            "$ref" : "#/components/schemas/NonEmptyStri

# --- truncated at 32 KB (61 KB total) ---
# Full source: https://raw.githubusercontent.com/api-evangelist/kuehne-nagel/refs/heads/main/openapi/kuehne-nagel-order-booking-v1-openapi.json