Zum Hauptinhalt springen

DPD Label Print Versand-API

Der DPD Label Print Webservice (REST-API) ermöglicht die serverseitige Integration der DPD-Versanddienste in Ihre ERP-, CRM- oder E-Commerce-Plattform – ohne dass die Desktop-Anwendung erforderlich ist. Erstellen Sie Etiketten, verfolgen Sie Pakete und planen Sie Abholungen programmatisch.

Die Versand-API ermöglicht die Integration der DPD-Versanddienste in Ihre Anwendungen – einschliesslich Sendungserstellung, Sendungsverfolgung, Paketshop-Suche und Abholplanung.

Basis-URL: https://label-print-shipments.dpd.ch API-Version: v1 Authentifizierung: JWT Bearer-Token (siehe Authentifizierung)


API-Referenz

APIEndpunkteBeschreibung
Authentifizierung2Benutzeranmeldung und JWT-Token-Generierung
Sendungen1Sendungen mit automatischer Etikettenerstellung anlegen
Sendungsverfolgung1Echtzeit-Sendungsverfolgungsdaten
Paketshops3Paketshops suchen und Detailinformationen abrufen
Abholaufträge1Einmalige Paketabholungen planen
Abholbestellungen1Wiederkehrende Abhol-Zeitpläne erstellen

Schnellstart

1. Zugriffstoken abrufen

curl -X POST "https://label-print-shipments.dpd.ch/api/v1/login" \
-H "Content-Type: application/json" \
-d '{
"username": "ihr_benutzername",
"password": "ihr_passwort"
}'
{
"token": "eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9...",
"refreshToken": "..."
}

2. API-Endpunkte aufrufen

Fügen Sie das Token in jede Anfrage ein:

curl -X GET "https://label-print-shipments.dpd.ch/api/v1/tracking/05305000123456" \
-H "Authorization: Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9..."

Allgemeine Konzepte

Adressvalidierung

Alle Adressfelder folgen einheitlichen Regeln:

{
"name": "Firmenname", // Pflichtfeld, max. 35 Zeichen
"countryCode": "CH", // Pflichtfeld, ISO 2-Buchstaben
"zipCode": "8000", // Pflichtfeld, max. 9 Zeichen
"city": "Zürich", // Pflichtfeld, max. 35 Zeichen
"street": "Bahnhofstrasse 1", // Pflichtfeld, max. 35 Zeichen
"phone": "+41441234567", // Pflichtfeld für GB
"email": "info@firma.ch" // Pflichtfeld für nicht-CH/LI
}

Länderspezifische Anforderungen:

  • NL: houseNumber ist Pflichtfeld
  • GB: phone ist Pflichtfeld (internationales Format)
  • US/CA: stateCode ist Pflichtfeld
  • Nicht-CH/LI: email ist Pflichtfeld (ausser GB)

Servicecodes

CodeServiceBeschreibung
B2BDPD CLASSICStandard-Inlands- und internationale Lieferung
B2BIDPD CLASSIC InternationalInternationale B2B-Sendung
B2BPDPD CLASSIC PredictMit Empfängerbenachrichtigung
PM2DPD CLASSIC GuaranteeGarantierte Zustellung bis 18:00
B2CDPD COMFORTMit Empfängerbenachrichtigung
HOMEDPD HOMEMit Empfängerbenachrichtigung
AM1DPD EXPRESS 10:00Garantierte Zustellung bis 10:00
AM2DPD EXPRESS 12:00Garantierte Zustellung bis 12:00
PSDDPD SHOPZustellung an Paketshop
PLDPD PARCEL LETTERKleine Artikel, max. 2 kg
PBOXDPD PARCELBOXGPS + Foto, max. 5 kg
RETRetoureWarenrücksendung
CRAbholauftragAbholung vom Kunden zum Endkunden
LQLimited QuantitiesGefahrgut (begrenzte Mengen)
SWAPSWAPSchneller Austausch für zurückgewiesene Ware
TYREReifenReifenversand in grossen Mengen

Fehlerantworten

Alle Endpunkte geben konsistente Fehlerobjekte zurück:

{
"timestamp": "2025-10-30T10:30:00Z",
"status": 400,
"error": "Bad Request",
"message": "Validation failed",
"path": "/api/v1/shipments"
}

207 Multi-Status – Teilerfolg (einige Einträge erfolgreich, andere fehlgeschlagen):

{
"tracingId": "TRACE-123",
"success": [],
"failed": [
{
"id": 2,
"fieldErrors": {
"field.name": ["error_code"]
}
}
]
}

Unterstützte Sprachen

Übergeben Sie den locale-Header oder -Abfrageparameter, um lokalisierte Meldungen und Verfolgungsbeschreibungen zu erhalten:

SpracheLocale-Werte
Deutschde_CH, de_DE
Englischen_US, en_GB
Französischfr_CH, fr_FR
Italienischit_CH, it_IT

Umgebungen

UmgebungBasis-URL
Produktionhttps://label-print-shipments.dpd.ch
Staginghttps://label-print-shipments-st.dpd.ch

Rate Limiting

Alle Endpunkte sind ratenbegrenzt. Bei Überschreitung der Limits wird 429 Too Many Requests zurückgegeben.

HeaderBeschreibung
X-RateLimit-LimitMaximal zulässige Anfragen im Zeitfenster
X-RateLimit-RemainingVerbleibende Anfragen im aktuellen Zeitfenster
X-RateLimit-ResetUnix-Zeitstempel, wann das Zeitfenster zurückgesetzt wird

Empfehlungen:

  • Paketshop-Daten cachen (sie ändern sich selten), um API-Aufrufe zu reduzieren
  • Exponentielles Back-off implementieren, wenn Sie eine 429-Antwort erhalten
  • Sammelanfragen für Sendungen anstelle einzelner Aufrufe verwenden, wo möglich

OpenAPI / Swagger

Interaktive API-Dokumentation und maschinenlesbare Spezifikationen sind direkt auf jedem Dienst verfügbar:

RessourceURL
Swagger UIhttps://label-print-shipments.dpd.ch/swagger-ui/index.html
OpenAPI JSONhttps://label-print-shipments.dpd.ch/v3/api-docs
OpenAPI YAMLhttps://label-print-shipments.dpd.ch/v3/api-docs.yaml

Best Practices

  • Token: sicher speichern, vor Ablauf erneuern, nie in URLs oder Logs preisgeben
  • Rate Limiting: 429 Too Many Requests mit exponentiellem Back-off behandeln; Paketshop-Daten cachen
  • Fehlerbehandlung: HTTP-Statuscodes prüfen; Wiederholungslogik für 5xx-Fehler implementieren
  • Validierung: Daten client-seitig vor dem Senden validieren; länderspezifische Regeln beachten
  • Sammelverarbeitung: Sammelerstellung von Sendungen nutzen, um Round-Trips und Rate-Limit-Verbrauch zu minimieren