Swift3 / DHL Express APIs (MyDHL API) / Retrieve available DHL Express products for a one piece Shipment
Back to Collection Items
func chilkatTest() {
// This example assumes the Chilkat API to have been previously unlocked.
// See Global Unlock Sample for sample code.
let http = CkoHttp()!
var success: Bool
http.basicAuth = true
http.login = "<Basic Auth Username>"
http.password = "<Basic Auth Password>"
let queryParams = CkoJsonObject()!
queryParams.update("accountNumber", value: "Ut aliqua")
queryParams.update("originCountryCode", value: "CZ")
queryParams.updateInt("originPostalCode", value: 14800)
queryParams.update("originCityName", value: "Prague")
queryParams.update("destinationCountryCode", value: "CZ")
queryParams.updateInt("destinationPostalCode", value: 14800)
queryParams.update("destinationCityName", value: "Prague")
queryParams.update("weight", value: "502356858543.692")
queryParams.update("length", value: "1581008670.588")
queryParams.update("width", value: "335941494.827")
queryParams.update("height", value: "1808157249.254")
queryParams.update("plannedShippingDate", value: "2020-02-26")
queryParams.update("isCustomsDeclarable", value: "false")
queryParams.update("unitOfMeasurement", value: "metric")
queryParams.update("nextBusinessDay", value: "false")
queryParams.update("strictValidation", value: "false")
queryParams.update("getAllValueAddedServices", value: "false")
queryParams.update("requestEstimatedDeliveryDate", value: "true")
queryParams.update("estimatedDeliveryDateType", value: "QDDF")
http.setRequestHeader("Webstore-Platform-Name", value: "")
http.setRequestHeader("Shipping-System-Platform-Name", value: "")
http.setRequestHeader("Message-Reference", value: "d0e7832e-5c98-11ea-bc55-0242ac13")
http.setRequestHeader("Plugin-Version", value: "")
http.setRequestHeader("Plugin-Name", value: "")
http.setRequestHeader("Shipping-System-Platform-Version", value: "")
http.setRequestHeader("Accept", value: "application/json")
http.setRequestHeader("Message-Reference-Date", value: "Wed, 21 Oct 2015 07:28:00 GMT")
http.setRequestHeader("Webstore-Platform-Version", value: "")
var resp: CkoHttpResponse? = http.quickRequestParams("GET", url: "https://api-mock.dhl.com/mydhlapi/products", json: queryParams)
if http.lastMethodSuccess == false {
print("\(http.lastErrorText!)")
return
}
let sbResponseBody = CkoStringBuilder()!
resp!.getBodySb(sbResponseBody)
let jResp = CkoJsonObject()!
jResp.loadSb(sbResponseBody)
jResp.emitCompact = false
print("Response Body:")
print("\(jResp.emit()!)")
var respStatusCode: Int = resp!.statusCode.intValue
print("Response Status Code = \(respStatusCode)")
if respStatusCode >= 400 {
print("Response Header:")
print("\(resp!.header!)")
print("Failed.")
resp = nil
return
}
resp = nil
// Sample JSON response:
// (Sample code for parsing the JSON response is shown below)
// {
// "products": [
// {
// "productName": "EXPRESS 12:00 DOC",
// "productCode": "T",
// "localProductCode": "T",
// "localProductCountryCode": "US",
// "networkTypeCode": "TD",
// "isCustomerAgreement": false,
// "weight": {
// "volumetric": 100,
// "provided": 50,
// "unitOfMeasurement": "metric"
// },
// "breakdown": [
// {
// "name": "EXPRESS 12:00 DOC",
// "serviceCode": "AB",
// "localServiceCode": "AB",
// "typeCode": "EXPRESS 12:00",
// "serviceTypeCode": "XCH",
// "isCustomerAgreement": false,
// "isMarketedService": false,
// "isBillingServiceIndicator": false
// },
// {
// "name": "EXPRESS 12:00 DOC",
// "serviceCode": "AB",
// "localServiceCode": "AB",
// "typeCode": "EXPRESS 12:00",
// "serviceTypeCode": "XCH",
// "isCustomerAgreement": false,
// "isMarketedService": false,
// "isBillingServiceIndicator": false
// }
// ],
// "serviceCodeMutuallyExclusiveGroups": [
// {
// "serviceCodeRuleName": "Exclusive Billing Services",
// "description": "Mutually exclusive Billing Services - shipment can contain just one of following",
// "serviceCodes": [
// {
// "serviceCode": "PZ"
// },
// {
// "serviceCode": "PZ"
// }
// ]
// },
// {
// "serviceCodeRuleName": "Exclusive Billing Services",
// "description": "Mutually exclusive Billing Services - shipment can contain just one of following",
// "serviceCodes": [
// {
// "serviceCode": "PZ"
// },
// {
// "serviceCode": "PZ"
// }
// ]
// }
// ],
// "serviceCodeDependencyRuleGroups": [
// {
// "dependentServiceCode": "PZ",
// "dependencyRuleGroup": [
// {
// "dependencyRuleName": "Labelfree and PLT rule",
// "dependencyDescription": "Labelfree requires Paperless Trade (PLT) only if PLT is allowed for product globaly",
// "dependencyCondition": "Must provide the requiredServiceCode if it is allowed for the productCode",
// "requiredServiceCodes": [
// {
// "serviceCode": {
// "value": "<Error: Too many levels of nesting to fake this schema>"
// }
// },
// {
// "serviceCode": {
// "value": "<Error: Too many levels of nesting to fake this schema>"
// }
// }
// ]
// },
// {
// "dependencyRuleName": "Labelfree and PLT rule",
// "dependencyDescription": "Labelfree requires Paperless Trade (PLT) only if PLT is allowed for product globaly",
// "dependencyCondition": "Must provide the requiredServiceCode if it is allowed for the productCode",
// "requiredServiceCodes": [
// {
// "serviceCode": {
// "value": "<Error: Too many levels of nesting to fake this schema>"
// }
// },
// {
// "serviceCode": {
// "value": "<Error: Too many levels of nesting to fake this schema>"
// }
// }
// ]
// }
// ]
// },
// {
// "dependentServiceCode": "PZ",
// "dependencyRuleGroup": [
// {
// "dependencyRuleName": "Labelfree and PLT rule",
// "dependencyDescription": "Labelfree requires Paperless Trade (PLT) only if PLT is allowed for product globaly",
// "dependencyCondition": "Must provide the requiredServiceCode if it is allowed for the productCode",
// "requiredServiceCodes": [
// {
// "serviceCode": {
// "value": "<Error: Too many levels of nesting to fake this schema>"
// }
// },
// {
// "serviceCode": {
// "value": "<Error: Too many levels of nesting to fake this schema>"
// }
// }
// ]
// },
// {
// "dependencyRuleName": "Labelfree and PLT rule",
// "dependencyDescription": "Labelfree requires Paperless Trade (PLT) only if PLT is allowed for product globaly",
// "dependencyCondition": "Must provide the requiredServiceCode if it is allowed for the productCode",
// "requiredServiceCodes": [
// {
// "serviceCode": {
// "value": "<Error: Too many levels of nesting to fake this schema>"
// }
// },
// {
// "serviceCode": {
// "value": "<Error: Too many levels of nesting to fake this schema>"
// }
// }
// ]
// }
// ]
// }
// ],
// "pickupCapabilities": {
// "nextBusinessDay": false,
// "localCutoffDateAndTime": "2019-09-18T15:00:00",
// "GMTCutoffTime": "16:00:00",
// "pickupEarliest": "09:30:00",
// "pickupLatest": "16:00:00",
// "originServiceAreaCode": "ELA",
// "originFacilityAreaCode": "ELA",
// "pickupAdditionalDays": 0,
// "pickupDayOfWeek": 3
// },
// "deliveryCapabilities": {
// "deliveryTypeCode": "QDDC",
// "estimatedDeliveryDateAndTime": "2019-09-20T12:00:00",
// "destinationServiceAreaCode": "PRG",
// "destinationFacilityAreaCode": "PR3",
// "deliveryAdditionalDays": 0,
// "deliveryDayOfWeek": 5,
// "totalTransitDays": 2
// }
// },
// {
// "productName": "EXPRESS 12:00 DOC",
// "productCode": "T",
// "localProductCode": "T",
// "localProductCountryCode": "US",
// "networkTypeCode": "TD",
// "isCustomerAgreement": false,
// "weight": {
// "volumetric": 100,
// "provided": 50,
// "unitOfMeasurement": "metric"
// },
// "breakdown": [
// {
// "name": "EXPRESS 12:00 DOC",
// "serviceCode": "AB",
// "localServiceCode": "AB",
// "typeCode": "EXPRESS 12:00",
// "serviceTypeCode": "XCH",
// "isCustomerAgreement": false,
// "isMarketedService": false,
// "isBillingServiceIndicator": false
// },
// {
// "name": "EXPRESS 12:00 DOC",
// "serviceCode": "AB",
// "localServiceCode": "AB",
// "typeCode": "EXPRESS 12:00",
// "serviceTypeCode": "XCH",
// "isCustomerAgreement": false,
// "isMarketedService": false,
// "isBillingServiceIndicator": false
// }
// ],
// "serviceCodeMutuallyExclusiveGroups": [
// {
// "serviceCodeRuleName": "Exclusive Billing Services",
// "description": "Mutually exclusive Billing Services - shipment can contain just one of following",
// "serviceCodes": [
// {
// "serviceCode": "PZ"
// },
// {
// "serviceCode": "PZ"
// }
// ]
// },
// {
// "serviceCodeRuleName": "Exclusive Billing Services",
// "description": "Mutually exclusive Billing Services - shipment can contain just one of following",
// "serviceCodes": [
// {
// "serviceCode": "PZ"
// },
// {
// "serviceCode": "PZ"
// }
// ]
// }
// ],
// "serviceCodeDependencyRuleGroups": [
// {
// "dependentServiceCode": "PZ",
// "dependencyRuleGroup": [
// {
// "dependencyRuleName": "Labelfree and PLT rule",
// "dependencyDescription": "Labelfree requires Paperless Trade (PLT) only if PLT is allowed for product globaly",
// "dependencyCondition": "Must provide the requiredServiceCode if it is allowed for the productCode",
// "requiredServiceCodes": [
// {
// "serviceCode": {
// "value": "<Error: Too many levels of nesting to fake this schema>"
// }
// },
// {
// "serviceCode": {
// "value": "<Error: Too many levels of nesting to fake this schema>"
// }
// }
// ]
// },
// {
// "dependencyRuleName": "Labelfree and PLT rule",
// "dependencyDescription": "Labelfree requires Paperless Trade (PLT) only if PLT is allowed for product globaly",
// "dependencyCondition": "Must provide the requiredServiceCode if it is allowed for the productCode",
// "requiredServiceCodes": [
// {
// "serviceCode": {
// "value": "<Error: Too many levels of nesting to fake this schema>"
// }
// },
// {
// "serviceCode": {
// "value": "<Error: Too many levels of nesting to fake this schema>"
// }
// }
// ]
// }
// ]
// },
// {
// "dependentServiceCode": "PZ",
// "dependencyRuleGroup": [
// {
// "dependencyRuleName": "Labelfree and PLT rule",
// "dependencyDescription": "Labelfree requires Paperless Trade (PLT) only if PLT is allowed for product globaly",
// "dependencyCondition": "Must provide the requiredServiceCode if it is allowed for the productCode",
// "requiredServiceCodes": [
// {
// "serviceCode": {
// "value": "<Error: Too many levels of nesting to fake this schema>"
// }
// },
// {
// "serviceCode": {
// "value": "<Error: Too many levels of nesting to fake this schema>"
// }
// }
// ]
// },
// {
// "dependencyRuleName": "Labelfree and PLT rule",
// "dependencyDescription": "Labelfree requires Paperless Trade (PLT) only if PLT is allowed for product globaly",
// "dependencyCondition": "Must provide the requiredServiceCode if it is allowed for the productCode",
// "requiredServiceCodes": [
// {
// "serviceCode": {
// "value": "<Error: Too many levels of nesting to fake this schema>"
// }
// },
// {
// "serviceCode": {
// "value": "<Error: Too many levels of nesting to fake this schema>"
// }
// }
// ]
// }
// ]
// }
// ],
// "pickupCapabilities": {
// "nextBusinessDay": false,
// "localCutoffDateAndTime": "2019-09-18T15:00:00",
// "GMTCutoffTime": "16:00:00",
// "pickupEarliest": "09:30:00",
// "pickupLatest": "16:00:00",
// "originServiceAreaCode": "ELA",
// "originFacilityAreaCode": "ELA",
// "pickupAdditionalDays": 0,
// "pickupDayOfWeek": 3
// },
// "deliveryCapabilities": {
// "deliveryTypeCode": "QDDC",
// "estimatedDeliveryDateAndTime": "2019-09-20T12:00:00",
// "destinationServiceAreaCode": "PRG",
// "destinationFacilityAreaCode": "PR3",
// "deliveryAdditionalDays": 0,
// "deliveryDayOfWeek": 5,
// "totalTransitDays": 2
// }
// }
// ],
// "warnings": [
// "Limited products capabilities",
// "Limited products capabilities"
// ]
// }
// Sample code for parsing the JSON response...
// Use this online tool to generate parsing code from sample JSON: Generate JSON Parsing Code
var productName: String?
var productCode: String?
var localProductCode: String?
var localProductCountryCode: String?
var networkTypeCode: String?
var isCustomerAgreement: Bool
var Volumetric: Int
var Provided: Int
var UnitOfMeasurement: String?
var NextBusinessDay: Bool
var LocalCutoffDateAndTime: String?
var GMTCutoffTime: String?
var PickupEarliest: String?
var PickupLatest: String?
var OriginServiceAreaCode: String?
var OriginFacilityAreaCode: String?
var PickupAdditionalDays: Int
var PickupDayOfWeek: Int
var DeliveryTypeCode: String?
var EstimatedDeliveryDateAndTime: String?
var DestinationServiceAreaCode: String?
var DestinationFacilityAreaCode: String?
var DeliveryAdditionalDays: Int
var DeliveryDayOfWeek: Int
var TotalTransitDays: Int
var j: Int
var count_j: Int
var name: String?
var serviceCode: String?
var localServiceCode: String?
var typeCode: String?
var serviceTypeCode: String?
var isMarketedService: Bool
var isBillingServiceIndicator: Bool
var serviceCodeRuleName: String?
var description: String?
var k: Int
var count_k: Int
var dependentServiceCode: String?
var dependencyRuleName: String?
var dependencyDescription: String?
var dependencyCondition: String?
var json1: CkoJsonObject?
var i1: Int
var count_i1: Int
var Value: String?
var strVal: String?
var i: Int = 0
var count_i: Int = jResp.size(ofArray: "products").intValue
while i < count_i {
jResp.i = i
productName = jResp.string(of: "products[i].productName")
productCode = jResp.string(of: "products[i].productCode")
localProductCode = jResp.string(of: "products[i].localProductCode")
localProductCountryCode = jResp.string(of: "products[i].localProductCountryCode")
networkTypeCode = jResp.string(of: "products[i].networkTypeCode")
isCustomerAgreement = jResp.bool(of: "products[i].isCustomerAgreement")
Volumetric = jResp.int(of: "products[i].weight.volumetric").intValue
Provided = jResp.int(of: "products[i].weight.provided").intValue
UnitOfMeasurement = jResp.string(of: "products[i].weight.unitOfMeasurement")
NextBusinessDay = jResp.bool(of: "products[i].pickupCapabilities.nextBusinessDay")
LocalCutoffDateAndTime = jResp.string(of: "products[i].pickupCapabilities.localCutoffDateAndTime")
GMTCutoffTime = jResp.string(of: "products[i].pickupCapabilities.GMTCutoffTime")
PickupEarliest = jResp.string(of: "products[i].pickupCapabilities.pickupEarliest")
PickupLatest = jResp.string(of: "products[i].pickupCapabilities.pickupLatest")
OriginServiceAreaCode = jResp.string(of: "products[i].pickupCapabilities.originServiceAreaCode")
OriginFacilityAreaCode = jResp.string(of: "products[i].pickupCapabilities.originFacilityAreaCode")
PickupAdditionalDays = jResp.int(of: "products[i].pickupCapabilities.pickupAdditionalDays").intValue
PickupDayOfWeek = jResp.int(of: "products[i].pickupCapabilities.pickupDayOfWeek").intValue
DeliveryTypeCode = jResp.string(of: "products[i].deliveryCapabilities.deliveryTypeCode")
EstimatedDeliveryDateAndTime = jResp.string(of: "products[i].deliveryCapabilities.estimatedDeliveryDateAndTime")
DestinationServiceAreaCode = jResp.string(of: "products[i].deliveryCapabilities.destinationServiceAreaCode")
DestinationFacilityAreaCode = jResp.string(of: "products[i].deliveryCapabilities.destinationFacilityAreaCode")
DeliveryAdditionalDays = jResp.int(of: "products[i].deliveryCapabilities.deliveryAdditionalDays").intValue
DeliveryDayOfWeek = jResp.int(of: "products[i].deliveryCapabilities.deliveryDayOfWeek").intValue
TotalTransitDays = jResp.int(of: "products[i].deliveryCapabilities.totalTransitDays").intValue
j = 0
count_j = jResp.size(ofArray: "products[i].breakdown").intValue
while j < count_j {
jResp.j = j
name = jResp.string(of: "products[i].breakdown[j].name")
serviceCode = jResp.string(of: "products[i].breakdown[j].serviceCode")
localServiceCode = jResp.string(of: "products[i].breakdown[j].localServiceCode")
typeCode = jResp.string(of: "products[i].breakdown[j].typeCode")
serviceTypeCode = jResp.string(of: "products[i].breakdown[j].serviceTypeCode")
isCustomerAgreement = jResp.bool(of: "products[i].breakdown[j].isCustomerAgreement")
isMarketedService = jResp.bool(of: "products[i].breakdown[j].isMarketedService")
isBillingServiceIndicator = jResp.bool(of: "products[i].breakdown[j].isBillingServiceIndicator")
j = j + 1
}
j = 0
count_j = jResp.size(ofArray: "products[i].serviceCodeMutuallyExclusiveGroups").intValue
while j < count_j {
jResp.j = j
serviceCodeRuleName = jResp.string(of: "products[i].serviceCodeMutuallyExclusiveGroups[j].serviceCodeRuleName")
description = jResp.string(of: "products[i].serviceCodeMutuallyExclusiveGroups[j].description")
k = 0
count_k = jResp.size(ofArray: "products[i].serviceCodeMutuallyExclusiveGroups[j].serviceCodes").intValue
while k < count_k {
jResp.k = k
serviceCode = jResp.string(of: "products[i].serviceCodeMutuallyExclusiveGroups[j].serviceCodes[k].serviceCode")
k = k + 1
}
j = j + 1
}
j = 0
count_j = jResp.size(ofArray: "products[i].serviceCodeDependencyRuleGroups").intValue
while j < count_j {
jResp.j = j
dependentServiceCode = jResp.string(of: "products[i].serviceCodeDependencyRuleGroups[j].dependentServiceCode")
k = 0
count_k = jResp.size(ofArray: "products[i].serviceCodeDependencyRuleGroups[j].dependencyRuleGroup").intValue
while k < count_k {
jResp.k = k
dependencyRuleName = jResp.string(of: "products[i].serviceCodeDependencyRuleGroups[j].dependencyRuleGroup[k].dependencyRuleName")
dependencyDescription = jResp.string(of: "products[i].serviceCodeDependencyRuleGroups[j].dependencyRuleGroup[k].dependencyDescription")
dependencyCondition = jResp.string(of: "products[i].serviceCodeDependencyRuleGroups[j].dependencyRuleGroup[k].dependencyCondition")
json1 = jResp.object(of: "products[i].serviceCodeDependencyRuleGroups[j].dependencyRuleGroup[k]")
i1 = 0
count_i1 = json1!.size(ofArray: "requiredServiceCodes").intValue
while i1 < count_i1 {
json1.i = i1
Value = json1!.string(of: "requiredServiceCodes[i].serviceCode.value")
i1 = i1 + 1
}
json1 = nil
k = k + 1
}
j = j + 1
}
i = i + 1
}
i = 0
count_i = jResp.size(ofArray: "warnings").intValue
while i < count_i {
jResp.i = i
strVal = jResp.string(of: "warnings[i]")
i = i + 1
}
}
Curl Command
curl -G -d "accountNumber=Ut%20aliqua"
-d "originCountryCode=CZ"
-d "originPostalCode=14800"
-d "originCityName=Prague"
-d "destinationCountryCode=CZ"
-d "destinationPostalCode=14800"
-d "destinationCityName=Prague"
-d "weight=502356858543.692"
-d "length=1581008670.588"
-d "width=335941494.827"
-d "height=1808157249.254"
-d "plannedShippingDate=2020-02-26"
-d "isCustomsDeclarable=false"
-d "unitOfMeasurement=metric"
-d "nextBusinessDay=false"
-d "strictValidation=false"
-d "getAllValueAddedServices=false"
-d "requestEstimatedDeliveryDate=true"
-d "estimatedDeliveryDateType=QDDF"
-u '<Basic Auth Username>:<Basic Auth Password>'
-H "Message-Reference: d0e7832e-5c98-11ea-bc55-0242ac13"
-H "Message-Reference-Date: Wed, 21 Oct 2015 07:28:00 GMT"
-H "Plugin-Name: "
-H "Plugin-Version: "
-H "Shipping-System-Platform-Name: "
-H "Shipping-System-Platform-Version: "
-H "Webstore-Platform-Name: "
-H "Webstore-Platform-Version: "
-H "Accept: application/json"
https://api-mock.dhl.com/mydhlapi/products
Postman Collection Item JSON
{
"name": "Retrieve available DHL Express products for a one piece Shipment",
"request": {
"method": "GET",
"header": [
{
"description": "Please provide message reference\n",
"key": "Message-Reference",
"value": "d0e7832e-5c98-11ea-bc55-0242ac13"
},
{
"description": "Optional reference date in the HTTP-date format https://tools.ietf.org/html/rfc7231#section-7.1.1.2",
"key": "Message-Reference-Date",
"value": "Wed, 21 Oct 2015 07:28:00 GMT"
},
{
"description": "Please provide name of the plugin (applicable to 3PV only)\n",
"key": "Plugin-Name",
"value": " "
},
{
"description": "Please provide version of the plugin (applicable to 3PV only)\n",
"key": "Plugin-Version",
"value": " "
},
{
"description": "Please provide name of the shipping platform(applicable to 3PV only)\n",
"key": "Shipping-System-Platform-Name",
"value": " "
},
{
"description": "Please provide version of the shipping platform (applicable to 3PV only)\n",
"key": "Shipping-System-Platform-Version",
"value": " "
},
{
"description": "Please provide name of the webstore platform (applicable to 3PV only)\n",
"key": "Webstore-Platform-Name",
"value": " "
},
{
"description": "Please provide version of the webstore platform (applicable to 3PV only)\n",
"key": "Webstore-Platform-Version",
"value": " "
},
{
"key": "Accept",
"value": "application/json"
}
],
"url": {
"raw": "{{baseUrl}}/products?accountNumber=Ut aliqua&originCountryCode=CZ&originPostalCode=14800&originCityName=Prague&destinationCountryCode=CZ&destinationPostalCode=14800&destinationCityName=Prague&weight=502356858543.692&length=1581008670.588&width=335941494.827&height=1808157249.254&plannedShippingDate=2020-02-26&isCustomsDeclarable=false&unitOfMeasurement=metric&nextBusinessDay=false&strictValidation=false&getAllValueAddedServices=false&requestEstimatedDeliveryDate=true&estimatedDeliveryDateType=QDDF",
"host": [
"{{baseUrl}}"
],
"path": [
"products"
],
"query": [
{
"key": "accountNumber",
"value": "Ut aliqua",
"description": "(Required) DHL Express customer account number"
},
{
"key": "originCountryCode",
"value": "CZ",
"description": "(Required) A short text string code (see values defined in ISO 3166) specifying the shipment origin country. https://gs1.org/voc/Country, Alpha-2 Code"
},
{
"key": "originPostalCode",
"value": "14800",
"description": "Text specifying the postal code for an address. https://gs1.org/voc/postalCode"
},
{
"key": "originCityName",
"value": "Prague",
"description": "(Required) Text specifying the city name"
},
{
"key": "destinationCountryCode",
"value": "CZ",
"description": "(Required) A short text string code (see values defined in ISO 3166) specifying the shipment destination country. https://gs1.org/voc/Country, Alpha-2 Code"
},
{
"key": "destinationPostalCode",
"value": "14800",
"description": "Text specifying the postal code for an address. https://gs1.org/voc/postalCode"
},
{
"key": "destinationCityName",
"value": "Prague",
"description": "(Required) Text specifying the city name"
},
{
"key": "weight",
"value": "502356858543.692",
"description": "(Required) Gross weight of the shipment including packaging."
},
{
"key": "length",
"value": "1581008670.588",
"description": "(Required) Total length of the shipment including packaging."
},
{
"key": "width",
"value": "335941494.827",
"description": "(Required) Total width of the shipment including packaging."
},
{
"key": "height",
"value": "1808157249.254",
"description": "(Required) Total height of the shipment including packaging."
},
{
"key": "plannedShippingDate",
"value": "2020-02-26",
"description": "(Required) Timestamp represents the date you plan to ship your prospected shipment\n"
},
{
"key": "isCustomsDeclarable",
"value": "false",
"description": "(Required) "
},
{
"key": "unitOfMeasurement",
"value": "metric",
"description": "(Required) The UnitOfMeasurement node conveys the unit of measurements used in the operation. This single value corresponds to the units of weight and measurement which are used throughout the message processing.\n"
},
{
"key": "nextBusinessDay",
"value": "false",
"description": "When set to true and there are no products available for given plannedShippingDate then products available for the next possible pickup date are returned\n"
},
{
"key": "strictValidation",
"value": "false",
"description": "If set to true, indicate strict DCT validation of address details, and validation of product and service(s) combination provided in request."
},
{
"key": "getAllValueAddedServices",
"value": "false",
"description": "Option to return list of all value added services and its rule groups if applicable"
},
{
"key": "requestEstimatedDeliveryDate",
"value": "true",
"description": "Option to return Estimated Delivery Date in response"
},
{
"key": "estimatedDeliveryDateType",
"value": "QDDF",
"description": "Estimated Delivery Date Type. QDDF: is the fastest 'docs' transit time as quoted to the customer at booking or shipment creation. No custom clearance is considered. QDDC: constitutes DHL's service commitment as quoted at booking or shipment creation. QDDc builds in clearance time, and potentially other special perational non-transport component(s), when relevant. "
}
]
},
"description": "The GET Products API will return DHL's product capabilities for a certain set of input data. \nUsing the shipper and receiver address as well as the dimension and weight of the piece belonging to a shipment, this operation returns the available products.\n"
},
"response": [
{
"name": "Products found",
"originalRequest": {
"method": "GET",
"header": [
{
"description": "Added as a part of security scheme: basic",
"key": "Authorization",
"value": "Basic <credentials>"
},
{
"description": "Please provide message reference\n",
"key": "Message-Reference",
"value": "d0e7832e-5c98-11ea-bc55-0242ac13"
},
{
"description": "Optional reference date in the HTTP-date format https://tools.ietf.org/html/rfc7231#section-7.1.1.2",
"key": "Message-Reference-Date",
"value": "Wed, 21 Oct 2015 07:28:00 GMT"
},
{
"description": "Please provide name of the plugin (applicable to 3PV only)\n",
"key": "Plugin-Name",
"value": " "
},
{
"description": "Please provide version of the plugin (applicable to 3PV only)\n",
"key": "Plugin-Version",
"value": " "
},
{
"description": "Please provide name of the shipping platform(applicable to 3PV only)\n",
"key": "Shipping-System-Platform-Name",
"value": " "
},
{
"description": "Please provide version of the shipping platform (applicable to 3PV only)\n",
"key": "Shipping-System-Platform-Version",
"value": " "
},
{
"description": "Please provide name of the webstore platform (applicable to 3PV only)\n",
"key": "Webstore-Platform-Name",
"value": " "
},
{
"description": "Please provide version of the webstore platform (applicable to 3PV only)\n",
"key": "Webstore-Platform-Version",
"value": " "
}
],
"url": {
"raw": "{{baseUrl}}/products?accountNumber=Ut aliqua&originCountryCode=CZ&originPostalCode=14800&originCityName=Prague&destinationCountryCode=CZ&destinationPostalCode=14800&destinationCityName=Prague&weight=502356858543.692&length=1581008670.588&width=335941494.827&height=1808157249.254&plannedShippingDate=2020-02-26&isCustomsDeclarable=false&unitOfMeasurement=metric&nextBusinessDay=false&strictValidation=false&getAllValueAddedServices=false&requestEstimatedDeliveryDate=true&estimatedDeliveryDateType=QDDF",
"host": [
"{{baseUrl}}"
],
"path": [
"products"
],
"query": [
{
"key": "accountNumber",
"value": "Ut aliqua"
},
{
"key": "originCountryCode",
"value": "CZ"
},
{
"key": "originPostalCode",
"value": "14800"
},
{
"key": "originCityName",
"value": "Prague"
},
{
"key": "destinationCountryCode",
"value": "CZ"
},
{
"key": "destinationPostalCode",
"value": "14800"
},
{
"key": "destinationCityName",
"value": "Prague"
},
{
"key": "weight",
"value": "502356858543.692"
},
{
"key": "length",
"value": "1581008670.588"
},
{
"key": "width",
"value": "335941494.827"
},
{
"key": "height",
"value": "1808157249.254"
},
{
"key": "plannedShippingDate",
"value": "2020-02-26"
},
{
"key": "isCustomsDeclarable",
"value": "false"
},
{
"key": "unitOfMeasurement",
"value": "metric"
},
{
"key": "nextBusinessDay",
"value": "false"
},
{
"key": "strictValidation",
"value": "false"
},
{
"key": "getAllValueAddedServices",
"value": "false"
},
{
"key": "requestEstimatedDeliveryDate",
"value": "true"
},
{
"key": "estimatedDeliveryDateType",
"value": "QDDF"
}
]
}
},
"status": "OK",
"code": 200,
"_postman_previewlanguage": "json",
"header": [
{
"key": "Content-Type",
"value": "application/json"
}
],
"cookie": [
],
"body": "{\n \"products\": [\n {\n \"productName\": \"EXPRESS 12:00 DOC\",\n \"productCode\": \"T\",\n \"localProductCode\": \"T\",\n \"localProductCountryCode\": \"US\",\n \"networkTypeCode\": \"TD\",\n \"isCustomerAgreement\": false,\n \"weight\": {\n \"volumetric\": 100,\n \"provided\": 50,\n \"unitOfMeasurement\": \"metric\"\n },\n \"breakdown\": [\n {\n \"name\": \"EXPRESS 12:00 DOC\",\n \"serviceCode\": \"AB\",\n \"localServiceCode\": \"AB\",\n \"typeCode\": \"EXPRESS 12:00\",\n \"serviceTypeCode\": \"XCH\",\n \"isCustomerAgreement\": false,\n \"isMarketedService\": false,\n \"isBillingServiceIndicator\": false\n },\n {\n \"name\": \"EXPRESS 12:00 DOC\",\n \"serviceCode\": \"AB\",\n \"localServiceCode\": \"AB\",\n \"typeCode\": \"EXPRESS 12:00\",\n \"serviceTypeCode\": \"XCH\",\n \"isCustomerAgreement\": false,\n \"isMarketedService\": false,\n \"isBillingServiceIndicator\": false\n }\n ],\n \"serviceCodeMutuallyExclusiveGroups\": [\n {\n \"serviceCodeRuleName\": \"Exclusive Billing Services\",\n \"description\": \"Mutually exclusive Billing Services - shipment can contain just one of following\",\n \"serviceCodes\": [\n {\n \"serviceCode\": \"PZ\"\n },\n {\n \"serviceCode\": \"PZ\"\n }\n ]\n },\n {\n \"serviceCodeRuleName\": \"Exclusive Billing Services\",\n \"description\": \"Mutually exclusive Billing Services - shipment can contain just one of following\",\n \"serviceCodes\": [\n {\n \"serviceCode\": \"PZ\"\n },\n {\n \"serviceCode\": \"PZ\"\n }\n ]\n }\n ],\n \"serviceCodeDependencyRuleGroups\": [\n {\n \"dependentServiceCode\": \"PZ\",\n \"dependencyRuleGroup\": [\n {\n \"dependencyRuleName\": \"Labelfree and PLT rule\",\n \"dependencyDescription\": \"Labelfree requires Paperless Trade (PLT) only if PLT is allowed for product globaly\",\n \"dependencyCondition\": \"Must provide the requiredServiceCode if it is allowed for the productCode\",\n \"requiredServiceCodes\": [\n {\n \"serviceCode\": {\n \"value\": \"<Error: Too many levels of nesting to fake this schema>\"\n }\n },\n {\n \"serviceCode\": {\n \"value\": \"<Error: Too many levels of nesting to fake this schema>\"\n }\n }\n ]\n },\n {\n \"dependencyRuleName\": \"Labelfree and PLT rule\",\n \"dependencyDescription\": \"Labelfree requires Paperless Trade (PLT) only if PLT is allowed for product globaly\",\n \"dependencyCondition\": \"Must provide the requiredServiceCode if it is allowed for the productCode\",\n \"requiredServiceCodes\": [\n {\n \"serviceCode\": {\n \"value\": \"<Error: Too many levels of nesting to fake this schema>\"\n }\n },\n {\n \"serviceCode\": {\n \"value\": \"<Error: Too many levels of nesting to fake this schema>\"\n }\n }\n ]\n }\n ]\n },\n {\n \"dependentServiceCode\": \"PZ\",\n \"dependencyRuleGroup\": [\n {\n \"dependencyRuleName\": \"Labelfree and PLT rule\",\n \"dependencyDescription\": \"Labelfree requires Paperless Trade (PLT) only if PLT is allowed for product globaly\",\n \"dependencyCondition\": \"Must provide the requiredServiceCode if it is allowed for the productCode\",\n \"requiredServiceCodes\": [\n {\n \"serviceCode\": {\n \"value\": \"<Error: Too many levels of nesting to fake this schema>\"\n }\n },\n {\n \"serviceCode\": {\n \"value\": \"<Error: Too many levels of nesting to fake this schema>\"\n }\n }\n ]\n },\n {\n \"dependencyRuleName\": \"Labelfree and PLT rule\",\n \"dependencyDescription\": \"Labelfree requires Paperless Trade (PLT) only if PLT is allowed for product globaly\",\n \"dependencyCondition\": \"Must provide the requiredServiceCode if it is allowed for the productCode\",\n \"requiredServiceCodes\": [\n {\n \"serviceCode\": {\n \"value\": \"<Error: Too many levels of nesting to fake this schema>\"\n }\n },\n {\n \"serviceCode\": {\n \"value\": \"<Error: Too many levels of nesting to fake this schema>\"\n }\n }\n ]\n }\n ]\n }\n ],\n \"pickupCapabilities\": {\n \"nextBusinessDay\": false,\n \"localCutoffDateAndTime\": \"2019-09-18T15:00:00\",\n \"GMTCutoffTime\": \"16:00:00\",\n \"pickupEarliest\": \"09:30:00\",\n \"pickupLatest\": \"16:00:00\",\n \"originServiceAreaCode\": \"ELA\",\n \"originFacilityAreaCode\": \"ELA\",\n \"pickupAdditionalDays\": 0,\n \"pickupDayOfWeek\": 3\n },\n \"deliveryCapabilities\": {\n \"deliveryTypeCode\": \"QDDC\",\n \"estimatedDeliveryDateAndTime\": \"2019-09-20T12:00:00\",\n \"destinationServiceAreaCode\": \"PRG\",\n \"destinationFacilityAreaCode\": \"PR3\",\n \"deliveryAdditionalDays\": 0,\n \"deliveryDayOfWeek\": 5,\n \"totalTransitDays\": 2\n }\n },\n {\n \"productName\": \"EXPRESS 12:00 DOC\",\n \"productCode\": \"T\",\n \"localProductCode\": \"T\",\n \"localProductCountryCode\": \"US\",\n \"networkTypeCode\": \"TD\",\n \"isCustomerAgreement\": false,\n \"weight\": {\n \"volumetric\": 100,\n \"provided\": 50,\n \"unitOfMeasurement\": \"metric\"\n },\n \"breakdown\": [\n {\n \"name\": \"EXPRESS 12:00 DOC\",\n \"serviceCode\": \"AB\",\n \"localServiceCode\": \"AB\",\n \"typeCode\": \"EXPRESS 12:00\",\n \"serviceTypeCode\": \"XCH\",\n \"isCustomerAgreement\": false,\n \"isMarketedService\": false,\n \"isBillingServiceIndicator\": false\n },\n {\n \"name\": \"EXPRESS 12:00 DOC\",\n \"serviceCode\": \"AB\",\n \"localServiceCode\": \"AB\",\n \"typeCode\": \"EXPRESS 12:00\",\n \"serviceTypeCode\": \"XCH\",\n \"isCustomerAgreement\": false,\n \"isMarketedService\": false,\n \"isBillingServiceIndicator\": false\n }\n ],\n \"serviceCodeMutuallyExclusiveGroups\": [\n {\n \"serviceCodeRuleName\": \"Exclusive Billing Services\",\n \"description\": \"Mutually exclusive Billing Services - shipment can contain just one of following\",\n \"serviceCodes\": [\n {\n \"serviceCode\": \"PZ\"\n },\n {\n \"serviceCode\": \"PZ\"\n }\n ]\n },\n {\n \"serviceCodeRuleName\": \"Exclusive Billing Services\",\n \"description\": \"Mutually exclusive Billing Services - shipment can contain just one of following\",\n \"serviceCodes\": [\n {\n \"serviceCode\": \"PZ\"\n },\n {\n \"serviceCode\": \"PZ\"\n }\n ]\n }\n ],\n \"serviceCodeDependencyRuleGroups\": [\n {\n \"dependentServiceCode\": \"PZ\",\n \"dependencyRuleGroup\": [\n {\n \"dependencyRuleName\": \"Labelfree and PLT rule\",\n \"dependencyDescription\": \"Labelfree requires Paperless Trade (PLT) only if PLT is allowed for product globaly\",\n \"dependencyCondition\": \"Must provide the requiredServiceCode if it is allowed for the productCode\",\n \"requiredServiceCodes\": [\n {\n \"serviceCode\": {\n \"value\": \"<Error: Too many levels of nesting to fake this schema>\"\n }\n },\n {\n \"serviceCode\": {\n \"value\": \"<Error: Too many levels of nesting to fake this schema>\"\n }\n }\n ]\n },\n {\n \"dependencyRuleName\": \"Labelfree and PLT rule\",\n \"dependencyDescription\": \"Labelfree requires Paperless Trade (PLT) only if PLT is allowed for product globaly\",\n \"dependencyCondition\": \"Must provide the requiredServiceCode if it is allowed for the productCode\",\n \"requiredServiceCodes\": [\n {\n \"serviceCode\": {\n \"value\": \"<Error: Too many levels of nesting to fake this schema>\"\n }\n },\n {\n \"serviceCode\": {\n \"value\": \"<Error: Too many levels of nesting to fake this schema>\"\n }\n }\n ]\n }\n ]\n },\n {\n \"dependentServiceCode\": \"PZ\",\n \"dependencyRuleGroup\": [\n {\n \"dependencyRuleName\": \"Labelfree and PLT rule\",\n \"dependencyDescription\": \"Labelfree requires Paperless Trade (PLT) only if PLT is allowed for product globaly\",\n \"dependencyCondition\": \"Must provide the requiredServiceCode if it is allowed for the productCode\",\n \"requiredServiceCodes\": [\n {\n \"serviceCode\": {\n \"value\": \"<Error: Too many levels of nesting to fake this schema>\"\n }\n },\n {\n \"serviceCode\": {\n \"value\": \"<Error: Too many levels of nesting to fake this schema>\"\n }\n }\n ]\n },\n {\n \"dependencyRuleName\": \"Labelfree and PLT rule\",\n \"dependencyDescription\": \"Labelfree requires Paperless Trade (PLT) only if PLT is allowed for product globaly\",\n \"dependencyCondition\": \"Must provide the requiredServiceCode if it is allowed for the productCode\",\n \"requiredServiceCodes\": [\n {\n \"serviceCode\": {\n \"value\": \"<Error: Too many levels of nesting to fake this schema>\"\n }\n },\n {\n \"serviceCode\": {\n \"value\": \"<Error: Too many levels of nesting to fake this schema>\"\n }\n }\n ]\n }\n ]\n }\n ],\n \"pickupCapabilities\": {\n \"nextBusinessDay\": false,\n \"localCutoffDateAndTime\": \"2019-09-18T15:00:00\",\n \"GMTCutoffTime\": \"16:00:00\",\n \"pickupEarliest\": \"09:30:00\",\n \"pickupLatest\": \"16:00:00\",\n \"originServiceAreaCode\": \"ELA\",\n \"originFacilityAreaCode\": \"ELA\",\n \"pickupAdditionalDays\": 0,\n \"pickupDayOfWeek\": 3\n },\n \"deliveryCapabilities\": {\n \"deliveryTypeCode\": \"QDDC\",\n \"estimatedDeliveryDateAndTime\": \"2019-09-20T12:00:00\",\n \"destinationServiceAreaCode\": \"PRG\",\n \"destinationFacilityAreaCode\": \"PR3\",\n \"deliveryAdditionalDays\": 0,\n \"deliveryDayOfWeek\": 5,\n \"totalTransitDays\": 2\n }\n }\n ],\n \"warnings\": [\n \"Limited products capabilities\",\n \"Limited products capabilities\"\n ]\n}"
},
{
"name": "Wrong input parameters",
"originalRequest": {
"method": "GET",
"header": [
{
"description": "Added as a part of security scheme: basic",
"key": "Authorization",
"value": "Basic <credentials>"
},
{
"description": "Please provide message reference\n",
"key": "Message-Reference",
"value": "d0e7832e-5c98-11ea-bc55-0242ac13"
},
{
"description": "Optional reference date in the HTTP-date format https://tools.ietf.org/html/rfc7231#section-7.1.1.2",
"key": "Message-Reference-Date",
"value": "Wed, 21 Oct 2015 07:28:00 GMT"
},
{
"description": "Please provide name of the plugin (applicable to 3PV only)\n",
"key": "Plugin-Name",
"value": " "
},
{
"description": "Please provide version of the plugin (applicable to 3PV only)\n",
"key": "Plugin-Version",
"value": " "
},
{
"description": "Please provide name of the shipping platform(applicable to 3PV only)\n",
"key": "Shipping-System-Platform-Name",
"value": " "
},
{
"description": "Please provide version of the shipping platform (applicable to 3PV only)\n",
"key": "Shipping-System-Platform-Version",
"value": " "
},
{
"description": "Please provide name of the webstore platform (applicable to 3PV only)\n",
"key": "Webstore-Platform-Name",
"value": " "
},
{
"description": "Please provide version of the webstore platform (applicable to 3PV only)\n",
"key": "Webstore-Platform-Version",
"value": " "
}
],
"url": {
"raw": "{{baseUrl}}/products?accountNumber=Ut aliqua&originCountryCode=CZ&originPostalCode=14800&originCityName=Prague&destinationCountryCode=CZ&destinationPostalCode=14800&destinationCityName=Prague&weight=502356858543.692&length=1581008670.588&width=335941494.827&height=1808157249.254&plannedShippingDate=2020-02-26&isCustomsDeclarable=false&unitOfMeasurement=metric&nextBusinessDay=false&strictValidation=false&getAllValueAddedServices=false&requestEstimatedDeliveryDate=true&estimatedDeliveryDateType=QDDF",
"host": [
"{{baseUrl}}"
],
"path": [
"products"
],
"query": [
{
"key": "accountNumber",
"value": "Ut aliqua"
},
{
"key": "originCountryCode",
"value": "CZ"
},
{
"key": "originPostalCode",
"value": "14800"
},
{
"key": "originCityName",
"value": "Prague"
},
{
"key": "destinationCountryCode",
"value": "CZ"
},
{
"key": "destinationPostalCode",
"value": "14800"
},
{
"key": "destinationCityName",
"value": "Prague"
},
{
"key": "weight",
"value": "502356858543.692"
},
{
"key": "length",
"value": "1581008670.588"
},
{
"key": "width",
"value": "335941494.827"
},
{
"key": "height",
"value": "1808157249.254"
},
{
"key": "plannedShippingDate",
"value": "2020-02-26"
},
{
"key": "isCustomsDeclarable",
"value": "false"
},
{
"key": "unitOfMeasurement",
"value": "metric"
},
{
"key": "nextBusinessDay",
"value": "false"
},
{
"key": "strictValidation",
"value": "false"
},
{
"key": "getAllValueAddedServices",
"value": "false"
},
{
"key": "requestEstimatedDeliveryDate",
"value": "true"
},
{
"key": "estimatedDeliveryDateType",
"value": "QDDF"
}
]
}
},
"status": "Bad Request",
"code": 400,
"_postman_previewlanguage": "json",
"header": [
{
"key": "Content-Type",
"value": "application/json"
}
],
"cookie": [
],
"body": "{\n \"instance\": \"/expressapi/products\",\n \"detail\": \"The account number is not found or invalid. Please check the account number and retry.\",\n \"title\": \"Bad request\",\n \"message\": \"Bad request\",\n \"status\": \"400\"\n}"
},
{
"name": "Process errors",
"originalRequest": {
"method": "GET",
"header": [
{
"description": "Added as a part of security scheme: basic",
"key": "Authorization",
"value": "Basic <credentials>"
},
{
"description": "Please provide message reference\n",
"key": "Message-Reference",
"value": "d0e7832e-5c98-11ea-bc55-0242ac13"
},
{
"description": "Optional reference date in the HTTP-date format https://tools.ietf.org/html/rfc7231#section-7.1.1.2",
"key": "Message-Reference-Date",
"value": "Wed, 21 Oct 2015 07:28:00 GMT"
},
{
"description": "Please provide name of the plugin (applicable to 3PV only)\n",
"key": "Plugin-Name",
"value": " "
},
{
"description": "Please provide version of the plugin (applicable to 3PV only)\n",
"key": "Plugin-Version",
"value": " "
},
{
"description": "Please provide name of the shipping platform(applicable to 3PV only)\n",
"key": "Shipping-System-Platform-Name",
"value": " "
},
{
"description": "Please provide version of the shipping platform (applicable to 3PV only)\n",
"key": "Shipping-System-Platform-Version",
"value": " "
},
{
"description": "Please provide name of the webstore platform (applicable to 3PV only)\n",
"key": "Webstore-Platform-Name",
"value": " "
},
{
"description": "Please provide version of the webstore platform (applicable to 3PV only)\n",
"key": "Webstore-Platform-Version",
"value": " "
}
],
"url": {
"raw": "{{baseUrl}}/products?accountNumber=Ut aliqua&originCountryCode=CZ&originPostalCode=14800&originCityName=Prague&destinationCountryCode=CZ&destinationPostalCode=14800&destinationCityName=Prague&weight=502356858543.692&length=1581008670.588&width=335941494.827&height=1808157249.254&plannedShippingDate=2020-02-26&isCustomsDeclarable=false&unitOfMeasurement=metric&nextBusinessDay=false&strictValidation=false&getAllValueAddedServices=false&requestEstimatedDeliveryDate=true&estimatedDeliveryDateType=QDDF",
"host": [
"{{baseUrl}}"
],
"path": [
"products"
],
"query": [
{
"key": "accountNumber",
"value": "Ut aliqua"
},
{
"key": "originCountryCode",
"value": "CZ"
},
{
"key": "originPostalCode",
"value": "14800"
},
{
"key": "originCityName",
"value": "Prague"
},
{
"key": "destinationCountryCode",
"value": "CZ"
},
{
"key": "destinationPostalCode",
"value": "14800"
},
{
"key": "destinationCityName",
"value": "Prague"
},
{
"key": "weight",
"value": "502356858543.692"
},
{
"key": "length",
"value": "1581008670.588"
},
{
"key": "width",
"value": "335941494.827"
},
{
"key": "height",
"value": "1808157249.254"
},
{
"key": "plannedShippingDate",
"value": "2020-02-26"
},
{
"key": "isCustomsDeclarable",
"value": "false"
},
{
"key": "unitOfMeasurement",
"value": "metric"
},
{
"key": "nextBusinessDay",
"value": "false"
},
{
"key": "strictValidation",
"value": "false"
},
{
"key": "getAllValueAddedServices",
"value": "false"
},
{
"key": "requestEstimatedDeliveryDate",
"value": "true"
},
{
"key": "estimatedDeliveryDateType",
"value": "QDDF"
}
]
}
},
"status": "Internal Server Error",
"code": 500,
"_postman_previewlanguage": "json",
"header": [
{
"key": "Content-Type",
"value": "application/json"
}
],
"cookie": [
],
"body": "{\n \"instance\": \"/expressapi/products\",\n \"detail\": \"999: Process failure occurred. Process ID associated for that transaction (1234567890)\",\n \"title\": \"Internal Server Error\",\n \"message\": \"Internal Server Error\",\n \"code\": \"500\"\n}"
}
]
}