DPD Label Print Versand-API
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
| API | Endpunkte | Beschreibung |
|---|---|---|
| Authentifizierung | 2 | Benutzeranmeldung und JWT-Token-Generierung |
| Sendungen | 1 | Sendungen mit automatischer Etikettenerstellung anlegen |
| Sendungsverfolgung | 1 | Echtzeit-Sendungsverfolgungsdaten |
| Paketshops | 3 | Paketshops suchen und Detailinformationen abrufen |
| Abholaufträge | 1 | Einmalige Paketabholungen planen |
| Abholbestellungen | 1 | Wiederkehrende 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:
houseNumberist Pflichtfeld - GB:
phoneist Pflichtfeld (internationales Format) - US/CA:
stateCodeist Pflichtfeld - Nicht-CH/LI:
emailist Pflichtfeld (ausser GB)
Servicecodes
| Code | Service | Beschreibung | Max. Gewicht |
|---|---|---|---|
| PSD | DPD Classic | Standard-Inlandslieferung | 35 kg |
| PSI | DPD Classic International | Internationale Lieferung | 20 kg |
| PL | DPD Express Letter | Express-Briefservice | 2 kg |
| PBOX | DPD ParcelBox | Paketbox-Lieferung | 5 kg |
| RET | Retourenservice | Rücksendungen | variiert |
Fehlerantworten
Alle Endpunkte geben konsistente Fehlerobjekte zurück:
{
"timestamp": "2025-10-30T10:30:00Z",
"status": 400,
"error": "Bad Request",
"message": "Validierung fehlgeschlagen",
"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 -Parameter für lokalisierte Meldungen:
| Sprache | Locale-Werte |
|---|---|
| Deutsch | de_CH, de_DE |
| Englisch | en_US, en_GB |
| Französisch | fr_CH, fr_FR |
| Italienisch | it_CH, it_IT |
Best Practices
- Token: sicher speichern, vor Ablauf erneuern, nie in URLs oder Logs preisgeben
- Rate Limiting:
429 Too Many Requestskorrekt behandeln; Paketshop-Daten cachen - Fehlerbehandlung: HTTP-Statuscodes prüfen; Wiederholungslogik für 5xx-Fehler implementieren
- Validierung: Daten client-seitig validieren; länderspezifische Regeln beachten