Passa al contenuto principale

Punti di ritiro

Cercare punti di ritiro DPD (parcel shop, locker, punti di servizio) per indirizzo o coordinate GPS.

Percorso base: /api/v1/parcel-shop Autenticazione: Token JWT Bearer obbligatorio


Riepilogo endpoint

MetodoEndpointDescrizione
GET/api/v1/parcel-shop/{parcelShopId}Ottenere un punto di ritiro specifico per ID
POST/api/v1/parcel-shop/addressCercare punti di ritiro per indirizzo
POST/api/v1/parcel-shop/coordinatesCercare punti di ritiro per coordinate GPS

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

Recuperare i dettagli di un punto di ritiro specifico.

Parametro di percorso: parcelShopId — es. 699CH190001

Parametro di query: locale (facoltativo) — es. it_CH

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

Risposta 200 OK:

{
"id": "699CH190001",
"parcelShopId": 190001,
"name": "DPD Pickup Point Lugano",
"distance": 250,
"type": 1,
"address": {
"name": "Chiosco Stazione",
"street": "Piazzale della Stazione",
"houseNumber": "1",
"zipCode": "6900",
"city": "Lugano",
"countryCode": "CH"
},
"available": "Y",
"latitude": 46.0050,
"longitude": 8.9470,
"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" }
]
}

Codici di stato: 200 OK | 401 Unauthorized | 404 Not Found


POST /api/v1/parcel-shop/address

Cercare punti di ritiro vicino a un indirizzo. Risultati ordinati per distanza (dal più vicino).

Corpo della richiesta:

CampoTipoObbligatorioDescrizionePredefinito
countryString (2)ObbligatorioCodice paese ISO
zipCodeStringObbligatorioCodice postale
cityStringFacoltativoNome città
streetStringFacoltativoNome via
destCountryCodeStringFacoltativoPaese di destinazione per il filtraggio dei servizi
weightStringFacoltativoPeso del pacco in kg
servicesStringFacoltativoCodici servizio separati da virgola
typeStringFacoltativoFiltro per tipo di punto di ritiro
limitIntegerFacoltativoNumero massimo di risultati25
availabilityDateStringFacoltativoVerifica la disponibilità alla data (yyyy-MM-dd)
hideClosedBooleanFacoltativoEscludere i punti attualmente chiusifalse
curl -X POST "https://label-print-shipments.dpd.ch/api/v1/parcel-shop/address?locale=it_CH" \
-H "Authorization: Bearer <jwt_token>" \
-H "Content-Type: application/json" \
-d '{
"country": "CH",
"zipCode": "6900",
"city": "Lugano",
"limit": 10
}'

Codici di stato: 200 OK (può restituire un elenco vuoto) | 400 Bad Request | 401 Unauthorized


POST /api/v1/parcel-shop/coordinates

Cercare punti di ritiro vicino a coordinate GPS. Stesso filtraggio e formato di risposta della ricerca per indirizzo.

Corpo della richiesta:

CampoTipoObbligatorioDescrizione
latitudeDoubleObbligatorioLatitudine GPS (da −90 a 90)
longitudeDoubleObbligatorioLongitudine GPS (da −180 a 180)
destCountryCodeStringFacoltativoPaese di destinazione
limitIntegerFacoltativoNumero massimo di risultati (predefinito: 25)
hideClosedBooleanFacoltativoEscludere i punti chiusi (predefinito: false)
availabilityDateStringFacoltativoVerifica la disponibilità alla data
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": 46.0050,
"longitude": 8.9470,
"limit": 10,
"hideClosed": true
}'

Codici di stato: 200 OK | 400 Bad Request | 401 Unauthorized


Tipi di punto di ritiro

TipoDescrizione
1Punto di ritiro DPD
2Locker DPD
3Negozio partner (es. ufficio postale)
4Punto di servizio

Esempi di codice

Selettore di punto di ritiro in un modulo di spedizione:

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();
}

Ricerca basata su mappa:

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());
}