fulfillmenttools
API documentationIncident ManagementFeedback
Developer Docs
Developer Docs
  • Developer docs
  • Getting Started
    • Quickstart
    • Integration tutorial
      • Adding facilities
      • Adding listings to facilities
      • Configuring stocks
      • Carrier configuration
      • Placing orders
      • Checkout options
      • Distributed Order Management System (Routing)
      • Local fulfillment configuration
    • Free trial
  • Technical Basics
    • Access to fulfillmenttools
    • Feature status
    • Available regions
    • Backup policies
  • Connecting to fulfillmenttools
    • Client SDKs
    • commercetools connect
    • OpenID connect
      • Configure Microsoft Entra ID / Azure Active Directory
      • Configure Keycloak
  • API
    • Core concepts
      • Authentication & authorization
      • API Versioning & lifecycle
      • Assign user to jobs
      • Localization
      • Resource timestamps
      • Custom attributes
      • Article attributes
      • Recordable attributes
      • Data update guarantees
      • Rate limits & scaling
      • Retries
      • Performance on test vs. production systems
      • Load testing
    • API calls
      • Postman
      • cURL
      • GraphQL Explorer
    • GraphQL API
    • RESTful API
      • Pagination interface
      • RapiDoc
      • OpenAPI 3.0 Spec
    • Eventing
      • Structure of an event
      • Available events
        • Event flows
      • Eventing example
      • Event export
  • Integration Guides
    • Address formats for specific carriers
    • Basics
      • Article categories
      • Audits
      • Custom services & bundled line items
      • Facilities
      • Facility groups
      • GDPR configuration
      • Listings
      • Orders
        • Order types
        • Order status
      • Remote configuration
      • Receipts
      • Search
      • Subscribe to events
      • Sticker
      • Stocks
      • Storage locations
      • Tags
      • Users
    • Channel inventory
    • Facility discounts
    • Inbound process
    • Outbound stocks
    • Purchase order
    • Receipt
    • Routing strategy
    • Show sticker to clients
    • Stow jobs
  • More Integration Guides
    • Carrier management
      • Introduction to carrier configuration
      • Required data when operating carriers
      • Adding & connecting carriers to facilities
      • Custom carrier
    • Configurations for order fulfillment
      • Picking configuration
      • Packing configuration
      • Handover configuration
      • Printing and document configuration
      • Packing container types
      • Parcel tag configuration
      • Headless order fulfillment
      • Short-pick reasons
      • External documents in order fulfillment
      • Service jobs
      • Load units
      • Running sequence
    • DOMS - distributed order management system (routing)
    • External actions
    • Interfacility transfer
    • Notifications
    • Availability & promising
    • Returns
Powered by GitBook
On this page
  • Service Options
  • Home delivery
  • Non-home delivery
  • DHL Packstation or Postfiliale/Paketshop (Germany)
  • DHL Service Point/Parcel Locker (Netherlands, Belgium, Luxemburg)
  • PostNL Service Point/Parcel Locker (Netherlands)
  • bpost Pick-up Point (Belgium)
  • postnord Service Point/Parcel Locker
  • GLS ParcelShop Delivery
Edit on GitHub
  1. Integration Guides

Address formats for specific carriers

This section provides carrier-specific details for the consumer address and options, tailored to some carriers.

Service Options

Some carriers offer additional service options to be requested with the shipping labels, like "signature required", "insurance", "cash on delivery", etc. You can specify these services in the preferredCarriersWithProduct element of the Order.deliveryPreferences:

"deliveryPreferences": {
  "shipping": {
    "preferredCarriersWithProduct": [
      {
        "carrierKey": "BPOST",
        "carrierServices": [
          "SIGNATURE"
        ]
      }
    ],
    "serviceLevel": "DELIVERY"
  }
}

The list of supported options and services depends on the chosen carrier. Please get in touch with us if you find an option missing that you would like to use for your labels.

Home delivery

For most carriers and countries, home delivery is requested simply by setting the Order.consumer.addresses[].addressType to POSTAL_ADDRESS.

Non-home delivery

Non-home delivery refers to deliveries made to packing stations or points of different carriers.

DHL Packstation or Postfiliale/Paketshop (Germany)

DHL example in Order.consumer (carrier DHL_V2):

"addresses": [
  {
    "addressType": "POSTAL_ADDRESS",
    "firstName": "Karl",
    "lastName": "Kunde",
    "additionalAddressInfo": "<Postnummer>", // for 'DHL Postfiliale/Paketshop'
    "street": "Packstation", // or 'Postfiliale'
    "houseNumber": "171",
    "postalCode": "50667",
    "city": "Köln",
    "country": "DE"
  }
]

DHL Service Point/Parcel Locker (Netherlands, Belgium, Luxemburg)

DHL example in Order.consumer (carrier DHL_BENELUX):

"addresses": [
  {
    "addressType": "INVOICE_ADDRESS",
    "firstName": "Mieke",
    "lastName": "Janssen",
    "street": "Kudelstaartseweg",
    "houseNumber": "22",
    "postalCode": "1431 GA",
    "city": "Aalsmeer",
    "country": "NL"
  },
  {
    "addressType": "PARCEL_LOCKER",
    "additionalAddressInfo": "8004-NL-201117",
    "firstName": "Mieke",
    "lastName": "Janssen",
    "street": "Kudelstaartseweg",
    "houseNumber": "22",
    "postalCode": "1431 GA",
    "city": "Aalsmeer",
    "country": "NL"
  }
]

PostNL Service Point/Parcel Locker (Netherlands)

In the context of the parcel locker (not service point), the PARCEL_LOCKER address needs the additionalAddressInfo field that must contain the customer's PostNL ID number.

PostNL example in Order.consumer (carrier POSTNL):

"addresses": [
  {
    "addressType": "INVOICE_ADDRESS",
    "firstName": "Mieke",
    "lastName": "Janssen",
    "street": "Kudelstaartseweg",
    "houseNumber": "22",
    "postalCode": "1431 GA",
    "city": "Aalsmeer",
    "country": "NL"
  },
  {
    "addressType": "PARCEL_LOCKER",
    "additionalAddressInfo":"<PostNL ID>", // only for 'parcel locker'
    "companyName": "ACME",
    "firstName": "Mieke",
    "lastName": "Janssen",
    "street": "Zijdstraat",
    "houseNumber": "38",
    "postalCode": "1431 ED",
    "city": "Aalsmeer",
    "country": "NL"
  }
]

bpost Pick-up Point (Belgium)

bpost example in Order.consumer (carrier BPOST):

"addresses": [
  {
    "addressType": "PARCEL_LOCKER",
    "additionalAddressInfo": "100472",
    "firstName": "Jean",
    "lastName": "Peeters",
    "street": "Carrefour de l'Europe",
    "houseNumber": "2",
    "postalCode": "1000",
    "city": "Bruxelles",
    "country": "BE"
  }
]

If the additionalAddressInfo field is omitted, the point of delivery is chosen automatically by determining the nearest service point at the shipping label request. Furthermore, a optional INVOICE_ADDRESS is possible.

postnord Service Point/Parcel Locker

postnord example in Order.consumer (carrier POST_NORD):

"addresses": [
  {
    "addressType": "PARCEL_LOCKER",
    "additionalAddressInfo": "105926",
    "firstName": "Peter",
    "lastName": "Nielsen",
    "street": "Gymnasievej",
    "houseNumber": "29",
    "postalCode": "4600",
    "city": "Køge",
    "country": "DK"
  }
]

GLS ParcelShop Delivery

GLS example in Order.consumer (carrier GLS):

"addresses": [
  {
    "addressType": "PARCEL_LOCKER",
    "additionalAddressInfo": "2080095282",
    "firstName": "Jens",
    "lastName": "Jensen",
    "street": "Gymnasievej",
    "houseNumber": "29",
    "postalCode": "4600",
    "city": "Køge",
    "country": "DK"
  }
]

Last updated 1 day ago

For DHL , the consumer address must contain the customer's DHL Postnummer, to make sure that information is provided by the customer during the checkout process. The Postnummer must be set in the additionalAddressInfo field and the street must be Packstation (fixed value). The houseNumber must be the number of the selected DHL Packstation.

For DHL , the consumer address street must be Postfiliale (fixed value) and the houseNumber must be the number of the selected Filiale. The fields postalCode and city must be used to point to the Filiale (i.e. not the customer's address). Additionally, the customer's DHL Postnummer can be set in the additionalAddressInfo field.

In the Netherlands, customers can pick up their parcels at a DHL or (pakketautomaat). For this to work, the order needs to include two consumer addresses: one of typeINVOICE_ADDRESS, the other of type PARCEL_LOCKER. The PARCEL_LOCKER address must be the customer's address, and it must include the ServicePoint ID in the additionalAddressInfo field. In the INVOICE_ADDRESS should also provide the real customer's name because it is used on the label, so that the customer can be identified when picking up the parcel at the service point. Check the DHL BeNeLux for details.

In the Netherlands, customers can pick up their parcels at a PostNL (PostNL-punt) or (pakketautomaat). For this to work, the order needs to have two consumer addresses: one of typeINVOICE_ADDRESS, the other of type PARCEL_LOCKER. The PARCEL_LOCKER address should be the address of the pickup point, and it must include a companyName. In the INVOICE_ADDRESS should also provide the real customer's name because it is used on the label, so that the customer can be identified when picking up the parcel at the service point. Check the PostNL for details.

In Belgium, bpost offers customers the option to pick up their parcel at a or a . The order must contain an address of type PARCEL_LOCKER and the additionalAddressInfo must contain the service point id as determined by the bpost API. At the moment, fulfillmenttools supports bpost service points of type 1 (PostOffice), 2 (Post Point & Parcel Point), 4 (Pack Station/Parcel Locker), and 16 (Kariboo/Parcel Point).

In the Nordics, e.g. Denmark, Finland, Sweden, the customer can choose to pick up the parcel at a postnord Service Point or (Pakkeboks/Nærboks). For this to work, the PARCEL_LOCKER address must include the Service Point ID (e.g. 105926) in the additionalAddressInfo field. Optional INVOICE_ADDRESS is possible. Check the postnord for more information.

In Denmark and many other countries, the customer can pick up the parcel at a GLS depot or (PakkeShop). For this to work, the PARCEL_LOCKER address must be the address of the parcel shop and it must include the ParcelShopID (e.g. 2080099016, 0560013596) in the additionalAddressInfo field. First name and last name must be of the customer so they can be identified when picking up the parcel. Optionally, you can provide an INVOICE_ADDRESS. Check the for more information on parcel shops.

Packstation
Postfiliale/Paketshop
service point
parcel locker
API documentation
service point
parcel locker
API documentation
Pick-up point
Parcel locker
GeoLocator
Parcel locker
API documentation
ParcelShop
GLS ShipIT documentation