Zum Hauptinhalt springen

Paketshops

Suchen Sie nach DPD-Abholpunkten (Paketshops, Schliessfächer, Servicepunkte) nach Adresse oder GPS-Koordinaten.

Basispfad: /api/v1/parcel-shop Authentifizierung: Bearer JWT-Token erforderlich


Übersicht der Endpunkte

MethodeEndpunktBeschreibung
GET/api/v1/parcel-shop/{parcelShopId}Bestimmten Paketshop nach ID abrufen
POST/api/v1/parcel-shop/addressPaketshops nach Adresse suchen
POST/api/v1/parcel-shop/coordinatesPaketshops nach GPS-Koordinaten suchen

GET /api/v1/parcel-shop/{parcelShopId}

Detailinformationen für einen bestimmten Paketshop abrufen.

Pfadparameter: parcelShopId – z.B. 699CH190001

Abfrageparameter: locale (optional) – z.B. de_CH

curl -X GET "https://label-print-shipments.dpd.ch/api/v1/parcel-shop/699CH190001?locale=de_CH" \
-H "Authorization: Bearer <jwt_token>"

Antwort 200 OK:

{
"id": "699CH190001",
"parcelShopId": 190001,
"name": "DPD Pickup Point Zürich HB",
"distance": 250,
"type": 1,
"address": {
"name": "Kiosk Hauptbahnhof",
"street": "Bahnhofplatz",
"houseNumber": "1",
"zipCode": "8000",
"city": "Zürich",
"countryCode": "CH"
},
"available": "Y",
"latitude": 47.3769,
"longitude": 8.5417,
"openingHours": [
{
"weekDay": "MONDAY",
"openMorning": "06:00",
"closeMorning": "22:00",
"openAfternoon": null,
"closeAfternoon": null
}
],
"holidays": [
{ "start": "2025-12-24", "end": "2025-12-26" }
],
"services": [
{ "code": "PICKUP", "available": true, "description": "Parcel pickup available" },
{ "code": "DROPOFF", "available": true, "description": "Parcel drop-off available" }
]
}

Statuscodes: 200 OK | 401 Unauthorized | 404 Not Found


POST /api/v1/parcel-shop/address

Suche nach Paketshops in der Nähe einer Adresse. Ergebnisse sortiert nach Entfernung (nächster zuerst).

Request body:

FeldTypPflichtfeldBeschreibungStandard
countryString (2)JaISO-Ländercode
zipCodeStringJaPostleitzahl
cityStringNeinStadtname
streetStringNeinStrassenname
destCountryCodeStringNeinZielland für Service-Filterung
weightStringNeinPaketgewicht in kg
servicesStringNeinKommagetrennte Servicecodes
typeStringNeinFilter für Paketshop-Typ
limitIntegerNeinMax. Ergebnisse25
availabilityDateStringNeinVerfügbarkeit an Datum prüfen (yyyy-MM-dd)
hideClosedBooleanNeinAktuell geschlossene Shops ausblendenfalse
curl -X POST "https://label-print-shipments.dpd.ch/api/v1/parcel-shop/address?locale=de_CH" \
-H "Authorization: Bearer <jwt_token>" \
-H "Content-Type: application/json" \
-d '{
"country": "CH",
"zipCode": "8000",
"city": "Zürich",
"limit": 10
}'

Statuscodes: 200 OK (kann leere Liste zurückgeben) | 400 Bad Request | 401 Unauthorized


POST /api/v1/parcel-shop/coordinates

Suche nach Paketshops in der Nähe von GPS-Koordinaten. Gleiche Filterung und gleiches Antwortformat wie die Adresssuche.

Request body:

FeldTypPflichtfeldBeschreibung
latitudeDoubleJaGPS-Breitengrad (−90 bis 90)
longitudeDoubleJaGPS-Längengrad (−180 bis 180)
destCountryCodeStringNeinZielland
limitIntegerNeinMax. Ergebnisse (Standard: 25)
hideClosedBooleanNeinGeschlossene Shops ausblenden (Standard: false)
availabilityDateStringNeinVerfügbarkeit an Datum prüfen
curl -X POST "https://label-print-shipments.dpd.ch/api/v1/parcel-shop/coordinates" \
-H "Authorization: Bearer <jwt_token>" \
-H "Content-Type: application/json" \
-d '{
"latitude": 47.3769,
"longitude": 8.5417,
"limit": 10,
"hideClosed": true
}'

Statuscodes: 200 OK | 400 Bad Request | 401 Unauthorized


Paketshop-Typen

TypBeschreibung
1DPD-Abholpunkt
2DPD-Schliessanlage
3Partnershop (z.B. Post)
4Servicepunkt

Code-Beispiele

Paketshop-Auswahl in einem Sendungsformular:

async function searchParcelShops(zipCode, city) {
const response = await fetch(
'https://label-print-shipments.dpd.ch/api/v1/parcel-shop/address',
{
method: 'POST',
headers: {
'Authorization': `Bearer ${token}`,
'Content-Type': 'application/json'
},
body: JSON.stringify({ country: 'CH', zipCode, city, limit: 10 })
}
);
return response.json();
}

Kartenbasierte Suche:

function findNearby(lat, lng) {
return fetch('https://label-print-shipments.dpd.ch/api/v1/parcel-shop/coordinates', {
method: 'POST',
headers: { 'Authorization': `Bearer ${token}`, 'Content-Type': 'application/json' },
body: JSON.stringify({ latitude: lat, longitude: lng, limit: 20, hideClosed: true })
}).then(r => r.json());
}