personalised_ticket
A ticket was personalised: the holder gave their details, which may differ from the buyer's.
The holder's email (or the barcode, when no email was given) is the identifier; their answers become attribute observations on the holder with weight 80, stronger than the buyer's weight 50. The edge barcode ↔ holder email is verified with strength 100 and replaces the weak buyer edge in practice. Its activity id covers the answers, so a ticket personalised again is a new observation.
| 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 | none |
| Revenue | none: the revenue block is refused |
| Identity evidence | barcode (holder) ↔ email (holder), strength 100, verified |
| Before consent | no |
| Geo | carries a geo block in practice; any activity may |
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 |
|---|---|---|---|---|
city | string | no, may be null | becomes the city attribute observation (weight 80) on the holder; it leaves features | The city as answered. Stored exactly as typed; the place it names is resolved beside it (see the geo block). |
country | string | no, may be null | becomes the country attribute observation (weight 80) on the holder; it leaves features | The country as answered: a code or a name in any language. Stored as typed. |
date_of_birth | string | no, may be null | becomes the date_of_birth attribute observation (weight 80) on the holder; it leaves features | As answered, YYYY-MM-DD. |
event_id | string | no, may be null | 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. |
first_name | string | no, may be null | becomes the first_name attribute observation (weight 80) on the holder; it leaves features | The person's first name, as answered. |
gender | string | no, may be null | becomes the gender attribute observation (weight 80) on the holder; it leaves features | As answered, in the shop's own terms. |
last_name | string | no, may be null | becomes the last_name attribute observation (weight 80) on the holder; it leaves features | The person's last name, as answered. |
order_id | string | no, may be null | stays in features | The order in the ticketing system, as its own id. The same value on every activity derived from one order, so they can be joined. |
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. |
postal_code | string | no, may be null | becomes the postal_code attribute observation (weight 80) on the holder; it leaves features | The postal code as answered. Stored as typed; its district is resolved beside it. |
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-b964-74e8-8000-b9644e820000",
"activity": "personalised_ticket",
"ts": "2026-10-17T20:00:00+02:00",
"owner_ref": "own:own_01M4XX0033FV7QXDRB5BQBRPGR",
"identifiers": [
{
"type": "email",
"value": "bo@example.com",
"role": "holder"
},
{
"type": "barcode",
"value": "TK-4471",
"role": "holder",
"namespace": "weeztix"
}
],
"features": {
"city": "Amsterdam",
"country": "Nederland",
"date_of_birth": "1990-05-17",
"event_id": "3a114ef5-6105-48fd-aafc-0ae609d0536c",
"first_name": "Ana",
"gender": "female",
"last_name": "de Vries",
"order_id": "1f2d3c4b-0000-4000-8000-000000000001",
"order_ticket_id": "5e6f7a8b-0000-4000-8000-000000000004",
"postal_code": "1012 AB"
},
"geo": [
{
"kind": "home",
"role": "holder",
"city": "Utrecht",
"postal_code": "3511 AB",
"locale": "nl_NL"
}
]
}
],
"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.