### GET /manifests Source: https://developer.dhl.com/api-reference/parcel-de-shipping/-post-parcel-germany-v2 Downloads the manifesting document for a specific day or period. ```APIDOC ## GET /manifests ### Description Downloads the manifesting document for a specific day or period. ### Method GET ### Endpoint /manifests ### Parameters #### Query Parameters - **date** (string) - Optional - The date for which to retrieve the manifest (YYYY-MM-DD). - **startDate** (string) - Optional - The start date for the manifest period (YYYY-MM-DD). - **endDate** (string) - Optional - The end date for the manifest period (YYYY-MM-DD). #### Request Body None ### Request Example `GET /manifests?date=2023-05-16` ### Response #### Success Response (200) - **manifestDocument** (string) - The content of the manifest document. #### Response Example (Manifest document content would be returned here) ``` -------------------------------- ### GET /orders Source: https://developer.dhl.com/api-reference/parcel-de-shipping/-post-parcel-germany-v2_lang=zh-hant Retrieves documents such as shipping labels and export documentation for previously created shipments. ```APIDOC ## GET /orders ### Description Retrieves documents (shipping label, return label, customs documentation) for existing shipments. The specific documents returned depend on the shipment details and requested services. ### Method GET ### Endpoint /orders ### Parameters #### Query Parameters - **orderId** (string) - Required - The unique identifier of the shipment order. ### Request Example `GET /orders?orderId=1234567890` ### Response #### Success Response (200) - **labelUrl** (string) - URL to download the shipping label. - **returnLabelUrl** (string) - URL to download the return shipping label (if applicable). - **customsDocUrl** (string) - URL to download customs documentation (if applicable). #### Response Example ```json { "labelUrl": "https://example.com/labels/label123.pdf", "returnLabelUrl": null, "customsDocUrl": null } ``` -------------------------------- ### GET /orders Source: https://developer.dhl.com/api-reference/parcel-de-shipping/-post-parcel-germany-v2_lang=ko Retrieves documents (label, return label, and customs documentation) for existing shipments. ```APIDOC ## GET /orders ### Description This endpoint allows you to retrieve various documents associated with a shipment, including the shipping label, return label, and customs documentation. The specific document to retrieve is usually specified via query parameters or inferred from the shipment details. ### Method GET ### Endpoint `https://api${environment}.dhl.com/parcel/de/shipping/v2/orders/` ### Parameters #### Query Parameters - **orderId** (string) - Required - The ID of the shipment order for which to retrieve documents. - **documentType** (string) - Optional - Specifies the type of document to retrieve (e.g., "label", "returnLabel", "customsDoc"). ### Request Example ``` GET /parcel/de/shipping/v2/orders/?orderId=ORD123456789&documentType=label ``` ### Response #### Success Response (200) - The response will typically be the requested document in a specified format (e.g., PDF). #### Response Example (The response content will be the actual document, e.g., a PDF file stream.) ``` -------------------------------- ### Label Download and Availability Source: https://developer.dhl.com/api-reference/parcel-de-shipping/-post-parcel-germany-v2_lang=zh-hant Information on the availability of shipping labels for download via the `/labels` URL and the GET `/orders` call. ```APIDOC ## Label Download and Availability ### Description This section explains how long shipping labels are available for download after creation and manifesting. ### `/labels` URL Availability Labels are available for download via the `/labels` URL until they have been manifested. After the initial download, labels are cached for 48 hours. You can download labels up to 48 hours after manifesting. Attempting to download after this period may result in an HTTP 500 error. ### GET `/orders` Call Availability Labels can be re-downloaded using the GET `/orders` call for up to three days after manifesting. This requires specifying the relevant shipment number in the call. ``` -------------------------------- ### GET /orders Source: https://developer.dhl.com/api-reference/parcel-de-shipping/-post-parcel-germany-v2_lang=en Retrieves documents such as shipping labels, return labels, and customs documentation for existing shipments. ```APIDOC ## GET /orders ### Description Retrieves documents (label, return label, and customs documentation) for previously created shipments. ### Method GET ### Endpoint /orders ### Parameters #### Query Parameters - **orderId** (string) - Required - The ID of the order for which to retrieve documents. ### Request Example None ### Response #### Success Response (200) - **labelUrl** (string) - URL to download the shipping label. - **returnLabelUrl** (string) - URL to download the return label. - **customsDocumentUrl** (string) - URL to download the customs documentation. #### Response Example ```json { "labelUrl": "https://example.com/labels/shipment123.pdf", "returnLabelUrl": "https://example.com/labels/return123.pdf", "customsDocumentUrl": "https://example.com/documents/customs123.pdf" } ``` ``` -------------------------------- ### Manifest API Source: https://developer.dhl.com/api-reference/parcel-de-shipping/-post-parcel-germany-v2_lang=zh-hant This section covers the Manifest API, including how to create manifests for billing numbers and understanding the performance of the sandbox environment. ```APIDOC ## POST /manifest ### Description Creates a manifest for shipments. This can be done for each billing number using the `billingNumber` attribute. Manifesting can also be triggered explicitly via the API, in addition to being done automatically at a pre-agreed time. ### Method POST ### Endpoint /manifest #### Query Parameters - **billingNumber** (string) - Optional - The billing number for which to create a manifest. ### Request Example ```json { "billingNumber": "YOUR_BILLING_NUMBER" } ``` ### Response #### Success Response (200) - **manifestId** (string) - The ID of the created manifest. - **status** (string) - The status of the manifest creation. #### Response Example ```json { "manifestId": "12345abcde", "status": "created" } ``` ``` -------------------------------- ### API Response Updates (GET /labels, GET /manifests, /orders) Source: https://developer.dhl.com/api-reference/parcel-de-shipping/-post-parcel-germany-v2_lang=zh-hant Release 2.1.13 includes corrections to the response types for GET /labels and GET /manifests endpoints. The `returnRoutingCode` has been added to the /orders endpoint response. ```APIDOC ## API Response Structure Corrections and Additions (v2.1.13) ### Description This update addresses corrections in the response structures for the `GET /labels` and `GET /manifests` endpoints. Additionally, the `returnRoutingCode` field has been added to the response of the `/orders` endpoint. ### Method GET ### Endpoint - `/labels` - `/manifests` - `/orders` ### Response #### Success Response (200) - **GET /labels**: Response type corrected as per API specification. - **GET /manifests**: Response structure corrected as per API specification. - **/orders**: Includes the new `returnRoutingCode` field. ``` -------------------------------- ### GET / - Get API version info Source: https://developer.dhl.com/api-reference/parcel-de-shipping/-post-parcel-germany-v2_lang=en Retrieves information about the current API version. ```APIDOC ## GET / ### Description Return API version information. ### Method GET ### Endpoint `/` ### Response #### Success Response (200) - **version** (string) - The current API version. #### Response Example ```json { "version": "2.1.13" } ``` ``` -------------------------------- ### General Integration Recommendations Source: https://developer.dhl.com/api-reference/parcel-de-shipping/-post-parcel-germany-v2_lang=en Guidance for third-party vendors and marketplaces on integrating with DHL services, including recommendations for handling non-integrated products. ```APIDOC ## General Integration Recommendations This section provides recommendations for third-party vendors and marketplaces integrating with DHL Parcel DE Shipping. ### Handling Non-Integrated Products * If you do not wish to integrate all DHL products and services directly via the DHL Parcel DE Shipping API, it is recommended to provide a shortcut link to DHL's business customer portal. * This allows your customers or merchants to create and edit shipping documents for non-integrated products directly through the DHL portal, or within your application if they have initiated the process there. ### Shipping Multiple Items * Each package constitutes exactly one (1) shipment. * When shipping multiple items to a single recipient, ensure each item is packaged individually if they are to be treated as separate shipments or if multiple packages are being sent. ``` -------------------------------- ### Services - Premium and COD Source: https://developer.dhl.com/api-reference/parcel-de-shipping/-post-parcel-germany-v2_lang=en Explains the behavior of the 'premium' service option and provides guidance for Cash on Delivery (COD) shipments. ```APIDOC ## Services - Premium and COD ### Description This section clarifies the `premium` service option's behavior across different countries and provides instructions for handling Cash on Delivery (COD) shipments when full bank account details cannot be provided. ### Premium Service (`premium=false`) * **Country Specifics**: The application of `premium=true` versus `premium=false` is country-dependent. * **Economy Products**: Many EU countries do not offer economy products, so `premium=true` is applied by default even if `premium=false` is set in the request. * **Dual Offerings**: Some countries, like Switzerland (CH), offer both premium and non-premium (economy) options. ### Cash on Delivery (COD) - Partial Bank Account Data * **Requirement**: If you cannot provide full bank account data for COD shipments, you might need to create the account in the business customer portal. * **API Usage**: Subsequently, refer to this created account using the `AccountReference` attribute in your API request, depending on your GKP account privileges. ``` -------------------------------- ### GET / Source: https://developer.dhl.com/api-reference/parcel-de-shipping/-post-parcel-germany-v2_lang=zh-hant Retrieves the API version and performs a health check. ```APIDOC ## GET / ### Description Retrieves the current API version and checks the health status of the service. ### Method GET ### Endpoint / ### Parameters None ### Request Example None ### Response #### Success Response (200) - **version** (string) - The current version of the API. - **status** (string) - The health status of the API (e.g., 'operational'). #### Response Example { "version": "2.1.3", "status": "operational" } ``` -------------------------------- ### Manifest API Source: https://developer.dhl.com/api-reference/parcel-de-shipping/-post-parcel-germany-v2_lang=th Documentation related to the Manifest API, including performance on sandbox environments and options for generating manifests per billing number. ```APIDOC ## Manifest API ### Description This section covers the Manifest API, including details on its performance in the sandbox environment and how to generate manifests for specific billing numbers. ### Sandbox Performance The `GET /manifest` endpoint may appear slow on the sandbox environment due to shared accounts. Production behavior differs as manifests are exclusive to your shipments. ### Manifest per Billing Number Yes, you can create a manifest for each billing number. Use the `billingNumber` attribute in the `POST /manifest` call. ### Triggering Manifest Manifesting is typically done automatically at the end of your working day. However, you can trigger it explicitly via the API using `POST /manifest`. ``` -------------------------------- ### GET / Source: https://developer.dhl.com/api-reference/parcel-de-shipping/-post-parcel-germany-v2_lang=ja Retrieves the API version and performs a health check. ```APIDOC ## GET / ### Description Retrieves the current API version and checks the health status of the service. ### Method GET ### Endpoint `/` ### Parameters None ### Request Example None ### Response #### Success Response (200) - **version** (string) - The current API version. - **status** (string) - The health status of the API (e.g., "OK"). #### Response Example ```json { "version": "2.1.3", "status": "OK" } ``` ``` -------------------------------- ### Manifest API Source: https://developer.dhl.com/api-reference/parcel-de-shipping/-post-parcel-germany-v2_lang=en Endpoints related to manifest generation and retrieval. Includes details on potential performance issues in sandbox environments and how to create manifests per billing number. ```APIDOC ## GET /manifest ### Description Retrieves manifest information. Note that this call may appear slow on the sandbox environment due to shared resources, but production behavior is different. ### Method GET ### Endpoint /manifest ### Parameters #### Query Parameters - **billingNumber** (string) - Optional - Used to create a manifest for a specific billing number. ### Response #### Success Response (200) - **manifestData** (object) - Contains manifest details. ### Response Example { "manifestData": {} } ``` ```APIDOC ## POST /manifest ### Description Triggers the manifest process explicitly. This can be done automatically at a pre-agreed time or manually via API. Shipments cannot be changed after manifesting. ### Method POST ### Endpoint /manifest ### Parameters #### Request Body - **billingNumber** (string) - Optional - Specifies the billing number for which to create a manifest. ### Request Example { "billingNumber": "YOUR_BILLING_NUMBER" } ### Response #### Success Response (200) - **status** (string) - Indicates the success of the manifest request. ### Response Example { "status": "Manifest initiated" } ``` -------------------------------- ### GET / Source: https://developer.dhl.com/api-reference/parcel-de-shipping/-post-parcel-germany-v2 Retrieves the API version and performs a health check. ```APIDOC ## GET / ### Description Retrieves the API version and performs a health check. ### Method GET ### Endpoint / ### Parameters #### Query Parameters None #### Request Body None ### Request Example None ### Response #### Success Response (200) - **version** (string) - The current API version. #### Response Example { "version": "2.1.3" } ``` -------------------------------- ### Authentication and Credentials Source: https://developer.dhl.com/api-reference/parcel-de-shipping/-post-parcel-germany-v2_lang=zh-hans Information on how to authenticate API calls, including the use of GKP credentials via basic auth header for most requests, and specific handling for the getVersion() call. ```APIDOC ## Authentication and Credentials ### Description This section details how to authenticate API requests. Most API calls require GKP credentials provided via a basic authentication header. The `getVersion()` call is an exception as it does not require these credentials. ### Method All (Implicit) ### Endpoint All ### Parameters #### Query Parameters N/A #### Request Body N/A ### Authentication - **Basic Auth Header**: Required for most API calls. Use GKP credentials. ### Request Example ```bash curl -u YOUR_GKP_USERNAME:YOUR_GKP_PASSWORD https://api.dhl.com/shipping/v1/some/endpoint ``` ### Response #### Success Response (200) Details of successful authentication and API call. #### Response Example ```json { "message": "Authentication successful" } ``` #### Error Response (401) - **Unauthorized**: Indicates missing or invalid GKP credentials. ``` -------------------------------- ### GET / Source: https://developer.dhl.com/api-reference/parcel-de-shipping/-post-parcel-germany-v2_lang=th Retrieves the API version and performs a health check. ```APIDOC ## GET / ### Description Retrieves the API version and performs a health check. ### Method GET ### Endpoint / ### Parameters None ### Request Example None ### Response #### Success Response (200) - **version** (string) - The current API version. #### Response Example ```json { "version": "2.1.3" } ``` ``` -------------------------------- ### Authentication and Credentials Source: https://developer.dhl.com/api-reference/parcel-de-shipping/-post-parcel-germany-v2_lang=ja Information on how to authenticate API requests, including the use of GKP credentials and basic authentication headers. ```APIDOC ## Authentication and Credentials ### Description Authentication for the DHL Parcel DE Shipping API is primarily handled using GKP credentials provided via a basic authentication header. The `getVersion()` endpoint is an exception as it does not require these credentials, while all other API calls do. ### Method GET (for `getVersion()`) POST, PUT, DELETE, etc. (for other calls) ### Endpoint `/` (for `getVersion()`) `/api/...` (for other calls) ### Parameters #### Query Parameters None #### Request Body None ### Request Example *Example for a call requiring authentication (conceptual): ```bash curl -u YOUR_GKP_USERNAME:YOUR_GKP_PASSWORD https://api.dhl.com/shipping/v1/orders \ -H "Content-Type: application/json" ``` ### Response #### Success Response (200) - **message** (string) - Indicates successful authentication or operation. #### Error Response (401) - **error** (string) - Indicates unauthorized access, typically due to missing or incorrect GKP credentials. ### Notes - Refer to the User Guide for detailed authentication samples, including `curl` examples. ``` -------------------------------- ### GET / Source: https://developer.dhl.com/api-reference/parcel-de-shipping/-post-parcel-germany-v2_lang=ko Retrieves the API version and performs a health check. ```APIDOC ## GET / ### Description This endpoint provides the current API version and checks the health status of the service. ### Method GET ### Endpoint `https://api${environment}.dhl.com/parcel/de/shipping/v2/` ### Parameters None ### Request Example None ### Response #### Success Response (200) - **version** (string) - The current version of the API. - **status** (string) - The health status of the service (e.g., "OK"). #### Response Example ```json { "version": "2.0.0", "status": "OK" } ``` ``` -------------------------------- ### Authentication API - Obtain Access Token (Sandbox) Source: https://developer.dhl.com/api-reference/parcel-de-shipping/-post-parcel-germany-v2_lang=ko This endpoint demonstrates how to obtain an access token for the sandbox environment using username and password credentials. ```APIDOC ## POST /parcel/de/account/auth/ropc/v1/token ### Description Obtains an access token for the sandbox environment using username and password authentication. ### Method POST ### Endpoint https://api-sandbox.dhl.com/parcel/de/account/auth/ropc/v1/token ### Parameters #### Query Parameters - **grant_type** (string) - Required - Must be 'password'. - **username** (string) - Required - Your DHL business customer username. - **password** (string) - Required - Your DHL business customer password. - **client_id** (string) - Required - Your API key. - **client_secret** (string) - Required - Your API secret. ### Request Example ```bash curl -X POST https://api-sandbox.dhl.com/parcel/de/account/auth/ropc/v1/token \ -d 'grant_type=password' \ -d 'username=user-valid' \ -d 'password=SandboxPasswort2023!' \ -d 'client_id={YOUR-API-KEY}' \ -d 'client_secret={YOUR-API-SECRET}' ``` ### Response #### Success Response (200) - **access_token** (string) - The obtained access token. - **token_type** (string) - The type of token (e.g., 'Bearer'). - **expires_in** (integer) - The token's expiration time in seconds. #### Response Example ```json { "access_token": "eyJ...".concat("..."), "token_type": "Bearer", "expires_in": 3600 } ``` ``` -------------------------------- ### GET /labels Source: https://developer.dhl.com/api-reference/parcel-de-shipping/-post-parcel-germany-v2_lang=ja Retrieves PDF shipping labels from a public URL. ```APIDOC ## GET /labels ### Description Retrieves PDF shipping labels from a public URL. The URL for the label is typically provided in the response of the POST /orders operation. ### Method GET ### Endpoint `/labels` ### Parameters #### Query Parameters - **url** (string) - Required - The public URL of the shipping label to download. ### Request Example `GET /labels?url=https://api-eu.dhl.com/parcel/de/shipping/v2/labels/ORD123456789.pdf` ### Response #### Success Response (200) The response will be the PDF content of the shipping label. #### Response Example (Binary data representing the PDF file) ``` -------------------------------- ### Manifest API Source: https://developer.dhl.com/api-reference/parcel-de-shipping/-post-parcel-germany-v2_lang=ko This section details the Manifest API, including its performance on the sandbox, how to generate manifests for specific billing numbers, and the automatic/manual triggering of manifesting. ```APIDOC ## POST /manifest ### Description This endpoint allows for the creation of manifests. Manifests can be generated for specific billing numbers or triggered explicitly via the API. Manifesting is usually done automatically at the end of the working day, but can be initiated manually. ### Method POST ### Endpoint /manifest ### Parameters #### Query Parameters - **billingNumber** (string) - Optional - The billing number for which to create a manifest. If not provided, a manifest for all shipments associated with the account may be created. - **mustEncode** (boolean) - Optional - If set to true, it helps in avoiding address validation warnings by ensuring proper encoding of address data. ### Request Example ```json { "billingNumber": "YOUR_BILLING_NUMBER" } ``` ### Response #### Success Response (200) - **status** (string) - Indicates the success of the manifest creation. - **message** (string) - A confirmation message. #### Response Example ```json { "status": "success", "message": "Manifest created successfully." } ``` ### Notes - The sandbox environment for `/manifest` endpoint may experience slowness due to shared resources. Production behavior is distinct as manifests are specific to your shipments. - Manifesting is typically automated but can be explicitly triggered via this API call. ``` -------------------------------- ### GET /manifests Source: https://developer.dhl.com/api-reference/parcel-de-shipping/-post-parcel-germany-v2_lang=th Retrieves end-of-day reports for a specific day or period. ```APIDOC ## GET /manifests ### Description Retrieves end-of-day reports for a specific day or period. When a daily manifest list is retrieved, the sheet numbers associated with the billing numbers and shipment numbers are now returned in the response. ### Method GET ### Endpoint /manifests ### Parameters #### Query Parameters - **date** (string) - Optional - The date for which to retrieve the manifest (YYYY-MM-DD). - **billingNumber** (string) - Optional - Filter manifests by billing number. ### Request Example None ### Response #### Success Response (200) - **manifests** (array) - An array of manifest objects. - **billingNumber** (string) - The billing number associated with the manifest. - **shipmentNumbers** (array) - An array of shipment numbers included in the manifest. - **sheetNumbers** (array) - An array of sheet numbers associated with the manifest. #### Response Example ```json { "manifests": [ { "billingNumber": "123456789", "shipmentNumbers": ["ABC1234567890DE", "FGH1234567890IJ"], "sheetNumbers": ["1", "2"] } ] } ``` ``` -------------------------------- ### Authentication and Credentials Source: https://developer.dhl.com/api-reference/parcel-de-shipping/-post-parcel-germany-v2_lang=en Information regarding authentication methods and credential requirements for API access. Explains why `getVersion()` might work while other calls fail. ```APIDOC ## Authentication and Credentials ### Description This section addresses common authentication issues. Specifically, it clarifies why the `getVersion()` method might succeed while other API calls return an HTTP 401 Unauthorized error. This is often due to the use of GKP credentials, which are provided via a basic authentication header and are required for most API calls except `getVersion()`. ### Key Points * **GKP Credentials**: Required for most API calls and provided via a basic auth header. * **`getVersion()` Method**: Does not require GKP credentials, hence it might work when other calls fail. * **Access Requests**: If you have requested access and haven't received a response within 48 hours, please use the contact form in the Help Center. Access is not automatic during Early Access or Beta phases. ### Authentication Sample (Conceptual) ```bash curl -X GET https://api.dhl.com/shipping/v1/version \ -H "Authorization: Basic YOUR_BASE64_ENCODED_GKP_CREDENTIALS" \ -H "Content-Type: application/json" ``` *Note: Replace `YOUR_BASE64_ENCODED_GKP_CREDENTIALS` with your actual credentials.* ``` -------------------------------- ### GET /labels Source: https://developer.dhl.com/api-reference/parcel-de-shipping/-post-parcel-germany-v2_lang=ko Retrieves PDF shipping labels from a public URL. ```APIDOC ## GET /labels ### Description This endpoint is used to retrieve PDF shipping labels from a public URL. The URL for the label is typically provided in the response of the `POST /orders` call. ### Method GET ### Endpoint `https://api${environment}.dhl.com/parcel/de/shipping/v2/labels/` ### Parameters #### Query Parameters - **labelUrl** (string) - Required - The public URL of the shipping label to download. ### Request Example ``` GET /parcel/de/shipping/v2/labels/?labelUrl=https://example.com/labels/ORD123456789.pdf ``` ### Response #### Success Response (200) - The response will be the PDF shipping label. #### Response Example (The response content will be the actual PDF label file.) ``` -------------------------------- ### Shipping API - Create Shipment Label (Sandbox) Source: https://developer.dhl.com/api-reference/parcel-de-shipping/-post-parcel-germany-v2_lang=en Create and retrieve shipment labels using the sandbox environment. Requires a valid Access Token. ```APIDOC ## POST /parcel/de/shipping/v2/orders ### Description Create and retrieve shipment labels using the sandbox environment. Requires a valid Access Token. ### Method POST ### Endpoint `https://api-sandbox.dhl.com/parcel/de/shipping/v2/orders?validate=True` ### Parameters #### Query Parameters - **validate** (boolean) - Optional - If true, the request will be validated without creating a label. #### Request Headers - **Authorization** (string) - Required - Bearer token obtained from the Authentication API (e.g., 'Bearer ${TOKEN}') - **accept** (string) - Required - 'application/json' #### Request Body - **YOURREQUEST** (object) - Required - The shipment order details. Refer to the Open API Specification for the exact structure. ### Request Example ```bash curl -k -i -X POST -H "Authorization: Bearer ${TOKEN}" -H "accept: application/json" -d ${YOURREQUEST} https://api-sandbox.dhl.com/parcel/de/shipping/v2/orders?validate=True ``` ### Response #### Success Response (200) - **Label Data** (object) - Details of the created shipment label. Refer to the Open API Specification. #### Response Example (Response structure depends on the Open API Specification for shipment orders) ``` -------------------------------- ### GET /manifests Source: https://developer.dhl.com/api-reference/parcel-de-shipping/-post-parcel-germany-v2_lang=ja Retrieves end-of-day manifest reports for a specific day or period. ```APIDOC ## GET /manifests ### Description Retrieves end-of-day reports for manifesting. You can specify a date or a date range to get the relevant manifest documents. ### Method GET ### Endpoint `/manifests` ### Parameters #### Query Parameters - **date** (string) - Optional - The specific date for the manifest report (YYYY-MM-DD). - **startDate** (string) - Optional - The start date for the manifest report period (YYYY-MM-DD). - **endDate** (string) - Optional - The end date for the manifest report period (YYYY-MM-DD). ### Request Example `GET /manifests?date=2023-05-15` ### Response #### Success Response (200) - **manifests** (array) - A list of manifest documents. - **billingNumber** (string) - The billing number associated with the manifest. - **shipmentNumbers** (array) - A list of shipment numbers included in the manifest. - **manifestDate** (string) - The date the manifest was generated. - **manifestId** (string) - The unique identifier for the manifest. #### Response Example ```json { "manifests": [ { "billingNumber": "1234567890", "shipmentNumbers": ["TRK987654321", "TRK987654322"], "manifestDate": "2023-05-15", "manifestId": "MFT12345" } ] } ``` ``` -------------------------------- ### Service Options (Premium, COD, Returns) Source: https://developer.dhl.com/api-reference/parcel-de-shipping/-post-parcel-germany-v2_lang=ja Details on specific service options like Premium shipping, Cash on Delivery (COD), and international returns. ```APIDOC ## Service Options ### Description This section outlines the behavior and limitations of various optional services, including the 'Premium' shipping attribute, Cash on Delivery (COD), and international return shipments. ### Method POST (for creating shipments with services) ### Endpoint `/orders` or similar ### Parameters #### Request Body (Examples for service attributes) - **premium** (boolean) - Indicates premium shipping. `false` may still result in 'PREMIUM' on the label for certain countries where economy options are unavailable. - **AccountReference** (string) - Required for COD if full bank account data cannot be provided, depending on GKP account privileges. Refers to an account created in the business customer portal. ### Response #### Success Response (200) - **label** (string) - The generated shipping label, potentially reflecting selected services. ### Notes - **Premium Service**: The `premium=false` setting might not prevent 'PREMIUM' from appearing on labels in countries (e.g., most EU countries) that do not offer economy products. Country-specific logic applies. - **COD (Cash on Delivery)**: If you cannot provide complete bank account details, you may need to create an account in the business customer portal and reference it using the `AccountReference` attribute. - **Retoure International**: This API does *not* support international return shipments. For returns, please use the Parcel DE Returns API. Domestic return labels for standard parcels can be created using this API. ``` -------------------------------- ### Label Download and Availability Source: https://developer.dhl.com/api-reference/parcel-de-shipping/-post-parcel-germany-v2_lang=ja Information on how long shipping labels are available for download after creation and manifesting. ```APIDOC ## Label Download and Availability ### Description This section explains the availability period for downloading shipping labels via the `/labels` URL and the `GET /orders` endpoint after they have been manifested. ### Method GET ### Endpoint `/labels` `/orders/{shipmentNumber}` ### Parameters #### Path Parameters - **shipmentNumber** (string) - Required for `GET /orders/{shipmentNumber}` - The unique identifier for the shipment. #### Query Parameters None ### Request Example *To download labels via the /labels URL (conceptual): ```bash curl https://api.dhl.com/shipping/v1/labels?shipmentId=12345 \ -H "Accept: application/pdf" ``` *To retrieve labels via GET /orders: ```bash curl https://api.dhl.com/shipping/v1/orders/YOUR_SHIPMENT_NUMBER \ -H "Accept: application/pdf" ``` ### Response #### Success Response (200) - **Label Data** (e.g., PDF, ZPL) - The requested shipping label. #### Error Response (500) - **error** (string) - Indicates that the label is no longer available, typically after the caching period has expired. ### Notes - **`/labels` URL**: Labels are available until manifested. After the initial download and manifesting, labels are cached for 48 hours. - **`GET /orders` Call**: Labels can be retrieved again via this call for up to three days after manifesting, provided the specific shipment number is included. ``` -------------------------------- ### GET /manifests Source: https://developer.dhl.com/api-reference/parcel-de-shipping/-post-parcel-germany-v2_lang=en Retrieves the daily manifest report for a specific day or period. ```APIDOC ## GET /manifests ### Description Downloads the manifesting document (end-of-day report). ### Method GET ### Endpoint /manifests ### Parameters #### Query Parameters - **date** (string) - Optional - The date for which to retrieve the manifest (e.g., YYYY-MM-DD). - **startDate** (string) - Optional - The start date for the manifest period (e.g., YYYY-MM-DD). - **endDate** (string) - Optional - The end date for the manifest period (e.g., YYYY-MM-DD). ### Request Example None ### Response #### Success Response (200) - **manifestDocumentUrl** (string) - URL to download the manifest document. #### Response Example ```json { "manifestDocumentUrl": "https://example.com/manifests/reportXYZ.pdf" } ``` ``` -------------------------------- ### GET /orders Source: https://developer.dhl.com/api-reference/parcel-de-shipping/-post-parcel-germany-v2 Retrieves documents (label, return label, and customs documentation) for a shipment. ```APIDOC ## GET /orders ### Description Retrieves documents (label, return label, and customs documentation) for a shipment. ### Method GET ### Endpoint /orders ### Parameters #### Query Parameters - **orderNumber** (string) - Required - The order number of the shipment. - **documentType** (string) - Optional - The type of document to retrieve (e.g., 'label', 'returnLabel', 'customsDocument'). #### Request Body None ### Request Example `GET /orders?orderNumber=1234567890&documentType=label` ### Response #### Success Response (200) - **document** (string) - The requested document content (e.g., PDF data). #### Response Example (PDF content would be returned here) ``` -------------------------------- ### Manifest Management Endpoints Source: https://developer.dhl.com/api-reference/parcel-de-shipping/-post-parcel-germany-v2_lang=ko Endpoints for managing manifests, including retrieving daily manifest documents and marking shipments as ready for shipping. ```APIDOC ## GET /manifests ### Description Retrieves daily manifest documents. ### Method GET ### Endpoint `/manifests` ### Parameters #### Query Parameters * **date** (string) - Optional - The specific date for which to retrieve the manifest (YYYY-MM-DD). ### Request Example ``` GET /manifests?date=2024-07-26 ``` ### Response #### Success Response (200) - **manifestDocuments** (array) - An array of manifest documents. - **date** (string) - The date of the manifest. - **documentUrl** (string) - URL to access the manifest document. #### Response Example ```json { "manifestDocuments": [ { "date": "2024-07-26", "documentUrl": "https://api.dhl.com/manifests/2024-07-26.pdf" } ] } ``` ``` ```APIDOC ## POST /manifests ### Description Marks shipments as being ready for shipping, often a precursor to generating a manifest. ### Method POST ### Endpoint `/manifests` ### Parameters #### Request Body - **shipmentIds** (array) - Required - An array of shipment IDs to be marked as ready for shipping. ### Request Example ```json { "shipmentIds": ["SHIP12345", "SHIP67890"] } ``` ### Response #### Success Response (200) - **message** (string) - A confirmation message indicating the shipments have been marked. #### Response Example ```json { "message": "Shipments SHIP12345, SHIP67890 marked as ready for shipping." } ``` ``` -------------------------------- ### GET /manifests Source: https://developer.dhl.com/api-reference/parcel-de-shipping/-post-parcel-germany-v2_lang=ko Retrieves end-of-day reports (manifest documents) for a specific day or period. ```APIDOC ## GET /manifests ### Description This operation allows you to download the manifesting document, which serves as an end-of-day report. You can retrieve reports for a specific day or a range of dates. ### Method GET ### Endpoint `https://api${environment}.dhl.com/parcel/de/shipping/v2/manifests/` ### Parameters #### Query Parameters - **date** (string) - Optional - The specific date for which to retrieve the manifest (format: YYYY-MM-DD). - **startDate** (string) - Optional - The start date for the period to retrieve manifests (format: YYYY-MM-DD). - **endDate** (string) - Optional - The end date for the period to retrieve manifests (format: YYYY-MM-DD). *Note: You should provide either 'date' or both 'startDate' and 'endDate'.* ### Request Example ``` GET /parcel/de/shipping/v2/manifests/?date=2023-10-27 ``` ### Response #### Success Response (200) - The response will typically be the requested manifest document in a specified format (e.g., PDF). #### Response Example (The response content will be the actual manifest document, e.g., a PDF file stream.) ```