/api/v1/passports/{id}/parties/{role}Wirtschaftsakteurs-Partei upsert
Erstellt oder ersetzt die Party für eine Rolle auf einem Pass. Das Pfad-Segment role bestimmt den Slot — `manufacturer`, `importer`, `authorisedRepresentative`, `distributor`, `recycler`, `producerResponsibilityOrg`. Zweimaliges Senden derselben Rolle ist ein Upsert: der bestehende Block wird atomar ersetzt.
Die Identität wird vollständig durch den Body ausgedrückt: `legalName` (erforderlich), `gln` (GS1 Global Location Number — dringend empfohlen für Mehrrollen-Disambiguierung), `country` (ISO 3166-1 alpha-2), `legacyOperatorId` (USt-ID / EORI / Lieferantencode als Free-Text-Fallback), `url`. Mindestens eines von `gln` oder `legacyOperatorId` muss gesetzt sein — ohne Identifier identifiziert die Party niemanden. Wenn zwei Rollen dieselbe `gln` teilen, fasst die JSON-LD-Emission sie zu einer Partei mit mehreren Rollen zusammen.
Zählt als ein v1-Schreibvorgang. Unterstützt Idempotency-Key. Die Batterieverordnung verlangt mindestens { manufacturer, importer (wenn anwendbar), recycler }, bevor ein Pass akzeptiert wird; der Regulatory-Completeness-Scorecard zeigt fehlende Rollen im Dashboard an. Das passende `DELETE /api/v1/passports/{id}/parties/{role}` entfernt eine Rolle idempotent.
Pfad-Parameter
- iderforderlich
ObjectId
Pass-ID.
e.g. 6650b2c3d4e5f6a7b8c9d0e1
- roleerforderlich
enum
Einer von: `manufacturer`, `importer`, `authorisedRepresentative`, `distributor`, `recycler`, `producerResponsibilityOrg`. Andere Rollen liefern 400 zurück.
e.g. recycler
Header
- Authorizationerforderlich
string
`Bearer <api-key>`.
e.g. Bearer tp_REDACTED_xxxxxxxxxxxx
- Idempotency-Key
string
UUID v4 pro logischer Operation.
Body-Felder
- legalNameerforderlich
string (1-200 chars)
Name der juristischen Person wie im Handelsregister. Erforderlich — eine Party ohne Namen hilft keinem Procurement-Leser, unabhängig vom getragenen Identifier.
e.g. EuroBat Recyclers GmbH
- gln
string (13 digits)
GS1 Global Location Number mit gültiger Mod-10-Prüfziffer. Dringend empfohlen — wenn zwei Rollen dieselbe `gln` teilen, gibt das JSON-LD eine einzelne Partei mit beiden Rollen aus. Muss als echte GLN validieren; partielle / nur-Ziffern-Strings liefern 400.
e.g. 4012345678901
- country
string (ISO 3166-1 alpha-2)
Zweibuchstabiger Großbuchstaben-Ländercode — z. B. `DE`, `BG`, `FR`.
e.g. DE
- legacyOperatorId
string (1-120 chars)
Free-Text-Fallback-Identifier für Parteien ohne GLN — USt-IdNr., EORI, Lieferantencode oder eine interne ID Ihres ERP. Erforderlich, wenn `gln` ausgelassen wird.
e.g. DE123456789
- url
string (URL, max 500 chars)
Organisationsseite — typischerweise die Unternehmenswebsite oder eine Corporate-Info-Unterseite.
e.g. https://eurobat-recyclers.example
Anfrage
curl -sS -X PATCH \
https://app.tracepass.eu/api/v1/passports/6650b2c3d4e5f6a7b8c9d0e1/parties/recycler \
-H "Authorization: Bearer tp_REDACTED_xxxxxxxxxxxx" \
-H "Content-Type: application/json" \
-d '{
"legalName": "EuroBat Recyclers GmbH",
"gln": "4012345678901",
"country": "DE",
"url": "https://eurobat-recyclers.example"
}'Antwort
{
"role": "recycler",
"party": {
"legalName": "EuroBat Recyclers GmbH",
"gln": "4012345678901",
"country": "DE",
"url": "https://eurobat-recyclers.example",
"status": "active"
},
"version": 5
}