Understanding Ticket Statuses
In TIXNGO, we support 18 different statuses to ensure that at any time (before, during, and after an event), an organizer is able to know where a ticket is and who is its owner.
Possible status : INJECTED, DOWNLOADED, ASSIGNED, CONTROLLED, PENDING_TRANSFER, FAILURE_TRANSFER, TRANSFERRED, BT_ACTIVATED, MANUAL_ACTIVATED, OFFLINE_ACTIVATED, ONLINE_ACTIVATED, DELETION_PENDING, DELETED, ACTIVATED, DEACTIVATED, DEFAULT, INVALID, PENDING, FAILURE
We can regroup these 18 statuses into 5 families :
- Initial delivery: the ticket is inserted into TIXNGO and/or into the spectator's wallet.
- Transfer: the ticket is moving from one wallet to another.
- Activation: the ticket is activated by one of the supported methods allowing the display of the QR code in the app.
- Control: the ticket has been used to enter event's premises.
- Deletion: the ticket has been deleted and cannot be used by a spectator.
S360 Ticket Status | TIXNGO Ticket Status |
---|---|
Not printed | NA. The ticket does not exist in TIXNGO |
Printed |
|
Controlled External Access Control or S-360 Ticket Check |
|
Invalidated Cancelled |
But if the ticket was already existing in TIXNGO ...
|
Understanding Ticket details synchronization
Since the lifecycle introduction and the additional adjustments, the mapping is fixed and predictable, meaning that S-360 receives only what is necessary for its functioning and what is visible in the back-office screens.
Mobile Tickets
S-360 | TIXNGO |
---|---|
TICKET_ID | ticketId |
BLOCKCHAIN_TICKET_STATUS | ticketStatusLog |
TICKET_LAST_UPDATE | lastUpdateTimestamp |
ACTIVATION_DATE | activation.date |
ACTIVATION_TYPE | activation.method |
ACTIVATION_PHONE_MODEL | activation.device |
ACTIVATION_DURATION | activation.duration |
ACTIVATION_BEACON | activation.beaconName |
OWNER_EMAIL | spectatorDetails.email |
OWNER_TITLE | spectatorDetails.title |
OWNER_FIRSTNAME | spectatorDetails.firstName |
OWNER_LASTNAME | spectatorDetails.lastName |
OWNER_PHONE_NUMBER | spectatorDetails.phoneNumber |
OWNER_ID_NUMBER | spectatorDetails.idCardNumber |
OWNER_BIRTH_DATE | spectatorDetails.dateOfBirth |
OWNER_COUNTRY_CODE | spectatorDetails.nationality (failover: spectatorDetails.residenceCountry) |
OWNER_LANGUAGE | spectatorDetails.language |
OWNER_INFO1 | spectatorDetails.extraInfo1 |
OWNER_INFO2 | spectatorDetails.extraInfo2 |
OWNER_INFO3 | spectatorDetails.extraInfo3 |
OWNER_INFO4 | spectatorDetails.extraInfo4 |
ASSIGNEE_EMAIL | spectatorDetails.ticketHolder.identity.email |
ASSIGNEE_FIRSTNAME | spectatorDetails.ticketHolder.identity.firstName |
ASSIGNEE_LASTNAME | spectatorDetails.ticketHolder.identity.lastName |
ASSIGNEE_PHONE_NUMBER | spectatorDetails.ticketHolder.identity.phoneNumber |
ASSIGNEE_ID_NUMBER | spectatorDetails.ticketHolder.identity.idCardNumber |
ASSIGNEE_BIRTH_DATE | spectatorDetails.ticketHolder.identity.dateOfBirth |
ASSIGNEE_LANGUAGE | Not mapped |
ASSIGNEE_NATIONALITY | spectatorDetails.ticketHolder.identity.nationality (failover: spectatorDetails.ticketHolder.identity.residenceCountry) |
ASSIGNEE_INFO1 | spectatorDetails.ticketHolder.identity.extraInfo1 |
ASSIGNEE_INFO2 | spectatorDetails.ticketHolder.identity.extraInfo2 |
ASSIGNEE_INFO3 | spectatorDetails.ticketHolder.identity.extraInfo3 |
ASSIGNEE_INFO4 | spectatorDetails.ticketHolder.identity.extraInfo4 |
Mobile Tickets History (aka Lifecycle)
S-360 | TIXNGO |
---|---|
TICKET_ID | ticketId |
TRANSACTION_DATE | lifecycle[i].createdDate |
BLOCKCHAIN_TICKET_STATUS | lifecycle[i].status |
INFO | lifecycle[i].info |
ADDITIONAL INFO | lifecycle[i].additionalinfo |
SENDER_EMAIL | Mapping according to status |
SENDER_PHONE_NUMBER | Mapping according to status. |
RECIPIENT_EMAIL | Mapping according to status. |
RECIPIENT_PHONE_NUMBER | Mapping according to status. |
RECIPIENT_TITLE | Mapping according to status. |
RECIPIENT_FIRSTNAME | Mapping according to status. |
RECIPIENT_LASTNAME | Mapping according to status. |
RECIPIENT_ID_NUMBER | Mapping according to status. |
RECIPIENT_BIRTH_DATE | Mapping according to status.. |
RECIPIENT_COUNTRY_CODE | Mapping according to status. |
RECIPIENT_LANGUAGE | Mapping according to status. |
RECIPIENT_INFO1 | Mapping according to status. |
RECIPIENT_INFO2 | Mapping according to status. |
RECIPIENT_INFO3 | Mapping according to status. |
RECIPIENT_INFO4 | Mapping according to status. |
Lifecycle data by Status
STATUS | SENDER_EMAIL | SENDER_PHONE_NUMBER | RECIPIENT_EMAIL | RECIPIENT_PHONE_NUMBER | RECIPIENT_TITLE | RECIPIENT_FIRSTNAME | RECIPIENT_LASTNAME | RECIPIENT_ID_NUMBER | RECIPIENT_BIRTH_DATE | RECIPIENT_COUNTRY_CODE | RECIPIENT_LANGUAGE | RECIPIENT_INFO1 | RECIPIENT_INFO2 | RECIPIENT_INFO3 | RECIPIENT_INFO4 |
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
INJECTED | null | null | lifecycle[i].owner.email | null | null | null | null | null | null | null | null | null | null | null | null |
DOWNLOADED | null | null | lifecycle[i].owner.email | lifecycle[i].owner.phoneNumber | null | lifecycle[i].owner.firstName | lifecycle[i].owner.lastName | lifecycle[i].owner.idCardNumber | lifecycle[i].owner.dateOfBirth | lifecycle[i].owner.nationality | null | null | null | null | null |
ACTIVATED | null | null | lifecycle[i].owner.email | lifecycle[i].owner.phoneNumber | null | lifecycle[i].owner.firstName | lifecycle[i].owner.lastName | lifecycle[i].owner.idCardNumber | lifecycle[i].owner.dateOfBirth | lifecycle[i].owner.nationality | null | null | null | null | null |
ONLINE_ACTIVATED | null | null | lifecycle[i].owner.email | lifecycle[i].owner.phoneNumber | null | lifecycle[i].owner.firstName | lifecycle[i].owner.lastName | lifecycle[i].owner.idCardNumber | lifecycle[i].owner.dateOfBirth | lifecycle[i].owner.nationality | null | null | null | null | null |
OFFLINE_ACTIVATED | null | null | lifecycle[i].owner.email | lifecycle[i].owner.phoneNumber | null | lifecycle[i].owner.firstName | lifecycle[i].owner.lastName | lifecycle[i].owner.idCardNumber | lifecycle[i].owner.dateOfBirth | lifecycle[i].owner.nationality | null | null | null | null | null |
BLUETOOTH_ACTIVATED | null | null | lifecycle[i].owner.email | lifecycle[i].owner.phoneNumber | null | lifecycle[i].owner.firstName | lifecycle[i].owner.lastName | lifecycle[i].owner.idCardNumber | lifecycle[i].owner.dateOfBirth | lifecycle[i].owner.nationality | null | null | null | null | null |
MANUAL_ACTIVATED | null | null | lifecycle[i].owner.email | lifecycle[i].owner.phoneNumber | null | lifecycle[i].owner.firstName | lifecycle[i].owner.lastName | lifecycle[i].owner.idCardNumber | lifecycle[i].owner.dateOfBirth | lifecycle[i].owner.nationality | null | null | null | null | null |
DEACTIVATED | null | null | lifecycle[i].owner.email | lifecycle[i].owner.phoneNumber | null | lifecycle[i].owner.firstName | lifecycle[i].owner.lastName | lifecycle[i].owner.idCardNumber | lifecycle[i].owner.dateOfBirth | lifecycle[i].owner.nationality | null | null | null | null | null |
ASSIGNED | null | null | lifecycle[i].owner.email | lifecycle[i].owner.phoneNumber | null | lifecycle[i].owner.ticketHolder.identity.firstName | lifecycle[i].owner.ticketHolder.identity.lastName | lifecycle[i].owner.ticketHolder.identity.idCardNumber | lifecycle[i].owner.ticketHolder.identity.dateOfBirth | lifecycle[i].owner.ticketHolder.identity.nationality | null | null | null | null | null |
PENDING | lifecycle[i].owner.email | lifecycle[i].owner.phoneNumber | lifecycle[i].otherPartyEmail | null | null | null | null | null | null | null | null | null | null | null | null |
PENDING_TRANSFER | lifecycle[i].owner.email | lifecycle[i].owner.phoneNumber | lifecycle[i].otherPartyEmail | null | null | null | null | null | null | null | null | null | null | null | null |
FAILURE | lifecycle[i].owner.email | lifecycle[i].owner.phoneNumber | lifecycle[i].otherPartyEmail | null | null | null | null | null | null | null | null | null | null | null | null |
FAILURE_TRANSFER | lifecycle[i].owner.email | lifecycle[i].owner.phoneNumber | lifecycle[i].otherPartyEmail | null | null | null | null | null | null | null | null | null | null | null | null |
TRANSFERRED | lifecycle[i].otherPartyEmail | null | lifecycle[i].owner.email | lifecycle[i].owner.phoneNumber | null | lifecycle[i].owner.firstName | lifecycle[i].owner.lastName | lifecycle[i].owner.idCardNumber | lifecycle[i].owner.dateOfBirth | lifecycle[i].owner.nationality | null | null | null | null | null |
CONTROLLED | null | null | lifecycle[i].owner.email | lifecycle[i].owner.phoneNumber | null | lifecycle[i].owner.firstName | lifecycle[i].owner.lastName | lifecycle[i].owner.idCardNumber | lifecycle[i].owner.dateOfBirth | lifecycle[i].owner.nationality | null | null | null | null | null |
DELETION_PENDING | null | null | lifecycle[i].owner.email | null | null | null | null | null | null | null | null | null | null | null | null |
DELETED | null | null | lifecycle[i].owner.email | null | null | null | null | null | null | null | null | null | null | null | null |
What and how we synchronize ticket details ?
Each mode has a specific mapping.
Last update | Mapping Document | Change log |
---|---|---|
03 Apr 2023 | FIFASTX-2770_S360-TNG_Mapping_WIP.xlsx | Work in progress → Final version will be uploaded when developement will be completed.
|
07 Feb 2023 | Fixing nationality STX-129714 DELIVERED | |
07 Oct 2022 | Lifecycle implementation |