IATA PADIS PNRGOV Passenger Name Record Data Last updated: 2026-09-29

PNRGOV is the IATA/WCO/ICAO standard airlines use to push passenger name record (PNR) data to government authorities for border security. It is an EDIFACT message in the IATA PADIS directory.

The message identifies the flight, then repeats one group per PNR with the record locator, travellers, itinerary, ticketing, payment and seat information.

At a glance

Standard
IATA PADIS
Version
PADIS 11.1
Sent by
Airline to government authority
Responses
Acknowledgment per country agreement
ediFabric .NET template
TSPNRGOV in EdiFabric.Templates.Padis
OpenEDI definition
View PNRGOV in the spec library

PNRGOV structure

The full IATA PADIS PNRGOV layout from its OpenEDI definition, the same model ediFabric uses to parse, validate and generate it: 12 loops and 57 segment positions, in file order. Loops are shaded and their segments indented; Max use is how many times a segment or loop may repeat.

Segment / loop Name Usage Max use
UNHMessage headerMandatory1
MSGMESSAGEFUNCTIONBUSINESSDETAILS, Response TypeMandatory1
ORGOriginator of request detailsMandatory1
TVLTravel product informationMandatory1
EQNNumber of unitsMandatory1
SRC loopSegment repetition controlOptional999
SRCSegment repetition controlMandatory1
RCIReservation control informationMandatory1
SSRSpecial requirements detailsOptional999
DATDate and time informationOptional1
IFTInteractive free textOptional999
ORGOriginator of request detailsMandatory1
ADDAddressOptional99
EBDExcess baggage detailsOptional9
TIF loopTraveller informationOptional999
TIFTraveller informationMandatory1
FTIFrequent traveller informationOptional1
IFTInteractive free textOptional99
REFREFERENCINGDETAILSOptional1
EBDExcess baggage detailsOptional1
FARFare informationOptional9
SSRSpecial requirements detailsOptional999
ADDAddressOptional99
TKT loopTicket number detailsOptional999
TKTTicket number detailsMandatory1
MONMonetary informationOptional1
PTKPricing/ticketing detailsOptional1
TXDTax detailsOptional99
DATDate and time informationOptional1
FOP loopForm of paymentOptional1
FOPForm of paymentMandatory1
IFTInteractive free textOptional1
ADDAddressOptional1
TVL loopTravel product informationOptional999
TVLTravel product informationMandatory1
TRACOMPANYIDENTIFICATION, PRODUCTIDENTIFICATIONDETAILSOptional1
RPIQuantity, StatusOptional1
APDADDITIONALPRODUCTDETAILS, STATIONINFORMATION1, STATIONINFORMATION2Optional1
SSRSpecial requirements detailsOptional99
RCIReservation control informationOptional1
IFTInteractive free textOptional99
DAT loopDate and time informationOptional999
DATDate and time informationMandatory1
ORGOriginator of request detailsOptional1
TRI loopTraveller reference informationOptional999
TRITraveller reference informationMandatory1
TIFTraveller informationOptional1
SSDSeat selection detailsOptional1
TBDTraveller baggage detailsOptional1
EQN loopNumber of unitsOptional99
EQNNumber of unitsMandatory1
RCIReservation control informationMandatory1
MSG loopMESSAGEFUNCTIONBUSINESSDETAILS, Response TypeOptional9
MSGMESSAGEFUNCTIONBUSINESSDETAILS, Response TypeMandatory1
TVLTravel product informationOptional99
ABI loopSOURCETYPE, ORIGINATORDETAILS, LOCATIONOptional999
ABISOURCETYPE, ORIGINATORDETAILS, LOCATIONMandatory1
DATDate and time informationOptional1
SAC loopStatus Indicator, Place Location Identification, StatusOptional99
SACStatus Indicator, Place Location Identification, StatusMandatory1
TIFTraveller informationOptional1
SSRSpecial requirements detailsOptional1
IFTInteractive free textOptional1
TBDTraveller baggage detailsOptional1
TVL loopTravel product informationOptional2
TVLTravel product informationMandatory1
RPIQuantity, StatusOptional1
LTSLong text stringOptional9
UNTMessage trailerMandatory1

Sample PNRGOV file

A PNRGOV message with passenger name records for one flight. Paste it into EdiNation to see every element named and validated.

UNA:+.?*'
UNB+IATA:1+AM+MXPNRGOV+130522:1540+13052210400995+PNRGOV'
UNG+PNRGOV+AM+MXPNRGOV+130522:1540+13052210400995+IA+11:1'
UNH+13052210400995+PNRGOV:11:1:IA+AM498/230513/1142'
MSG+:22'
ORG+AM'
TVL+230513:1039:230513:1142+MTY+LAS+AM+498'
EQN+1'
SRC'
RCI+AM:XXXYET::300413:115500'
SSR+OTHS:::::::: ADV TKT NUMBER BY 03MAY13 1800CO OR WILL CANCEL'
SSR+OTHS:::::::: IF THE FARE RULE TL DIFFERS FROM THE AUTOMATIC'
SSR+OTHS:::::::: TL THE MOST RESTRICTIVE TL WILL APPLY'
DAT+700:180513:1502'
ORG+AM:BOG'
TIF+TESTSURNAMEONE+TESTNAMEONE MRS:A:1.1:1'
SSR+INFT:NN:1:AM:::::TESTSURNAMETWO/TESTNAMETWO/10AUG11+::1.1'
SSR+INFT:NN:1:AM:::::TESTSURNAMETWO/TESTNAMETWO/10AUG11+::1.1'
SSR+TKNE:HK:1:AM:::MEX:CUN:1392178947000C2+::1.1'
SSR+TKNE:HK:1:AM:::CUN:BOG:1392178947000C3+::1.1'
SSR+TKNE:HK:1:AM:::MEX:CUN:INF1392178947000C2+::1.1'
SSR+TKNE:HK:1:AM:::CUN:BOG:INF1392178947000C3+::1.1'
SSR+DOCS:HK:1:AM:::::/P/CO/52263000/CO/30MAY76/F/31OCT15/TESTSURNAMEONE/TESTNAMEONE MRS+::1.1'
SSR+DOCS:HK:1:AM:::::/P/COL/AO234000/COL/10AUG11/FI/21DEC22/TESTSURNAMETWO/TESTNAMETWO+::1.1'
TIF+TESTSURNAMETWO+TESTNAMETWO:IN:2.1'
IFT+4:28+AM INF'
TVL+150513:0105:150513:0557+BOG+MEX+AM+709:R'
RPI+1+YG'
APD+737'
RCI+AM:XXXYET::300413:115500'
TVL+190513:1500:190513:1710+MEX+CUN+AM+445:S'
RPI+1+HK'
APD+738'
SSR+INFT:NN:1:AM:::::TESTSURNAMETWO/TESTNAMETWO/10AUG11'
SSR+TKNE:HK:1:AM:::MEX:CUN:1392178947000C2'
SSR+TKNE:HK:1:AM:::MEX:CUN:INF1392178947000C2'
RCI+AM:XXXYET::300413:115500'
TVL+230513:0135:230513:0500+CUN+BOG+AM+718:Q'
RPI+1+HK'
APD+737'
SSR+INFT:NN:1:AM:::::TESTSURNAMETWO/TESTNAMETWO/10AUG11'
SSR+TKNE:HK:1:AM:::CUN:BOG:1392178947000C3'
SSR+TKNE:HK:1:AM:::CUN:BOG:INF1392178947000C3'
RCI+AM:XXXYET::300413:115500'
UNT+42+13052210400995'
UNE+1+13052210400995'
UNZ+1+13052210400995'

The same PNRGOV as JSON

ediFabric turns every loop, segment and element into a named field. This is the transaction from the sample, in the JSON that ediFabric Native and Cloud return and accept.

{
  "UNH": {
    "MessageReferenceNumber_01": "13052210400995",
    "MessageIdentifier_02": {
      "MessageType_01": "PNRGOV",
      "MessageVersionNumber_02": "11",
      "MessageReleaseNumber_03": "1",
      "ControllingAgencyCoded_04": "IA"
    },
    "CommonAccessReference_03": "AM498/230513/1142"
  },
  "MSG": {
    "MESSAGEFUNCTIONBUSINESSDETAILS_01": {
      "MessageFunction_02": "22"
    }
  },
  "ORG": {
    "SYSTEMDETAILS_01": {
      "CompanyIdentification_01": "AM"
    }
  },
  "TVL": {
    "PRODUCTDATETIME_01": {
      "FirstDate_01": "230513",
      "FirstTime_02": "1039",
      "SecondDate_03": "230513",
      "SecondTime_04": "1142"
    },
    "LOCATION_02": {
      "PlaceLocationIdentification_01": "MTY"
    },
    "LOCATION2_03": {
      "PlaceLocationIdentification_01": "LAS"
    },
    "COMPANYIDENTIFICATION_04": {
      "CompanyIdentification_01": "AM"
    },
    "PRODUCTIDENTIFICATIONDETAILS_05": {
      "ProductionIdentification_01": "498"
    }
  },
  "EQN": {
    "NUMBEROFUNITDETAILS_01": {
      "NumberOfUnits_01": "1"
    }
  },
  "GR1_SRCLoop": [
    {
      "RCI": {
        "RESERVATIONCONTROLINFORMATION_01": {
          "CompanyIdentification_01": "AM",
          "ReservationControlNumber_02": "XXXYET",
          "FirstDate_04": "300413",
          "Time_05": "115500"
        }
      },
      "SSR": [
        {
          "SPECIALREQUIREMENTTYPEDETAILS_01": {
            "SpecialRequirementType_01": "OTHS",
            "PlaceLocationIdentification2_09": " ADV TKT NUMBER BY 03MAY13 1800CO OR WILL CANCEL"
          }
        },
        {
          "SPECIALREQUIREMENTTYPEDETAILS_01": {
            "SpecialRequirementType_01": "OTHS",
            "PlaceLocationIdentification2_09": " IF THE FARE RULE TL DIFFERS FROM THE AUTOMATIC"
          }
        },
        {
          "SPECIALREQUIREMENTTYPEDETAILS_01": {
            "SpecialRequirementType_01": "OTHS",
            "PlaceLocationIdentification2_09": " TL THE MOST RESTRICTIVE TL WILL APPLY"
          }
        }
      ],
      "DAT": {
        "DATEANDTIMEDETAILS_01": {
          "DateTimePeriodQualifier_01": "700",
          "FirstDate_02": "180513",
          "FirstTime_03": "1502"
        }
      },
      "ORG": {
        "SYSTEMDETAILS_01": {
          "CompanyIdentification_01": "AM",
          "PlaceLocationIdentification_02": "BOG"
        }
      },
      "GR2_TIFLoop": [
        {
          "TIF": {
            "TRAVELLERSURNAMEINFORMATION_01": {
              "TravellerSurname_01": "TESTSURNAMEONE"
            },
            "TRAVELLERDETAILS_02": {
              "TravellerGivenName_01": "TESTNAMEONE MRS",
              "NumberOfUnitsQualifier_02": "A",
              "TravellerReferenceNumber_03": "1.1",
              "TravellerAccompaniedByInfantIndicator_04": "1"
            }
          },
          "SSR": [
            {
              "SPECIALREQUIREMENTTYPEDETAILS_01": {
                "SpecialRequirementType_01": "INFT",
                "Status_02": "NN",
                "Quantity_03": "1",
                "CompanyIdentification_04": "AM",
                "PlaceLocationIdentification2_09": "TESTSURNAMETWO/TESTNAMETWO/10AUG11"
              },
              "SPECIALREQUIREMENTDATADETAILS_02": {
                "TravellerReferenceNumber_03": "1.1"
              }
            },
            {
              "SPECIALREQUIREMENTTYPEDETAILS_01": {
                "SpecialRequirementType_01": "INFT",
                "Status_02": "NN",
                "Quantity_03": "1",
                "CompanyIdentification_04": "AM",
                "PlaceLocationIdentification2_09": "TESTSURNAMETWO/TESTNAMETWO/10AUG11"
              },
              "SPECIALREQUIREMENTDATADETAILS_02": {
                "TravellerReferenceNumber_03": "1.1"
              }
            },
            {
              "SPECIALREQUIREMENTTYPEDETAILS_01": {
                "SpecialRequirementType_01": "TKNE",
                "Status_02": "HK",
                "Quantity_03": "1",
                "CompanyIdentification_04": "AM",
                "ItemDescription_07": "MEX",
                "PlaceLocationIdentification_08": "CUN",
                "PlaceLocationIdentification2_09": "1392178947000C2"
              },
              "SPECIALREQUIREMENTDATADETAILS_02": {
                "TravellerReferenceNumber_03": "1.1"
              }
            },
            {
              "SPECIALREQUIREMENTTYPEDETAILS_01": {
                "SpecialRequirementType_01": "TKNE",
                "Status_02": "HK",
                "Quantity_03": "1",
                "CompanyIdentification_04": "AM",
                "ItemDescription_07": "CUN",
                "PlaceLocationIdentification_08": "BOG",
                "PlaceLocationIdentification2_09": "1392178947000C3"
              },
              "SPECIALREQUIREMENTDATADETAILS_02": {
                "TravellerReferenceNumber_03": "1.1"
              }
            },
            {
              "SPECIALREQUIREMENTTYPEDETAILS_01": {
                "SpecialRequirementType_01": "TKNE",
                "Status_02": "HK",
                "Quantity_03": "1",
                "CompanyIdentification_04": "AM",
                "ItemDescription_07": "MEX",
                "PlaceLocationIdentification_08": "CUN",
                "PlaceLocationIdentification2_09": "INF1392178947000C2"
              },
              "SPECIALREQUIREMENTDATADETAILS_02": {
                "TravellerReferenceNumber_03": "1.1"
              }
            },
            {
              "SPECIALREQUIREMENTTYPEDETAILS_01": {
                "SpecialRequirementType_01": "TKNE",
                "Status_02": "HK",
                "Quantity_03": "1",
                "CompanyIdentification_04": "AM",
                "ItemDescription_07": "CUN",
                "PlaceLocationIdentification_08": "BOG",
                "PlaceLocationIdentification2_09": "INF1392178947000C3"
              },
              "SPECIALREQUIREMENTDATADETAILS_02": {
                "TravellerReferenceNumber_03": "1.1"
              }
            },
            {
              "SPECIALREQUIREMENTTYPEDETAILS_01": {
                "SpecialRequirementType_01": "DOCS",
                "Status_02": "HK",
                "Quantity_03": "1",
                "CompanyIdentification_04": "AM",
                "PlaceLocationIdentification2_09": "/P/CO/52263000/CO/30MAY76/F/31OCT15/TESTSURNAMEONE/TESTNAMEONE MRS"
              },
              "SPECIALREQUIREMENTDATADETAILS_02": {
                "TravellerReferenceNumber_03": "1.1"
              }
            },
            {
              "SPECIALREQUIREMENTTYPEDETAILS_01": {
                "SpecialRequirementType_01": "DOCS",
                "Status_02": "HK",
                "Quantity_03": "1",
                "CompanyIdentification_04": "AM",
                "PlaceLocationIdentification2_09": "/P/COL/AO234000/COL/10AUG11/FI/21DEC22/TESTSURNAMETWO/TESTNAMETWO"
              },
              "SPECIALREQUIREMENTDATADETAILS_02": {
                "TravellerReferenceNumber_03": "1.1"
              }
            }
          ]
        },
        {
          "TIF": {
            "TRAVELLERSURNAMEINFORMATION_01": {
              "TravellerSurname_01": "TESTSURNAMETWO"
            },
            "TRAVELLERDETAILS_02": {
              "TravellerGivenName_01": "TESTNAMETWO",
              "NumberOfUnitsQualifier_02": "IN",
              "TravellerReferenceNumber_03": "2.1"
            }
          },
          "IFT": [
            {
              "FREETEXTQUALIFICATION_01": {
                "TextSubjectQualifier_01": "4",
                "InformationType_02": "28"
              },
              "FreeText_02": "AM INF"
            }
          ]
        }
      ],
      "GR5_TVLLoop": [
        {
          "TVL": {
            "PRODUCTDATETIME_01": {
              "FirstDate_01": "150513",
              "FirstTime_02": "0105",
              "SecondDate_03": "150513",
              "SecondTime_04": "0557"
            },
            "LOCATION_02": {
              "PlaceLocationIdentification_01": "BOG"
            },
            "LOCATION2_03": {
              "PlaceLocationIdentification_01": "MEX"
            },
            "COMPANYIDENTIFICATION_04": {
              "CompanyIdentification_01": "AM"
            },
            "PRODUCTIDENTIFICATIONDETAILS_05": {
              "ProductionIdentification_01": "709",
              "CharacteristicIdentification_02": "R"
            }
          },
          "RPI": {
            "Quantity_01": "1",
            "Status_02": "YG"
          },
          "APD": {
            "ADDITIONALPRODUCTDETAILS_01": {
              "TypeOfMeansOfTransport_01": "737"
            }
          },
          "RCI": {
            "RESERVATIONCONTROLINFORMATION_01": {
              "CompanyIdentification_01": "AM",
              "ReservationControlNumber_02": "XXXYET",
              "FirstDate_04": "300413",
              "Time_05": "115500"
            }
          }
        },
        {
          "TVL": {
            "PRODUCTDATETIME_01": {
              "FirstDate_01": "190513",
              "FirstTime_02": "1500",
              "SecondDate_03": "190513",
              "SecondTime_04": "1710"
            },
            "LOCATION_02": {
              "PlaceLocationIdentification_01": "MEX"
            },
            "LOCATION2_03": {
              "PlaceLocationIdentification_01": "CUN"
            },
            "COMPANYIDENTIFICATION_04": {
              "CompanyIdentification_01": "AM"
            },
            "PRODUCTIDENTIFICATIONDETAILS_05": {
              "ProductionIdentification_01": "445",
              "CharacteristicIdentification_02": "S"
            }
          },
          "RPI": {
            "Quantity_01": "1",
            "Status_02": "HK"
          },
          "APD": {
            "ADDITIONALPRODUCTDETAILS_01": {
              "TypeOfMeansOfTransport_01": "738"
            }
          },
          "SSR": [
            {
              "SPECIALREQUIREMENTTYPEDETAILS_01": {
                "SpecialRequirementType_01": "INFT",
                "Status_02": "NN",
                "Quantity_03": "1",
                "CompanyIdentification_04": "AM",
                "PlaceLocationIdentification2_09": "TESTSURNAMETWO/TESTNAMETWO/10AUG11"
              }
            },
            {
              "SPECIALREQUIREMENTTYPEDETAILS_01": {
                "SpecialRequirementType_01": "TKNE",
                "Status_02": "HK",
                "Quantity_03": "1",
                "CompanyIdentification_04": "AM",
                "ItemDescription_07": "MEX",
                "PlaceLocationIdentification_08": "CUN",
                "PlaceLocationIdentification2_09": "1392178947000C2"
              }
            },
            {
              "SPECIALREQUIREMENTTYPEDETAILS_01": {
                "SpecialRequirementType_01": "TKNE",
                "Status_02": "HK",
                "Quantity_03": "1",
                "CompanyIdentification_04": "AM",
                "ItemDescription_07": "MEX",
                "PlaceLocationIdentification_08": "CUN",
                "PlaceLocationIdentification2_09": "INF1392178947000C2"
              }
            }
          ],
          "RCI": {
            "RESERVATIONCONTROLINFORMATION_01": {
              "CompanyIdentification_01": "AM",
              "ReservationControlNumber_02": "XXXYET",
              "FirstDate_04": "300413",
              "Time_05": "115500"
            }
          }
        },
        {
          "TVL": {
            "PRODUCTDATETIME_01": {
              "FirstDate_01": "230513",
              "FirstTime_02": "0135",
              "SecondDate_03": "230513",
              "SecondTime_04": "0500"
            },
            "LOCATION_02": {
              "PlaceLocationIdentification_01": "CUN"
            },
            "LOCATION2_03": {
              "PlaceLocationIdentification_01": "BOG"
            },
            "COMPANYIDENTIFICATION_04": {
              "CompanyIdentification_01": "AM"
            },
            "PRODUCTIDENTIFICATIONDETAILS_05": {
              "ProductionIdentification_01": "718",
              "CharacteristicIdentification_02": "Q"
            }
          },
          "RPI": {
            "Quantity_01": "1",
            "Status_02": "HK"
          },
          "APD": {
            "ADDITIONALPRODUCTDETAILS_01": {
              "TypeOfMeansOfTransport_01": "737"
            }
          },
          "SSR": [
            {
              "SPECIALREQUIREMENTTYPEDETAILS_01": {
                "SpecialRequirementType_01": "INFT",
                "Status_02": "NN",
                "Quantity_03": "1",
                "CompanyIdentification_04": "AM",
                "PlaceLocationIdentification2_09": "TESTSURNAMETWO/TESTNAMETWO/10AUG11"
              }
            },
            {
              "SPECIALREQUIREMENTTYPEDETAILS_01": {
                "SpecialRequirementType_01": "TKNE",
                "Status_02": "HK",
                "Quantity_03": "1",
                "CompanyIdentification_04": "AM",
                "ItemDescription_07": "CUN",
                "PlaceLocationIdentification_08": "BOG",
                "PlaceLocationIdentification2_09": "1392178947000C3"
              }
            },
            {
              "SPECIALREQUIREMENTTYPEDETAILS_01": {
                "SpecialRequirementType_01": "TKNE",
                "Status_02": "HK",
                "Quantity_03": "1",
                "CompanyIdentification_04": "AM",
                "ItemDescription_07": "CUN",
                "PlaceLocationIdentification_08": "BOG",
                "PlaceLocationIdentification2_09": "INF1392178947000C3"
              }
            }
          ],
          "RCI": {
            "RESERVATIONCONTROLINFORMATION_01": {
              "CompanyIdentification_01": "AM",
              "ReservationControlNumber_02": "XXXYET",
              "FirstDate_04": "300413",
              "Time_05": "115500"
            }
          }
        }
      ]
    }
  ],
  "UNT": {
    "NumberofSegmentsinaMessage_01": "42",
    "MessageReferenceNumber_02": "13052210400995"
  }
}

Parse and validate a PNRGOV file

Read the file into typed objects with ediFabric .NET, or post it to the ediFabric Cloud REST API from any language and get JSON back.

using EdiFabric.Templates.Iata131;

License.SetSerial("YOUR_SERIAL_KEY");

using (var stream = File.OpenRead(@"C:\edi\PassengerData.txt"))
using (var reader = new EdifactReader(stream, (unb, ung, unh) => typeof(TSPNRGOV).GetTypeInfo()))
{
    var items = await reader.ReadToEndAsync();
    foreach (var transaction in items.OfType<TSPNRGOV>())
    {
        if (transaction.IsValid(out MessageErrorContext errors))
            Console.WriteLine($"{transaction.UNH.MessageReferenceNumber_01} is valid");
        else
            Console.WriteLine(string.Join(Environment.NewLine, errors.Flatten()));
    }
}
curl -X POST 'https://api.edination.com/v2/edifact/read' \
-H 'Ocp-Apim-Subscription-Key: YOUR_SERIAL_KEY' \
-H 'Content-Type: application/octet-stream' \
--data-binary '@PassengerData.txt'

Generate a PNRGOV file

Populate a TSPNRGOV object in .NET, or post JSON in the shape shown above to ediFabric Cloud, and get a valid PNRGOV file back.

using EdiFabric.Templates.Iata131;

License.SetSerial("YOUR_SERIAL_KEY");

var transaction = new TSPNRGOV();

//  Message header
transaction.UNH = new UNH();
transaction.UNH.MessageReferenceNumber_01 = "0001";
transaction.UNH.MessageIdentifier_02 = new S009();
transaction.UNH.MessageIdentifier_02.MessageType_01 = "PNRGOV";
transaction.UNH.MessageIdentifier_02.MessageVersionNumber_02 = "11";
transaction.UNH.MessageIdentifier_02.MessageReleaseNumber_03 = "1";
transaction.UNH.MessageIdentifier_02.ControllingAgencyCoded_04 = "IA";
transaction.UNH.CommonAccessReference_03 = "AM498/230513/1142";

//  Code to specify the message function
transaction.MSG = new MSG();
transaction.MSG.MESSAGEFUNCTIONBUSINESSDETAILS_01 = new C302();
transaction.MSG.MESSAGEFUNCTIONBUSINESSDETAILS_01.MessageFunction_02 = "22";

//  The originator of the request is AM
transaction.ORG = new ORG();
transaction.ORG.SYSTEMDETAILS_01 = new C336();
transaction.ORG.SYSTEMDETAILS_01.CompanyIdentification_01 = "AM";

// ... set the remaining loops and segments the same way

// SegmentBuilders is in the Common project of the example repository
using (var stream = new MemoryStream())
{
    using (var writer = new EdifactWriter(stream))
    {
        writer.Write(SegmentBuilders.BuildUnb("1"));
        writer.Write(SegmentBuilders.BuildUng("1", "PNRGOV"));
        writer.Write(transaction);
    }
    Console.WriteLine(Encoding.UTF8.GetString(stream.ToArray()));
}
# the JSON returned by /read, edited or produced by your application
curl -X POST 'https://api.edination.com/v2/edifact/write' \
-H 'Ocp-Apim-Subscription-Key: YOUR_SERIAL_KEY' \
-H 'Content-Type: application/json' \
--data-binary '@PassengerData.json' \
-o 'PassengerData.txt'

Complete ediFabric .NET example

A complete C# program for the IATA PADIS PNRGOV, built on TSPNRGOV in EdiFabric.Templates.Padis. The same code is in the ediFabric .NET examples on GitHub.

using EdiFabric.Core.Model.Edi;
using EdiFabric.Framework.Readers;
using EdiFabric.Framework.Writers;
using System.Collections.Generic;
using System.IO;
using System.Linq;
using EdiFabric.Core.Model.Edi.Edifact;
using EdiFabric.Examples.EDIFACT.Common;
using EdiFabric.Templates.Padis;
using System.Reflection;

namespace EdiFabric.Examples.EDIFACT.PNRGOV
{
    class Program
    {
        static void Main(string[] args)
        {
            SerialKey.Set(Common.SerialKey.Get());
            Read();
            Write();
        }

        ///
        /// Read Passenger Data
        ///
        static void Read()
        {
            var ediStream = File.OpenRead(Directory.GetCurrentDirectory() + @"\..\..\..\Files\Edifact\PassengerData.txt");

            List ediItems;
            using (var ediReader = new EdifactReader(ediStream, "EdiFabric.Templates.Padis"))
                ediItems = ediReader.ReadToEnd().ToList();

            var transactions = ediItems.OfType();

            foreach (var transaction in transactions)
            {
                if (transaction.HasErrors)
                {
                    //  partially parsed
                    var errors = transaction.ErrorContext.Flatten();
                }
            }
        }

        ///
        /// Write Passenger Data
        ///
        static void Write()
        {
            var transaction = BuildPassengerData("1");

            using (var stream = new MemoryStream())
            {
                using (var writer = new EdifactWriter(stream))
                {
                    writer.Write(SegmentBuilders.BuildUnb("13052210400995"));
                    writer.Write(SegmentBuilders.BuildUng("13052210400995", "PNRGOV"));
                    writer.Write(transaction);
                }

                var ediString = stream.LoadToString();
            }
        }

        public static TypeInfo TemplateFactory(UNB unb, UNG ung, UNH unh)
        {
            if (unh.MessageIdentifier_02.MessageType_01 == "PNRGOV")
                return typeof(TSPNRGOV).GetTypeInfo();

            throw new System.Exception(string.Format("Transaction {0} for version {1} is not supported.",
                unh.MessageIdentifier_02.MessageType_01, unh.MessageIdentifier_02.MessageVersionNumber_02 + unh.MessageIdentifier_02.MessageReleaseNumber_03));
        }

        ///
        /// Build passenger data.
        /// Original from https://www.iata.org/iata/passenger-data-toolkit/assets/doc_library/04-pnr/PNRGOV%20EDIFACT%20Implementation%20Guide%2013_1.pdf
        ///
        static TSPNRGOV BuildPassengerData(string controlNumber)
        {
            var result = new TSPNRGOV();

            //  Message header
            result.UNH = new UNH();
            result.UNH.MessageReferenceNumber_01 = controlNumber.PadLeft(14, '0');
            result.UNH.MessageIdentifier_02 = new S009();
            result.UNH.MessageIdentifier_02.MessageType_01 = "PNRGOV";
            result.UNH.MessageIdentifier_02.MessageVersionNumber_02 = "11";
            result.UNH.MessageIdentifier_02.MessageReleaseNumber_03 = "1";
            result.UNH.MessageIdentifier_02.ControllingAgencyCoded_04 = "IA";
            result.UNH.CommonAccessReference_03 = "AM498/230513/1142";

            //  Code to specify the message function
            result.MSG = new MSG();
            result.MSG.MESSAGEFUNCTIONBUSINESSDETAILS_01 = new C302();
            result.MSG.MESSAGEFUNCTIONBUSINESSDETAILS_01.MessageFunction_02 = "22";

            //  The originator of the request is AM
            result.ORG = new ORG();
            result.ORG.SYSTEMDETAILS_01 = new C336();
            result.ORG.SYSTEMDETAILS_01.CompanyIdentification_01 = "AM";

            //  PNR data for AM498/23MAY13 MTY LAS
            result.TVL = new TVL();
            result.TVL.PRODUCTDATETIME_01 = new C310();
            result.TVL.PRODUCTDATETIME_01.FirstDate_01 = "230513";
            result.TVL.PRODUCTDATETIME_01.FirstTime_02 = "1039";
            result.TVL.PRODUCTDATETIME_01.SecondDate_03 = "230513";
            result.TVL.PRODUCTDATETIME_01.SecondTime_04 = "1142";
            result.TVL.LOCATION_02 = new C328();
            result.TVL.LOCATION_02.PlaceLocationIdentification_01 = "MTY";
            result.TVL.LOCATION2_03 = new C328();
            result.TVL.LOCATION2_03.PlaceLocationIdentification_01 = "LAS";
            result.TVL.COMPANYIDENTIFICATION_04 = new C306();
            result.TVL.COMPANYIDENTIFICATION_04.CompanyIdentification_01 = "AM";
            result.TVL.PRODUCTIDENTIFICATIONDETAILS_05 = new C308();
            result.TVL.PRODUCTIDENTIFICATIONDETAILS_05.ProductionIdentification_01 = "498";

            //  Total numbers of PNRs
            result.EQN = new EQN();
            result.EQN.NUMBEROFUNITDETAILS_01 = new List();
            var c523 = new C523();
            c523.NumberOfUnits_01 = "1";
            result.EQN.NUMBEROFUNITDETAILS_01.Add(c523);

            //  Repeating SRC Groups
            result.GR1_SRCLoop = new List();

            //  Begin SRC Group
            var srcLoop = new GR1_SRCLoop();

            //  Situational blank SRC
            srcLoop.SRC = new SRC();

            //  Passenger record reference
            srcLoop.RCI = new RCI();
            srcLoop.RCI.RESERVATIONCONTROLINFORMATION_01 = new List();
            var c330 = new C330();
            c330.CompanyIdentification_01 = "AM";
            c330.ReservationControlNumber_02 = "XXXYET";
            c330.FirstDate_04 = "300413";
            c330.Time_05 = "115500";
            srcLoop.RCI.RESERVATIONCONTROLINFORMATION_01.Add(c330);

            //  Repeating SSR
            srcLoop.SSR = new List();

            //  Special requirements /general information-applies to all flights and all passengers
            var ssrSrc1 = new SSR();
            ssrSrc1.SPECIALREQUIREMENTTYPEDETAILS_01 = new C334();
            ssrSrc1.SPECIALREQUIREMENTTYPEDETAILS_01.SpecialRequirementType_01 = "OTHS";
            ssrSrc1.SPECIALREQUIREMENTTYPEDETAILS_01.PlaceLocationIdentification2_09 = " ADV TKT NUMBER BY 03MAY13 1800CO OR WILL CANCEL";
            srcLoop.SSR.Add(ssrSrc1);

            //  Special requirements 2
            var ssrSrc2 = new SSR();
            ssrSrc2.SPECIALREQUIREMENTTYPEDETAILS_01 = new C334();
            ssrSrc2.SPECIALREQUIREMENTTYPEDETAILS_01.SpecialRequirementType_01 = "OTHS";
            ssrSrc2.SPECIALREQUIREMENTTYPEDETAILS_01.PlaceLocationIdentification2_09 = " IF THE FARE RULE TL DIFFERS FROM THE AUTOMATIC";
            srcLoop.SSR.Add(ssrSrc2);

            //  //  Special requirements 3
            var ssrSrc3 = new SSR();
            ssrSrc3.SPECIALREQUIREMENTTYPEDETAILS_01 = new C334();
            ssrSrc3.SPECIALREQUIREMENTTYPEDETAILS_01.SpecialRequirementType_01 = "OTHS";
            ssrSrc3.SPECIALREQUIREMENTTYPEDETAILS_01.PlaceLocationIdentification2_09 = " TL THE MOST RESTRICTIVE TL WILL APPLY";
            srcLoop.SSR.Add(ssrSrc3);

            //  Ticket issue / last PNR transaction date/Time
            srcLoop.DAT = new DAT();
            srcLoop.DAT.DATEANDTIMEDETAILS_01 = new List();
            var c688 = new C688();
            c688.DateTimePeriodQualifier_01 = "700";
            c688.FirstDate_02 = "180513";
            c688.FirstTime_03 = "1502";
            srcLoop.DAT.DATEANDTIMEDETAILS_01.Add(c688);

            //  Booked by AM, BOG agent
            srcLoop.ORG = new ORG();
            srcLoop.ORG.SYSTEMDETAILS_01 = new C336();
            srcLoop.ORG.SYSTEMDETAILS_01.CompanyIdentification_01 = "AM";
            srcLoop.ORG.SYSTEMDETAILS_01.PlaceLocationIdentification_02 = "BOG";

            //  Repeating TIF Groups
            srcLoop.GR2_TIFLoop = new List();

            //  Begin TIF Group 1
            var tifLoop1 = new GR2_TIFLoop();

            //  Adult passenger’s name & surname
            tifLoop1.TIF = new TIF();
            tifLoop1.TIF.TRAVELLERSURNAMEINFORMATION_01 = new C322();
            tifLoop1.TIF.TRAVELLERSURNAMEINFORMATION_01.TravellerSurname_01 = "TESTSURNAMEONE";
            tifLoop1.TIF.TRAVELLERDETAILS_02 = new List();
            var c324 = new C324();
            c324.TravellerGivenName_01 = "TESTNAMEONE MRS";
            c324.NumberOfUnitsQualifier_02 = "A";
            c324.TravellerReferenceNumber_03 = "1.1";
            c324.TravellerAccompaniedByInfantIndicator_04 = "1";
            tifLoop1.TIF.TRAVELLERDETAILS_02.Add(c324);

            //  Repeating SSR
            tifLoop1.SSR = new List();

            //  Infant information: surname/name/DOB
            var ssrTif1 = new SSR();
            ssrTif1.SPECIALREQUIREMENTTYPEDETAILS_01 = new C334();
            ssrTif1.SPECIALREQUIREMENTTYPEDETAILS_01.SpecialRequirementType_01 = "INFT";
            ssrTif1.SPECIALREQUIREMENTTYPEDETAILS_01.Status_02 = "NN";
            ssrTif1.SPECIALREQUIREMENTTYPEDETAILS_01.Quantity_03 = "1";
            ssrTif1.SPECIALREQUIREMENTTYPEDETAILS_01.CompanyIdentification_04 = "AM";
            ssrTif1.SPECIALREQUIREMENTTYPEDETAILS_01.PlaceLocationIdentification2_09 = "TESTSURNAMETWO/TESTNAMETWO/10AUG11";
            ssrTif1.SPECIALREQUIREMENTDATADETAILS_02 = new List();
            var c3321 = new C332();
            c3321.TravellerReferenceNumber_03 = "1.1";
            ssrTif1.SPECIALREQUIREMENTDATADETAILS_02.Add(c3321);
            tifLoop1.SSR.Add(ssrTif1);

            //  Infant information: surname/name/DOB
            var ssrTif2 = new SSR();
            ssrTif2.SPECIALREQUIREMENTTYPEDETAILS_01 = new C334();
            ssrTif2.SPECIALREQUIREMENTTYPEDETAILS_01.SpecialRequirementType_01 = "INFT";
            ssrTif2.SPECIALREQUIREMENTTYPEDETAILS_01.Status_02 = "NN";
            ssrTif2.SPECIALREQUIREMENTTYPEDETAILS_01.Quantity_03 = "1";
            ssrTif2.SPECIALREQUIREMENTTYPEDETAILS_01.CompanyIdentification_04 = "AM";
            ssrTif2.SPECIALREQUIREMENTTYPEDETAILS_01.PlaceLocationIdentification2_09 = "TESTSURNAMETWO/TESTNAMETWO/10AUG11";
            ssrTif2.SPECIALREQUIREMENTDATADETAILS_02 = new List();
            var c3322 = new C332();
            c3322.TravellerReferenceNumber_03 = "1.1";
            ssrTif2.SPECIALREQUIREMENTDATADETAILS_02.Add(c3322);
            tifLoop1.SSR.Add(ssrTif2);

            //  Ticketing details for adult MEX CUN
            var ssrTif3 = new SSR();
            ssrTif3.SPECIALREQUIREMENTTYPEDETAILS_01 = new C334();
            ssrTif3.SPECIALREQUIREMENTTYPEDETAILS_01.SpecialRequirementType_01 = "TKNE";
            ssrTif3.SPECIALREQUIREMENTTYPEDETAILS_01.Status_02 = "HK";
            ssrTif3.SPECIALREQUIREMENTTYPEDETAILS_01.Quantity_03 = "1";
            ssrTif3.SPECIALREQUIREMENTTYPEDETAILS_01.CompanyIdentification_04 = "AM";
            ssrTif3.SPECIALREQUIREMENTTYPEDETAILS_01.ItemDescription_07 = "MEX";
            ssrTif3.SPECIALREQUIREMENTTYPEDETAILS_01.PlaceLocationIdentification_08 = "CUN";
            ssrTif3.SPECIALREQUIREMENTTYPEDETAILS_01.PlaceLocationIdentification2_09 = "1392178947000C2";
            ssrTif3.SPECIALREQUIREMENTDATADETAILS_02 = new List();
            var c3323 = new C332();
            c3323.TravellerReferenceNumber_03 = "1.1";
            ssrTif3.SPECIALREQUIREMENTDATADETAILS_02.Add(c3323);
            tifLoop1.SSR.Add(ssrTif3);

            //  Ticketing details for adult CUN BOG
            var ssrTif4 = new SSR();
            ssrTif4.SPECIALREQUIREMENTTYPEDETAILS_01 = new C334();
            ssrTif4.SPECIALREQUIREMENTTYPEDETAILS_01.SpecialRequirementType_01 = "TKNE";
            ssrTif4.SPECIALREQUIREMENTTYPEDETAILS_01.Status_02 = "HK";
            ssrTif4.SPECIALREQUIREMENTTYPEDETAILS_01.Quantity_03 = "1";
            ssrTif4.SPECIALREQUIREMENTTYPEDETAILS_01.CompanyIdentification_04 = "AM";
            ssrTif4.SPECIALREQUIREMENTTYPEDETAILS_01.ItemDescription_07 = "CUN";
            ssrTif4.SPECIALREQUIREMENTTYPEDETAILS_01.PlaceLocationIdentification_08 = "BOG";
            ssrTif4.SPECIALREQUIREMENTTYPEDETAILS_01.PlaceLocationIdentification2_09 = "1392178947000C3";
            ssrTif4.SPECIALREQUIREMENTDATADETAILS_02 = new List();
            var c3324 = new C332();
            c3324.TravellerReferenceNumber_03 = "1.1";
            ssrTif4.SPECIALREQUIREMENTDATADETAILS_02.Add(c3324);
            tifLoop1.SSR.Add(ssrTif4);

            //  Ticketing details for infant MEX CUN
            var ssrTif5 = new SSR();
            ssrTif5.SPECIALREQUIREMENTTYPEDETAILS_01 = new C334();
            ssrTif5.SPECIALREQUIREMENTTYPEDETAILS_01.SpecialRequirementType_01 = "TKNE";
            ssrTif5.SPECIALREQUIREMENTTYPEDETAILS_01.Status_02 = "HK";
            ssrTif5.SPECIALREQUIREMENTTYPEDETAILS_01.Quantity_03 = "1";
            ssrTif5.SPECIALREQUIREMENTTYPEDETAILS_01.CompanyIdentification_04 = "AM";
            ssrTif5.SPECIALREQUIREMENTTYPEDETAILS_01.ItemDescription_07 = "MEX";
            ssrTif5.SPECIALREQUIREMENTTYPEDETAILS_01.PlaceLocationIdentification_08 = "CUN";
            ssrTif5.SPECIALREQUIREMENTTYPEDETAILS_01.PlaceLocationIdentification2_09 = "INF1392178947000C2";
            ssrTif5.SPECIALREQUIREMENTDATADETAILS_02 = new List();
            var c3325 = new C332();
            c3325.TravellerReferenceNumber_03 = "1.1";
            ssrTif5.SPECIALREQUIREMENTDATADETAILS_02.Add(c3325);
            tifLoop1.SSR.Add(ssrTif5);

            //  Ticketing details for infant CUN BOG
            var ssrTif6 = new SSR();
            ssrTif6.SPECIALREQUIREMENTTYPEDETAILS_01 = new C334();
            ssrTif6.SPECIALREQUIREMENTTYPEDETAILS_01.SpecialRequirementType_01 = "TKNE";
            ssrTif6.SPECIALREQUIREMENTTYPEDETAILS_01.Status_02 = "HK";
            ssrTif6.SPECIALREQUIREMENTTYPEDETAILS_01.Quantity_03 = "1";
            ssrTif6.SPECIALREQUIREMENTTYPEDETAILS_01.CompanyIdentification_04 = "AM";
            ssrTif6.SPECIALREQUIREMENTTYPEDETAILS_01.ItemDescription_07 = "CUN";
            ssrTif6.SPECIALREQUIREMENTTYPEDETAILS_01.PlaceLocationIdentification_08 = "BOG";
            ssrTif6.SPECIALREQUIREMENTTYPEDETAILS_01.PlaceLocationIdentification2_09 = "INF1392178947000C3";
            ssrTif6.SPECIALREQUIREMENTDATADETAILS_02 = new List();
            var c3326 = new C332();
            c3326.TravellerReferenceNumber_03 = "1.1";
            ssrTif6.SPECIALREQUIREMENTDATADETAILS_02.Add(c3326);
            tifLoop1.SSR.Add(ssrTif6);

            //  Passport information for adult
            var ssrTif7 = new SSR();
            ssrTif7.SPECIALREQUIREMENTTYPEDETAILS_01 = new C334();
            ssrTif7.SPECIALREQUIREMENTTYPEDETAILS_01.SpecialRequirementType_01 = "DOCS";
            ssrTif7.SPECIALREQUIREMENTTYPEDETAILS_01.Status_02 = "HK";
            ssrTif7.SPECIALREQUIREMENTTYPEDETAILS_01.Quantity_03 = "1";
            ssrTif7.SPECIALREQUIREMENTTYPEDETAILS_01.CompanyIdentification_04 = "AM";
            ssrTif7.SPECIALREQUIREMENTTYPEDETAILS_01.PlaceLocationIdentification2_09 = "/P/CO/52263000/CO/30MAY76/F/31OCT15/TESTSURNAMEONE/TESTNAMEONE MRS";
            ssrTif7.SPECIALREQUIREMENTDATADETAILS_02 = new List();
            var c3327 = new C332();
            c3327.TravellerReferenceNumber_03 = "1.1";
            ssrTif7.SPECIALREQUIREMENTDATADETAILS_02.Add(c3327);
            tifLoop1.SSR.Add(ssrTif7);

            //  Passport information for infant
            var ssrTif8 = new SSR();
            ssrTif8.SPECIALREQUIREMENTTYPEDETAILS_01 = new C334();
            ssrTif8.SPECIALREQUIREMENTTYPEDETAILS_01.SpecialRequirementType_01 = "DOCS";
            ssrTif8.SPECIALREQUIREMENTTYPEDETAILS_01.Status_02 = "HK";
            ssrTif8.SPECIALREQUIREMENTTYPEDETAILS_01.Quantity_03 = "1";
            ssrTif8.SPECIALREQUIREMENTTYPEDETAILS_01.CompanyIdentification_04 = "AM";
            ssrTif8.SPECIALREQUIREMENTTYPEDETAILS_01.PlaceLocationIdentification2_09 = "/P/COL/AO234000/COL/10AUG11/FI/21DEC22/TESTSURNAMETWO/TESTNAMETWO";
            ssrTif8.SPECIALREQUIREMENTDATADETAILS_02 = new List();
            var c3328 = new C332();
            c3328.TravellerReferenceNumber_03 = "1.1";
            ssrTif8.SPECIALREQUIREMENTDATADETAILS_02.Add(c3328);
            tifLoop1.SSR.Add(ssrTif8);

            //  End TIF Group 1
            srcLoop.GR2_TIFLoop.Add(tifLoop1);

            //  Begin TIF Group 2
            var tifLoop2 = new GR2_TIFLoop();

            //  Infant passenger’s name & surname
            tifLoop2.TIF = new TIF();
            tifLoop2.TIF.TRAVELLERSURNAMEINFORMATION_01 = new C322();
            tifLoop2.TIF.TRAVELLERSURNAMEINFORMATION_01.TravellerSurname_01 = "TESTSURNAMETWO";
            tifLoop2.TIF.TRAVELLERDETAILS_02 = new List();
            var c3242 = new C324();
            c3242.TravellerGivenName_01 = "TESTNAMETWO";
            c3242.NumberOfUnitsQualifier_02 = "IN";
            c3242.TravellerReferenceNumber_03 = "2.1";
            tifLoop2.TIF.TRAVELLERDETAILS_02.Add(c3242);

            //  Repeating IFT
            tifLoop2.IFT = new List();

            //  OSI free text information
            var iftTif1 = new IFT();
            iftTif1.FREETEXTQUALIFICATION_01 = new C346();
            iftTif1.FREETEXTQUALIFICATION_01.TextSubjectQualifier_01 = "4";
            iftTif1.FREETEXTQUALIFICATION_01.InformationType_02 = "28";
            iftTif1.FreeText_02 = new List();
            iftTif1.FreeText_02.Add("AM INF");
            tifLoop2.IFT.Add(iftTif1);

            //  End TIF Group 2
            srcLoop.GR2_TIFLoop.Add(tifLoop2);

            //  Repeating TVL SRC Groups
            srcLoop.GR5_TVLLoop = new List();

            //  Begin TVL SRC Group 1
            var tvlSrc1 = new GR5_TVLLoop();

            //  PNR data for AM709/15MAY13 BOG MEX
            tvlSrc1.TVL = new TVL();
            tvlSrc1.TVL.PRODUCTDATETIME_01 = new C310();
            tvlSrc1.TVL.PRODUCTDATETIME_01.FirstDate_01 = "150513";
            tvlSrc1.TVL.PRODUCTDATETIME_01.FirstTime_02 = "0105";
            tvlSrc1.TVL.PRODUCTDATETIME_01.SecondDate_03 = "150513";
            tvlSrc1.TVL.PRODUCTDATETIME_01.SecondTime_04 = "0557";
            tvlSrc1.TVL.LOCATION_02 = new C328();
            tvlSrc1.TVL.LOCATION_02.PlaceLocationIdentification_01 = "BOG";
            tvlSrc1.TVL.LOCATION2_03 = new C328();
            tvlSrc1.TVL.LOCATION2_03.PlaceLocationIdentification_01 = "MEX";
            tvlSrc1.TVL.COMPANYIDENTIFICATION_04 = new C306();
            tvlSrc1.TVL.COMPANYIDENTIFICATION_04.CompanyIdentification_01 = "AM";
            tvlSrc1.TVL.PRODUCTIDENTIFICATIONDETAILS_05 = new C308();
            tvlSrc1.TVL.PRODUCTIDENTIFICATIONDETAILS_05.ProductionIdentification_01 = "709";
            tvlSrc1.TVL.PRODUCTIDENTIFICATIONDETAILS_05.CharacteristicIdentification_02 = "R";

            //  Flight booking status for 1 adult passenger
            tvlSrc1.RPI = new RPI();
            tvlSrc1.RPI.Quantity_01 = "1";
            tvlSrc1.RPI.Status_02 = new List();
            tvlSrc1.RPI.Status_02.Add("YG");

            //  Equipment Type- Boeing 737
            tvlSrc1.APD = new APD();
            tvlSrc1.APD.ADDITIONALPRODUCTDETAILS_01 = new C314();
            tvlSrc1.APD.ADDITIONALPRODUCTDETAILS_01.TypeOfMeansOfTransport_01 = "737";

            //  AM passenger record reference
            tvlSrc1.RCI = new RCI();
            tvlSrc1.RCI.RESERVATIONCONTROLINFORMATION_01 = new List();
            var c3302 = new C330();
            c3302.CompanyIdentification_01 = "AM";
            c3302.ReservationControlNumber_02 = "XXXYET";
            c3302.FirstDate_04 = "300413";
            c3302.Time_05 = "115500";
            tvlSrc1.RCI.RESERVATIONCONTROLINFORMATION_01.Add(c3302);

            //  End TVL SRC Group 1
            srcLoop.GR5_TVLLoop.Add(tvlSrc1);

            //  Begin TVL SRC Group 2
            var tvlSrc2 = new GR5_TVLLoop();

            //  PNR data for AM445/19MAY13 MEX CUN
            tvlSrc2.TVL = new TVL();
            tvlSrc2.TVL.PRODUCTDATETIME_01 = new C310();
            tvlSrc2.TVL.PRODUCTDATETIME_01.FirstDate_01 = "190513";
            tvlSrc2.TVL.PRODUCTDATETIME_01.FirstTime_02 = "1500";
            tvlSrc2.TVL.PRODUCTDATETIME_01.SecondDate_03 = "190513";
            tvlSrc2.TVL.PRODUCTDATETIME_01.SecondTime_04 = "1710";
            tvlSrc2.TVL.LOCATION_02 = new C328();
            tvlSrc2.TVL.LOCATION_02.PlaceLocationIdentification_01 = "MEX";
            tvlSrc2.TVL.LOCATION2_03 = new C328();
            tvlSrc2.TVL.LOCATION2_03.PlaceLocationIdentification_01 = "CUN";
            tvlSrc2.TVL.COMPANYIDENTIFICATION_04 = new C306();
            tvlSrc2.TVL.COMPANYIDENTIFICATION_04.CompanyIdentification_01 = "AM";
            tvlSrc2.TVL.PRODUCTIDENTIFICATIONDETAILS_05 = new C308();
            tvlSrc2.TVL.PRODUCTIDENTIFICATIONDETAILS_05.ProductionIdentification_01 = "445";
            tvlSrc2.TVL.PRODUCTIDENTIFICATIONDETAILS_05.CharacteristicIdentification_02 = "S";

            //  Flight booking status for 1 adult passenger
            tvlSrc2.RPI = new RPI();
            tvlSrc2.RPI.Quantity_01 = "1";
            tvlSrc2.RPI.Status_02 = new List();
            tvlSrc2.RPI.Status_02.Add("HK");

            //  Equipment Type
            tvlSrc2.APD = new APD();
            tvlSrc2.APD.ADDITIONALPRODUCTDETAILS_01 = new C314();
            tvlSrc2.APD.ADDITIONALPRODUCTDETAILS_01.TypeOfMeansOfTransport_01 = "738";

            //  Repeating SSR
            tvlSrc2.SSR = new List();

            //  Infant information: surname/name/DOB
            var ssrTvl1 = new SSR();
            ssrTvl1.SPECIALREQUIREMENTTYPEDETAILS_01 = new C334();
            ssrTvl1.SPECIALREQUIREMENTTYPEDETAILS_01.SpecialRequirementType_01 = "INFT";
            ssrTvl1.SPECIALREQUIREMENTTYPEDETAILS_01.Status_02 = "NN";
            ssrTvl1.SPECIALREQUIREMENTTYPEDETAILS_01.Quantity_03 = "1";
            ssrTvl1.SPECIALREQUIREMENTTYPEDETAILS_01.CompanyIdentification_04 = "AM";
            ssrTvl1.SPECIALREQUIREMENTTYPEDETAILS_01.PlaceLocationIdentification2_09 = "TESTSURNAMETWO/TESTNAMETWO/10AUG11";
            tvlSrc2.SSR.Add(ssrTvl1);

            //  Ticketing details for adult MEX CUN
            var ssrTvl2 = new SSR();
            ssrTvl2.SPECIALREQUIREMENTTYPEDETAILS_01 = new C334();
            ssrTvl2.SPECIALREQUIREMENTTYPEDETAILS_01.SpecialRequirementType_01 = "TKNE";
            ssrTvl2.SPECIALREQUIREMENTTYPEDETAILS_01.Status_02 = "HK";
            ssrTvl2.SPECIALREQUIREMENTTYPEDETAILS_01.Quantity_03 = "1";
            ssrTvl2.SPECIALREQUIREMENTTYPEDETAILS_01.CompanyIdentification_04 = "AM";
            ssrTvl2.SPECIALREQUIREMENTTYPEDETAILS_01.ItemDescription_07 = "MEX";
            ssrTvl2.SPECIALREQUIREMENTTYPEDETAILS_01.PlaceLocationIdentification_08 = "CUN";
            ssrTvl2.SPECIALREQUIREMENTTYPEDETAILS_01.PlaceLocationIdentification2_09 = "1392178947000C2";
            tvlSrc2.SSR.Add(ssrTvl2);

            //  Ticketing details for infant MEX CUN
            var ssrTvl3 = new SSR();
            ssrTvl3.SPECIALREQUIREMENTTYPEDETAILS_01 = new C334();
            ssrTvl3.SPECIALREQUIREMENTTYPEDETAILS_01.SpecialRequirementType_01 = "TKNE";
            ssrTvl3.SPECIALREQUIREMENTTYPEDETAILS_01.Status_02 = "HK";
            ssrTvl3.SPECIALREQUIREMENTTYPEDETAILS_01.Quantity_03 = "1";
            ssrTvl3.SPECIALREQUIREMENTTYPEDETAILS_01.CompanyIdentification_04 = "AM";
            ssrTvl3.SPECIALREQUIREMENTTYPEDETAILS_01.ItemDescription_07 = "MEX";
            ssrTvl3.SPECIALREQUIREMENTTYPEDETAILS_01.PlaceLocationIdentification_08 = "CUN";
            ssrTvl3.SPECIALREQUIREMENTTYPEDETAILS_01.PlaceLocationIdentification2_09 = "INF1392178947000C2";
            tvlSrc2.SSR.Add(ssrTvl3);

            //  AM passenger record reference
            tvlSrc2.RCI = new RCI();
            tvlSrc2.RCI.RESERVATIONCONTROLINFORMATION_01 = new List();
            var c3303 = new C330();
            c3303.CompanyIdentification_01 = "AM";
            c3303.ReservationControlNumber_02 = "XXXYET";
            c3303.FirstDate_04 = "300413";
            c3303.Time_05 = "115500";
            tvlSrc2.RCI.RESERVATIONCONTROLINFORMATION_01.Add(c3303);

            //  End TVL SRC Group 2
            srcLoop.GR5_TVLLoop.Add(tvlSrc2);

            //  Begin TVL SRC Group 3
            var tvlSrc3 = new GR5_TVLLoop();

            //  PNR data for AM718/23MAY13 CUN BOG
            tvlSrc3.TVL = new TVL();
            tvlSrc3.TVL.PRODUCTDATETIME_01 = new C310();
            tvlSrc3.TVL.PRODUCTDATETIME_01.FirstDate_01 = "230513";
            tvlSrc3.TVL.PRODUCTDATETIME_01.FirstTime_02 = "0135";
            tvlSrc3.TVL.PRODUCTDATETIME_01.SecondDate_03 = "230513";
            tvlSrc3.TVL.PRODUCTDATETIME_01.SecondTime_04 = "0500";
            tvlSrc3.TVL.LOCATION_02 = new C328();
            tvlSrc3.TVL.LOCATION_02.PlaceLocationIdentification_01 = "CUN";
            tvlSrc3.TVL.LOCATION2_03 = new C328();
            tvlSrc3.TVL.LOCATION2_03.PlaceLocationIdentification_01 = "BOG";
            tvlSrc3.TVL.COMPANYIDENTIFICATION_04 = new C306();
            tvlSrc3.TVL.COMPANYIDENTIFICATION_04.CompanyIdentification_01 = "AM";
            tvlSrc3.TVL.PRODUCTIDENTIFICATIONDETAILS_05 = new C308();
            tvlSrc3.TVL.PRODUCTIDENTIFICATIONDETAILS_05.ProductionIdentification_01 = "718";
            tvlSrc3.TVL.PRODUCTIDENTIFICATIONDETAILS_05.CharacteristicIdentification_02 = "Q";

            //  Flight booking status for 1 passenger
            tvlSrc3.RPI = new RPI();
            tvlSrc3.RPI.Quantity_01 = "1";
            tvlSrc3.RPI.Status_02 = new List();
            tvlSrc3.RPI.Status_02.Add("HK");

            //  Equipment Type
            tvlSrc3.APD = new APD();
            tvlSrc3.APD.ADDITIONALPRODUCTDETAILS_01 = new C314();
            tvlSrc3.APD.ADDITIONALPRODUCTDETAILS_01.TypeOfMeansOfTransport_01 = "737";

            //  Repeating SSR
            tvlSrc3.SSR = new List();

            //  Infant information: surname/name/DOB
            var ssrTvl4 = new SSR();
            ssrTvl4.SPECIALREQUIREMENTTYPEDETAILS_01 = new C334();
            ssrTvl4.SPECIALREQUIREMENTTYPEDETAILS_01.SpecialRequirementType_01 = "INFT";
            ssrTvl4.SPECIALREQUIREMENTTYPEDETAILS_01.Status_02 = "NN";
            ssrTvl4.SPECIALREQUIREMENTTYPEDETAILS_01.Quantity_03 = "1";
            ssrTvl4.SPECIALREQUIREMENTTYPEDETAILS_01.CompanyIdentification_04 = "AM";
            ssrTvl4.SPECIALREQUIREMENTTYPEDETAILS_01.PlaceLocationIdentification2_09 = "TESTSURNAMETWO/TESTNAMETWO/10AUG11";
            tvlSrc3.SSR.Add(ssrTvl4);

            //  Ticketing details for adult CUN BOG
            var ssrTvl5 = new SSR();
            ssrTvl5.SPECIALREQUIREMENTTYPEDETAILS_01 = new C334();
            ssrTvl5.SPECIALREQUIREMENTTYPEDETAILS_01.SpecialRequirementType_01 = "TKNE";
            ssrTvl5.SPECIALREQUIREMENTTYPEDETAILS_01.Status_02 = "HK";
            ssrTvl5.SPECIALREQUIREMENTTYPEDETAILS_01.Quantity_03 = "1";
            ssrTvl5.SPECIALREQUIREMENTTYPEDETAILS_01.CompanyIdentification_04 = "AM";
            ssrTvl5.SPECIALREQUIREMENTTYPEDETAILS_01.ItemDescription_07 = "CUN";
            ssrTvl5.SPECIALREQUIREMENTTYPEDETAILS_01.PlaceLocationIdentification_08 = "BOG";
            ssrTvl5.SPECIALREQUIREMENTTYPEDETAILS_01.PlaceLocationIdentification2_09 = "1392178947000C3";
            tvlSrc3.SSR.Add(ssrTvl5);

            //  Ticketing details for infant CUN BOG
            var ssrTvl6 = new SSR();
            ssrTvl6.SPECIALREQUIREMENTTYPEDETAILS_01 = new C334();
            ssrTvl6.SPECIALREQUIREMENTTYPEDETAILS_01.SpecialRequirementType_01 = "TKNE";
            ssrTvl6.SPECIALREQUIREMENTTYPEDETAILS_01.Status_02 = "HK";
            ssrTvl6.SPECIALREQUIREMENTTYPEDETAILS_01.Quantity_03 = "1";
            ssrTvl6.SPECIALREQUIREMENTTYPEDETAILS_01.CompanyIdentification_04 = "AM";
            ssrTvl6.SPECIALREQUIREMENTTYPEDETAILS_01.ItemDescription_07 = "CUN";
            ssrTvl6.SPECIALREQUIREMENTTYPEDETAILS_01.PlaceLocationIdentification_08 = "BOG";
            ssrTvl6.SPECIALREQUIREMENTTYPEDETAILS_01.PlaceLocationIdentification2_09 = "INF1392178947000C3";
            tvlSrc3.SSR.Add(ssrTvl6);

            //  AM passenger record reference
            tvlSrc3.RCI = new RCI();
            tvlSrc3.RCI.RESERVATIONCONTROLINFORMATION_01 = new List();
            var c3304 = new C330();
            c3304.CompanyIdentification_01 = "AM";
            c3304.ReservationControlNumber_02 = "XXXYET";
            c3304.FirstDate_04 = "300413";
            c3304.Time_05 = "115500";
            tvlSrc3.RCI.RESERVATIONCONTROLINFORMATION_01.Add(c3304);

            //  End TVL SRC Group 3
            srcLoop.GR5_TVLLoop.Add(tvlSrc3);

            //  End SRC Group
            result.GR1_SRCLoop.Add(srcLoop);

            return result;
        }
    }
}

More operations in ediFabric .NET

PNRGOV questions

What is the difference between PNRGOV and PAXLST?

PAXLST carries advance passenger information (API): identity and document data from check-in. PNRGOV carries the reservation (PNR) data, such as itinerary, contact and payment details.

When is PNRGOV sent?

At times set by each government, typically several times before departure and again at departure.

Which version is used?

The authority's implementation guide sets the PNRGOV version, such as 11.1 or 13.1.

How do I parse and generate IATA PADIS PNRGOV files in .NET?

In .NET, install EdiFabric and EdiFabric.Templates.Padis, read the file with EdifactReader into TSPNRGOV objects and write them back with EdifactWriter. From any other language, post the file to the ediFabric Cloud REST API, which returns the same structure as JSON and converts JSON back to IATA PADIS.

Resources

Parse your first IATA PADIS PNRGOV in five minutes

The Community plan is free forever and needs no credit card. It includes ediFabric .NET, Native and Cloud with one serial key.

Sign up free Validate EDI files free