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.
The Request Shape #
Three parts, and the mental model matters more than the field names:
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:
- 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.
- Ship it disabled by default
A config flag, defaulting to off. The code is in production; the behaviour is not.
- 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.
- 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.
Related guides
Shipping APIs
DHL India CSB-V: The SOAP API That Returns a Delimited String
Integrating India's CSB-V commercial export lane means a SOAP service with 142 positional fields, no sandbox, and responses that are delimited strings rather than parseable XML. Here's what CSB-V actually is, the four things about this API that break normal SOAP tooling, and how to test an integration that has no test environment.
Read guide →Shipping APIs
FedEx Open Ship: The Consolidation API Hiding in the Ship API
Consolidating export parcels under one master shipment is often run by hand through a desktop tool, on the assumption that the shipping API can't do it. It can — FedEx's Ship API exposes it as Open Ship. Here's what Open Ship is, the request shape that actually works, and the four things about it the docs gloss over.
Read guide →Amazon Ads API
Amazon Ads API Rate Limits Explained (And How to Stop Hitting Them)
A 429 storm from the Amazon Ads API almost always means your retry logic is wrong, not that your limits are too low. Here's how the per-endpoint token buckets actually work, what the response headers tell you, and the request patterns that keep you comfortably under the limit.
Read guide →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.