Ekom.Shipping.DhlExpress 0.1.1

dotnet add package Ekom.Shipping.DhlExpress --version 0.1.1
                    
NuGet\Install-Package Ekom.Shipping.DhlExpress -Version 0.1.1
                    
This command is intended to be used within the Package Manager Console in Visual Studio, as it uses the NuGet module's version of Install-Package.
<PackageReference Include="Ekom.Shipping.DhlExpress" Version="0.1.1" />
                    
For projects that support PackageReference, copy this XML node into the project file to reference the package.
<PackageVersion Include="Ekom.Shipping.DhlExpress" Version="0.1.1" />
                    
Directory.Packages.props
<PackageReference Include="Ekom.Shipping.DhlExpress" />
                    
Project file
For projects that support Central Package Management (CPM), copy this XML node into the solution Directory.Packages.props file to version the package.
paket add Ekom.Shipping.DhlExpress --version 0.1.1
                    
#r "nuget: Ekom.Shipping.DhlExpress, 0.1.1"
                    
#r directive can be used in F# Interactive and Polyglot Notebooks. Copy this into the interactive tool or source code of the script to reference the package.
#:package Ekom.Shipping.DhlExpress@0.1.1
                    
#:package directive can be used in C# file-based apps starting in .NET 10 preview 4. Copy this into a .cs file before any lines of code to reference the package.
#addin nuget:?package=Ekom.Shipping.DhlExpress&version=0.1.1
                    
Install as a Cake Addin
#tool nuget:?package=Ekom.Shipping.DhlExpress&version=0.1.1
                    
Install as a Cake Tool

Ekom.Shipping.DhlExpress

DHL Express MyDHL API 3.3.2 integration for Ekom Shipping. It provides typed rates, products, address capability, international shipment creation, tracking, proof-of-delivery, document-image, invoice/image upload, and courier-pickup APIs.

Configuration

Configure accounts under Ekom:Shipping:DhlExpress:Accounts with ApiUrl, ApiVersion, Username, Password, AccountNumber, ProductCode, ProductName, FulfillmentMode, and one default Shipper. The production URL is https://express.api.dhl.com/mydhlapi/; the test URL is https://express.api.dhl.com/mydhlapi/test/.

{
  "Ekom": {
    "Shipping": {
      "DhlExpress": {
        "Accounts": {
          "dhl-main": {
            "ApiUrl": "https://express.api.dhl.com/mydhlapi/",
            "ApiVersion": "3.3.2",
            "Username": "use-a-secret-provider",
            "Password": "use-a-secret-provider",
            "AccountNumber": "billing-account",
            "ProductCode": "P",
            "ProductName": "DHL Express",
            "FulfillmentMode": "Manual",
            "Shipper": {
              "Name": "Warehouse contact",
              "CompanyName": "Merchant",
              "Phone": "phone",
              "Email": "shipping@example.com",
              "AddressLine1": "Origin address",
              "PostalCode": "101",
              "CityName": "Reykjavík",
              "CountryCode": "IS"
            }
          }
        }
      }
    }
  }
}

Register with services.AddDhlExpressShipping(configuration). Credentials use pre-emptive HTTP Basic authentication and the configured version is sent in the required x-version header.

Inject IDhlExpressShippingService for typed access to:

  • Multi-piece rates and one-piece products
  • Pickup/delivery address capability validation
  • Shipment validation and creation
  • Detailed tracking
  • Proof of delivery and supported document images
  • Paperless Trade image and invoice-data uploads
  • Courier pickup creation, update, and cancellation

Ekom fulfillment

Register exactly one IDhlExpressShipmentEnricher. It receives the configured shipper and the provider-neutral order request and must return measured physical packages, planned origin time, receiver details, and international customs data. Purchased lines are not treated as parcels. Customs-declarable shipments require declared value, currency, export lines, commodity/manufacturing data, and a net or gross weight per line.

DHL transport labels are returned during creation and are not generally downloadable later. Register exactly one private IShippingDocumentStore when using Ekom fulfillment. The fulfillment service stores labels and document metadata before marking the shipment Created; only opaque references are kept in ShippingProvider.CustomData.

StoreAsync receives deterministic references and must be idempotent and all-or-nothing for each request. The implementation is responsible for private authorization, encryption where appropriate, retention, and cleanup when an order is removed. If persistence is interrupted after DHL creation, fulfillment remains non-retryable and the same references can be used for reconciliation.

The carrier does not expose shipment deletion. CancelPickupAsync only cancels a courier pickup and must not be interpreted as deleting or voiding an AWB. Unified Location Finder IDs are not mapped to Express destination service-point IDs.

DHL's published terms restrict storing, modifying, and disclosing Product and Rating Data. This package does not cache rates or product responses. Confirm the terms applicable to your DHL agreement before persisting or redistributing them.

Official documentation: https://developer.dhl.com/api-reference/dhl-express-mydhl-api

Product Compatible and additional computed target framework versions.
.NET net8.0 is compatible.  net8.0-android was computed.  net8.0-browser was computed.  net8.0-ios was computed.  net8.0-maccatalyst was computed.  net8.0-macos was computed.  net8.0-tvos was computed.  net8.0-windows was computed.  net9.0 was computed.  net9.0-android was computed.  net9.0-browser was computed.  net9.0-ios was computed.  net9.0-maccatalyst was computed.  net9.0-macos was computed.  net9.0-tvos was computed.  net9.0-windows was computed.  net10.0 was computed.  net10.0-android was computed.  net10.0-browser was computed.  net10.0-ios was computed.  net10.0-maccatalyst was computed.  net10.0-macos was computed.  net10.0-tvos was computed.  net10.0-windows was computed. 
Compatible target framework(s)
Included target framework(s) (in package)
Learn more about Target Frameworks and .NET Standard.

NuGet packages

This package is not used by any NuGet packages.

GitHub repositories

This package is not used by any popular GitHub repositories.

Version Downloads Last Updated
0.1.1 33 9/12/2026