# 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.&#x20;

## 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"
  }
]
```
