Passa al contenuto principale

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.

EndpointProduceAutenticazione
POST /api/v1/shipments/print-manifestapplication/pdfToken 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 parcelNumbersalmeno 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"
}
}
CampoTipoObbligatorioDescrizione
invoicingNumberStringObbligatorioNumero di fatturazione che delimita il manifesto
fromDateData (yyyy-MM-dd)CondizionaleLimite inferiore inclusivo di importedAt. Obbligatorio se parcelNumbers non è fornito. Deve essere fornito insieme a toDate
toDateData (yyyy-MM-dd)CondizionaleLimite superiore inclusivo di importedAt. Obbligatorio se parcelNumbers non è fornito. Deve essere fornito insieme a fromDate
parcelNumbersArray<String>CondizionaleRestringe il manifesto a specifici numeri di pacco. Obbligatorio se non viene fornito alcun intervallo di date
addressOggettoFacoltativoIndirizzo 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
printSettingsOggettoObbligatorioImpostazioni di stampa applicate al manifesto generato

Campi printSettings

CampoTipoObbligatorioDescrizione
printRecipientReferenceBooleanFacoltativoStampa la colonna riferimento destinatario
printParcelReference1BooleanFacoltativoStampa il riferimento pacco 1
printParcelReference2BooleanFacoltativoStampa il riferimento pacco 2
printUserNameBooleanFacoltativoStampa il nome utente sul manifesto
printWeightBooleanFacoltativoStampa la colonna peso del pacco
sortOrderForManifestEnumObbligatorioOrdinamento delle spedizioni sul manifesto

Valori di sortOrderForManifest:

ValoreDescrizione
CONSIGNEE_ZIPOrdinamento per CAP del destinatario
CONSIGNEE_COUNTRYOrdinamento per paese del destinatario
CONSIGNEE_NAMEOrdinamento per nome del destinatario
REFERENCE_1Ordinamento per riferimento pacco 1
PARCEL_NUMBEROrdinamento 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/toDate vengono confrontati con importedAt in 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.

HeaderValore
Content-Typeapplication/pdf
Content-Dispositionattachment; filename="manifest.pdf"
Content-LengthDimensione del PDF in byte

Codici di stato

CodiceDescrizione
200 OKManifesto generato
400 Bad RequestFiltro 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 UnauthorizedToken mancante o non valido
404 Not FoundNessuna 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"
}
}'