Kuehne+Nagel eSOPPurchaseOrderConfiguration API

Read the purchase-order configuration for a given Kuehne+Nagel customer code. The devportal publishes only an internal gateway environment for this API; no external endpoint URL is advertised.

OpenAPI Specification

kuehne-nagel-esop-purchase-order-configuration-v1-openapi.json Raw ↑
{
  "openapi" : "3.0.3",
  "info" : {
    "title" : "eSOPPurchaseOrderConfiguration",
    "description" : "This API is part of the Kuehne+Nagel API layer. Processing of purchase order data depends\non the customer's eSOP order configuration in K+N ESP. This API allows customers to read\ntheir order configuration. To use this API you must be registered and set up in ESP platform.\n",
    "contact" : {
      "name" : "Kuehne+Nagel ESP Public APIs",
      "url" : "https://home.kuehne-nagel.com/en/service-request-api",
      "email" : "webdev-esp-public-apis@kuehne-nagel.com"
    },
    "version" : "v1",
    "x-api-id" : "efd8853e-ab50-402d-95b9-2b1be0e16175",
    "x-api-guideline-version" : "1.9.4",
    "x-api-version" : "1.0.1"
  },
  "servers" : [ {
    "url" : "https://internal.api.kuehne-nagel.com/order-management/purchase-order/customer-configuration/v1"
  } ],
  "security" : [ {
    "default" : [ ]
  } ],
  "paths" : {
    "/order-configurations/{customerCode}" : {
      "get" : {
        "tags" : [ "administration-layer" ],
        "summary" : "Read a customer's eSOP order configuration for purchase orders.",
        "description" : "The order configuration describes the selection of order attributes that are used\nby a customer in their purchase order. It assigns attributes to be either part of\nthe order header or to be part of the order lines. The configuration also describes\nwhich attributes are used to identify order lines and which of the attributes are\noptional or mandatory.\n",
        "operationId" : "readOrderConfiguration",
        "parameters" : [ {
          "$ref" : "#/components/parameters/CustomerCodeParam"
        } ],
        "responses" : {
          "200" : {
            "description" : "Order configuration found",
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/OrderConfiguration"
                }
              }
            }
          },
          "default" : {
            "$ref" : "#/components/responses/default"
          }
        },
        "security" : [ {
          "default" : [ ]
        } ],
        "x-auth-type" : "Application & Application User",
        "x-throttling-tier" : "500_PerMin"
      }
    }
  },
  "components" : {
    "schemas" : {
      "CustomerCode" : {
        "pattern" : "^[A-Z]{5}[0-9]{2}$",
        "type" : "string",
        "description" : "Unique identifier assigned to a customer"
      },
      "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.\n",
            "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.\n",
            "example" : "Service Unavailable"
          },
          "status" : {
            "maximum" : 600,
            "exclusiveMaximum" : true,
            "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
          },
          "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.\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"
          }
        }
      },
      "CommonAttributeProperties" : {
        "required" : [ "use" ],
        "type" : "object",
        "properties" : {
          "id" : {
            "type" : "string",
            "description" : "This property represents the identifier of the attribute\n"
          },
          "use" : {
            "type" : "boolean",
            "description" : "This property indicates whether an attribute is used in a customer's order\nconfiguration. If it is not used (false), no further information about the attribute is\nprovided. Nevertheless, this gives the customer a comprehensive overview of the set of\nattributes that can be configured for use in purchase orders. If the attribute is used\n(true), the other attributes provide further information.\n"
          },
          "reference" : {
            "pattern" : "^[A-Z0-9]{2,3}$",
            "type" : "string",
            "description" : "This optional property specifies a unique identifier that can be used to establish\ninteroperability with other interfaces offered by Kuehne+Nagel.\n"
          },
          "mandatory" : {
            "type" : "boolean",
            "description" : "If this property is true, then the attribute must always be specified at the intended\nposition in the purchase order, header or lines. Otherwise, the attribute is optional.\n"
          },
          "partOfHeader" : {
            "type" : "boolean",
            "description" : "This property specifies whether the attribute is to be used either in the header (true)\nor in the lines (false) of a purchase order.\n"
          },
          "category" : {
            "type" : "string",
            "description" : "In order to clearly organize the large number of possible order attributes, the attributes\nare divided into categories.\n"
          }
        }
      },
      "Attribute" : {
        "type" : "object",
        "description" : "The Attribute object describes the use of an order attribute in the customer's\norder configuration.\n",
        "allOf" : [ {
          "$ref" : "#/components/schemas/CommonAttributeProperties"
        }, {
          "type" : "object",
          "properties" : {
            "partOfKey" : {
              "type" : "boolean",
              "description" : "Each line of an order can be identified by a specified subset of its attributes, called\nkey attributes. Exactly for such attributes partOfKey is true. Key attributes are always\nmandatory and must be part of the order lines.\n"
            }
          }
        } ]
      },
      "CustomerAttribute" : {
        "type" : "object",
        "description" : "In addition to the well-known order attributes, the customer can use a set of attributes\nwith freely chosen meaning in purchase orders. The set of these attributes is limited both\nin number and type. This object describes the configuration of these customer-specific\nattributes. \n\nThe ten possible attributes of type string have the names string1 to string10. The ten\npossible Boolean attributes have the names bool1 to bool10. Customer-specific attributes\ncannot be used as key attributes.\n",
        "allOf" : [ {
          "$ref" : "#/components/schemas/CommonAttributeProperties"
        }, {
          "type" : "object",
          "properties" : {
            "referenceLabel" : {
              "minLength" : 1,
              "type" : "string",
              "description" : "The reference label makes it possible to name customer-specific attributes in the ESP\nuser interface.\n"
            }
          }
        } ]
      },
      "OrderConfiguration" : {
        "type" : "object",
        "properties" : {
          "regularAttributes" : {
            "type" : "array",
            "items" : {
              "$ref" : "#/components/schemas/Attribute"
            }
          },
          "customerSpecificAttributes" : {
            "type" : "array",
            "items" : {
              "$ref" : "#/components/schemas/CustomerAttribute"
            }
          }
        },
        "description" : "Purchase orders may contain a variety of information depending on the requirements of the\nbusiness parties involved, especially the customer. ESP supports the customer's individual\nrequirements with an explicit configuration of the order attributes used by the customer.\nPurchase order data must not only comply with the respective OpenAPI specification, but also\nwith the restrictions from the customer's individual order configuration. Therefore, it is\nimportant for the customer to be able to retrieve his order configuration.\n",
        "example" : {
          "regularAttributes" : [ {
            "id" : "itemNumber",
            "use" : true,
            "reference" : "IID",
            "mandatory" : true,
            "partOfHeader" : false,
            "partOfKey" : true,
            "category" : "itemIdentification"
          }, {
            "id" : "color",
            "use" : true,
            "reference" : "COL",
            "mandatory" : true,
            "partOfHeader" : true,
            "partOfKey" : false,
            "category" : "itemAttributes"
          }, {
            "id" : "size",
            "use" : true,
            "reference" : "SZ",
            "mandatory" : false,
            "partOfHeader" : false,
            "partOfKey" : false,
            "category" : "itemAttributes"
          } ]
        }
      }
    },
    "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 identifying the customer",
        "required" : true,
        "style" : "simple",
        "explode" : false,
        "schema" : {
          "$ref" : "#/components/schemas/CustomerCode"
        }
      }
    },
    "securitySchemes" : {
      "ApiKeyAuth" : {
        "type" : "apiKey",
        "name" : "apikey",
        "in" : "header"
      },
      "default" : {
        "type" : "oauth2",
        "flows" : {
          "implicit" : {
            "authorizationUrl" : "https://internal.api.kuehne-nagel.com/authorize",
            "scopes" : { }
          }
        }
      }
    }
  }
}