/api/v1/epcis/captureAcquisire eventi EPCIS
L'interfaccia di acquisizione GS1 EPCIS 2.0. Inviate eventi della catena di approvvigionamento da partner, sistemi ERP o scanner di reparto e TracePass li allega ai passaporti corrispondenti. Il corpo della richiesta accetta quattro forme: un EPCISDocument completo, un EPCISQueryDocument, un singolo evento nudo o un array JSON-LD nudo di eventi. Inviate Content-Type: application/ld+json.
Ogni evento viene sottoposto a un controllo di validità strutturale (chiavi envelope obbligatorie, campi obbligatori dell'evento, presenza di epcList), quindi ogni EPC in epcList / quantityList viene risolto a un passaporto nel vostro spazio di lavoro. Gli eventi validi vengono memorizzati e la chiamata restituisce 202 Accepted con un captureJobId. L'elaborazione si completa prima che la risposta venga inviata; lo stato 202 riflette la convenzione dell'interfaccia di acquisizione EPCIS 2.0. Conta come una scrittura v1 indipendentemente da quanti eventi contiene il documento.
Il volume è misurato rispetto al maxEpcisEventsPerMonth del piano (1.000 su Basic fino a 10.000.000 su Pro, 10 su Free, illimitato su Enterprise). Quando una singola chiamata di acquisizione porterebbe il totale di periodo oltre il limite su un piano a pagamento, l'endpoint restituisce 402 {"error":"epcis_events_overage_required"} con overageBlocks + totalOverageCents popolati — ripetete la stessa chiamata con "confirmOverage":true nel corpo per accettare la tariffa per blocco da 1.000 eventi. Su Free lo stesso superamento restituisce 402 {"error":"epcis_events_hard_block"} con CTA di upgrade; nessun percorso di superamento. La chiamata è idempotente in due modi — fornite un header Idempotency-Key per rendere l'intera richiesta sicura per la ripetizione, e la piattaforma deduplica inoltre in base all'eventID EPCIS di ogni evento, così reinviare un documento che si sovrappone a un'acquisizione precedente non memorizzerà gli eventi due volte né conterà due volte sul misuratore.
Header
- Authorizationobbligatorio
string
Bearer <token>— una chiave APItp_(Developer → API Keys; più semplice, per server-to-server) oppure un access token OAuth 2.0 (Developer → OAuth Apps; per app autorizzate dall'utente, scoped e revocabili). La pagina Authentication contiene il flusso OAuth completo e l'elenco degli scopes.e.g. Bearer tp_REDACTED_xxxxxxxxxxxx
- Idempotency-Key
string
UUID v4 — riproporre la stessa chiave restituisce il risultato di acquisizione originale. Indipendente dalla deduplicazione per
eventIDdi ogni evento.
Campi del corpo
- bodyobbligatorio
EPCISDocument | EPCISQueryDocument | EPCISEvent | EPCISEvent[]
Payload JSON-LD inviato con
Content-Type: application/ld+json. Accetta un EPCISDocument completo, un EPCISQueryDocument, un evento nudo o un array nudo di eventi. - confirmOverage
boolean
Flag opt-in per accettare la tariffa di superamento per blocco da 1.000 eventi quando un'acquisizione supererebbe
maxEpcisEventsPerMonth. Senza di esso, la prima chiamata oltre il limite restituisce 402 conoverageBlocks+totalOverageCentsnel corpo — reinviate lo stesso payload conconfirmOverage:trueper riconoscere l'addebito e procedere. Il piano Free non ha percorso di superamento; il blocco rigido di upgrade ignora questo flag.e.g. true
Richiesta
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/04012345000016/21/BP-48V-100-000001"],
"action": "OBSERVE",
"bizStep": "shipping",
"bizLocation": { "id": "https://id.tracepass.eu/loc/acme-batteries-de" }
}
]
}
}'Risposta
{
"captureJobId": "6650c4d5e6f7a8b9c0d1e2f3",
"status": "success",
"eventCount": 1,
"capturedCount": 1,
"errors": []
}