---
title: Select a pickup location
description: Find a GLS parcel shop and use its ID in price and shipment requests.
---

For GLS `SHOP_DELIVERY`, select a parcel shop before you preview a price or create a draft. Use the receiver's delivery address for the search.

## Find shops for the receiver

1. Authenticate with a Customer API key that has `SHIPMENTS_READ`.
2. Send `GET /pickup-locations` with `street1`, `city`, `zip`, and `country` as query parameters. Add `street2` or `region` when needed. This request does not require an idempotency key.
3. Let the receiver select an item from `data.pickupLocations`.

The [pickup-location reference](/reference/pickup-locations/pickup-locations) contains the parameters, examples, and response schema. The search requests 20 nearest GLS shops. If that search returns none, the fallback can return all shops in the receiver country. An empty array means no shops were found.

Results are ordered nearest first by `distanceKm`, the straight-line distance from the receiver address in kilometres. This value is not driving distance. Coordinates and structured opening hours can help you display the choices.

If lookup fails or receiver coordinates cannot be obtained, the API returns `503 PICKUP_LOCATIONS_UNAVAILABLE`. Retry later. For shared authentication, access, and rate-limit errors, see [Troubleshooting](/reference/troubleshooting#common-errors).

## Use the selected shop ID

Include the selected shop's `externalLocationId` in your [price preview](/reference/prices/prices), [shipment creation](/reference/shipments/shipments-create), or [draft update](/reference/shipments/shipments-update):

```json
{
  "pickupLocation": {
    "externalLocationId": "95002"
  }
}
```

Use the ID returned by the lookup. `pickupLocation` accepts only `externalLocationId`. Bookogsend retrieves the shop's name, address, and opening hours. Keep the shipment's receiver address as the delivery address.

The selected shop must exist in the receiver's country. An invalid ID returns `400 INVALID_PICKUP_LOCATION` with a field error for `pickupLocation.externalLocationId`. If lookup cannot complete, the API returns `503 PICKUP_LOCATIONS_UNAVAILABLE`. Retry later with the same idempotency key for shipment writes.

Booking revalidates the stored shop ID and refreshes its details before accepting the shipment. You do not send the shop ID again in the booking request.

Use `SHOP_DELIVERY` and its package type only when [service discovery](/reference/services/services) returns them for your account. Complete the remaining sender, receiver, package, contact, and pickup-date fields as required by the endpoint. Continue with the [shipment lifecycle](/guides/shipments) after you select the shop.
