Carrier management
A carrier is an external shipping provider (for example, DHL, FedEx, Bpost) responsible for transporting packages across the supply change. Each carrier offers distinct services, coverage areas, and service levels.
Role in fulfillmenttools
Carrier data (for example, pickup availability, cutoff times, service options) is used during routing to compute a shipment carrier recommendation per order. If a carrier is specified at order level, that specification is used. If not, the recommended carrier is applied during shipment creation based on configured availability and operational constraints.
Functional capabilities
Carrier integrations enable:
Shipment carrier recommendation based on routing decisions. Applied during shipment creation if no carrier is specified at order level
Creation of shipping and return labels
Access to tracking information
Automatic update of the handover task upon parcel pickup
Recording and processing of delivery events, including successful delivery and delivery issues
Configurations
For consideration during routing and shipment, carriers must:
Be activated at tenant level (credentials and core settings)
Be connected to facilities (facility–carrier connection with status, cutoff times, and optional delivery areas)
Include Country Service Mappings (CCSMs) for source and destination requirements and allowed services
Define label or parcel classifications and non-delivery days (optional)
Set carrier capacity per facility–carrier pickup slot (optional)
Available carriers
Both native and third-party integrations are supported. The available features are exposed through a consistent interface regardless of the model.
Standard carrier integrations
The following carriers are currently have integrations with fulfillmenttools. Availability depends on the region and service coverage defined in contractual agreements.
GLS
Germany (domestic). For PUDO delivery, the Parcel Locker ID must be set in “additional address information”.
UPS via Parcelbroker
UPS_PARCELBROKER
Germany
Technology partners Some carriers are integrated through technology partners (for example, VCE). In these cases, the type of credentials required may differ from the carrier's native API. Credentials are provided as part of the onboarding process.
While only one native carrier integration is possible per carrier type, multiple custom carriers can be configured to support diverse operational needs. Multiple custom carriers can coexist within the same tenant. Selection depends on routing, facility connections, and service availability.
Custom carriers
If you don't want to use one of our native carrier integrations, you can create a custom carrier that is connected through an external service or operational process. This mechanism enables you to integrate:
Local delivery partners (for example, bike couriers)
Store operators who hand parcels to local drop-off points at flexible times
Internal delivery fleets with independent routing systems and apps
See the Custom carrier article for more information.
Activating supported carriers
Carrier integrations facilitate data exchange with external shipping providers, enabling label creation, tracking, delivery event processing (e.g., pickup, in-transit, delivered), and handover updates.
A list of supported carriers can be found under supported carriers.
Two integration models are supported that are connecting fulfillmenttools and carriers:
Direct integration: A connection to the carrier’s native technical interface
Third-party integration: A connection via a multi-carrier provider that acts as an intermediary and offers access to multiple carriers through a single interface
Both models support the same functional scope and are accessed through a consistent API layer. The integration method can differ per tenant, depending on contractual and operational requirements. Direct and third-party integrations can also be combined in parallel if needed.
Carrier connections to facilities
Carriers must be explicitly connected to facilities to be available during shipment creation and routing. A facility-to-carrier connection defines where a carrier is operationally available and specifies the configuration parameters that influence routing and shipping logic.
Entities in carrier integration
Carrier integration involves two categories of entities:
Configurations entities
Define how carriers can be set up and used.
Carrier: Representation of a shipping provider, created either as a native, third-party, or custom carrier
Facility-to-carrier connection: Defines availability at a facility, including cutoff times, delivery areas, and capacity rules
Carrier Country Service Mapping (CCSM): Template for required data and allowed services per origin–destination combination
Label classifications: Parcel size and weight categories defined in the carrier configuration
Operational entities
Represent objects created during the fulfillment process:
Shipment: A container for one or more parcels, always linked to a carrier
Parcel: A single physical parcel with its own label and tracking information
Delivery events: Status updates such as pickup, in-transit, or delivered
Facility-to-carrier configuration parameters
Each facility-to-carrier connection contains specific parameters:
Cutoff time: Time when the carrier performs parcel pickup at the facility. Affects same-day delivery eligibility and must align with the facility’s fulfillment schedule
Delivery areas (optional): Postal codes and country codes defining where shipments can be delivered from this facility
Carrier status: Only carriers that are active both at tenant and facility level are available for routing
Capacity limits and non-delivery days (optional): Rules to ensure that pickup constraints and calendar restrictions are respected
Versioning and URL overrides: Updates require versioning (optimistic locking). Facility-specific URL overrides can be defined to differentiate between sandbox and production usage
All configuration steps related to carrier activation and facility assignment must be performed via API. Once activated, carriers can be further managed in the Backoffice interface.
By default, a newly created tenant system does not show the available carriers within the Backoffice since most of the carriers are country-specific. Activating a carrier has to be done via API. After that, it can be configured within the Backoffice.
Data for activating carriers
To ensure frictionless shipping operations, certain data must be available at shipment creation. Data is categorized as mandatory, recommended, or optional. While only mandatory data is required for domestic shipments, providing both mandatory and recommended data is strongly advised, especially for international use cases.
Source (facility) data
Postal address of the shipping facility
Telephone number, email address
parcel.sender ▷ shipment.sourceAddress ▷ facility.address
Target (consumer) data
Consumer postal address (including house number)
Telephone number, email address
parcel.recipient ▷ shipment.targetAddress ▷ order.consumer.address
Customs (international shipments)
None
HS Code (8 digits)
Customs value per unit (in minor currency units, e.g., cents)
Currency (ISO-4217)
Number of decimal places
orderLine.article.attributes ▷ listing.attributes
Insurance values
None
Insurance value per unit (minor currency units)
Currency (ISO-4217)
Number of decimal places
Customs and insurance data are handled separately, no fallback between categories
Physical dimensions and weight
None
Weight per unit (grams) Height, width, length (mm) (optional)
orderLine.article.attributes ▷ listing.attributes
Parcel label classifications
Array of predefined parcel types (dimensions, weight) selectable during label creation
Values are carrier- and contract-specific and may be omitted
Duplicates are prohibited: Two entries are duplicates if their dimensions and services are identical
Last updated