/api/v1/epcis/captureEPCIS-Ereignisse erfassen
Die GS1-EPCIS-2.0-Capture-Schnittstelle. Übermitteln Sie Lieferketten-Ereignisse von Partnern, ERP-Systemen oder Werkstatt-Scannern, und TracePass hängt sie an die passenden Pässe an. Der Request-Body akzeptiert vier Formen: ein vollständiges `EPCISDocument`, ein `EPCISQueryDocument`, ein einzelnes nacktes Event oder ein nacktes JSON-LD-Array von Events. Senden Sie `Content-Type: application/ld+json`.
Jedes Event wird gegen das EPCIS-2.0-Schema validiert, anschließend wird jeder EPC in `epcList` / `quantityList` zu einem Pass in Ihrem Workspace aufgelöst. Gültige Events werden gespeichert und der Aufruf liefert `202 Accepted` mit einer `captureJobId` — die Erfassung ist gemäß dem EPCIS-2.0-Capture-Modell asynchron, fragen Sie also den Job ab (siehe `capture-job`), um das Endergebnis zu erhalten. Zählt als ein v1-Schreibvorgang, unabhängig davon, wie viele Events das Dokument trägt.
Das Volumen wird gegen das `maxEpcisEventsPerMonth` des Tarifs gemessen (1.000 bei Basic bis 10.000.000 bei Pro, 10 bei Free, unbegrenzt bei Enterprise). Wenn ein einzelner Capture-Aufruf das Periodenvolumen über das Limit eines kostenpflichtigen Tarifs heben würde, liefert der Endpoint `402 {"error":"epcis_events_overage_required"}` mit ausgefüllten `overageBlocks` + `totalOverageCents` — wiederholen Sie denselben Aufruf mit `"confirmOverage":true` im Body, um die Gebühr pro 1.000-Event-Block anzunehmen. Bei Free liefert dieselbe Überschreitung `402 {"error":"epcis_events_hard_block"}` mit Upgrade-CTA; kein Pfad für Überschreitungen. Der Aufruf ist auf zwei Arten idempotent — geben Sie einen `Idempotency-Key`-Header an, um die gesamte Anfrage wiederholungssicher zu machen, und die Plattform dedupliziert zusätzlich über die EPCIS-`eventID` jedes Events, sodass ein erneut gesendetes Dokument, das eine frühere Erfassung überschneidet, Events nicht doppelt speichert und den Zähler nicht doppelt belastet.
Header
- Authorizationerforderlich
string
`Bearer <api-key>`.
- Idempotency-Key
string
UUID v4 — wiederholtes Senden mit demselben Schlüssel liefert das ursprüngliche Erfassungsergebnis. Unabhängig von der `eventID`-Deduplizierung pro Event.
Body-Felder
- bodyerforderlich
EPCISDocument | EPCISQueryDocument | EPCISEvent | EPCISEvent[]
JSON-LD-Payload, gesendet mit `Content-Type: application/ld+json`. Akzeptiert ein vollständiges EPCISDocument, ein EPCISQueryDocument, ein nacktes Event oder ein nacktes Array von Events.
- confirmOverage
boolean
Opt-in-Flag, um die Pro-1.000-Event-Blockgebühr für eine Überschreitung zu akzeptieren, wenn eine Erfassung `maxEpcisEventsPerMonth` überschreiten würde. Ohne dieses Flag liefert der erste Über-dem-Limit-Aufruf einen 402 mit `overageBlocks` + `totalOverageCents` im Body — senden Sie denselben Payload erneut mit `confirmOverage:true`, um die Gebühr zu bestätigen und fortzufahren. Free hat keinen Überschreitungspfad; die Upgrade-erforderlich-Hardblockade ignoriert dieses Flag.
e.g. true
Anfrage
curl -sS -X POST https://app.tracepass.eu/api/v1/epcis/capture \
-H "Authorization: Bearer tp_REDACTED_xxxxxxxxxxxx" \
-H "Idempotency-Key: 7b4f1e2c-9a3d-4e5b-8c1a-2d3e4f5a6b7c" \
-H "Content-Type: application/ld+json" \
-d '{
"@context": "https://ref.gs1.org/standards/epcis/2.0.0/epcis-context.jsonld",
"type": "EPCISDocument",
"schemaVersion": "2.0",
"creationDate": "2026-05-09T12:00:00.000Z",
"epcisBody": {
"eventList": [
{
"type": "ObjectEvent",
"eventID": "ni:///sha-256;9f86d0...?ver=CBV2.0",
"eventTime": "2026-05-09T11:58:00.000Z",
"eventTimeZoneOffset": "+02:00",
"epcList": ["https://id.tracepass.eu/p/01/04012345000015/21/BP-48V-100-000001"],
"action": "OBSERVE",
"bizStep": "shipping",
"bizLocation": { "id": "https://id.tracepass.eu/loc/acme-batteries-de" }
}
]
}
}'Antwort
{
"captureJobId": "6650c4d5e6f7a8b9c0d1e2f3",
"status": "success",
"eventCount": 1,
"capturedCount": 1,
"errors": []
}