# DHL eCommerce Wallet Guide

DHL eCommerce provides specialized, value-driven shipping solutions for B2C and C2C customers,
focusing on lightweight (under 5 lb) international parcel delivery using the USPS as the first mile.
EasyPost provides an integrated DHL eCommerce account with discounted international rates and no minimum volume or contracts required.

This guide covers integration using the EasyPost-provided account, also known as the Wallet account.

> Note: DHL eCommerce Wallet is a consumer-to-consumer (C2C) or business-to-consumer (B2C) service. Packages cannot
  be shipped to businesses.

---

## Prerequisites

### Account Registration

Sign up for an EasyPost account to obtain a **Test** and **Production** API
key. See Authentication and Key Management for more information.

> Note: Negotiated rates are only available in Production mode.

### Carrier Setup

#### Create an EasyPost DHL eCommerce Wallet Account

1. Log in to EasyPost and navigate to **Account Settings**.
2. Select the **Carriers** tab.
3. Select the **EasyPost Wallet Carriers** tab.
4. Find DHL eCommerce in the list of carriers and select **Create Account** to complete the account creation process.

![Steps to create a DHL eCommerce Wallet Account in the EasyPost web UI](https://docs.easypost.com/images/guides/dhl-ecommerce/dhl-ecs-account-web-ui.png)

### DHL eCommerce Wallet Account via API

The API structure specified by EasyPost can also be used to add the DHL eCommerce Wallet account.

```shell
curl -X POST https://api.easypost.com/v2/carrier_accounts \
  -u "$EASYPOST_API_KEY": \
  -H 'Content-Type: application/json' \
  -d '{
  "carrier_account": {
    "type": "DhlEcsAccount",
    "description": "DhlEcsAccount",
    "payment_mode": "aggregation"
  }
}'
```

### Software Requirements

Download an EasyPost Client Library or utilize the REST API with cURL.

### Documentation Review

Examine the EasyPost Objects section to understand the API's structure,
which is critical for constructing requests and interpreting responses.

Related:

- [Getting Started Guide](https://docs.easypost.com/guides/getting-started)
- [Manage Carrier Accounts](https://app.easypost.com/account/settings?tab=carriers)

---

## Rates

When utilizing the **EasyPost DHL eCommerce Wallet** account, billing occurs directly through EasyPost,
deducting label fees from the EasyPost wallet. For the purchase of labels in a production environment,
sufficient funds must be available in the wallet to cover the cost of the label.

Should there be any price adjustments post-purchase of labels and the shipment of physical items,
EasyPost will modify the final amount deducted from the wallet accordingly.

---

## Service Levels

Discounted service levels included with the **DHL eCommerce Wallet** account provide U.S. export coverage to over 220+ countries worldwide.
Visit DHL eCommerce’s website for detailed information on international shipping services.

### DHL eCommerce Wallet Service Levels

Service levels are generated from live carrier metadata and are not included in this file. Retrieve them from the Carrier Metadata endpoint: https://docs.easypost.com/docs/carrier-metadata. Use `carrier=dhlecommercesolutions`.

---

## Predefined Packages

There are no predefined packages for DHL eCommerce.

Related:

- [Predefined Packages](https://docs.easypost.com/docs/parcels#predefined-packages)

---

## Generating Shipping Labels

Generating shipping labels for DHL eCommerce requires specific fields during the shipping creation process.

> Note: It's very important to review the

    DHL eCommerce Wallet International Shipping Guide

  for detailed instructions in order to obtain rates and shipping labels.

### One-Call Buys

One-call buys enable streamlined label purchasing through the EasyPost API by consolidating multiple operations into a single API request.
This feature is designed to simplify and accelerate the shipping process by combining the creation of a shipment, retrieval of rates,
and purchasing the shipping label into one efficient step.

See Reducing API Response Times for more information.

### Supported Options

#### Label Formats

DHL eCommerce supports PNG and ZPL labels.

#### Label Sizes

The standard label size is 4 x 6.

### Customs Services

When shipping to a country with customs clearance, all shipments will be checked by customs in that country. Therefore, it is mandatory
to include the customs forms with shipments.

EasyPost offers a Customs Guide that outlines the process for including customs information in shipments. This guide enables the
automatic generation of required customs forms for international shipping between two countries.

### Returns

Return services are not available with EasyPost DHL eCommerce Wallet accounts.

Related:

- [Shipment Documentation](https://docs.easypost.com/docs/shipments)
- [Options](https://docs.easypost.com/docs/shipments/options)
- [Customs Guide](https://www.dhl.com/us-en/home/ecommerce.html)
- [Customs Guide](https://docs.easypost.com/guides/customs-guide)

---

## Hazardous Materials (HAZMAT)

### DHL eCommerce Wallet Accounts

When utilizing the **DHL eCommerce Wallet** account, dangerous goods or hazardous items that are flagged during the inspection process cannot be shipped
in the DHL eCommerce network. These items will be returned by the inspection facility.

Return charges incurred by the inspection facility are submitted by DHL eCommerce as a debit to the customer’s account.

Dangerous Goods/Hazardous items are returned weekly, and the inspection facility issues a report with the issue summary and return tracking details.

![DHL eCommerce Wallet Account Dangers Goods Tracking](https://docs.easypost.com/images/guides/dhl-ecommerce/dhl-ecs-dangerous-goods-tracking.png)

Related:

- [Hazardous Goods and Unacceptable Shipments](https://www.dhl.com/us-en/home/ecommerce/business-help-center/hazardous-goods-and-unacceptable-shipments.html#:~:text=DHL%20eCommerce%20only%20ships%20hazardous,be%20approved%20prior%20to%20shipment.)

---

## Pickups

EasyPost DHL eCommerce Wallet account shipments must be handed off to USPS via either drop-off or pickup.
USPS will transfer the package to DHL eCommerce for delivery on the shipper’s behalf.

---

## Manifesting

Manifesting DHL eCommerce shipments serves two primary functions:

- **Electronic Data Transmission:** It fulfills the DHL eCommerce requirement of electronically transmitting shipment data.
- **Driver Manifest Shipment Summary:** Generates a summary document needed for DHL eCommerce driver pickup.

![DHL eCommerce Driver's Manifest Shipment Summary](https://docs.easypost.com/images/guides/dhl-ecommerce/dhl-driver-manifest-shipment-summary.png)

### Asynchronous Manifesting

Manifesting is not instantaneous and may take **several minutes** to complete and receive a manifest document.

Immediate receipt of a driver manifest summary is not possible; it becomes available shortly after the manifesting process:

1. Create a batch with a list of shipments (or add shipments to the batch
   throughout the day).
2. Batch Processing

   1. **Option A:** Wait approximately 1-3 seconds for the batch creation to complete.
   2. **Option B:** Monitor for a `batch.updated` webhook event indicating the `batch.state` has changed to `created`.

> Note: Initiating the next step during the **“creating”** status leads to errors.

3. Execute the manifest `scan_form` batch.
4. Manifest Confirmation
   1. **Option A:** Wait up to five minutes and retrieve the `scan_form` to confirm completion.
   2. **Option B:** Use webhooks to wait for the `scan_form.updated` event and obtain the manifest document URL at that time.

Related:

- [Batches Documentation](https://docs.easypost.com/docs/batches)
- [Manifest Guide](https://docs.easypost.com/guides/manifest-guide)

---

## Tracking

DHL eCommerce tracking operates similarly to other carriers integrated with EasyPost.

- DHL may transfer packages to USPS for last-mile delivery within the United States.
- The accuracy of final delivery tracking is contingent upon DHL receiving and then conveying USPS updates to EasyPost.

EasyPost simplifies package tracking by offering two methods:

- Tracking with an existing number and carrier.
- Using a Tracker included with an EasyPost-purchased shipping label.

The service integrates webhooks for timely shipment updates. For detailed information on
tracking methods, visit the Tracking Guide.

Related:

- [Trackers Documentation](https://docs.easypost.com/docs/trackers)
- [Trackers Guide](https://docs.easypost.com/guides/tracking-guide)

---

## Additional Resources

### Carrier Metadata

The Carrier Metadata endpoint can programmatically return information about service
levels, predefined packages, supported features, and shipment options.

Use this information to quickly integrate and make educated decisions about the mix of carriers for shipping needs. Additionally,
the Carrier Metadata endpoint is available to retrieve comprehensive information about
all carriers on the EasyPost platform, enhancing decision-making for carrier services.

### Support and Troubleshooting

In addition to the guidance provided in our Carrier Guides, EasyPost offers support to assist with FAQs, troubleshooting issues, and inquiries related to the EasyPost platform.

Please visit the Help Center for more information.

Related:

- [Carrier Metadata](https://docs.easypost.com/docs/carrier-metadata)
- [Help Center](https://support.easypost.com/hc/en-us)

---

## Talk to a Shipping Expert

For questions about getting started with the EasyPost API please Talk to a Shipping Expert or Contact Support.

Related:

- [Talk to a Shipping Expert](https://www.easypost.com/talk-to-easypost)
- [Contact Support](https://support.easypost.com/hc/requests/new)