| Authentication | Use DHL API credentials and DHL-native auth headers. | Switch to a SendLabel API key, usually via `Authorization: Bearer <API_KEY>`. | You must change request headers and secret management. |
| Base URL | Call DHL official domains. | Call the SendLabel domain instead. | Replace the base URL and keep it configurable. |
| Endpoint paths | Use DHL-native orders / labels / senders / manifests routes. | Prefer SendLabel DHL compatibility routes, or move directly to `/api/v1/shipments/import` for new projects. | At minimum, remap the endpoint paths. |
| Shipment payload | Field names, nesting and enums follow DHL-native structures. | Compatibility routes stay close to DHL, but SendLabel still normalizes input. | Usually only a small field review is needed; deep DHL-specific assumptions may need a mapping layer. |
| Multiple shipments per request | Client programs may submit multiple shipments in one request. | Current DHL compat `orders` is best for one-shipment mirroring; use the unified import endpoint for batch flows. | If the current client depends on multi-shipment requests, split calls or move to the unified API. |
| Label return format | The client may expect DHL-native label return behavior. | API clients typically consume `labelBase64`, and can still download labels later via the label endpoint. | If the client assumes a raw PDF stream, add a decode or follow-up download step. |
| Sender management | Use sender records managed in DHL directly. | Use SendLabel sender records, with compat sender routes to reduce migration cost. | You usually need to sync or recreate sender data and adjust default sender handling. |
| Manifest semantics | Some clients treat manifests as account-wide DHL artifacts. | SendLabel currently exposes manifests more from the customer/system scope. | If the client expects account-wide manifest aggregation, re-check the business expectation. |
| Address validation | Clients may pass raw addresses directly to DHL. | SendLabel normalizes, splits and validates addresses before shipment creation. | Address issues may surface earlier; forward validation feedback to ERP/WMS users. |
| Error handling | The code may depend on raw DHL error codes and payload fields. | Compatibility errors now use a dual-track structure: DHL-style fields remain where possible and a normalized `sendlabelError` block is added for standard parsing. | If the client hardcodes DHL-native error fields, it should be updated; prefer `sendlabelError` first and keep legacy-field fallback only for compatibility. |
| Idempotency and retries | Many clients simply retry after timeouts. | Use `Idempotency-Key` explicitly so SendLabel can handle duplicate requests safely. | Strongly recommended: add idempotency keys to the ERP/WMS request model. |
| Billing and invoicing | Billing may have been handled directly between the client and DHL. | After switching, shipments enter SendLabel's balance, credit-line and batched invoicing model. | The client must align with the new reconciliation and invoice cycle, especially weekly or threshold-triggered billing. |
| Pickup / Postnumber / Tracking | Some clients assume these capabilities are included in shipping by default. | These remain separate product-line capabilities and should not be assumed to be part of core shipping by default. | If the client relies on these APIs, confirm enablement and testing separately. |