Introduction
KIU SNAPSHOTS (PNR) is a service for PNRs that will allow keep synchronized the status of all PNRs with the PSS in real-time. Every time a PNR is created, modified, splited, or purged, a JSON file will be sent with the affected PNR(s).
File Structure
The name of the JSON file has the prefix PNRS_ and the timestamp in UTC, following the pattern PNRS_YYYYMMDDTHHMMSSFFFZ.json. For example, PNRS_20230512T105030923Z.json.
Internally, the file contains an “event_details” object that provides details about the event that triggered the change, and a list of affected PNRs [1..n]. Each object in the array represents a PNR, and its structure is represented in the schema of the get_booking_information API (with the exception of the purge event).
Example File
{ “event_details”: {...}, "pnr_list": [ { "record_locator_version_information": {}, "record_locator_information": {}, "passengers_information": {}, "flights_segment_information": {}, "flights_origin_destination_information": {}, "contacts_list": [], ... }, {...} ] }
Structure of event_details
The event_details object has the following structure:
Key | Type Data | Possibles values | Description | Example | Observations |
---|---|---|---|---|---|
system_from | string(2:3) | C1 or airline operator code, depending on whether it is a PSS terminal or Kiu GDS terminal | Z8 | ||
company | string(4) | Unique code of the company, airline, or agency within Kiu | 00Z8 | ||
channel | string | HOST, GDS | HOST | ||
subchannel | string | In the case of GDS, it is the GDS code (C1, 1A, etc.). In the case of HOST, it is the value configured in the office table, command DNO / BI STAT.SUB-CHANNEL. | SALES OFFICE | ||
device | string(0:10) | Kiu device that generated the transaction | LPB00Z8205 | ||
agent | string(0:9) | Kiu device that generated the transaction | HDQ00Z8SM | ||
pnr_action | string | CREATE, MODIFY, SPLIT, DELETE | Identifies whether the event is a creation, modification, or split | CREATE | The SPLIT will apply to both PNRs (the newly created one and the modified one in that process). |
transaction_type | string | DIRECT, INDIRECT | Identifies whether the modification to the PNR is due to a direct intervention by a user/API or if the modification is indirect and related to another process. | ||
origin | string |
| Identifies the origin that triggers the modification related to the If it is DIRECT, this field could be:
If it is INDIRECT, this field could be:
| ||
application | string |
| Detailed in "Source and Applications" | ||
timestamp | datetime | 2023-04-20T22:02:32.750Z |
Source and Applications
Since there are different scenarios in which a PNR can be modified, the classification is based on the type of transaction—direct or indirect—the origin of the modification, and the application that triggered it.
Based on these variables, the following combinations are constructed:
origin | application | agent | descripción |
---|---|---|---|
AGENT/WEBSERVICES | KIU_COMMAND / OTHER | The entity that generates the transaction | Processes of creating reservations, modification, splitting, saving, issuing, voiding via commands or APIs |
WEBSERVICES | OTHER | The entity that generates the transaction | Reservation creation, reservation modification, and reservation splitting processes via webservices (v1 and v2) |
FROM_EXTERNAL_MESSAGE | MESSAGE_PROCESS | KIUSYSTEM | Process of Creation, Modification, and Splitting of Reservations via TTY Type B/Type A messaging. In this case, the device will be that of the office configured for the host with terminal address 00. |
FROM_EXTERNAL_MESSAGE | PFS_PROCESS | KIUSYSTEM | Adjustments due to post-departure messages (PFS, PRL) |
FROM_EXTERNAL_MESSAGE | PRL_PROCESS | KIUSYSTEM | Adjustments due to post-departure messages (PFS, PRL) |
INTERNAL_PROCESS | KAM | The entity that generates the action in KAM | KAM quota management process (inventory PNRs) |
INTERNAL_PROCESS | ROBOT_TIME_LIMIT | KIUSYSTEM | Robot time limit adjustments |
INTERNAL_PROCESS | VMOVE_PROCESS | KIUSYSTEM | Reservation changes with VMOVE command (reaccommodation) |
INTERNAL_PROCESS | VMTM_PROCESS | KIUSYSTEM | Reservation changes with VMTM command (schedule change), if the carrier has that function activated. |
INTERNAL_PROCESS | EXPIRED_ITINERARIES_PROCESS | KIUSYSTEM | Process for canceling expired active itineraries (those that have passed more than 40 hours since their flight date) |
INTERNAL_PROCESS | CONFIRM_WAITLIST_PROCESS | KIUSYSTEM | Automatic waitlist confirmation process |
INTERNAL_PROCESS | SCHEDULE_PROCESS | KIUSYSTEM | Reservation changes due to schedule change (reaccommodation) |
INTERNAL_PROCESS | SERVICES_AUTOMATIC_CANCEL | KIUSYSTEM | Process for canceling itineraries or SSRs due to expiration. |
INTERNAL_PROCESS | SSR_INVENTORY_PROCESS | KIUSYSTEM | Process for confirming/rejecting SSRs with inventory |
INTERNAL_PROCESS | SSR_AUTOMATIC_PROCESS | KIUSYSTEM | Internal process for creating/canceling SSRs (This process is used by the system when an action/command needs to automatically add SSRs to a PNR, for example: when web check-in is done for a flight managed in an external DCS, and the SSR needs to be added with the check-in data.) |
INTERNAL_PROCESS | FOP_VALIDATION_PROCESS | KIUSYSTEM | Post-validation process for online payment issuance (In this process, the validation may add remarks with errors from the process or, for example, a remark with a transaction reference.) |
INTERNAL_PROCESS | SEAT_ASSIGN_PROCESS | KIUSYSTEM | Internal seat assignment process (This occurs, for example, with the current web check-in functionality where a default seat is chosen, and since it involves PRS, the PNR is modified.) |
INTERNAL_PROCESS | RECORD_LOCATOR_PURGED | KIUSYSTEM | PNR purge process |
RECORD_LOCATOR_SYNCHRONIZATION | Synchronization process that generates snapshots of all active PNRs in the PSS. No modifications are made to the reservation. |
Purge
The PNR purge process can contain up to 1,000 PNRs in a single file. In this scenario, the key record_locator_version_information
of each PNR will be provided, along with a copy of the PNR history at the time of the purge (equivalent to *H).
Example of file
{ "event_details": { "application": "RECORD_LOCATOR_PURGED", "timestamp": "2023-08-15T05:02:13.540Z" }, "pnr_list": [ { "record_locator_version_information": { "record_locator": "AWCVUB", "record_locator_version": "2023-08-14T00:00:05.360Z" }, "history_item_list": [ "ARM ITINERARY RECEIPT-» BAGGAGE ALLOWANCE 1 PIECES UP TO 10K FOR ADT", " /XX100 Y 12AUG AEPOYO", "BUE.BUEXX-DA 1325/12JUL23", "XS XX100 Y 12AUG SA AEPOYO HK1 0800 0830", "SYS-EX 0000/14AUG23" ] }, { "record_locator_version_information": { "record_locator": "BFLNBT", "record_locator_version": "2023-08-14T00:00:05.360Z" }, "history_item_list": [ "XTK OK", "AT FC WK*F/VIXXXXXXXXXXXX4242N/XXXX/V123/Z12466", "ATT OK * 10AUG23/AEPXX-FT", "ATK 9990210044640 * 10AUG23/AEPXX-FT - FERNAN/M.", "ATK 9990210044641 * 10AUG23/AEPXX-FT - FERNAN/M.", "AEP.AEPXX-FT 1524/10AUG23", "ASR ABAG XX HK1 AEPCOR2049Y12AUG-1FERNAN/MR.UPTO 23KG BAGGAGE", "ASR ABAG XX HK1 AEPCOR2049Y12AUG-1FERNAN/MRS.UPTO 23KG BAGGAGE", "AEP.AEPXX-FT 1525/10AUG23", "XSR ABAG XX HK1 AEPCOR2049Y12AUG-1FERNAN/MR.UPTO 23KG BAGGAGE", "XSR ABAG XX HK1 AEPCOR2049Y12AUG-1FERNAN/MRS.UPTO 23KG BAGGAGE", "SYS-TX 0730/11AUG23", "XS XX2049Y 12AUG SA AEPCOR HK2 0800 0900", "SYS-EX 0000/14AUG23" ] } ] }
Recap
When this module is implemented, a RECAP process will be executed that will traverse the database, generating a snapshot of each PNR. In this scenario, there is no modification to the PNR; the event_details
will only have the key "application": "RECORD_LOCATOR_SYNCHRONIZATION"
.
This RECAP functionality is included in the implementation cost. Any additional requests by the airline for re-execution of this process will need to be evaluated by the commercial department.