Zum Hauptinhalt springen

Abholaufträge

Planen Sie eine einmalige Paketabholung von Ihrem Standort. DPD holt die Pakete am gewünschten Datum innerhalb eines festgelegten Zeitfensters ab.

EndpunktAuthentifizierung
POST /api/v1/collection-requestsBearer JWT-Token erforderlich

Anfrage​

Abfrageparameter: lang (optional) — lokalisiert Fehlermeldungen (z.B. de_CH, en_US, fr_CH, it_CH)

Body: List<CollectionRequestDTO>

Felder​

FeldTypLängePflichtfeldBeschreibung
idLong—NeinAuftragskennung zur Nachverfolgung in der Antwort
invoicingNumberString1–20JaIhre DPD-Kundenrechnungsnummer
pickupDateString10JaGewünschtes Abholdatum (yyyy-MM-dd), muss in der Zukunft liegen
referenceNumberString0–50NeinIhre interne Referenznummer
noteString0–255NeinBesondere Abholhinweise
senderAddressDTO—JaAdresse, von der die Pakete abgeholt werden
receiverAddressDTO—JaEndbestimmungsadresse
requesterAddressDTO—NeinPerson, die die Abholung anfordert (Standard: Empfänger)
numberOfParcelsInteger—JaErwartete Paketanzahl. Die API erzwingt keinen Wertebereich
weightInteger—NeinGesamtgewicht aller Pakete in Gramm
serviceCodeString—JaMuss vorhanden sein, der Wert wird jedoch ignoriert — Abholaufträge werden immer als B2B erstellt
clientSoftwareString1–30JaName Ihrer Anwendung. Fehlt der Wert oder ist er leer, wird die Anfrage abgelehnt
clientVersionString1–10JaVersion Ihrer Anwendung. Fehlt der Wert oder ist er leer, wird die Anfrage abgelehnt

Beispiel​

curl -X POST "https://label-print-shipments.dpd.ch/api/v1/collection-requests?lang=de_CH" \
-H "Authorization: Bearer <jwt_token>" \
-H "Content-Type: application/json" \
-d '[
{
"invoicingNumber": "12345678",
"pickupDate": "<next working day, yyyy-MM-dd>",
"serviceCode": "B2B",
"numberOfParcels": 5,
"weight": 25000,
"clientSoftware": "My Integration",
"clientVersion": "1.0.0",
"sender": {
"name": "Sender Company AG",
"countryCode": "CH",
"zipCode": "8000",
"city": "Zürich",
"street": "Industriestrasse 25",
"phone": "+41441234567"
},
"receiver": {
"name": "Receiver GmbH",
"countryCode": "DE",
"zipCode": "10115",
"city": "Berlin",
"street": "Alexanderplatz 1"
}
}
]'

Antwort​

201 Created — alle Aufträge erstellt:

{
"tracingId": "TRACE-789",
"success": [
{ "tracingId": "BPsEYzTIZ" }
],
"failed": []
}

Jeder success[]-Eintrag enthält die dem erstellten Auftrag zugewiesene tracingId sowie identificationNumber, sofern der Anfrage-Eintrag einen Wert mitgeliefert hat. Ein id- oder referenceNumber-Feld gibt es in einem Erfolgseintrag nicht — id erscheint nur in failed[]-Einträgen.

Null-Felder werden in Antworten weggelassen, daher enthält ein Erfolgseintrag häufig nur tracingId.

207 Multi-Status — Teilerfolg. Jeder Eintrag in failed[] enthält eine identificationNumber (spiegelt den vom Client übergebenen Wert, sofern der Eingabe-Eintrag einen hatte) und einen errorCode; Feldfehler erscheinen als flaches fieldErrors[]-Array, wobei jeder Eintrag seinen eigenen path trägt:

{
"tracingId": "TRACE-790",
"success": [],
"failed": [
{
"identificationNumber": "client-supplied-id-4",
"errorCode": "SYS-VALIDATION-FAILURE",
"fieldErrors": [
{
"path": "pickup.date",
"code": "SHP-VAL-PICKUP-DATE-INVALID",
"message": "Pickup date is invalid."
}
]
}
]
}

Ein vorübergehender Fehler (ohne fieldErrors – ein Ausfall ist kein Feldproblem) sieht dagegen so aus:

{
"identificationNumber": "client-supplied-id-6",
"errorCode": "SHP-ROUTING-ENGINE-UNAVAILABLE",
"reason": "SHP-ROUTING-ENGINE-UNAVAILABLE: Routing engine is temporarily unavailable. Please try again."
}

Statuscodes:

CodeBeschreibung
201 CreatedAlle Abholaufträge erstellt
207 Multi-StatusTeilerfolg
400 Bad RequestValidierungsfehler, oder alle Positionen der Sammelanfrage sind fehlgeschlagen — unabhängig von der Ursache, auch bei einem Ausfall der Routing-Engine
401 UnauthorizedToken fehlt oder ungültig

Hinweise​

  • pickupDate muss in der Zukunft liegen; vergangene Daten werden abgelehnt
  • weight wird in Gramm angegeben (z.B. 25000 = 25 kg)
  • Die Adressvalidierung folgt denselben länderspezifischen Regeln wie bei Sendungen (NL-Hausnummer, GB-Telefon, Nicht-CH/LI-E-Mail usw.)