openapi: 3.2.0 info: title: PurchaseOrderManagement Purchase Order Layer API description: 'This API is part of the Kuehne+Nagel API layer. It manages purchase orders for external partners. To use this API you must be registered and set up as an API user. Processing of purchase order data depends on the customer''s eSOP order configuration in K+N ESP. Order attributes which are configured to be header attributes for the customer are stored in the `orderHeader` property of purchase order requests and responses. Order attributes that are not header attributes are stored in their respective purchase order lines. Customer''s order attributes that are put into the wrong place are ignored. Missing attributes, like any attribute with an incompleteness violation, are reported back in the `incomplete` property of the response message. Order attributes can be configured to auto-apply changes from the supplier during order acceptance. Such attributes do not accept changes from the customer after they have been set by the supplier. Update requests from a customer are successful, even if a change to an auto-apply attribute is rejected due to this business rule. The endpoints of this API are designed to handle more than one purchase order per request. A request with more than one order is considered a bulk order that is processed asynchronously by K+N''s ESP system, provided it passes the initial validation for syntactical correctness. A request with a single purchase order will be handled synchronously returning the result of the request as its response. As a client check for HTTP Status `202 Accepted` to distinguish the asynchronous from the synchronous case. Bulk orders are limited in size to ensure error-free and fair processing of orders from all clients. In order to be able to adapt the limits to the current system load, they are not defined as an upper limit in the OpenAPI specification. Details of the limitations are described in the respective operation. ' 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: [] tags: - name: purchase-order-layer 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. ' 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. ' 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. ' 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. ' 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: ReadPurchaseOrdersRequest: required: - purchaseOrderNumbers type: object properties: purchaseOrderNumbers: minItems: 1 type: array items: $ref: '#/components/schemas/String' OrderLineRequest: type: object properties: attributes: $ref: '#/components/schemas/OrderAttributes' additionalReferences: type: array items: $ref: '#/components/schemas/AdditionalReferencesRequest' Money: required: - amount type: object properties: amount: minimum: 0 type: number format: decimal currency: type: string format: iso-4217 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' Cancellation: required: - purchaseOrderNumber type: object properties: purchaseOrderNumber: $ref: '#/components/schemas/String' purchaseOrderLineRefs: type: array items: $ref: '#/components/schemas/KeyAttributes' AmountAndUnit: required: - amount type: object properties: amount: minimum: 0 type: number format: decimal unit: maxLength: 3 minLength: 1 type: string BulkReadResponse: type: object properties: purchaseOrders: minItems: 1 type: array items: $ref: '#/components/schemas/PurchaseOrderResponse' problems: minItems: 1 type: array items: $ref: '#/components/schemas/Problem' UpdatePurchaseOrdersRequest: required: - purchaseOrders type: object properties: purchaseOrders: minItems: 1 type: array items: $ref: '#/components/schemas/RequestPurchaseOrder' Incoterms: type: string description: 'Internationally recognized delivery terms for commercial contracts published by the ICC Possible 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 CustomerCode: pattern: ^[A-Z]{5}[0-9]{2}$ type: string description: Unique identifier assigned to a customer ResponsePurchaseOrder: required: - purchaseOrderNumber type: object properties: purchaseOrderNumber: $ref: '#/components/schemas/String' parties: $ref: '#/components/schemas/Parties' orderHeader: $ref: '#/components/schemas/OrderAttributes' orderLines: minItems: 1 type: array items: $ref: '#/components/schemas/OrderLineResponse' DateWindow: type: object properties: startDate: $ref: '#/components/schemas/Date' endDate: $ref: '#/components/schemas/Date' Problem: required: - detail - title type: object properties: type: type: string description: 'A URI reference that uniquely identifies the problem type only in the context of the provided API. Opposed to the specification in RFC-7807, it is neither recommended to be dereferencable and point to a human-readable documentation nor globally unique for the problem type. ' format: uri-reference example: /problem/connection-error default: about:blank title: type: string description: 'A short summary of the problem type. Written in English and readable for engineers, usually not suited for non technical stakeholders and not localized. ' example: Service Unavailable status: minimum: 100 type: integer description: 'The HTTP status code generated by the origin server for this occurrence of the problem. ' format: int32 example: 503 exclusiveMaximum: 600 detail: type: string description: 'A human readable explanation specific to this occurrence of the problem that is helpful to locate the problem and give advice on how to proceed. Written in English and readable for engineers, usually not suited for non technical stakeholders and not localized. ' example: Connection to database timed out instance: type: string description: 'A URI reference that identifies the specific occurrence of the problem, e.g. by adding a fragment identifier or sub-path to the problem type. May be used to locate the root of this problem in the source code. ' format: uri-reference example: /problem/connection-error#token-info-read-timed-out Integer: type: integer format: int64 CountryCode: type: string format: iso-3166 OrderLineResponse: allOf: - $ref: '#/components/schemas/OrderAttributes' - required: - state type: object properties: state: type: string description: 'Possible values: `ACTIVE`, `INCOMPLETE`, `CANCELLED`' x-extensible-enum: - ACTIVE - INCOMPLETE - CANCELLED additionalReferences: type: array items: $ref: '#/components/schemas/AdditionalReferencesResponse' RequestPurchaseOrder: required: - purchaseOrderNumber type: object properties: purchaseOrderNumber: $ref: '#/components/schemas/String' parties: $ref: '#/components/schemas/Parties' orderHeader: $ref: '#/components/schemas/OrderHeaderRequest' orderLines: minItems: 1 type: array items: $ref: '#/components/schemas/OrderLineRequest' 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' String: minLength: 1 type: string 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' PurchaseOrderResponse: required: - purchaseOrder type: object properties: purchaseOrder: $ref: '#/components/schemas/ResponsePurchaseOrder' incompleteness: minItems: 1 type: array items: $ref: '#/components/schemas/Incompleteness' 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' 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' AdditionalReferencesRequest: type: object properties: referenceCode: type: string referenceValues: minItems: 1 type: array items: type: string Date: type: string format: date 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' CreatePurchaseOrdersRequest: required: - purchaseOrders type: object properties: purchaseOrders: minItems: 1 type: array items: $ref: '#/components/schemas/RequestPurchaseOrder' 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' Incompleteness: required: - detail - title - violationAttribute - violationType type: object properties: type: type: string description: 'A URI reference that uniquely identifies the incompleteness type only in the context of the provided API. Opposed to the specification in RFC-7807, it is neither recommended to be dereferencable and point to a human-readable documentation nor globally unique for the problem type. ' format: uri-reference example: /purchase-order/incomplete/line default: about:blank title: type: string description: 'A short summary of the incompleteness type. Written in English and readable for engineers, usually not suited for non technical stakeholders and not localized. ' example: Incomplete order line detail: type: string description: 'A human readable explanation specific to this occurrence of the problem that is helpful to locate the problem and give advice on how to proceed. Written in English and readable for engineers, usually not suited for non technical stakeholders and not localized. ' instance: type: string description: 'A URI reference that identifies the specific occurrence of the problem, e.g. by adding a fragment identifier or sub-path to the problem type. May be used to locate the root of this problem in the source code. ' format: uri-reference example: '#/orderLines/0' violationAttribute: type: string description: 'The identifier of the offending attribute ' example: orderIdentification.invoiceNumber violationType: type: string description: 'Possible values: `ATTRIBUTE_MISSING`, `INVALID_VALUE`, `CUSTOM`, `ORDER_HEADER_ATTRIBUTE`' x-extensible-enum: - ATTRIBUTE_MISSING - INVALID_VALUE - CUSTOM - ORDER_HEADER_ATTRIBUTE violationValue: type: string description: 'The value attempted to be assigned to the offending attribute (provided in case of violationType INVALID_VALUE) ' CancelPurchaseOrderLinesRequest: required: - cancellations type: object properties: cancellations: minItems: 1 type: array items: $ref: '#/components/schemas/Cancellation' BusinessParty: allOf: - $ref: '#/components/schemas/AdditionalParty' - required: - partyCode type: object UnLocationCode: pattern: '[A-Z]{2}[A-Z0-9]{3}' type: string description: Standardized code for trade and transport locations including seaports and airports 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/schemas/String' schedulingLine: $ref: '#/components/schemas/String' setAndSequenceNumber: $ref: '#/components/schemas/String' stockCategory: $ref: '#/components/schemas/String' composition: $ref: '#/components/schemas/String' seriesName: $ref: '#/components/schemas/String' seriesNumber: $ref: '#/components/schemas/String' productHandling: type: object properties: dangerousGoods: type: boolean polyamideAndMelamine: type: boolean imoDangerousGoodsCode: $ref: '#/components/schemas/String' oversizeIndicator: type: boolean overweightIndicator: type: boolean productionLeadDuration: $ref: '#/components/schemas/String' selfInspect: type: boolean orderPromotions: type: object properties: season: $ref: '#/components/schemas/String' advertisementCode: $ref: '#/components/schemas/String' advertisementDate: $ref: '#/components/schemas/Date' campaign: $ref: '#/components/schemas/String' cancelDate: $ref: '#/components/schemas/Date' eventCode: $ref: '#/components/schemas/String' processingDate: $ref: '#/components/schemas/Date' catalogueStatus: $ref: '#/components/schemas/String' catalogueEdition: $ref: '#/components/schemas/String' orderHandling: type: object properties: notes1Internal: $ref: '#/components/schemas/String' notes2Internal: $ref: '#/components/schemas/String' orderHandlingNotes: $ref: '#/components/schemas/String' termsAndConditionsNotes: $ref: '#/components/schemas/String' supplierNote: $ref: '#/components/schemas/String' factoryNote: $ref: '#/components/schemas/String' priorityFlag: type: boolean orderReleased: type: boolean fumigationRequired: type: boolean qualityCheckRequired: type: boolean qualityCheckPassed: type: boolean serviceLevel: $ref: '#/components/schemas/String' orderStatus: $ref: '#/components/schemas/String' warehouseReceiptStatus: $ref: '#/components/schemas/String' deliveryCompleteStatus: type: boolean typeOfCertificateRequired: $ref: '#/components/schemas/String' orderTerms: type: object properties: dutyPercentage: $ref: '#/components/schemas/Integer' paymentMethod: $ref: '#/components/schemas/String' paymentTerms: $ref: '#/components/schemas/String' letterOfCreditNumber: $ref: '#/components/schemas/String' letterOfCredit: $ref: '#/components/schemas/Money' letterOfCreditDate: $ref: '#/components/schemas/Date' divisions: type: object properties: divisionCode: $ref: '#/components/schemas/String' division: $ref: '#/components/schemas/String' businessUnit: $ref: '#/components/schemas/String' purchasingGroup: $ref: '#/components/schemas/String' sourceChannel: $ref: '#/components/schemas/String' company: $ref: '#/components/schemas/String' costCenter: $ref: '#/components/schemas/String' operatingCompany: $ref: '#/components/schemas/String' purchaseOffice: $ref: '#/components/schemas/String' section: $ref: '#/components/schemas/String' department: $ref: '#/components/schemas/String' brand: $ref: '#/components/schemas/String' buyer: $ref: '#/components/schemas/String' merchandiser: $ref: '#/components/schemas/String' departmentCode: $ref: '#/components/schemas/String' merchandiseCategory: $ref: '#/components/schemas/String' supplyPlanner: $ref: '#/components/schemas/String' tradingTeam: $ref: '#/components/schemas/String' transportation: type: object properties: modeOfTransportation: type: string description: 'Possible values: `SEA`, `ROAD`, `AIR`' x-extensible-enum: - SEA - ROAD - AIR portOfEntry: $ref: '#/components/schemas/UnLocationCode' portOfLoading: $ref: '#/components/schemas/UnLocationCode' portOfDischarge: $ref: '#/components/schemas/UnLocationCode' placeOfDelivery: $ref: '#/components/schemas/String' countryOfDeparture: $ref: '#/components/schemas/CountryCode' countryOfDestination: $ref: '#/components/schemas/CountryCode' incoterms: $ref: '#/components/schemas/Incoterms' incotermsLocation: $ref: '#/components/schemas/String' carrier: $ref: '#/components/schemas/String' carrierContract: $ref: '#/components/schemas/String' shipmentType: type: string description: 'Possible values: `LCL`, `FCL`, `BCM`' x-extensible-enum: - LCL - FCL - BCM movement: $ref: '#/components/schemas/String' totalNumberOfContainers: $ref: '#/components/schemas/Integer' containerType: $ref: '#/components/schemas/String' dayOfDeliveryDate: $ref: '#/components/schemas/Date' originalDayOfDeliveryDate: $ref: '#/components/schemas/Date' bookingWindow: $ref: '#/components/schemas/DateWindow' originalBookingWindow: $ref: '#/components/schemas/DateWindow' originDeliveryWindow: $ref: '#/components/schemas/DateWindow' originalOriginDeliveryWindow: $ref: '#/components/schemas/DateWindow' shippingWindow: $ref: '#/components/schemas/DateWindow' originalShippingWindow: $ref: '#/components/schemas/DateWindow' arrivalWindow: $ref: '#/components/schemas/DateWindow' originalArrivalWindow: $ref: '#/components/schemas/DateWindow' destinationDeliveryWindow: $ref: '#/components/schemas/DateWindow' originalDestinationDeliveryWindow: $ref: '#/components/schemas/DateWindow' itemDetails: type: object properties: orderedQuantity: $ref: '#/components/schemas/AmountAndUnit' itemNetWeight: $ref: '#/components/schemas/AmountAndUnit' originalOrderedQuantity: $ref: '#/components/schemas/AmountAndUnit' packSize: $ref: '#/components/schemas/Integer' packageDetails: type: object properties: quantityPerPackage: $ref: '#/components/schemas/Integer' expectedNumberOfPackages: $ref: '#/components/schemas/AmountAndUnit' expectedPackageWeight: $ref: '#/components/schemas/AmountAndUnit' expectedPackageVolume: $ref: '#/components/schemas/AmountAndUnit' packageLength: $ref: '#/components/schemas/AmountAndUnit' packageWidth: $ref: '#/components/schemas/AmountAndUnit' packageHeight: $ref: '#/components/schemas/AmountAndUnit' itemPackaged: type: boolean packingStructure: type: object properties: quantityPerInnerPackage: $ref: '#/components/schemas/Integer' numberOfInnerPerOuter: $ref: '#/components/schemas/Integer' numberOfPackagesPerPallet: $ref: '#/components/schemas/Integer' pricing: type: object properties: totalOrderValue: $ref: '#/components/schemas/Money' buyingPrice: $ref: '#/components/schemas/Money' buyingPriceBase: $ref: '#/components/schemas/String' sellingPrice: $ref: '#/components/schemas/Money' ticketRetailPrice: $ref: '#/components/schemas/Money' msrp: $ref: '#/components/schemas/Money' originalBuyingPrice: $ref: '#/components/schemas/Money' destinationWarehouseHandling: type: object properties: casesPerPalletLayer: $ref: '#/components/schemas/Integer' layersPerPallet: $ref: '#/components/schemas/Integer' packType: $ref: '#/components/schemas/String' putawayUnitCode: $ref: '#/components/schemas/String' putawayUnitName: $ref: '#/components/schemas/String' customerSpecific: type: object properties: string1: $ref: '#/components/schemas/String' string2: $ref: '#/components/schemas/String' string3: $ref: '#/components/schemas/String' string4: $ref: '#/components/schemas/String' string5: $ref: '#/components/schemas/String' string6: $ref: '#/components/schemas/String' string7: $ref: '#/components/schemas/String' string8: $ref: '#/components/schemas/String' string9: $ref: '#/components/schemas/String' string10: $ref: '#/components/schemas/String' bool1: type: boolean bool2: type: boolean bool3: type: boolean bool4: type: boolean bool5: type: boolean bool6: type: boolean bool7: type: boolean bool8: type: boolean bool9: type: boolean bool10: type: boolean description: 'This section of order attributes contains the customer specific order attributes as defined by the customer''s order configuration. ' AdditionalParty: type: object properties: partyCode: $ref: '#/components/schemas/String' address: $ref: '#/components/schemas/Address' contactInformation: type: array items: $ref: '#/components/schemas/ContactInformation' CancelPurchaseOrderLinesResponse: type: object properties: alreadyCancelledPurchaseOrders: minItems: 1 type: array items: $ref: '#/components/schemas/String' OrderHeaderRequest: type: object properties: attributes: $ref: '#/components/schemas/OrderAttributes' additionalReferences: type: array items: $ref: '#/components/schemas/AdditionalReferencesRequest' KeyAttributes: properties: orderIdentification: $ref: '#/components/schemas/OrderIdentificationKeyAttributes' itemIdentification: $ref: '#/components/schemas/ItemIdentificationAttributes' itemAttributes: $ref: '#/components/schemas/ItemAttributes' AdditionalReferencesResponse: type: object properties: referenceCode: type: string referenceValues: minItems: 1 type: array items: type: string responses: default: description: Default Response for Error Cases content: application/problem+json: schema: $ref: '#/components/schemas/Problem' parameters: CustomerCodeParam: name: customerCode in: path description: The unique key of the customer who created the purchase order. required: true style: simple explode: false schema: $ref: '#/components/schemas/CustomerCode' securitySchemes: default: type: oauth2 flows: implicit: authorizationUrl: https://internal.api.kuehne-nagel.com/authorize scopes: {} api_key: type: apiKey name: apikey in: header