Manifesti
Genera un PDF di manifesto che elenca le spedizioni consegnate a DPD per un determinato numero di fatturazione. Supporta la tracciabilità del ritiro giornaliero — il file viene restituito come allegato PDF ed è destinato a essere stampato e conservato con i pacchi.
| Endpoint | Produce | Autenticazione |
|---|---|---|
POST /api/v1/shipments/print-manifest | application/pdf | Token JWT Bearer obbligatorio |
L'endpoint restituisce solo le spedizioni di proprietà dell'utente autenticato. Filtrare il risultato con un intervallo di date (fromDate/toDate, applicato a importedAt) e/o un elenco esplicito di parcelNumbers — almeno uno dei due filtri è obbligatorio.
Richiesta
Content-Type: application/json
{
"invoicingNumber": "12345678",
"fromDate": "2026-03-25",
"toDate": "2026-04-29",
"parcelNumbers": ["05305000123456", "05305000123457"],
"address": {
"reference": "PICKUP-001"
},
"printSettings": {
"printRecipientReference": true,
"printParcelReference1": true,
"printParcelReference2": true,
"printUserName": true,
"printWeight": true,
"sortOrderForManifest": "CONSIGNEE_ZIP"
}
}
| Campo | Tipo | Obbligatorio | Descrizione |
|---|---|---|---|
invoicingNumber | String | Obbligatorio | Numero di fatturazione che delimita il manifesto |
fromDate | Data (yyyy-MM-dd) | Condizionale | Limite inferiore inclusivo di importedAt. Obbligatorio se parcelNumbers non è fornito. Deve essere fornito insieme a toDate |
toDate | Data (yyyy-MM-dd) | Condizionale | Limite superiore inclusivo di importedAt. Obbligatorio se parcelNumbers non è fornito. Deve essere fornito insieme a fromDate |
parcelNumbers | Array<String> | Condizionale | Restringe il manifesto a specifici numeri di pacco. Obbligatorio se non viene fornito alcun intervallo di date |
address | Oggetto | Facoltativo | Indirizzo di ritiro che delimita il manifesto. Viene letto solo reference; tutti gli altri campi dell'indirizzo sono ignorati. Il riferimento viene risolto in base alla configurazione cliente. Se omesso e il risultato copre più ritiri, viene utilizzato il primo ritiro trovato e le altre spedizioni vengono silenziosamente scartate |
printSettings | Oggetto | Obbligatorio | Impostazioni di stampa applicate al manifesto generato |
Campi printSettings
| Campo | Tipo | Obbligatorio | Descrizione |
|---|---|---|---|
printRecipientReference | Boolean | Facoltativo | Stampa la colonna riferimento destinatario |
printParcelReference1 | Boolean | Facoltativo | Stampa il riferimento pacco 1 |
printParcelReference2 | Boolean | Facoltativo | Stampa il riferimento pacco 2 |
printUserName | Boolean | Facoltativo | Stampa il nome utente sul manifesto |
printWeight | Boolean | Facoltativo | Stampa la colonna peso del pacco |
sortOrderForManifest | Enum | Obbligatorio | Ordinamento delle spedizioni sul manifesto |
Valori di sortOrderForManifest:
| Valore | Descrizione |
|---|---|
CONSIGNEE_ZIP | Ordinamento per CAP del destinatario |
CONSIGNEE_COUNTRY | Ordinamento per paese del destinatario |
CONSIGNEE_NAME | Ordinamento per nome del destinatario |
REFERENCE_1 | Ordinamento per riferimento pacco 1 |
PARCEL_NUMBER | Ordinamento per numero di pacco |
Caso d'uso comune — manifesto di oggi
Il caso di integrazione più frequente è la generazione del manifesto per le spedizioni importate oggi, appena prima del ritiro da parte del corriere. Impostare fromDate e toDate sulla data odierna (giorni UTC) e omettere parcelNumbers per includere tutte le spedizioni di quel numero di fatturazione in quella giornata:
{
"invoicingNumber": "12345678",
"fromDate": "2026-05-26",
"toDate": "2026-05-26",
"printSettings": {
"printRecipientReference": true,
"printParcelReference1": true,
"printUserName": true,
"printWeight": true,
"sortOrderForManifest": "CONSIGNEE_ZIP"
}
}
TODAY=$(date -u +%F)
curl -X POST "https://label-print-shipments.dpd.ch/api/v1/shipments/print-manifest" \
-H "Authorization: Bearer <jwt_token>" \
-H "Content-Type: application/json" \
-o manifest.pdf \
-d "{
\"invoicingNumber\": \"12345678\",
\"fromDate\": \"$TODAY\",
\"toDate\": \"$TODAY\",
\"printSettings\": {
\"printRecipientReference\": true,
\"printParcelReference1\": true,
\"printUserName\": true,
\"printWeight\": true,
\"sortOrderForManifest\": \"CONSIGNEE_ZIP\"
}
}"
Note:
fromDate/toDatevengono confrontati conimportedAtin UTC (dall'inizio alla fine della giornata). Le spedizioni importate dopo la mezzanotte UTC del giorno di calendario successivo nel fuso orario locale non appariranno.- Fornire
address: {"reference": "PICKUP-001"}per limitare a un ritiro specifico quando l'utente ne ha più di uno.
Risposta
200 OK — manifesto generato; il corpo è il flusso PDF.
| Header | Valore |
|---|---|
Content-Type | application/pdf |
Content-Disposition | attachment; filename="manifest.pdf" |
Content-Length | Dimensione del PDF in byte |
Codici di stato
| Codice | Descrizione |
|---|---|
200 OK | Manifesto generato |
400 Bad Request | Filtro mancante o non valido (ad es. solo fromDate o toDate impostato, fromDate successivo a toDate, né intervallo di date né parcelNumbers forniti, printSettings mancante, address.reference non risolvibile) |
401 Unauthorized | Token mancante o non valido |
404 Not Found | Nessuna spedizione corrisponde al filtro, o nessuna corrisponde al ritiro richiesto |
Esempio
curl -X POST "https://label-print-shipments.dpd.ch/api/v1/shipments/print-manifest" \
-H "Authorization: Bearer <jwt_token>" \
-H "Content-Type: application/json" \
-o manifest.pdf \
-d '{
"invoicingNumber": "12345678",
"fromDate": "2026-03-25",
"toDate": "2026-04-29",
"parcelNumbers": ["05305000123456", "05305000123457"],
"address": {
"reference": "PICKUP-001"
},
"printSettings": {
"printRecipientReference": true,
"printParcelReference1": true,
"printParcelReference2": true,
"printUserName": true,
"printWeight": true,
"sortOrderForManifest": "CONSIGNEE_ZIP"
}
}'