/api/v1/epcis/captureЗаснемане на EPCIS събития
GS1 EPCIS 2.0 Capture интерфейсът. Изпращайте събития от веригата на доставки от партньори, ERP системи или скенери в цеха и TracePass ги прикача към съответните паспорти. Тялото на заявката приема четири форми: пълен `EPCISDocument`, `EPCISQueryDocument`, едно самостоятелно събитие или самостоятелен JSON-LD масив от събития. Изпращайте `Content-Type: application/ld+json`.
Всяко събитие се валидира спрямо EPCIS 2.0 схемата, след което всеки EPC в `epcList` / `quantityList` се съпоставя с паспорт във вашето работно пространство. Валидните събития се съхраняват и повикването връща `202 Accepted` с `captureJobId` — заснемането е асинхронно според модела за заснемане на EPCIS 2.0, затова заявявайте задачата (вижте `capture-job`) за крайния резултат. Брои се като едно v1 записване независимо колко събития носи документът.
Обемът се измерва спрямо `maxEpcisEventsPerMonth` на плана (1 000 при Basic до 10 000 000 при Pro, 10 при Free, неограничено при Enterprise). Когато едно повикване би довело до надхвърляне на лимита при платен план, endpoint-ът връща `402 {"error":"epcis_events_overage_required"}` с попълнени `overageBlocks` + `totalOverageCents` — повторете същото повикване с `"confirmOverage":true` в тялото, за да приемете таксата за блок от 1 000 събития. При Free същото надхвърляне връща `402 {"error":"epcis_events_hard_block"}` с подкана за upgrade; без път за надхвърляне. Повикването е идемпотентно по два начина — подайте header `Idempotency-Key`, за да направите цялата заявка безопасна за повторение, а платформата допълнително дедуплицира по EPCIS `eventID` на всяко събитие, така че повторно изпращане на документ, който се припокрива с предишно заснемане, няма да съхрани събитията двойно и няма да удвои отчета.
Хедъри
- Authorizationзадължително
string
`Bearer <api-key>`.
- Idempotency-Key
string
UUID v4 — повтаряне на същия ключ връща оригиналния резултат от заснемането. Независимо от дедупликацията по `eventID` на всяко събитие.
Полета в тялото
- bodyзадължително
EPCISDocument | EPCISQueryDocument | EPCISEvent | EPCISEvent[]
JSON-LD полезен товар, изпратен с `Content-Type: application/ld+json`. Приема пълен EPCISDocument, EPCISQueryDocument, самостоятелно събитие или самостоятелен масив от събития.
- confirmOverage
boolean
Флаг по избор за приемане на таксата за блок от 1 000 събития, когато заснемането би надхвърлило `maxEpcisEventsPerMonth`. Без него първото повикване над лимита връща 402 с `overageBlocks` + `totalOverageCents` в тялото — изпратете повторно същия полезен товар с `confirmOverage:true`, за да потвърдите таксата и да продължите. Free няма път за надхвърляне; твърдата блокада за upgrade игнорира този флаг.
e.g. true
Заявка
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" }
}
]
}
}'Отговор
{
"captureJobId": "6650c4d5e6f7a8b9c0d1e2f3",
"status": "success",
"eventCount": 1,
"capturedCount": 1,
"errors": []
}