Kuehne+Nagel Proof of Delivery API

The Proof of Delivery API from Kuehne+Nagel — 1 operation(s) for proof of delivery.

Operations 1

POST /proof-of-deliveries/{jobId}/{waypointId} Submit proof of delivery #

Documentation

Specifications

Other Resources

Work with this as data

Every API here is available over the APIs.io API and to AI agents over MCP.

MCP server

One button, every client — Claude, Cursor, VS Code and the rest.

https://apis.io/mcp

Tools for apis

7 MCP tools reach this
  • find_apisBrowse and filter every API in the catalog.
  • get_api_artifactsOne API's artifacts, grouped by type.
  • get_openapiThe primary OpenAPI for this API.
  • find_similar_apisAPIs that look like this one.
  • apis_io_searchSTART HERE — APIs, providers and tags for one query, each with its total.
  • resolveTurn a domain, URL or GitHub org into the provider it belongs to.
  • find_cohortsEvery scored population of providers in the catalog.
All 92 tools →

Call it yourself

curl for this page
This API
curl "https://apis.io/api/v1/apis/kuehne-nagel-proof-of-delivery-api"
All apis
curl "https://apis.io/api/v1/apis?limit=25"

Discovery needs no key. Ratings and market analysis are Pro.

Get an API key

Free tier, no form to fill in. Signing in shares your email address with us — we store it to create your key and to recognise you if you sign in with another provider. See our Privacy Policy and Terms.

A second provider on the same verified email joins the account you already have.

OpenAPI Specification

kuehne-nagel-proof-of-delivery-api-openapi.yml Raw ↑
openapi: 3.2.0
info:
  title: IntermodalTransportExecution Proof of Delivery 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: Proof of Delivery
paths:
  /proof-of-deliveries/{jobId}/{waypointId}:
    post:
      tags:
      - Proof of Delivery
      summary: Submit proof of delivery
      description: Submits proof of delivery for a specific waypoint.
      operationId: subcontractorpodretrieval
      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: jobId
        in: path
        description: Unique identifier of the assigned consignment job. This value can be found in consignment.job.id from the AssignedConsignment response.
        required: true
        style: simple
        explode: false
        schema:
          type: string
          example: 1525808-1690222-918
      - name: waypointId
        in: path
        description: Unique identifier of the assigned consignment job waypoint. This value can be found in consignment.job.waypoint.id from the AssignedConsignment response.
        required: true
        style: simple
        explode: false
        schema:
          type: string
          example: '6606341'
      requestBody:
        content:
          multipart/form-data:
            schema:
              $ref: '#/components/schemas/ProofOfDeliveryRequest'
        required: true
      responses:
        '201':
          description: Proof of delivery uploaded successfully
          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/ProofOfDeliveryResponse'
        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:
    ProofOfDeliveryResponse:
      type: object
      properties:
        message:
          maxLength: 500
          type: string
          description: Proof of delivery response message.
          example: Proof of delivery updated successfully
    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
    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
    ProofOfDeliveryRequest:
      required:
      - isPodSignedOnGlass
      - podSignedDateTime
      - senderUniqueShortName
      - uniqueTransportReference
      type: object
      properties:
        senderUniqueShortName:
          maxLength: 8
          type: string
          description: Unique internal identifier of the message sender. This must be same as consignment.recipientUniqueShortName from the AssignedConsignment response.
          example: VRTRAN
        uniqueTransportReference:
          maxLength: 20
          type: string
          description: A unique reference of Kuehne+Nagel's transport order. This is the same as the consignment.job.uniqueTransportReference from the AssignedConsignment response.
          example: 9071410039-01
        isPodSignedOnGlass:
          type: boolean
          description: Indicates whether the Proof of Delivery was signed digitally on a touchscreen device. Set this to false when submitting a scanned paper document without any associated metadata.
          example: true
        podSignedDateTime:
          type: string
          description: Date and time when the Proof of Delivery was recorded, expressed in local time, formatted as YYYY-MM-DDTHH:mm:ss[+/-HH:mm].
          format: date-time
          example: '2025-04-04T08:14:55Z'
        nameOfPersonSignedPod:
          maxLength: 50
          type: string
          description: Name of the person who signed the Proof of Delivery.
          example: Ethan Hunt
        podSignatureImage:
          type: string
          description: 'Image of the signature captured by the person receiving or releasing the shipment during the delivery or pickup. This must be shared in case of captured via a Signed on Glass (digital signature). Must have: a size of max. 2 MB and a supported file extension: png, jpeg/jpg, bmp.'
          format: binary
        podFile:
          type: string
          description: 'Content of the proof of delivery document (preferably a PDF), provided when the POD is a physically scanned copy and not captured via a Signed on Glass (digital signature). Must have: a size of max. 5 MB and a supported file extension: pdf, png, jpeg/jpg.'
          format: binary
        podObservations:
          maxLength: 250
          type: string
          description: Any observations noted by receiver during delivery or pickup.
          example: Container genset was not ON during delivery.
  securitySchemes:
    default:
      type: oauth2
      flows:
        implicit:
          authorizationUrl: https://gateway.api.kuehne-nagel.com/authorize
          scopes: {}
x-wso2-api-key-header: ApiKey