TracePass
Pässe

Upload-Datei für das EU DPP Registry zu Batteriepässen erstellen

Erstellt die XML-Datei, die der Wirtschaftsakteur auf der Website des EU DPP Registry hochlädt (DPP Registration → upload a file), für die von Ihnen genannten Batteriepässe, bis zu 100 pro Aufruf. Die Registrierung ist eine eigene Handlung des Wirtschaftsakteurs mit seinem eigenen EU Login; TracePass bereitet die Datei vor und reicht sie nie ein.

POST/api/v1/registry/upload-file
OpenAPI 3.1 herunterladen
POST/api/v1/registry/upload-file

Upload-Datei für das EU DPP Registry zu Batteriepässen erstellen

Erstellt die XML-Datei, die der Wirtschaftsakteur auf der Website des EU DPP Registry hochlädt (DPP Registration → upload a file), für die von Ihnen genannten Batteriepässe, bis zu 100 pro Aufruf. Die Registrierung ist eine eigene Handlung des Wirtschaftsakteurs mit seinem eigenen EU Login; TracePass bereitet die Datei vor und reicht sie nie ein.

Nur Pässe, die bestehen würden, kommen hinein. Das Registry lehnt die ganze Datei wegen eines fehlerhaften Eintrags ab, daher kommt jeder andere Pass in excluded mit seinem reason zurück: not_found, not_battery, not_published, registered_in_production, registration_in_progress (wird gerade an ein Register nach EN 18222 gesendet), readiness_blocked (die blockierenden Befunde stehen in details), invalid_upi, duplicate_upi (dieselbe Adresse wie ein anderer Pass in der Datei) oder over_limit (nach dem 100.). included listet die Pässe in der Datei, jeden mit seiner Adresse.

Die Adresse jedes aufgenommenen Passes wird im Pass eingefroren (registryUpi) und die Vorbereitung festgehalten (registrationPreparedVia: "file"). Speichern Sie xml unter filename und laden Sie die Datei unverändert hoch: Der Name verwendet nur die Zeichen, die das Registry akzeptiert. Eine Vorbereitung ist keine Registrierung: Erfassen Sie die Antwort des Registry für jeden Pass mit POST /api/v1/passports/{id}/registration.

Die Antwort ist JSON statt reinem XML, damit sie sich unter Idempotency-Key wiederholen lässt und die Ausschlüsse enthält. Nur in Bezahlplänen (402 auf Free). OAuth-Aufrufer müssen für einen Admin oder Owner handeln. Zählt einen v1-Schreibvorgang pro aufgenommenem Pass.

Header

  • Authorizationerforderlich

    string

    Bearer <token> — entweder ein tp_ API-Schlüssel (Developer → API Keys; am einfachsten, für Server-zu-Server) oder ein OAuth-2.0-Access-Token (Developer → OAuth Apps; für nutzerautorisierte Apps, scoped und widerrufbar). Die Authentication-Seite enthält den vollständigen OAuth-Flow und die Scope-Liste.

    e.g. Bearer tp_REDACTED_xxxxxxxxxxxx

  • Idempotency-Key

    string

    UUID v4.

Body-Felder

  • passportIdserforderlich

    string[] (24 hex chars each, 1–100)

    Die Pässe für die Datei. Pässe, die nicht bestehen würden, kommen in excluded zurück, statt den Aufruf scheitern zu lassen.

    e.g. ["6650b2c3d4e5f6a7b8c9d0e1", "6650b2c3d4e5f6a7b8c9d0e2"]

Anfrage

curl -sS -X POST \
  https://app.tracepass.eu/api/v1/registry/upload-file \
  -H "Authorization: Bearer tp_REDACTED_xxxxxxxxxxxx" \
  -H "Content-Type: application/json" \
  -H "Idempotency-Key: 5a8d2f17-9c4e-4b3a-8e61-0f2c7d9b4e35" \
  -d '{ "passportIds": ["6650b2c3d4e5f6a7b8c9d0e1", "6650b2c3d4e5f6a7b8c9d0e2"] }'

Antwort

{
  "xml": "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n…",
  "filename": "acme-batteries-dpp-registry-batch-2026-11-06.xml",
  "included": [
    {
      "id": "6650b2c3d4e5f6a7b8c9d0e1",
      "upi": "https://id.tracepass.eu/01/04012345000016/21/A1B2C3"
    }
  ],
  "excluded": [
    {
      "id": "6650b2c3d4e5f6a7b8c9d0e2",
      "reason": "readiness_blocked",
      "details": [
        "Required field \"Battery Carbon Footprint — Total\" has no value."
      ]
    }
  ]
}