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
| Metodo | Endpoint | Descrizione |
|---|---|---|
| GET | /api/v1/parcel-shop/{parcelShopId} | Ottenere un punto di ritiro specifico per ID |
| POST | /api/v1/parcel-shop/address | Cercare punti di ritiro per indirizzo |
| POST | /api/v1/parcel-shop/coordinates | Cercare 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:
| Campo | Tipo | Obbligatorio | Descrizione | Predefinito |
|---|---|---|---|---|
country | String (2) | Obbligatorio | Codice paese ISO | — |
zipCode | String | Obbligatorio | Codice postale | — |
city | String | Facoltativo | Nome città | — |
street | String | Facoltativo | Nome via | — |
destCountryCode | String | Facoltativo | Paese di destinazione per il filtraggio dei servizi | — |
weight | String | Facoltativo | Peso del pacco in kg | — |
services | String | Facoltativo | Codici servizio separati da virgola | — |
type | String | Facoltativo | Filtro per tipo di punto di ritiro | — |
limit | Integer | Facoltativo | Numero massimo di risultati | 25 |
availabilityDate | String | Facoltativo | Verifica la disponibilità alla data (yyyy-MM-dd) | — |
hideClosed | Boolean | Facoltativo | Escludere i punti attualmente chiusi | false |
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:
| Campo | Tipo | Obbligatorio | Descrizione |
|---|---|---|---|
latitude | Double | Obbligatorio | Latitudine GPS (da −90 a 90) |
longitude | Double | Obbligatorio | Longitudine GPS (da −180 a 180) |
destCountryCode | String | Facoltativo | Paese di destinazione |
limit | Integer | Facoltativo | Numero massimo di risultati (predefinito: 25) |
hideClosed | Boolean | Facoltativo | Escludere i punti chiusi (predefinito: false) |
availabilityDate | String | Facoltativo | Verifica 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
| Tipo | Descrizione |
|---|---|
1 | Punto di ritiro DPD |
2 | Locker DPD |
3 | Negozio partner (es. ufficio postale) |
4 | Punto 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());
}