Shipping APIs 7 min read

DHL's Hybrid API: Mother-Baby Consolidation That Actually Has an API

Consolidating many parcels under one master airway bill is standard practice for export, and with most carriers it means a desktop app and manual data entry. DHL India exposes it as a real SOAP operation — one call carrying a General block, a Mother, and an array of Babies. Here's how the structure works, and the gate you should keep it behind until you've seen a live response.

Updated Aug 2026
DHL's Hybrid API: Mother-Baby Consolidation That Actually Has an API

What Consolidation Is, and Why It's Usually Manual #

If you export many small parcels on the same day, you generally do not send them as many independent international shipments. You consolidate: one master airway bill covers the whole batch across the international leg, and each individual parcel rides underneath it with its own child waybill for final delivery.

It is cheaper, it is one customs presentation instead of many, and it is how essentially all cross-border e-commerce moves.

The frustrating part is that with several carriers this is a desktop-application workflow — you type the batch into a piece of installed software, it produces the documents, and nothing about it is scriptable.

In one line

DHL India exposes consolidation as a real SOAP operation, Hybrid_API, taking a General block, one Mother and an ArrayOfBaby. One call, one master, many children — no desktop app in the loop.

Parcels grouped together for shipping, representing consolidation under one master waybill
Many parcels, one master waybill across the international leg.

The Request Shape #

Three parts, and the mental model matters more than the field names:

A Hybrid API request has a General block, one Mother shipment, and an array of Baby shipments beneath it General credentials, origin, batch-level data Mother the master airway bill Baby 1 Baby 2 Baby 3 Baby n each Baby is one buyer's parcel, with its own consignee and contents

Each Baby carries what a single shipment would: consignee address, contents, declared value, HS code. The Mother carries the aggregate. The General block carries what applies to the whole batch — credentials, origin, and the shipment-level settings.

If you already have a working single-shipment call, most of the per-Baby payload is the object you are already building. That is the pragmatic route in: reuse your single-shipment request builder for each child rather than writing a second, parallel field mapper you then have to keep in sync.

Keep It Behind a Flag Until You've Seen a Real Response #

This is the operational advice that matters more than the schema.

A consolidation call is not a low-stakes request. It reserves a master airway bill and creates real shipments. And with a SOAP service whose responses are delimited strings rather than structured XML, you cannot fully know the response shape until you have fired one for real.

So the sequence that works:

  1. Build and test the envelope offline

    Assert the structure, the field order, the value placement, the array nesting. All of this is testable without any network call, and it is where the bugs are.

  2. Ship it disabled by default

    A config flag, defaulting to off. The code is in production; the behaviour is not.

  3. Keep the per-item path as the live route

    Until consolidation is proven, batches go out through the proven single-shipment path. Slower and more calls, but known-good.

  4. Enable only after a real response is confirmed

    Fire one live, in coordination with the carrier, and check the parse against what actually came back.

Do not let an unproven consolidation path be the default just because it is newer. A failed consolidation is not a failed request — it can be a batch of parcels with documents that do not match what was filed, which is a physical problem in a warehouse rather than an exception in a log.

Design Notes That Save Rework #

  • Map it onto your existing batch entity. If you already model a group of orders going out together, consolidation is a mode of that entity — not a new one. The master waybill is a field on the batch; each child waybill a field on the item.
  • Normalise the result immediately. Convert the carrier's response into the same internal result object your single-shipment path produces. Everything downstream — labels, invoices, tracking hand-off — then works unchanged.
  • Fall back automatically. If consolidation cannot run for any reason, drop to the per-item path rather than failing the batch. An operator waiting on labels does not care which route produced them.
  • Expect one line item per child. These envelopes are typically flat; multi-line orders need their value aggregating into the fields available rather than repeating blocks.

Working on the same lane? The single-shipment side is covered in DHL India CSB-V: the SOAP API that returns a delimited string, and the FedEx equivalent in FedEx Open Ship.

FAQ #

What is mother-baby consolidation in shipping?

One master airway bill (the mother) covers a batch of parcels across the international leg, while each individual parcel (a baby) carries its own child waybill for final delivery. It reduces cost and means one customs presentation instead of many.

Does DHL India offer a consolidation API?

Yes. The Hybrid_API SOAP operation accepts a General block, a single Mother and an ArrayOfBaby, creating the master and all child shipments in one call.

Can I reuse my single-shipment code for the children?

Largely, yes — each Baby carries broadly what a single shipment does. Reusing the single-shipment request builder per child is preferable to writing a parallel field mapper that then has to be kept in sync.

Should consolidation be the default path?

Not until you have confirmed the live response format. Keep it behind a configuration flag that defaults to off, run batches through the proven per-item path meanwhile, and fall back automatically if consolidation cannot run.

How do I test a consolidation call without shipping anything?

Assert on the constructed envelope rather than the round trip. Structure, field order, value placement and array nesting are all testable offline, and that is where the defects are. Reserve live calls for validating response parsing.

Don't want to build this yourself?

I set this up for sellers and agencies every week. Book a free 30-minute audit of your Amazon data & PPC setup — you'll leave with a plan either way, whether we work together or not.

Found this helpful? Share it:

WhatsApp