/api/v1/passports/batchPässe im Batch erstellen
Erstellt bis zu 100 Pässe in einem Aufruf. Jedes Element trägt dieselbe Body-Form wie die Einzel-Create-Endpoint ({ productId, gs1: { gtin, serialNumber }, parties? }). Teilerfolg pro Element — jedes bekommt seinen eigenen Status im Antwort-Array.
Der gesamte Batch wird vorab gegen N Schreibvorgänge geprüft: Würde er das Tages-Schreib-Budget überschreiten, gibt der gesamte Batch 429 zurück und nichts wird angelegt. Auf das Budget zählen nur die tatsächlich angelegten Pässe. Jeder Pass wird als Entwurf angelegt, und ein Entwurf belegt keinen Platz im maxDpps-Limit Ihres Plans. Ein Batch 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 jeweilige Pass im Dashboard veröffentlicht wird.
Idempotency-Key gilt für den gesamten Batch — wiederholtes Senden mit demselben Schlüssel liefert das ursprüngliche vollständige Ergebnis-Array. Limit ist 100 Elemente pro Aufruf (entspricht Stripes Batch-Cap).
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 — gilt für den gesamten Batch.
Body-Felder
- passportserforderlich
Array<CreatePassportInput> (1-100)
1–100 Pass-Objekte, jeweils in der Single-Create-Body-Form, einschließlich eines optionalen
lineage-Blocks pro Element für Batterien mit zweitem Leben. Ein Verstoß gegen eine Lineage-Regel lässt nur dieses Element fehlschlagen: sein Ergebnis iststatus: "error", underrorbeginnt mit dem Regelcode, z. B.duplicate_predecessor: ….
Anfrage
curl -sS -X POST https://app.tracepass.eu/api/v1/passports/batch \
-H "Authorization: Bearer tp_REDACTED_xxxxxxxxxxxx" \
-H "Idempotency-Key: 7b4f1e2c-9a3d-4e5b-8c1a-2d3e4f5a6b7c" \
-H "Content-Type: application/json" \
-d '{
"passports": [
{ "productId": "6650a1b2c3d4e5f6a7b8c9d0", "gs1": { "gtin": "04012345000016", "serialNumber": "BP-48V-100-000001" } },
{ "productId": "6650a1b2c3d4e5f6a7b8c9d0", "gs1": { "gtin": "04012345000016", "serialNumber": "BP-48V-100-000002" } },
{ "productId": "6650a1b2c3d4e5f6a7b8c9d0", "gs1": { "gtin": "04012345000016", "serialNumber": "BP-48V-100-000003" } }
]
}'Antwort
{
"results": [
{ "index": 0, "status": "created", "data": { "_id": "...", "gs1": { "...": "..." }, "status": "draft" } },
{ "index": 1, "status": "error", "error": "Serial number already exists for this GTIN" },
{ "index": 2, "status": "created", "data": { "...": "..." } }
],
"summary": { "created": 2, "errors": 1, "total": 3 }
}