/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?, confirmOverage? }`). Teilerfolg pro Element — jedes bekommt seinen eigenen Status im Antwort-Array.
Der gesamte Batch verbraucht N Schreibvorgänge vorab gegen das Tages-Schreib-Budget; wenn das überlaufen würde, gibt der gesamte Batch 429 zurück (keine Teil-Abrechnung). Gleiches gilt für den DPP-Overage-Flow auf Batch-Ebene — wenn das DPP-Kontingent überschritten würde, gibt der Batch 402 mit `overage_required` zurück und `confirmOverage: true` akzeptiert die Overage-Gebühr für den gesamten Batch.
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 <api-key>`.
- 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.
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": "04012345000015", "serialNumber": "BP-48V-100-000001" } },
{ "productId": "6650a1b2c3d4e5f6a7b8c9d0", "gs1": { "gtin": "04012345000015", "serialNumber": "BP-48V-100-000002" } },
{ "productId": "6650a1b2c3d4e5f6a7b8c9d0", "gs1": { "gtin": "04012345000015", "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 }
}