# Address formats for specific carriers

This article provides carrier-specific details for the consumer address and options.

## Service options

Some carriers offer additional service options that can be requested with shipping labels, such as signature requirements, insurance, or cash on delivery. These services are specified in the `preferredCarriersWithProduct` element of the `Order.deliveryPreferences`.

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

The list of supported options and services depends on the chosen carrier.

## Home delivery

To request home delivery for most carriers and countries, set the `Order.consumer.addresses[].addressType` to `POSTAL_ADDRESS`.

## Non-home delivery

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

### DHL packstation or postfiliale/paketshop (Germany)

For delivery to a DHL [Packstation](https://www.dhl.de/en/privatkunden/pakete-empfangen/an-einem-abholort-empfangen/packstation/empfangen-packstation.html), the consumer address must contain the customer's DHL postnummer. The postnummer must be set in the `additionalAddressInfo` field. The `street` field must be `Packstation` and the `houseNumber` must be the number of the selected DHL Packstation.

For delivery to a DHL [Postfiliale or Paketshop](https://www.dhl.de/de/privatkunden/pakete-empfangen/an-einem-abholort-empfangen/filiale-empfang.html), the `street` must be `Postfiliale` and the `houseNumber` must be the number of the selected Filiale. The `postalCode` and `city` fields must point to the Filiale, not the consumer's home address. The consumer's DHL Postnummer can optionally be set in the `additionalAddressInfo` field.

The following is an example for `Order.consumer` using the carrier `DHL_V2`.

```json
"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 or parcel locker (Netherlands, Belgium, Luxembourg)

In the Netherlands, consumers can pick up their parcels at a DHL [service point](https://www.dhlecommerce.nl/en/consumer/dhl-servicepoints) or [parcel locker](https://www.dhlecommerce.nl/en/dhl-locker). To use this option, the order must include two consumer addresses: one of type `INVOICE_ADDRESS` and one of type `PARCEL_LOCKER`. The `PARCEL_LOCKER` address must include the `servicePointID` in the `additionalAddressInfo` field. The `INVOICE_ADDRESS` must contain the consumer's name, which is printed on the label for identification at the service point. For details, refer to the DHL BeNeLux [API documentation](https://developer.dhl.com/api-reference/parcel-eu#get-started-section/).

The following is an example for `Order.consumer` using the carrier `DHL_BENELUX`:

```json
"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", // the servicePointID
    "firstName": "Mieke",
    "lastName": "Janssen",
    "street": "Kudelstaartseweg",
    "houseNumber": "22",
    "postalCode": "1431 GA",
    "city": "Aalsmeer",
    "country": "NL"
  }
]
```

### PostNL service point or parcel locker (Netherlands)

In the Netherlands, consumers can pick up their parcels at a PostNL [service point](https://www.postnl.nl/en/receiving/parcels/) (PostNL-punt) or [parcel locker](https://www.postnl.nl/ontvangen/pakket-ontvangen/pakket-en-briefautomaat/). To enable this, the order must have two consumer addresses: one of type `INVOICE_ADDRESS` and one of type `PARCEL_LOCKER`. The `INVOICE_ADDRESS` must contain the customer's name for identification purposes at the service point. For details, refer to the PostNL [API documentation](https://docs.api.postnl.nl/#tag/Shipment). The `PARCEL_LOCKER` address must be the address of the pickup point and must include a `companyName`. It also requires the `additionalAddressInfo` field to contain the consumer's PostNL ID number.

The following is an example for `Order.consumer` using the carrier `POSTNL`. The `additionalAddressInfo` field is only required for parcel locker delivery.

```json
"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>",
    "companyName": "ACME",
    "firstName": "Mieke",
    "lastName": "Janssen",
    "street": "Zijdstraat",
    "houseNumber": "38",
    "postalCode": "1431 ED",
    "city": "Aalsmeer",
    "country": "NL"
  }
]
```

### bpost pick-up point or parcel locker (Belgium)

In Belgium, bpost offers consumers the option to pick up their parcel at a [pick-up point](https://www.bpost.be/en/receive-parcel/pick-up-point) or a [parcel locker](https://www.bpost.be/en/parcel-locker). The order must contain an address of type `PARCEL_LOCKER` where the `additionalAddressInfo` field contains the service point ID from the bpost [GeoLocator](https://pudo.bpost.be/Locator) API. fulfillmenttools supports bpost service points of type 1 (PostOffice), 2 (Post Point & Parcel Point), 4 (Pack Station/Parcel Locker), and 16 (Kariboo/Parcel Point).

If the `additionalAddressInfo` field is omitted, the nearest service point is automatically chosen when the shipping label is requested. An `INVOICE_ADDRESS` can also be provided.

The following is an example for `Order.consumer` using the carrier `BPOST`:

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

### postnord service point or parcel locker

In the Nordics, for example in Denmark, Finland, or Sweden, the consumer can choose to pick up a parcel at a postnord service point or [parcel locker](https://www.postnord.dk/en/private/receive-as-a-private-customer/flexible-delivery/?epslanguage=en) (Pakkeboks or Nærboks). To use this option, the `PARCEL_LOCKER` address must include the Service Point ID (for example, `105926`) in the `additionalAddressInfo` field. An `INVOICE_ADDRESS` can also be provided. For more information, see the [postnord API documentation](https://atdeveloper.postnord.com/apis/details?systemName=location-v5-servicepoints).

The following is an example for `Order.consumer` using the carrier `POST_NORD`:

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

### GLS ParcelShop delivery

In Denmark and many other countries, the consumer can pick up a parcel at a GLS depot or a [ParcelShop](https://gls-group.com/DK/en/depot-parcel-shop-search). For this delivery type, the `PARCEL_LOCKER` address must be the address of the parcel shop and it must include the `parcelShopID` (for example, `2080099016`) in the `additionalAddressInfo` field. The first and last name must be the consumer's for identification during pickup. An `INVOICE_ADDRESS` can also be provided. For more information on parcel shops, refer to the [GLS ShipIT documentation](https://shipit.gls-group.eu/webservices/3_4_19/doxygen/WS-REST-API/rest_parcel_shop.html).

{% hint style="info" %}
You must have a log in to see the links to the GLS documentation.
{% endhint %}

The following is an example for `Order.consumer` using the carrier `GLS`:

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


---

# Agent Instructions: Querying This Documentation

If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter:

```
GET https://docs.fulfillmenttools.com/documentation/by-pillar/store-operations/carrier-management/address-formats-for-specific-carriers.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
