openapi: 3.2.0 info: title: IntermodalTransportExecution Assigned Consignments API description: 'This API enables Intermodal subcontractors who transport containers via truck, rail, and barge for Kuehne+Nagel to receive details about assigned consignments, including job details and instructions. It also allows them to provide status updates and proof of pickup/delivery on these consignments. To use this API, subcontractors must be registered and set up as an API user within our Intermodal TMS. Please discuss registration with your Kuehne+Nagel Intermodal operations point of contact.' contact: name: Global TOPS API Support url: https://home.kuehne-nagel.com/en/service-request-api?lead_topic=intermodal-transport-execution email: tops-technical@kuehne-nagel.com version: v1 x-api-id: b576b932-7583-4076-838b-32d6064a8a2d x-api-guideline-version: 1.11.7 x-api-version: 1.0.0 servers: - url: https://gateway.api.kuehne-nagel.com/transport/execution/pickup-and-delivery/sea/v1 - url: http://gateway.api.kuehne-nagel.com:8280/transport/execution/pickup-and-delivery/sea/v1 security: - default: [] tags: - name: Assigned Consignments paths: /assigned-consignments: parameters: - name: X-KN-Country-Code in: header description: Unique country identifier for a specific Kuehne+Nagel Operating Company. required: true style: simple explode: false schema: $ref: '#/components/schemas/CountryCode' - name: X-KN-Request-ID in: header description: 'UUID identifying the request which will be generated by the client. ' required: true style: simple explode: false schema: $ref: '#/components/schemas/RequestId' - name: cursor in: query description: Leave the cursor parameter empty to fetch newly assigned consignments and/or new updates to previously assigned consignments are returned. Provide a specific cursor value when you want to reprocess consignments from previous API calls. required: false style: form explode: true schema: maxLength: 32 pattern: ^[0-9A-Za-z]+$ type: string example: 4kudW8z78FZyD8IQjxaVeX get: tags: - Assigned Consignments summary: Retrieve assigned consignments description: 'Retrieves assigned consignments for a subcontractor from a specific Kuehne+Nagel Intermodal department. **Note:** A 204 No Content response (with no body) is returned when there are no new or updated consignments available. Refer to the API Guide in the Documents section for details. ' operationId: subcontractorexporttrunk responses: '200': description: Success headers: X-KN-Request-ID: description: The same UUID that was originally provided by the client to identify the request. style: simple explode: false schema: $ref: '#/components/schemas/RequestId' content: application/json: schema: $ref: '#/components/schemas/AssignedConsignmentsResponse' default: description: Error occurred - see status code and problem object for more information. headers: X-KN-Request-ID: description: The same UUID that was originally provided by the client to identify the request. style: simple explode: false schema: $ref: '#/components/schemas/RequestId' content: application/problem+json: schema: $ref: '#/components/schemas/Problem' security: - default: [] x-auth-type: Application & Application User x-throttling-tier: Unlimited components: schemas: Job: required: - action - contact - id - jobType - trunkBranch - uniqueTransportReference - waypoints type: object properties: action: $ref: '#/components/schemas/Action' id: maxLength: 50 type: string description: A unique identifier of the job. This reference should be included in your request (Status/GPS) messages. example: 1525808-1690222-918 uniqueTransportReference: maxLength: 20 type: string description: A unique reference of Kuehne+Nagel's transport order. This reference should be included in your request (Status/GPS) messages. example: 9071410039-01 purchaseOrderNumber: maxLength: 50 type: string description: The reference of jobs purchase order. Usually used as reference on invoices updated via tradeshift. example: 00109071410039, jobType: maxLength: 3 type: string description: Specifies type of job.The values allowed are IMP = Import, EXP = Export, REP = Reposition or DOM = Domestic. example: IMP x-extensible-enum: - IMP - EXP - REP - DOM internalJobIdentifier: maxLength: 100 type: string description: Kuehne+Nagel's internal job reference. example: 3251618276 0883 trunkBranch: maxLength: 10 type: string description: The specific branch of Kuehne+Nagel to which the job belongs. example: ROTTERDAM movementMode: maxLength: 3 type: string description: Indicates whether the container is full or empty. Allowed values are FUL = Full or EMP = Empty. example: FUL x-extensible-enum: - FUL - EMP jobCategoryCode: maxLength: 3 type: string description: Kuehne+Nagel country specific coded category of job. example: STD voyage: type: object properties: vesselName: maxLength: 60 type: string description: Name of the Vessel. example: HAMBURG EXPRESS vesselVoyageNumber: maxLength: 30 type: string description: Vessel voyage number. example: 516S reference: maxLength: 30 type: string description: Vessel voyage reference. example: HLCU1234567 vesselEtdEta: type: string description: The vessel's Estimated Time of Arrival (ETA) for imports and Estimated Time of Departure (ETD) for exports. format: date-time example: '2025-04-28T11:14:55Z' hasVesselArrived: type: boolean description: Vessel arrival to the port flag. example: true containerStatus: type: object properties: containerLandedDate: type: string description: The date and time of container landed from vessel. format: date-time example: '2025-04-28T11:14:55Z' customsClearedDate: type: string description: The date and time of customs clearance at the port. format: date-time example: '2025-04-28T11:14:55Z' containerAvailableDate: type: string description: The date and time when the container is available for pickup. format: date-time example: '2025-04-28T11:14:55Z' demurrageStartDate: type: string description: The date and time when demurrage starts. format: date-time example: '2025-04-28T11:14:55Z' detentionStartDate: type: string description: The date and time when detention starts. format: date-time example: '2025-04-28T11:14:55Z' containerYardOpeningDate: type: string description: Opening date/time of the Container Yard for this Job. format: date-time example: '2025-03-10T00:00:00Z' containerYardClosingDate: type: string description: Closing date/time of the Container Yard for this Job. format: date-time example: '2025-04-28T00:00:00Z' isRoundTrip: type: boolean description: Is Job a Round Trip? (true/false). example: true driverInstructions: maxLength: 2000 type: string description: Specific instruction to driver related to job. May include the ePOD applications URL. example: Please wear safety shoes at the customer's warehouse. Ensure the reefer genset remains on at all times. isOutOfGauge: type: boolean description: Is container oversized? (true/false). example: false outOfGaugeComments: maxLength: 255 type: string description: Any specific comments for oversized container. containerTypeCode: maxLength: 4 type: string description: Code of the container type. These Codes are Kuehne+Nagel specific hence please refer the documentation for equivalent ISO codes. example: 40HR containerNumber: maxLength: 11 pattern: ^[A-Za-z]{3}[A-Za-z][0-9]{7}$|^[0-9]{1,3}$ type: string description: Container Number example: KNBA3718435 isBackEnd: type: boolean description: Should container be loaded on the back end of the trailer (true/false). Used mostly for 20' container or Combine Type "TWN" isGenSet: type: boolean description: Is Genset required? (true/false). example: true cargoDescription: maxLength: 255 type: string description: General cargo description. example: Battery Cells containerSealNumber: maxLength: 255 type: string description: Seal Number(s) on Container. example: G2382564, A1234567 numberOfPackages: type: integer description: Number of packages inside container. format: int64 example: 120 packageTypeCode: maxLength: 10 type: string description: Coded Package Type inside container. example: CTN packageTypeDescription: maxLength: 20 type: string description: Name of Package Type inside of the container. example: Carton grossWeight: $ref: '#/components/schemas/Weight' netWeight: $ref: '#/components/schemas/Weight' maxTemp: $ref: '#/components/schemas/Temperature' minTemp: $ref: '#/components/schemas/Temperature' transportMode: maxLength: 3 type: string description: Indicates the required mode of transport for executing the job. Permissible values are ROA = Road, RAI = Rail, BAR = Barge, AIR = Air or SEA = Sea. example: ROA x-extensible-enum: - ROA - RAI - BAR - AIR - SEA viaTerminal: maxLength: 20 type: string description: The terminal used for transferring containers between different modes of transport, particularly in rail or barge movements. example: Rotterdam lineBlNumber: maxLength: 20 type: string description: The shipping line Bill of Lading number. example: CTD12312378 scacCode: maxLength: 4 type: string description: The Standard Carrier Alpha Code (SCAC) of the shipping line. example: HLCU customsProcedure: maxLength: 180 type: string description: The customs procedure name. example: CustomsClearance + T1 customsNumber: maxLength: 180 type: string description: The customs number. example: 25DE2452DDA0003BR4 customsReference: maxLength: 180 type: string description: The customs reference number. example: ATB151291380320254851 isGgedRequired: type: boolean description: Indicates whether GGED Certificate is required for Food shipments (true/false). example: false customsDatas: maxItems: 1000 type: array items: $ref: '#/components/schemas/CustomsData' customsPlace: $ref: '#/components/schemas/CustomsPlace' originCountryOfGoods: maxLength: 30 type: string description: Country of origin of the goods. example: UNITED STATES contact: type: object properties: name: maxLength: 25 type: string description: Name of the operations contact person responsible for this job. example: Jack Reacher telephone: maxLength: 30 type: string description: Telephone number of the operations contact person responsible for this job. format: E.164 example: +144-123-456-7890 email: maxLength: 50 type: string description: Email address of the operations contact person responsible for this job. waypoints: maxItems: 100 type: array items: $ref: '#/components/schemas/Waypoint' hazards: maxItems: 200 type: array items: $ref: '#/components/schemas/Hazard' portOfLoading: maxLength: 5 type: string description: Port of loading UN Location code. example: CNYTN portOfDischarge: maxLength: 5 type: string description: Port of discharge UN Location code. example: DEHAM finalDestination: maxLength: 20 type: string description: Port of Final Destination UN Location Code example: NLRTM rates: maxItems: 1000 type: array items: $ref: '#/components/schemas/Rate' Address: type: object properties: address1: maxLength: 50 type: string description: Address line 1 of the address. example: 221B Baker Street address2: maxLength: 50 type: string description: Address line 2 of the address. example: Marylebone address3: maxLength: 50 type: string description: Address line 3 of the address. example: Sherlock Holmes Museum town: maxLength: 50 type: string description: Town of the address. example: London postCode: maxLength: 8 type: string description: Postcode of the address. example: NW1 6XE county: maxLength: 30 type: string description: County/State of the address. example: Greater London countryCode: maxLength: 3 type: string description: ISO Country code of the address. example: GBR latitude: type: number description: Latitude coordinate of the address. format: float example: 51.523751 longitude: type: number description: Longitude coordinate of the address. format: float example: -0.158555 Temperature: type: object properties: value: type: number description: The temperature value. format: float example: -10 units: maxLength: 10 type: string description: Temperature measure unit. example: deg C Action: maxLength: 6 type: string description: Specifies the action performed, one of INSERT/UPDATE/DELETE. example: INSERT x-extensible-enum: - INSERT - UPDATE - DELETE CustomsPlace: type: object properties: locationName: maxLength: 60 type: string description: Name of the customs location. example: Custom House address: $ref: '#/components/schemas/Address' Weight: type: object properties: value: type: number description: Value of weight. format: float example: 28300 units: maxLength: 10 type: string description: Unit of weight. example: KG 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: maxLength: 50 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.\n example: Service Unavailable status: minimum: 100 type: integer description: The HTTP status code generated by the origin server for this occurrence of the problem.\n format: int32 example: 503 exclusiveMaximum: 600 detail: maxLength: 500 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.\n 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.\n format: uri-reference example: /problem/connection-error#token-info-read-timed-out CountryCode: maxLength: 5 type: string description: 'Unique country identifier for a specific Kuehne+Nagel Operating Company. ' example: DE Rate: required: - amount - chargeTypeCode type: object properties: amount: $ref: '#/components/schemas/Amount' chargeTypeCode: maxLength: 10 type: string description: Charge Type Code of the rate. example: '156' chargeTypeDescription: maxLength: 20 type: string description: Charge Type Description of the rate. example: TRANSPORTATION Waypoint: required: - activity - id - locationAddress - locationName type: object properties: id: maxLength: 20 type: integer description: Unique identifier for the waypoint. This reference should be included in your status request messages. format: int32 example: 6606341 activity: maxLength: 3 type: string description: Indicates the type of waypoints. The values allowed are LOA = Load, C/D = Collect or Delivery, CUS = Customs, UNL = Unload or VGM = Verified Gross Mass. example: LOA x-extensible-enum: - LOA - C/D - CUS - UNL - VGM date: type: string description: Date of visit to the waypoint (YYYY-MM-DD). format: date time: type: string description: Time of visit to the waypoint (HH:MM:SS). format: time example: '11:14:55' reference: maxLength: 50 type: string description: Any reference belong to the waypoint. example: '495677' referenceExpiryDate: type: string description: Expiry date of the reference. format: date isOnOffHire: type: boolean description: Indicates whether the container is on or off hire. terminalCode: maxLength: 6 type: string description: If Location is a Port, the Terminal Code is output. example: EGHAM depotCode: maxLength: 6 type: string description: If Location is a Depot, the Depot Code is output. example: EGHAM unLocationCode: maxLength: 6 type: string description: UN Location Code of the waypoint. example: DBIDST locationName: maxLength: 60 type: string description: Name of the waypoint location. example: EUROGATE CONTAINER TERMINAL HAMBURG locationAddress: $ref: '#/components/schemas/Address' instructions: maxLength: 255 type: string description: Specific instructions related to waypoint. example: EMA:cust@customer-company.com RequestId: maxLength: 36 type: string description: 'UUID identifying the request which will be generated by the client. ' format: uuid example: 019a1641-02a3-7a08-a83b-de93c338ed0e AssignedConsignmentsResponse: type: object properties: self: type: string description: Current or requested page. format: uri example: https://gateway.api-staging.kuehne-nagel.com/transport/execution/pickup-and-delivery/sea/v1/assigned-consignments?cursor=4kudW8z78FZyD8IQjxaVeX prev: type: string description: the page before the current or requested page. format: uri example: https://gateway.api-staging.kuehne-nagel.com/transport/execution/pickup-and-delivery/sea/v1/assigned-consignments?cursor=63FP5Jy351AIv3CqC5oNg4 next: type: string description: the page after the current or requested page. It'll be null if the last page from the provisioned page table from database. format: uri example: https://gateway.api-staging.kuehne-nagel.com/transport/execution/pickup-and-delivery/sea/v1/assigned-consignments?cursor=0Ocf5uCUN23ZerO6aULyU6 hasMorePage: type: boolean description: Indicates if there are more pages available in the result set. example: false consignments: maxItems: 50 type: array items: $ref: '#/components/schemas/Consignment' Amount: type: object properties: value: type: number description: Amount value. format: double example: 100 currency: maxLength: 3 type: string description: Currency of the amount. example: EUR Hazard: type: object properties: unNumber: maxLength: 10 type: string description: UN Number of the hazardous material. example: '3480' imoClass: maxLength: 5 type: string description: IMO Class of the hazardous material. example: '9' adrHin: maxLength: 8 type: string description: ADR Hazard Identification Number of the hazardous material. example: '90' adrNumber: maxLength: 10 type: string description: ADR Number of the hazardous material. example: '3480' eac: maxLength: 8 type: string description: Emergency Action Code of the hazardous material. example: 2Z packingGroup: maxLength: 4 type: string description: Packing Group of the hazardous material. example: II tremcardNumber: maxLength: 20 type: string description: Tremcard (Transport Emergency Card) Number of the hazardous material. example: '1234' limitedQuantity: type: boolean description: Indicates if the hazardous material is a limited quantity. example: true limitedQuantityMaximum: maxLength: 10 type: string description: Maximum limited quantity of the hazardous material. example: '12' emergencyContact: maxLength: 30 type: string description: Emergency contact for the hazardous material. example: Emergency Contact, Emergency C flashPoint: type: object properties: value: maxLength: 25 type: string description: Flash point value of the hazardous material. example: '198' units: maxLength: 1 type: string description: Unit of measurement for flash point. example: C marinePollutant: type: boolean description: Indicates if the hazardous material is a marine pollutant. example: false outerPackagesQuantity: type: integer description: Number of outer packages of the hazardous material. format: int64 example: 60 outerPackagesType: maxLength: 20 type: string description: Type of outer packages of the hazardous material. example: CTN innerPackagesQuantity: type: integer description: Number of inner packages of the hazardous material. format: int64 example: 10 innerPackagesType: maxLength: 20 type: string description: Type of inner packages of the hazardous material. example: PKG description: maxLength: 100 type: string description: Description of the hazardous material. example: Lithium-Ion Battery Cells chemicalName: maxLength: 200 type: string description: Chemical name of the hazardous material. example: Lithium Cobalt Oxide ibcCode: maxLength: 8 type: string description: IBC Code of the hazardous material. example: UN1090 sadt: type: object properties: value: maxLength: 6 type: string description: Self-Accelerating Decomposition Temperature value of the hazardous material. example: '153' units: maxLength: 1 type: string description: Unit of measurement of temperature. example: C grossWeight: type: object properties: value: type: number description: Gross weight of the hazardous material. format: float example: 22020 units: maxLength: 4 type: string description: Unit of measurement for gross weight. example: KGS netWeight: type: object properties: value: type: number description: Net weight of the hazardous material. format: float example: 20568 units: maxLength: 4 type: string description: Unit of measurement for net weight. example: KGS tunnelCode: maxLength: 10 type: string description: Tunnel Code of the hazardous material. example: E nad: maxLength: 6 type: string description: NAD number of the hazardous material. example: NAD concentration: maxLength: 6 type: string description: Concentration of the hazardous material. example: 12% ems: maxLength: 8 type: string description: Emergency Response Procedures for Ships Carrying Dangerous Goods including the Emergency Schedules. example: 1-01 segregation: maxLength: 50 type: string description: Segregation description of the hazardous material. example: 7.2.4 comments: maxLength: 512 type: string description: Comments related to the hazardous material. example: Hazardous Comments isExceptedQuantity: type: boolean description: Indicates if the hazardous material is an excepted quantity. example: false neqVolume: type: number description: Net Explosive Quantity Volume of the hazardous material. format: float example: 0 subRisk1: maxLength: 5 type: string description: Sub Risk 1 of the hazardous material. example: 1.2G subRisk2: maxLength: 5 type: string description: Sub Risk 2 of the hazardous material. example: '6.1' subRisk3: maxLength: 5 type: string description: Sub Risk 3 of the hazardous material. example: '8' handlingComments: maxLength: 500 type: string description: Specific handling instructions related to the hazardous material. Consignment: required: - action - assignedDateTime - id - jobs - recipientUniqueShortName - senderBranch - senderCompanyName type: object properties: assignedDateTime: type: string description: The date and time when the consignment was assigned to the respective haulier in our system. format: date-time example: '2025-09-24T10:30:00Z' action: $ref: '#/components/schemas/Action' id: maxLength: 50 type: string description: A unique identifier of the consignment. example: 1690222-918 haulageType: maxLength: 3 type: string description: Specifies the type of haulage, can be either Container "CON" or General "GEN". example: CON x-extensible-enum: - CON - GEN isProvisional: type: boolean description: Indicates whether the consignment is provisional. example: false recipientUniqueShortName: maxLength: 8 type: string description: Indicates the internal identifier of the recipient. This reference should be included in your request (Status/GPS) messages. example: VRTRAN senderCompanyName: maxLength: 100 type: string description: Specifies the trading name of Kuehne+Nagel's regional entity. This name must be used on invoices. example: Kuehne+Nagel (AG & Co.) KG senderCompanyAddress: $ref: '#/components/schemas/Address' senderBranch: maxLength: 20 type: string description: The branch of Kuehne+Nagel's entity assigning the consignment. example: BREMEN truckName: maxLength: 20 type: string description: Name of the truck as define by Kuehne+Nagel Intermodal. example: BALTRUCK-01 truckLicensePlate: maxLength: 12 type: string description: Truck license plate number. example: HH VR 2025 trailerLicensePlate: maxLength: 20 type: string description: Trailer registration allocated to this consignment. example: 12345TR trailerSupplier: maxLength: 50 type: string description: Trailer Supplier Name. example: Blue Anchor Line Trailer trailerSource: maxLength: 10 type: string description: Whether the trailer is from "Pool" or "Private". example: Pool combineType: maxLength: 3 type: string description: If multiple Jobs have been combined into the same Consignment, this defines that combination. The values allowed are, GEN = General, RLD = Reload or TWN = Twin. x-extensible-enum: - TWN - RLD - GEN jobs: maxItems: 100 minItems: 1 type: array items: $ref: '#/components/schemas/Job' CustomsData: type: object properties: itemNo: type: integer description: Item number of the customs data. format: int32 example: 1 customsReference: maxLength: 30 type: string description: Customs reference number. example: ATB151291380320254851 pieces: type: integer description: Number of pieces in the customs data. format: int32 example: 12 packageTypeCode: maxLength: 10 type: string description: Coded Package Type inside container. example: CTN weight: $ref: '#/components/schemas/Weight' description: maxLength: 100 type: string description: Description of the cargo mentioned in customs data. example: Cathode hsCode: maxLength: 20 type: string description: Harmonized System Code (HS) of the cargo mentioned in customs data. example: '85065090' amount: $ref: '#/components/schemas/Amount' ata: maxLength: 30 type: string description: ATA number of the cargo mentioned in customs data. example: ATA123456789 atb: maxLength: 30 type: string description: ATB number of the cargo mentioned in customs data. example: ATB123456789 atc: maxLength: 30 type: string description: ATC number of the cargo mentioned in customs data. example: ATC123456789 securitySchemes: default: type: oauth2 flows: implicit: authorizationUrl: https://gateway.api.kuehne-nagel.com/authorize scopes: {} x-wso2-api-key-header: ApiKey