Kuehne+Nagel PurchaseOrderManagement API
Create, patch, search and cancel purchase orders scoped to a Kuehne+Nagel customer code. UN/LOCODE ports, HS codes and EORI numbers appear on the order model.
Create, patch, search and cancel purchase orders scoped to a Kuehne+Nagel customer code. UN/LOCODE ports, HS codes and EORI numbers appear on the order model.
{
"openapi" : "3.0.3",
"info" : {
"title" : "PurchaseOrderManagement",
"description" : "This API is part of the Kuehne+Nagel API layer. It manages purchase orders\nfor external partners. To use this API you must be registered and set up as\nan API user.\n\nProcessing of purchase order data depends on the customer's eSOP order configuration in\nK+N ESP.\n\nOrder attributes which are configured to be header attributes for the customer are stored\nin the `orderHeader` property of purchase order requests and responses. Order attributes\nthat are not header attributes are stored in their respective purchase order lines.\nCustomer's order attributes that are put into the wrong place are ignored. Missing\nattributes, like any attribute with an incompleteness violation, are reported back in the\n`incomplete` property of the response message.\n\nOrder attributes can be configured to auto-apply changes from the supplier\nduring order acceptance. Such attributes do not accept changes from the\ncustomer after they have been set by the supplier. Update requests from a\ncustomer are successful, even if a change to an auto-apply attribute is\nrejected due to this business rule.\n\nThe endpoints of this API are designed to handle more than one purchase\norder per request. A request with more than one order is considered a bulk\norder that is processed asynchronously by K+N's ESP system, provided it\npasses the initial validation for syntactical correctness. A request with a\nsingle purchase order will be handled synchronously returning the result of\nthe request as its response. As a client check for HTTP Status `202\nAccepted` to distinguish the asynchronous from the synchronous case.\n\nBulk orders are limited in size to ensure error-free and fair processing of\norders from all clients. In order to be able to adapt the limits to the\ncurrent system load, they are not defined as an upper limit in the OpenAPI\nspecification. Details of the limitations are described in the respective\noperation.\n",
"contact" : {
"name" : "Kuehne+Nagel ESP Public APIs",
"url" : "https://esp.kuehne-nagel.com",
"email" : "webdev-esp-public-apis@kuehne-nagel.com"
},
"version" : "v3",
"x-api-id" : "b8aab7c1-d4dc-4f4d-9c93-ebd255df1a63",
"x-api-guideline-version" : "1.10.2",
"x-api-version" : "3.1.0"
},
"servers" : [ {
"url" : "https://internal.api.kuehne-nagel.com/order-management/purchase-order/v3"
} ],
"security" : [ {
"default" : [ ]
}, {
"api_key" : [ ]
} ],
"paths" : {
"/customers/{customerCode}/purchase-orders" : {
"post" : {
"tags" : [ "purchase-order-layer" ],
"summary" : "Used by customers to create new purchase orders in ESP.",
"description" : "The customer identified by the `customerCode` creates new distinct\npurchase orders. Each requested purchase order is identified by its\n`purchaseOrderNumber` property. In background processing of bulk orders\neach single purchase order is treated as a separate transaction. The\nstatus of purchase orders can be queried with the `readPurchaseOrders`\noperation.\n\n*Bulk Order Limits:*\n\n- The size of a bulk request is limited by the total number of purchase\n order lines per request. The upper limit is in the magnitude of 500\n lines.\n",
"operationId" : "createPurchaseOrders",
"parameters" : [ {
"$ref" : "#/components/parameters/CustomerCodeParam"
} ],
"requestBody" : {
"content" : {
"application/json" : {
"schema" : {
"$ref" : "#/components/schemas/CreatePurchaseOrdersRequest"
},
"example" : {
"purchaseOrders" : [ {
"purchaseOrderNumber" : "ACM4711",
"parties" : {
"customer" : {
"partyCode" : "ACMEC01"
},
"supplier" : {
"partyCode" : "SUPPL01",
"address" : {
"address1" : "Address Lane",
"city" : "Example city",
"countryCode" : "FR",
"zipCode" : "01234"
},
"contactInformation" : [ {
"email" : "test@acme.domain",
"name" : "test contact"
} ]
}
},
"orderHeader" : {
"attributes" : {
"orderIdentification" : {
"shipmentID" : "SHID01",
"salesOrderNumber" : "12345",
"supplierReference" : "VGZY11",
"commercialInvoiceNumber" : "876-98675"
},
"transportation" : {
"bookingWindow" : {
"endDate" : "2023-04-22",
"startDate" : "2023-01-01"
}
},
"orderHandling" : {
"orderReleased" : false
}
},
"additionalReferences" : [ {
"referenceCode" : "TEXT",
"referenceValues" : [ "Example text1", "Example text2" ]
}, {
"referenceCode" : "DATE",
"referenceValues" : [ "2022-06-14" ]
}, {
"referenceCode" : "NUMBER",
"referenceValues" : [ "2.23" ]
}, {
"referenceCode" : "ENUM",
"referenceValues" : [ "OFF" ]
} ]
},
"orderLines" : [ {
"attributes" : {
"itemAttributes" : {
"commodity" : "Things"
},
"transportation" : {
"modeOfTransportation" : "SEA",
"portOfLoading" : "DEHAM"
},
"itemIdentification" : {
"lineNumber" : "1"
},
"itemDetails" : {
"orderedQuantity" : {
"amount" : 3,
"unit" : "M"
}
}
},
"additionalReferences" : [ {
"referenceCode" : "TEXT",
"referenceValues" : [ "Example text1", "Example text2" ]
}, {
"referenceCode" : "DATE",
"referenceValues" : [ "2022-06-14" ]
}, {
"referenceCode" : "NUMBER",
"referenceValues" : [ "2.23" ]
}, {
"referenceCode" : "ENUM",
"referenceValues" : [ "OFF" ]
} ]
} ]
} ]
}
}
},
"required" : true
},
"responses" : {
"201" : {
"description" : "The single requested purchase order was created",
"content" : {
"application/json" : {
"schema" : {
"$ref" : "#/components/schemas/PurchaseOrderResponse"
}
}
}
},
"202" : {
"description" : "The order to create multiple purchase orders is accepted"
},
"default" : {
"$ref" : "#/components/responses/default"
}
},
"security" : [ {
"default" : [ ]
}, {
"api_key" : [ ]
} ],
"x-auth-type" : "Application & Application User",
"x-throttling-tier" : "50KPerMin"
},
"patch" : {
"tags" : [ "purchase-order-layer" ],
"summary" : "Used by customers to update existing purchase orders.",
"description" : "The customer identified by the `customerCode` updates one or more of his\nown orders. Updating a purchase order does not allow to delete values\nthat are already part of the purchase order. It is only possible to\nchange or add values. Key attributes of business parties and order lines\ncannot be changed. Purchase orders to be updated are identified by the\n`purchaseOrderNumber` property of the elements of the `purchaseOrders`\narray. Order lines that are added or updated are identified by their key\nattributes as defined in the customer's order configuration. Values of a\npurchase order that are not to be changed do not need to be part of the\nrequest.\n\nThere are additional rules which need to be considered:\n\n- If a cancelled order line is updated the order line will be\n uncancelled\n\n- If the supplier's code is changed a new supplier is created\n\n- Changes to the supplier do not necessarily require information of the\n customer\n\n - If information about the customer is added then the customer code\n must be part of the request\n\n- Changes to the address of the supplier are ignored. This will not\n trigger a non-success HTTP status. \n\n- Changes to the factory require certain data about the supplier\n\n - At a minimum, the suppliers' code and address name must be provided\n\n - If the contact information is included, the supplier's contact\n information name must be part of the request\n\n- Changes to auto-apply attributes that are already blocked for changes\n from the customer are ignored. This will not trigger a non-success\n HTTP status.\n\nIn background processing of bulk orders each single purchase order is\ntreated as a separate transaction. The status of purchase orders can be\nqueried with the `readPurchaseOrders` operation.\n\n*Bulk Order Limits:*\n\n- The size of a bulk request is limited by\n\n 1. the total number of purchase orders (≲500) and\n\n 2. the total number of purchase order lines (≲500).\n",
"operationId" : "updatePurchaseOrders",
"parameters" : [ {
"$ref" : "#/components/parameters/CustomerCodeParam"
} ],
"requestBody" : {
"content" : {
"application/json" : {
"schema" : {
"$ref" : "#/components/schemas/UpdatePurchaseOrdersRequest"
},
"example" : {
"purchaseOrders" : [ {
"purchaseOrderNumber" : "ACM4711",
"parties" : {
"customer" : {
"partyCode" : "ACMEC01"
},
"supplier" : {
"partyCode" : "SUPPL01",
"address" : {
"address1" : "Address Lane",
"city" : "Example city",
"countryCode" : "FR",
"zipCode" : "01234"
},
"contactInformation" : [ {
"email" : "test@acme.domain",
"name" : "test contact"
} ]
}
},
"orderHeader" : {
"attributes" : {
"orderIdentification" : {
"shipmentID" : "SHID01",
"salesOrderNumber" : "12345",
"supplierReference" : "VGZY11",
"commercialInvoiceNumber" : "876-98675"
},
"transportation" : {
"bookingWindow" : {
"endDate" : "2023-04-22",
"startDate" : "2023-01-01"
}
},
"orderHandling" : {
"orderReleased" : false
}
},
"additionalReferences" : [ {
"referenceCode" : "TEXT",
"referenceValues" : [ "Example text1", "Example text2" ]
}, {
"referenceCode" : "DATE",
"referenceValues" : [ "2022-06-14" ]
}, {
"referenceCode" : "NUMBER",
"referenceValues" : [ "2.23" ]
}, {
"referenceCode" : "ENUM",
"referenceValues" : [ "OFF" ]
} ]
},
"orderLines" : [ {
"attributes" : {
"itemAttributes" : {
"commodity" : "Things"
},
"transportation" : {
"modeOfTransportation" : "SEA",
"portOfLoading" : "DEHAM"
},
"itemIdentification" : {
"lineNumber" : "1"
},
"itemDetails" : {
"orderedQuantity" : {
"amount" : 3,
"unit" : "M"
}
}
},
"additionalReferences" : [ {
"referenceCode" : "TEXT",
"referenceValues" : [ "Example text1", "Example text2" ]
}, {
"referenceCode" : "DATE",
"referenceValues" : [ "2022-06-14" ]
}, {
"referenceCode" : "NUMBER",
"referenceValues" : [ "2.23" ]
}, {
"referenceCode" : "ENUM",
"referenceValues" : [ "OFF" ]
} ]
} ]
} ]
}
}
},
"required" : true
},
"responses" : {
"200" : {
"description" : "Purchase order was updated",
"content" : {
"application/json" : {
"schema" : {
"$ref" : "#/components/schemas/PurchaseOrderResponse"
}
}
}
},
"202" : {
"description" : "Accepted order to update multiple purchase orders"
},
"default" : {
"$ref" : "#/components/responses/default"
}
},
"security" : [ {
"default" : [ ]
}, {
"api_key" : [ ]
} ],
"x-auth-type" : "Application & Application User",
"x-throttling-tier" : "50KPerMin"
}
},
"/customers/{customerCode}/purchase-orders-search" : {
"post" : {
"tags" : [ "purchase-order-layer" ],
"summary" : "Used by business parties linked to a purchase order to read one or more existing purchase orders.\n",
"description" : "Reading purchase orders is accessible to all business parties that are linked as\n`parties` to the requested purchase order. The information provided as a response\ndepends on the permissions for the business party's role.\n\nIf the request does not fail completely, the response contains the\npurchase order for each successful read or a problem description for a\nfailed read of a single order. \n\n*Bulk Order Limits:*\n\n- The size of a bulk request is limited by the total number of purchase\n orders. The limit is in the order of 500 maximum.\n",
"operationId" : "readPurchaseOrders",
"parameters" : [ {
"$ref" : "#/components/parameters/CustomerCodeParam"
} ],
"requestBody" : {
"content" : {
"application/json" : {
"schema" : {
"$ref" : "#/components/schemas/ReadPurchaseOrdersRequest"
},
"example" : {
"purchaseOrderNumbers" : [ "PON4711", "PON4712", "PON4713" ]
}
}
},
"required" : true
},
"responses" : {
"207" : {
"description" : "Purchase orders found",
"content" : {
"application/json" : {
"schema" : {
"$ref" : "#/components/schemas/BulkReadResponse"
}
}
}
},
"default" : {
"$ref" : "#/components/responses/default"
}
},
"security" : [ {
"default" : [ ]
}, {
"api_key" : [ ]
} ],
"x-auth-type" : "Application & Application User",
"x-throttling-tier" : "50KPerMin"
}
},
"/customers/{customerCode}/purchase-orders-cancellations" : {
"put" : {
"tags" : [ "purchase-order-layer" ],
"summary" : "Used by customers to cancel all or only a selection of order lines from one or more purchase orders.\n",
"description" : "The orders and any affected lines are referenced in the request body.\n\nA single order line is identified by a JSON object that contains only\nthe order attributes that are key attributes in the customer's order\nconfiguration.\n\nTo cancel a complete order, i.e. all order lines of that order, the\nattribute `orderLines` is omitted.\n\nIn background processing of bulk orders each single purchase order is\ntreated as a separate transaction. The status of purchase orders can be\nqueried with the `readPurchaseOrders` operation.\n\n*Bulk Order Limits:*\n\n- The size of a bulk request is limited by the total number of purchase\n orders. The limit is in the order of 500 maximum.\n",
"operationId" : "cancelPurchaseOrderLines",
"parameters" : [ {
"$ref" : "#/components/parameters/CustomerCodeParam"
} ],
"requestBody" : {
"content" : {
"application/json" : {
"schema" : {
"$ref" : "#/components/schemas/CancelPurchaseOrderLinesRequest"
},
"example" : {
"cancellations" : [ {
"purchaseOrderNumber" : "4711ABC9876",
"purchaseOrderLineRefs" : [ {
"itemIdentification" : {
"itemNumber" : "4711"
},
"itemAttributes" : {
"color" : "red"
}
} ]
} ]
}
}
},
"required" : true
},
"responses" : {
"200" : {
"description" : "Order line cancelled. If the order has already been cancelled, it will be listed as cancelled in the response.\n",
"content" : {
"application/json" : {
"schema" : {
"$ref" : "#/components/schemas/CancelPurchaseOrderLinesResponse"
}
}
}
},
"202" : {
"description" : "Accepted order line cancellations. The response lists the orders that have already been cancelled, if any.\n",
"content" : {
"application/json" : {
"schema" : {
"$ref" : "#/components/schemas/CancelPurchaseOrderLinesResponse"
}
}
}
},
"default" : {
"$ref" : "#/components/responses/default"
}
},
"security" : [ {
"default" : [ ]
}, {
"api_key" : [ ]
} ],
"x-auth-type" : "Application & Application User",
"x-throttling-tier" : "50KPerMin"
}
}
},
"components" : {
"schemas" : {
"CustomerCode" : {
"pattern" : "^[A-Z]{5}[0-9]{2}$",
"type" : "string",
"description" : "Unique identifier assigned to a customer"
},
"String" : {
"minLength" : 1,
"type" : "string"
},
"CountryCode" : {
"type" : "string",
"format" : "iso-3166"
},
"PostalAddress" : {
"type" : "object",
"properties" : {
"address1" : {
"$ref" : "#/components/schemas/String"
},
"address2" : {
"$ref" : "#/components/schemas/String"
},
"zipCode" : {
"$ref" : "#/components/schemas/String"
},
"city" : {
"$ref" : "#/components/schemas/String"
},
"countryCode" : {
"$ref" : "#/components/schemas/CountryCode"
}
}
},
"Address" : {
"allOf" : [ {
"$ref" : "#/components/schemas/PostalAddress"
}, {
"type" : "object",
"properties" : {
"name" : {
"$ref" : "#/components/schemas/String"
},
"state" : {
"$ref" : "#/components/schemas/String"
},
"stateCode" : {
"$ref" : "#/components/schemas/String"
},
"postBox" : {
"$ref" : "#/components/schemas/String"
},
"identifier" : {
"$ref" : "#/components/schemas/String"
}
}
} ]
},
"ContactInformation" : {
"type" : "object",
"properties" : {
"name" : {
"$ref" : "#/components/schemas/String"
},
"email" : {
"type" : "string",
"format" : "email"
},
"phone" : {
"$ref" : "#/components/schemas/String"
},
"mobile" : {
"$ref" : "#/components/schemas/String"
},
"fax" : {
"$ref" : "#/components/schemas/String"
}
}
},
"AdditionalParty" : {
"type" : "object",
"properties" : {
"partyCode" : {
"$ref" : "#/components/schemas/String"
},
"address" : {
"$ref" : "#/components/schemas/Address"
},
"contactInformation" : {
"type" : "array",
"items" : {
"$ref" : "#/components/schemas/ContactInformation"
}
}
}
},
"BusinessParty" : {
"allOf" : [ {
"$ref" : "#/components/schemas/AdditionalParty"
}, {
"required" : [ "partyCode" ],
"type" : "object"
} ]
},
"Parties" : {
"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/String"
},
"orderDate" : {
"$ref" : "#/components/schemas/Date"
},
"invoiceNumber" : {
"$ref" : "#/components/schemas/String"
},
"invoiceDate" : {
"$ref" : "#/components/schemas/Date"
},
"shipmentId" : {
"$ref" : "#/components/schemas/String"
},
"shipmentDate" : {
"$ref" : "#/components/schemas/Date"
},
"contractNumber" : {
"$ref" : "#/components/schemas/String"
},
"contractDate" : {
"$ref" : "#/components/schemas/Date"
},
"salesOrderNumber" : {
"$ref" : "#/components/schemas/String"
},
"salesOrderDate" : {
"$ref" : "#/components/schemas/Date"
},
"deliveryNoteNumber" : {
"$ref" : "#/components/schemas/String"
},
"deliveryNoteDate" : {
"$ref" : "#/components/schemas/Date"
},
"warehouseReceiptNumber" : {
"$ref" : "#/components/schemas/String"
},
"warehouseReceiptDate" : {
"$ref" : "#/components/schemas/Date"
},
"commercialInvoiceNumber" : {
"$ref" : "#/components/schemas/String"
},
"commercialInvoiceDate" : {
"$ref" : "#/components/schemas/Date"
},
"packingListNumber" : {
"$ref" : "#/components/schemas/String"
},
"packingListDate" : {
"$ref" : "#/components/schemas/Date"
},
"deliveryTicketNumber" : {
"$ref" : "#/components/schemas/String"
},
"deliveryTicketDate" : {
"$ref" : "#/components/schemas/Date"
},
"proformaInvoiceNumber" : {
"$ref" : "#/components/schemas/String"
},
"proformaInvoiceDate" : {
"$ref" : "#/components/schemas/Date"
},
"transactionId" : {
"$ref" : "#/components/schemas/String"
},
"transactionDate" : {
"$ref" : "#/components/schemas/Date"
},
"orderReleaseNumber" : {
"$ref" : "#/components/schemas/String"
},
"orderReleaseDate" : {
"$ref" : "#/components/schemas/Date"
},
"raisedBy" : {
"$ref" : "#/components/schemas/String"
},
"supplierReference" : {
"$ref" : "#/components/schemas/String"
},
"workOrderNumber" : {
"$ref" : "#/components/schemas/String"
},
"proformaOrderNumber" : {
"$ref" : "#/components/schemas/String"
},
"allocationNumber" : {
"$ref" : "#/components/schemas/String"
},
"supplierOrderNumber" : {
"$ref" : "#/components/schemas/String"
}
}
},
"ItemIdentificationAttributes" : {
"type" : "object",
"properties" : {
"europeanArticleNumber" : {
"$ref" : "#/components/schemas/String"
},
"lotNumber" : {
"$ref" : "#/components/schemas/String"
},
"catalogueNumber" : {
"$ref" : "#/components/schemas/String"
},
"partNumber" : {
"$ref" : "#/components/schemas/String"
},
"packUniversalProductCode" : {
"$ref" : "#/components/schemas/String"
},
"materialNumber" : {
"$ref" : "#/components/schemas/String"
},
"productNumber" : {
"$ref" : "#/components/schemas/String"
},
"lineNumber" : {
"$ref" : "#/components/schemas/String"
},
"itemNumber" : {
"$ref" : "#/components/schemas/String"
},
"factoryItemNumber" : {
"$ref" : "#/components/schemas/String"
},
"supplierItemNumber" : {
"$ref" : "#/components/schemas/String"
},
"articleNumber" : {
"$ref" : "#/components/schemas/String"
},
"barcode" : {
"$ref" : "#/components/schemas/String"
},
"stockKeepingUnitNumber" : {
"$ref" : "#/components/schemas/String"
},
"globalLocationNumber" : {
"$ref" : "#/components/schemas/String"
},
"batchNumber" : {
"$ref" : "#/components/schemas/String"
},
"universalProductCode" : {
"$ref" : "#/components/schemas/String"
}
}
},
"ItemAttributes" : {
"type" : "object",
"properties" : {
"style" : {
"$ref" : "#/components/schemas/String"
},
"color" : {
"$ref" : "#/components/schemas/String"
},
"shade" : {
"$ref" : "#/components/schemas/String"
},
"size" : {
"$ref" : "#/components/schemas/String"
},
"hsCode" : {
"$ref" : "#/components/schemas/String"
},
"hsCodeOrigin" : {
"$ref" : "#/components/schemas/String"
},
"hsCodeDestination" : {
"$ref" : "#/components/schemas/String"
},
"commodity" : {
"$ref" : "#/components/schemas/String"
},
"countryOfOrigin" : {
"$ref" : "#/components/schemas/CountryCode"
}
}
},
"Integer" : {
"type" : "integer",
"format" : "int64"
},
"Money" : {
"required" : [ "amount" ],
"type" : "object",
"properties" : {
"amount" : {
"minimum" : 0,
"type" : "number",
"format" : "decimal"
},
"currency" : {
"type" : "string",
"format" : "iso-4217"
}
}
},
"UnLocationCode" : {
"pattern" : "[A-Z]{2}[A-Z0-9]{3}",
"type" : "string",
"description" : "Standardized code for trade and transport locations including seaports and airports"
},
"Incoterms" : {
"type" : "string",
"description" : "Internationally recognized delivery terms for commercial contracts published by the ICC\nPossible values: `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`",
"x-extensible-enum" : [ "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" ]
},
"DateWindow" : {
"type" : "object",
"properties" : {
"startDate" : {
"$ref" : "#/components/schemas/Date"
},
"endDate" : {
"$ref" : "#/components/schemas/Date"
}
}
},
"AmountAndUnit" : {
"required" : [ "amount" ],
"type" : "object",
"properties" : {
"amount" : {
"minimum" : 0,
"type" : "number",
"format" : "decimal"
},
"unit" : {
"maxLength" : 3,
"minLength" : 1,
"type" : "string"
}
}
},
"OrderAttributes" : {
"properties" : {
"orderIdentification" : {
"allOf" : [ {
"$ref" : "#/components/schemas/OrderIdentificationKeyAttributes"
}, {
"type" : "object",
"properties" : {
"orderType" : {
"$ref" : "#/components/schemas/String"
},
"rebuyerOrder" : {
"type" : "boolean"
},
"xdocksOrder" : {
"type" : "boolean"
}
}
} ]
},
"itemIdentification" : {
"$ref" : "#/components/schemas/ItemIdentificationAttributes"
},
"itemAttributes" : {
"$ref" : "#/components/schemas/ItemAttributes"
},
"productCategories" : {
"type" : "object",
"properties" : {
"productCategory" : {
"$ref" : "#/components/schemas/String"
},
"productClass" : {
"$ref" : "#/components/schemas/String"
},
"productSegment" : {
"$ref" : "#/components/schemas/String"
},
"productFamily" : {
"$ref" : "#/components/schemas/String"
},
"gender" : {
"$ref" : "#/components/schemas/String"
},
"materialGroup" : {
"$ref" : "#/components/schemas/String"
},
"productGroup" : {
"$ref" : "#/components/sch
# --- truncated at 32 KB (60 KB total) ---
# Full source: https://raw.githubusercontent.com/api-evangelist/kuehne-nagel/refs/heads/main/openapi/kuehne-nagel-purchase-order-management-v3-openapi.json