DHL eCommerce Europe Virtual Sandbox
Virtual API for DHL eCommerce Europe shipment data, customs information, and label generation.
The DHL eCommerce Europe API provides an interface to manage shipment data, retrieve labels, and handle customs information. It supports event tracking, label reprints, and courier pickup scheduling for European logistics operations.
Use this hosted sandbox to simulate DHL eCommerce Europe APIs without authentication, API keys, or extra dependencies. Point your code or SDK to the Beeceptor base URL, preferably through an environment variable or feature flag, and switch back to the production API when ready.
This keeps your integration code consistent across local development, QA, demos, and production.
Use cases:
Use this sandbox to validate shipment creation payloads, customs declaration structures, label generation responses, and event tracking integration flows before connecting to DHL production systems.
Get Access Token
GET
{
"access_token": "3AiFEwHpiJccsYLFOpdr8yYudBLP",
"token_type": "Bearer",
"expires_in": 17999
}{
"status": 401,
"title": "Unauthorized",
"detail": "Unauthorized for given resource."
}Send cPAN
POST
{
"dataElement": {
"parcelOriginOrganization": "ES",
"parcelDestinationOrganization": "DE",
"general": {
"timestamp": "2026-01-01T12:00:00+02:00",
"product": "ParcelEurope.parcelconnect"
},
"cPAN": {
"addresses": {
"sender": {
"type": "default",
"firstName": "Tamara",
"name": "Testempresa",
"street1": "Testcalle",
"street1Nr": "10",
"postcode": "08001",
"city": "Barcelona",
"country": "ES",
"customerIdentification": "5012345678"
},
"recipient": {
"type": "doorstep",
"firstName": "Thomas",
"name": "Test",
"email": "test@test.de",
"street1": "Teststrasse",
"street1Nr": "10",
"postcode": "33330",
"city": "Gütersloh",
"country": "DE"
}
},
"features": {
"physical": {
"grossWeight": "1.0",
"length": "0.2",
"height": "0.2",
"width": "0.3"
}
}
}
}
}{
"response": {
"status": "200",
"timestamp": "2026-01-01T12:00:00",
"sessionId": "752328d4-2630-4a48-ac2b-a03b21b4de10",
"statusCode": "OK",
"statusMessage": "cPAN has been processed successfully"
}
}{
"status": 401,
"title": "Unauthorized",
"detail": "Unauthorized for given resource."
}{
"status": 429,
"title": "Too Many Requests",
"detail": "Too many requests within defined time period,please try again later."
}{
"status": 500,
"title": "Internal Server Error",
"detail": "The server encountered an unexpected condition that prevented it from fulfilling the request."
}{
"reasons": [
{
"msg": "Service Unavailable"
}
],
"details": {
"msgId": "Id-836a775dc794c71b0b5fd41c"
}
}Send connectLight
POST
{
"dataElement": {
"general": {
"timestamp": "2026-01-01T12:00:00Z",
"product": "connect.light.parcel",
"customerIdentification": "5012345678"
},
"cPAN-light": {
"addresses": {
"sender": {
"type": "default",
"firstName": "Thomas",
"name": "Test",
"email": "test@test.de",
"street": "Postbox",
"streetNr": "2529",
"postcode": "36243",
"city": "Niederaula",
"country": "DE"
},
"recipient": {
"type": "doorstep",
"firstName": "Tamara",
"name": "Testempresa",
"email": "Tamara@Testempresa.es",
"street": "Testcalle",
"streetNr": "10",
"postcode": "28013",
"city": "Madrid",
"country": "ES"
}
},
"features": {
"simpleFeature": "untracked",
"physical": {
"grossWeight": "0.05",
"format": "P"
}
}
}
}
}{
"response": {
"status": "200",
"timestamp": "2026-01-01T12:00:00",
"customerId": "Test12345",
"sessionId": "752328d4-2630-4a48-ac2b-a03b21b4de10",
"statusCode": "OK",
"statusMessage": "cPAN-goods has been processed successfully",
"shipment": {
"shipmentId": "NC891000870DE",
"routingCode": "2LGR17563+72530000",
"label": "JVBERi0xLjcKJfbk/N8KMjMgMCBvYmoKPDwKL1BhZ2VzIDI0IDAgUgovVHlwZSAvQ2F0YWxvZwo+PgplbmRvYmoKMjUgMCBvYmoKPDwKL0F1dGhvciAoREhMIEdyb3VwKQo+PgplbmRvYmoKMjQgMCBvYmoKPDwKL0NvdW50IDEKL0tpZHMgWzI2IDAgUl0KL1R5cGUgL1BhZ2VzCj4+CmVuZG9iagoyNiAwIG9iago8PAovQ29udGVudHMgMjcgMCBSCi9NZWRpYUJveCBbMCAwIDI4My40NiA0MjUuMl0KL1BhcmVudCAyNCAwIFIKL1Jlc291cmNlcyA8PAovRXh0R1N0YXRlIDw8Ci9HczEgMjggMCBSCj4+Ci9Gb250IDw8Ci9GMSAyOSAwIFIKL0YyIDMwIDAgUgo{...}"
}
}
}{
"status": 401,
"title": "Unauthorized",
"detail": "Unauthorized for given resource."
}{
"status": 429,
"title": "Too Many Requests",
"detail": "Too many requests within defined time period,please try again later."
}{
"status": 500,
"title": "Internal Server Error",
"detail": "The server encountered an unexpected condition that prevented it from fulfilling the request."
}{
"reasons": [
{
"msg": "Service Unavailable"
}
],
"details": {
"msgId": "Id-836a775dc794c71b0b5fd41c"
}
}Send aggregate
POST
{
"dataElement": {
"labelDetails": {
"label": true,
"formatLabel": "pdf"
},
"general": {
"product": "connect.light.container",
"timestamp": "2026-01-01T12:00:00+02:00",
"customerId": "5012345678"
},
"aggregate": {
"scenario": "AWB",
"physical": {
"grossWeight": 10
},
"relations": {
"hierarchy": {
"reference": {
"referenceId": [
"UT0003DE",
"UT0004DE",
"UT0005DE"
]
}
}
},
"containerList": {
"container": [
{
"relations": {
"hierarchy": {
"reference": [
{
"index": 1,
"total": 1
}
]
}
}
}
]
}
}
}
}{
"response": {
"container": [
{
"containerId": "id",
"label": "ullamco Excepteur"
},
{
"containerId": "do reprehenderit",
"label": "ipsum anim"
},
{
"containerId": "ex",
"label": "ut"
},
{
"containerId": "ullamco",
"label": "ipsum in fugiat Ut Lorem"
}
],
"customerId": "Lorem veniam ea nostrud",
"sessionId": "esse cupidatat officia aute",
"shipmentId": "dolore consectetur fugiat sunt",
"status": "exercitation velit officia ut aute",
"statusCode": "ERROR",
"statusMessage": "voluptate ullamco Duis",
"timestamp": "1897-10-10T19:59:38.0Z"
}
}{
"status": 401,
"title": "Unauthorized",
"detail": "Unauthorized for given resource."
}{
"status": 429,
"title": "Too Many Requests",
"detail": "Too many requests within defined time period,please try again later."
}{
"status": 500,
"title": "Internal Server Error",
"detail": "The server encountered an unexpected condition that prevented it from fulfilling the request."
}{
"reasons": [
{
"msg": "Service Unavailable"
}
],
"details": {
"msgId": "Id-836a775dc794c71b0b5fd41c"
}
}Send cCustoms
POST
| Query Parameter Name | Example |
|---|---|
generateCustomsDocument | true |
{
"dataElement": {
"parcelOriginOrganization": "ES",
"parcelDestinationOrganization": "IE",
"general": {
"parcelIdentifier": "JJD149990299999824059",
"timestamp": "2026-01-01T12:00:00Z",
"product": "ParcelEurope.parcelconnect",
"customerIdentification": "5012345678"
},
"cCustoms": {
"goodsDescription": {
"item": [
{
"description": "Tea tin",
"customsTariffNumber": "48191010",
"quantity": "2",
"netWeight": "0.100"
}
]
}
}
}
}{
"response": {
"status": "200",
"timestamp": "2026-01-01T12:00:00",
"customerId": "5012345678",
"sessionId": "752328d4-2630-4a48-ac2b-a03b21b4de10",
"statusCode": "OK",
"statusMessage": "cCustoms has been processed successfully"
}
}{
"status": 401,
"title": "Unauthorized",
"detail": "Unauthorized for given resource."
}{
"status": 429,
"title": "Too Many Requests",
"detail": "Too many requests within defined time period,please try again later."
}{
"status": 500,
"title": "Internal Server Error",
"detail": "The server encountered an unexpected condition that prevented it from fulfilling the request."
}Send connectPlus
POST
{
"dataElement": {
"labelDetails": {
"label": true,
"formatLabel": "pdf",
"size": "10x15"
},
"parcelOriginOrganization": "ES",
"parcelDestinationOrganization": "DE",
"general": {
"timestamp": "2026-01-01T12:00:00Z",
"product": "ParcelEurope.connectPlus"
},
"shipment": {
"addresses": {
"sender": [
{
"name": "Tamara Testempresa",
"street1": "Testcalle",
"street1Nr": 10,
"postcode": "08001",
"city": "Barcelona",
"country": "ES",
"customerIdentification": "5012345678",
"customerAccountNr1": "5012345678"
}
],
"recipient": [
{
"name": "Thomas Test",
"phoneNr": "0173 1233456",
"email": "est@test.de",
"street1": "Teststrasse",
"street1Nr": 12,
"postcode": "33330",
"city": "Gütersloh",
"country": "DE"
}
]
},
"pieces": [
{
"features": {
"physical": {
"grossWeight": "15",
"volume": "0.5",
"length": "1",
"height": "0.5",
"width": "0.5"
}
}
}
]
}
}
}{
"response": {
"status": "200",
"timestamp": "2026-01-01T12:00:00",
"customerId": "5012345678",
"sessionId": "752328d4-2630-4a48-ac2b-a03b21b4de10",
"statusCode": "OK",
"statusMessage": "cPAN has been processed successfully",
"shipment": {
"shipmentID": "2JJD00009076571540670",
"routingCode": "2LFR00017+74000002",
"shipmentWeight": "1.800",
"totalPieces": "1",
"product": "ParcelEurope.connectPlus",
"pallet": "true",
"pieces": {
"pieceID": "JJD00920765715400433",
"pieceNr": "1"
}
}
}
}{
"status": 401,
"title": "Unauthorized",
"detail": "Unauthorized for given resource."
}{
"status": 429,
"title": "Too Many Requests",
"detail": "Too many requests within defined time period,please try again later."
}{
"status": 500,
"title": "Internal Server Error",
"detail": "The server encountered an unexpected condition that prevented it from fulfilling the request."
}{
"reasons": [
{
"msg": "Service Unavailable"
}
],
"details": {
"msgId": "Id-836a775dc794c71b0b5fd41c"
}
}Send cEvent
POST
{
"dataElement": {
"version": "0200"
},
"general": {
"timestamp": "2026-01-01T12:00:00Z",
"parcelIdentifier": "1SendCPAN01003202109000001"
},
"cEvent": {
"eventType": "HandoverFromCustomer",
"eventTime": "2021-03-04T10:30:28Z",
"eventLocation": "Salzburg",
"eventCountry": "AT",
"eventCapturedBy": "SomeCarrier",
"comment": "optional comment on event; will be stored but not evaluated"
}
}{
"response": {
"status": "200",
"timestamp": "2026-01-01T12:00:00",
"sessionId": "752328d4-2630-4a48-ac2b-a03b21b4de10",
"statusCode": "OK",
"statusMessage": "cEvent has been processed successfully"
}
}{
"status": 401,
"title": "Unauthorized",
"detail": "Unauthorized for given resource."
}{
"status": 429,
"title": "Too Many Requests",
"detail": "Too many requests within defined time period,please try again later."
}{
"status": 500,
"title": "Internal Server Error",
"detail": "The server encountered an unexpected condition that prevented it from fulfilling the request."
}{
"reasons": [
{
"msg": "Service Unavailable"
}
],
"details": {
"msgId": "Id-836a775dc794c71b0b5fd41c"
}
}Label Reprint
GET
| Query Parameter Name | Example |
|---|---|
pieceId* | eu non proident |
customerId* | consequat |
{
"response": {
"sessionId": "752328d4-2630-4a48-ac2b-a03b21b4de10",
"timestamp": "2026-01-01T12:00:00",
"status": "200",
"statusCode": "OK",
"statusMessage": "Your shipment request has been processed successfully.",
"customerId": "5012345678",
"shipmentId": "2JJD00009076571540670",
"label": "iVBORw0KGgoAAAANSUhEUgAAAwsAAAMLCAYAAAABpgu6AACAAElEQVR4XuydB9gdVbW/LViwF+wNxS72Xu61YkNFvYrYQOy9NxQUGzYU68Ve0WtB1IsJ6T0hvdcvIT0hkEZ6SALz///Guw/7W1POnHNm5szMed/nWQ/hmznTZ8/67b3W2jcLAAAAACrCNddcE4wdOzb43//9377aiBEjgsWLFwf79++3hzgQrFixInJNerWDBw/a3UANuJn9AwAAAEA/OXr0aLBkyZLg8ssvjzicRZuEyurVq4Prr7/eHtZAMW7cuMi16cUmTpxodwE1AbEAAAAAlUS9+vPnzy9cNPzrX/8K5syZE45q3HjjjfYwBo7t27dHrlGvtmzZMrsbqAmIBQAAAKg0Eg1yNkePHh1xQrs1CYSZM2cGGzZsCI4cOWJ3OdDMmjUrcr16NQkQqCeIBQAAAKgF6vXftm1bmEswYcKEiEOaZhqdmDx5crB06dJwGwp1gih79+7NfSTniiuuCG644Qa7K6gJiAUAAACoJcor2LFjRzg6sGrVqmD58uXBggULQtO/lXuwZcuWYM+ePTirGSliVGHhwoV2N1AjEAsAAAA1YN++faFjvHHjxtAJVliOc4x9UxUbOc5yoNWDrt/hKEMW9HxZRz8P2717t90V1AjEAgAAQIVQqM2uXbuCNWvWhMm9kyZNCuPrrQPWqY0fPz5M4r3qqqvC7SMgwEfPg541+9z0atom1BvEAgAAQJ9R7//Q0FBw5ZVXhvX9rcNVhEmAaH/r168PDh06ZA8JBgyNRt"
}
}{
"status": 401,
"title": "Unauthorized",
"detail": "Unauthorized for given resource."
}{
"status": 429,
"title": "Too Many Requests",
"detail": "Too many requests within defined time period,please try again later."
}{
"status": 500,
"title": "Internal Server Error",
"detail": "The server encountered an unexpected condition that prevented it from fulfilling the request."
}Courier Pickup in Italy and France
POST
{
"dataElement": {
"plannedPickupDateAndTime": "2026-01-01T12:00:00 GMT+08:00",
"closeTime": 1080,
"location": "reception",
"locationType": "business",
"customerIdentification": "5012345678",
"specialInstructions": {
"value": "",
"typecode": "TBD"
},
"customerDetails": {
"shipperDetails": {
"postalAddress": {
"postalCode": "00184",
"cityName": "Roma",
"countryCode": "IT",
"addressLine1": "Piazza del Colosseo 1",
"addressLine2": "",
"addressLine3": ""
},
"contactInformation": {
"email": "me@mydomain.it",
"phone": 1123456789,
"mobilePhone": 60112345678,
"companyName": "Company Name",
"fullName": "John Doe"
}
}
},
"shipmentDetails": {
"productCode": "P",
"isCustomsDeclarable": false,
"unitOfMeasurement": "metric",
"packages": {
"weight": 10.55,
"dimensions": {
"length": 25.5,
"width": 35,
"height": 15
}
}
}
}
}{
"statusCode": "201",
"statusMessage": "Pickup Created - dispatchConfirmationNumber : CBJ180121002626",
"customerId": "5012345678",
"sessionId": "1f66242a-a734-431d-931e-23c59a6013ef",
"timestamp": "2026-01-01T12:00:00Z",
"dispatchConfirmationNumbers": "CBJ180121002626"
}{
"statusCode": "400",
"statusMessage": "Bad request, The pickup date cannot be in the past. Please check the pickup date and retry",
"customerId": "5012345678",
"sessionId": "48627db1-85b3-4c1a-82e3-b19acaa56c40",
"timestamp": "2026-01-01T12:00:00+02:00"
}{
"status": 401,
"title": "Unauthorized",
"detail": "Unauthorized for given resource."
}{
"status": 500,
"title": "Internal Server Error",
"detail": "The server encountered an unexpected condition that prevented it from fulfilling the request."
}Service Homepage: developer.dhl.com/api-reference/ecommerce-europe#reference-docs-section
logisticsshippingecommercedhlrest