/api/v1/passportsPass anlegen
Erstellt einen einzelnen Digitalen Produktpass. Der Pass ist an ein Produkt gebunden (productId) und durch eine GS1 GTIN + eine innerhalb dieser GTIN eindeutige Seriennummer identifiziert. Neue Pässe starten im Status draft — Felder werden über nachfolgende PATCH-Aufrufe befüllt und der Pass wird nach Abschluss der Prüfung über das Dashboard veröffentlicht.
GTIN muss 14 Ziffern (oder eine 13-stellige EAN, auf 14 aufgefüllt) mit gültiger GS1-Prüfziffer haben und darf noch keinem anderen Tenant zugeordnet sein. Zählt als ein v1-Schreibvorgang. Der Pass wird als Entwurf angelegt, und ein Entwurf belegt keinen Platz im maxDpps-Limit Ihres Plans. Das Anlegen liefert daher nie einen Overage-Fehler und löst keine Gebühr aus. Das Plan-Limit und eine etwaige Pro-Pass-Overage-Gebühr greifen erst, wenn der Pass im Dashboard veröffentlicht wird.
Unterstützt den optionalen Idempotency-Key-Header — die Plattform spielt die ursprüngliche 201-Antwort 24 Stunden lang für denselben Schlüssel zurück.
Header
- Authorizationerforderlich
string
Bearer <token>— entweder eintp_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 (oder ein beliebiger opaker String ≤ 64 Zeichen) pro logischer Operation. Die erste Antwort wird 24 Stunden lang zurückgespielt.
Body-Felder
- productIderforderlich
string (24 hex chars)
ID des Produkts, zu dem der Pass gehört. Muss zur Firma des API-Schlüssels gehören.
e.g. 6650a1b2c3d4e5f6a7b8c9d0
- identifier
ProductIdentifier
EN 18219 schemamarkierter Identifier. Genau eines von
identifieroder dem Legacy-gs1-Block ist erforderlich. Akzeptiert fünf Schemata:gs1(GTIN + Seriennummer),iso15459(Nicht-GS1-Agentur-ID),iec61406(IEC Identification Link URI),did(W3C DID),doi(Digital Object Identifier). FürdoiistgranularityERFORDERLICH — muss"model","batch"oder"item"sein (EN 18219 §5.6.2(b): ein DOI muss angeben, ob er das Produktmodell, eine Produktionscharge oder ein einzelnes Exemplar identifiziert). Batteriepässe akzeptieren nurgs1undiso15459;iec61406,didunddoiwerden gemäß Art. 77(3) der Batterieverordnung abgelehnt, der einen ISO/IEC 15459-basierten Identifier vorschreibt. - gs1.gtin
string (14 digits, or 13-digit EAN)
GTIN-14 mit gültiger GS1-Prüfziffer. Teil des Legacy-
gs1-Blocks — für neue Integrationen bevorzugen Sieidentifiermitscheme: "gs1". Darf nicht bereits von einem anderen Tenant registriert sein.e.g. 04012345000016
- gs1.serialNumber
string (1-100 chars)
Innerhalb der GTIN eindeutige Seriennummer. Üblich: Produktmodell + Sequenz (BP-48V-100-000001).
e.g. BP-48V-100-000001
- parties
Record<role, Party>
Optionaler struktureller Parties-Block. Eine nach Rolle indizierte Karte —
manufacturer,importer,authorisedRepresentative,distributor,recycler,producerResponsibilityOrg. Jeder Wert ist eine Party. Siehe Upsert-Party-Endpoint für die Body-Form pro Party. Rollen können auch nach der Erstellung via PATCH /api/v1/passports/{id}/parties/{role} hinzugefügt oder ersetzt werden. - lineage
LineageInput
Nur für Batteriepässe. Eine Batterie, die zur Wiederverwendung oder zur Umnutzung vorbereitet, umgenutzt oder wiederaufgearbeitet wurde, braucht einen neuen Batteriepass, der mit dem Batteriepass bzw. den Batteriepässen der ursprünglichen Batterie verknüpft ist (Art. 77 Abs. 7 der Batterieverordnung). Senden Sie
{ predecessors: [ { internalPassportId | identifier, trigger } ] }mit bis zu 10 Vorgängern:internalPassportIdfür einen eigenen Pass,identifier(sein auflösbarer URI) für jeden anderen.triggeristpreparation_for_reuse,preparation_for_repurposing,repurposingoderremanufacturing.batteryStatuswird aus diesen Werten abgeleitet, der Block ist nach dem Anlegen unveränderlich, und Ihre eigenen ursprünglichen Pässe erhalten einensuccessors-Verweis. Eine vor dem 18. Februar 2027 in Verkehr gebrachte Batterie hat keinen ursprünglichen Pass: Senden Sie eine leere Liste mitnoPredecessorReason. Regelverstöße liefern 422 mit dem Regelcode inerror, z. B.duplicate_predecessor,predecessor_not_found,status_trigger_mismatch.
Anfrage
curl -sS https://app.tracepass.eu/api/v1/passports \
-H "Authorization: Bearer tp_REDACTED_xxxxxxxxxxxx" \
-H "Idempotency-Key: 7b4f1e2c-9a3d-4e5b-8c1a-2d3e4f5a6b7c" \
-H "Content-Type: application/json" \
-d '{
"productId": "6650a1b2c3d4e5f6a7b8c9d0",
"gs1": {
"gtin": "04012345000016",
"serialNumber": "BP-48V-100-000001"
}
}'Antwort
{
"_id": "6650b2c3d4e5f6a7b8c9d0e1",
"companyId": "6650a0b1c2d3e4f5a6b7c8d9",
"productId": "6650a1b2c3d4e5f6a7b8c9d0",
"templateId": "6650a1b2c3d4e5f6a7b8c9d1",
"gs1": {
"gtin": "04012345000016",
"serialNumber": "BP-48V-100-000001",
"digitalLinkUri": "https://id.tracepass.eu/p/01/04012345000016/21/BP-48V-100-000001"
},
"status": "draft",
"completionPercentage": 32,
"fieldCounts": {
"total": 52,
"empty": 35,
"approved": 17,
"pendingReview": 0,
"flagged": 0
},
"fields": { "...": "...seeded from product defaults + template defaults + company prefill..." },
"createdAt": "2026-05-09T10:00:00.000Z"
}