Search offers - the 'Who' part - 20260702#65
Conversation
| const: animal | ||
| type: | ||
| type: string | ||
| description: Category of animal (operator-defined, e.g. dog, cat, other). |
There was a problem hiding this comment.
This is not operator-defined. We can propose categories, and if organisations want to extend it, they can, after notifying the OTI governance body.
There was a problem hiding this comment.
Could also be a categorisation by size of the animal as it often as more impact of the footprint of a travelling entity
There was a problem hiding this comment.
Categorizations need to be descriptive (e.g. animals carried in a handbag), no one will measure or weight animals when entering a train.
|
@Ulf9 I'm missing the 'entitlement rights' in the diagram. |
|
| additionalProperties: false | ||
| description: ENTITLEMENT RIGHT — a credential held by a travelling entity that may qualify for reduced fares or additional offers (loyalty card, discount card, company card, concession, etc.). | ||
| required: | ||
| - entitlementType |
There was a problem hiding this comment.
I think 'code' is required as well.
There was a problem hiding this comment.
Could you clarify what you mean by 'code' here? I would suggest adding something more explicit such as 'entitlementReference'
| externalReference: | ||
| type: string | ||
| description: Caller-assigned external reference for this traveller. | ||
| personalNeeds: |
There was a problem hiding this comment.
We could split between 'personalNeeds' & 'assistanceNeeds' with the 2nd one referring to specific services
| description: Issuing authority or scheme name. | ||
| entitlementType: | ||
| type: string | ||
| description: Type of entitlement (operator-defined lookup value, e.g. loyaltyCard, discountCard, concession). |
There was a problem hiding this comment.
As for animals, we can propose categories
| properties: | ||
| issuer: | ||
| type: string | ||
| description: Issuing authority or scheme name. |
There was a problem hiding this comment.
An optional identifier could be added (like RICS code)
| EntitlementRight: | ||
| type: object | ||
| additionalProperties: false | ||
| description: ENTITLEMENT RIGHT — a credential held by a travelling entity that may qualify for reduced fares or additional offers (loyalty card, discount card, company card, concession, etc.). |
There was a problem hiding this comment.
I don't see where to give information on NFC smartcard held by a passenger. It is not a mean to get reduced or additional offer. thus:
- either generalize this area with any object held by a traveller that could impact the distribution (not only a mean to get a reduced or additional offer).
- or create a dedicated object around fulfilment device held by the traveller (NFC card, ID of a enrolled smartphone)
There was a problem hiding this comment.
To support card based and account based ticketing the card details are necessary from the beginning, optionally also including the card content.
CardReference:
type: object
additionalProperties: false
description: |
Number and issuer are needed to identify a travel account, the code identifies a reduction card.
required:
- type
properties:
code:
description: |
Code of the card type according to issuer.
type: string
nullable: true
number:
description: |
Number identifying the travel account, need issuer to be unique.
type: string
nullable: true
issuer:
$ref: '#/components/schemas/CompanyRef'
type:
$ref: '#/components/schemas/TravelAccountType'
chipCardContentFormat:
type: string
x-extensible-enum:
- CALYPSO-ABT
- CALYPSO-CBT
chipCardContent:
description: |
base64 encoded content of the chip card. This is in some scenarios needed to validate whether the new ticket will be compatible with the tickets already on the card.
type: string
format: byte
maxLength: 4194304
nullable: true
The travel account number need to be split into a personal account id and the account agreement id to cover separate account ids like using a credit card hash as account id.
| entityType: | ||
| type: string | ||
| const: animal | ||
| type: |
There was a problem hiding this comment.
it could be interesting to indicate the size of the animal. Particularly if it fits in a basket or not (possibly not the same price).
There was a problem hiding this comment.
to be precice: "Animal on a leash and muzzled, or in a carrier bag".
| issuer: | ||
| type: string | ||
| description: Issuing authority or scheme name. | ||
| entitlementType: |
There was a problem hiding this comment.
We need two types, one to indicate the category (LOYALTY_CARD, REDUCTION_CARD, CORPORATE_CODE, ...) and one to indicate the entitlement type in the context of the category and issuer (BAHNCARD_50_CLASS_1, ...).

This is the new image:

Example travelling party, a person with a bike (indicative):
[ { "travellingEntityId": "TR-342", "entitlements": [ { "code": "SUMMER27", "entitlementType": "reduction_code", "issuer": "XEI" } ]. "entityType": "traveller", "age": 34 }, { "travellingEntityId": "TR-24391", "entityType": "vehicle", "type": "bicycle" } ]