scanned_product
A product was consumed at a scan: a drink voucher, a parking entry.
One per product on the scan, on the ticket's barcode.
| Sent with | platform keys (see write keys) |
| Mode | strict: exactly the declared fields; an undeclared key, a wrong type or a missing required key quarantines the event |
| Version | 1 (_schema_version on the stored row) |
| State | active |
| Required fields | product_id, event_id |
| Revenue | none: the revenue block is refused. Money-like names allowed in features: scan_amount |
| Identity evidence | none |
| Before consent | no |
Fields
The activity's own fields, sent as features. Identifier and attribute fields are moved out of features by the processor; see identifiers and attributes.
| Field | Type | Required | What happens to it | Meaning |
|---|---|---|---|---|
event_id | string | yes | stays in features | The Eventix event the activity is about. Copied to the stream's _event_id column, so filters on an event are fast; it must be a plain string. |
gate | string | no, may be null | stays in features | Where the scan happened: the scanner or gate id. |
order_ticket_id | string | no, may be null | stays in features | The ticket within the order: the id of the ticket line, not the barcode. |
origin_type | string | no, may be null | stays in features | What the product scan was made on: the ticket, or a product bought separately. |
product_id | string | yes | stays in features | The product (merchandise, a drink, a parking place) as the ticketing system knows it. |
scan_amount | integer | no | stays in features | How many units the scan consumed (a multi-entry ticket, a product with a quantity). |
scan_number | integer | no | stays in features | The sequence number of this scan on the ticket. |
Example
One activity in a batch to POST /v1/activities, with debug so the answer says what the processor made of it. The envelope page explains every top-level field.
{
"batch": [
{
"activity_id": "0192f1a4-2467-779a-8000-246779a00000",
"activity": "scanned_product",
"ts": "2026-10-17T20:00:00+02:00",
"owner_ref": "own:own_01M4XX0033FV7QXDRB5BQBRPGR",
"identifiers": [
{
"type": "barcode",
"value": "TK-4471",
"role": "holder",
"namespace": "weeztix"
}
],
"features": {
"event_id": "3a114ef5-6105-48fd-aafc-0ae609d0536c",
"gate": "north-1",
"order_ticket_id": "5e6f7a8b-0000-4000-8000-000000000004",
"origin_type": "ticket",
"product_id": "prd_01M4XVBYC3FGXCPFRZEPGV20RZ",
"scan_amount": 1,
"scan_number": 1
}
}
],
"debug": true
}
Try it
Sends this request from your browser. The key and the endpoint are kept in this browser only.
Versions
| Version | Mode | Key classes | Change |
|---|---|---|---|
| 1 (current) | strict | platform | first version |
A published version never changes; a change is a new version, and every stored row says which version it was checked against.