加拿大家园论坛

关于国际航线值机时API报送校验的当前已知信息汇总

原文链接:https://forum.iask.ca/threads/935011/

BoyceH : 2023-12-18#1

前情提要​

请参见《法理与技术:关于双护照从中国出境若干问题的解释》(https://forum.iask.ca/threads/934780/),本段只是重申一下打印登机牌之前的三部曲——
* 乘客信息写入离港系统
* 向出发地预报旅客信息
* 向目的地预报旅客信息

本文中的信息,全部都是本人基于公开信息所作的猜想和推论。如有人照此操作导致出事,概不负责。

第一部分:关于值机,现在我们知道些什么​

一、证件信息在PNR里的什么位置​

旧标准 - SSR FOID​

1702905364951.png
PNR中有一个“特殊服务请求”字段,叫SSR(Special Service Request),其中有一个项目叫FOID(Form Of IDentification,中译:证件形式),最早是用字段来记录乘客的证件号码的。目前中国旅客乘坐国内航班还是在用这个字段。FOID字段之所以叫“证件形式”,是因为它支持非常多的“形式”,例如信用卡号码(CC)。上图中的”CCVIXXXXXXXXXXXX0002“,指的是Credit Card VIsa(VISA信用卡),卡号是XXXX-XXXX-XXXX-0002。

中国国内从没有准许过用信用卡作为登机证件,所以通常只会看到身份证号(NI888888190001014321)或护照号(PPG12345678)的形式。

另外,中国政府2023年4月要求航空公司严格执行《关于进一步落实外国人乘坐境内交通运输工具实名制管理工作的通知》。中航信此后要求所有购买境内机票的外国人用下方的SSR DOCS方式录入证件信息,不准再用SSR FOID PP方式。

参见:https://servicehub.amadeus.com/c/po...to-add-a-form-of-identification-foid-to-a-pnr
参见:https://home.baitours.com:82/Baitours/Airline/202102/101151348.PDF
参见:https://home.baitours.com:82/Baitours/Airline/202302/101169499.PDF

新标准 - SSR DOCS/DOCO/DOCA​

1702906366770.png
但是,由于美国911之后要求提供更复杂的预报旅客信息(证件机读码、签证信息、在美国地址等),这个字段最后不敷使用了。离港系统的提供商后来按照美国的标准,制定出了一个新字段系列,其中包括三项:DOCS(DOcumentS)、DOCO(DOC Other)、DOCA(DOC Address),分别表示旅行证件信息、其他证件信息(签证、可信旅客代码等)和在美地址。需要注意的是:
  • 对于一个乘客,只能有一个DOCS信息、一个DOCO信息和一个DOCA信息。而DOCS信息的格式是里面只有一本证件。
  • DOCO中的信息按照标准,只有签证(类型V)、可信旅客号码(类型K,例如Global Entry)和申诉代码(类型R,例如TSA Redress No)。关于DOCO的文档中从来都没有说DOCO中可以报一个类型P的证件(第二本护照)进去。

这套标准最初是按照美国人的标准来做的,因为最初只有美国人要求预报旅客信息。但后来日本、韩国、台湾等地方跟进了,并且日韩台要求的信息正好是美国人的子集,因此这个字段也被大多数航空公司拿来应付日韩台的旅客。

参见:https://servicehub.amadeus.com/c/po...d-advance-passenger-information-apis-cryptic-
参见:https://servicehub.amadeus.com/c/po...o-for-a-visa-redress-or-known-traveler-number

SSR DOCS有时是不能更改的​

涉美航班起飞前 72 小时内,不允许对旅客的身份信息(SSR DOCS)进行任何修改,包括:修改或补充旅客姓名,修改性别、出生日期、旅客证件号码,增加或删减字符和空格等操作。但住址信息(SSR DOCA)可修改或补充。如确需修改旅客身份信息,则不得使用原 PNR 直接修改。原则上应删除原 PNR,按自愿退票办理原票退票,重新定妥 PNR 并填
开新票。

参见:https://home.baitours.com:82/Baitours/Airline/202301/101169286.PDF

二、交互式预报信息​

APIS(预报旅客信息系统)是将储存的静态信息预报给政府的机制。在APIS的基础上,美国是最早提出交互式系统国家,这套机制被美国称为“APIS Quick Query”(AQQ),这意味着不仅航空公司可以预报信息,美国也可以返回信息,告诉航空公司能否准许登机。AQQ的提出来自于美国免签证计划下的ESTA。在ESTA实施前,赴美旅客的证件检查可以静态完成(免签国护照,或者贴有美国签证的非免签国护照)。在ESTA实施后,通过AQQ机制,航空公司就能确认旅客是否已经申请并持有有效的ESTA。

不同国家提出的交互式预报旅客信息系统拥有完全不同的名字,例如:
  • 美国:AQQ,APIS Quick Query
  • 泰国:APPS,Advanced Passenger Processing Service
  • 澳大利亚:APP,Advance Passenger Processing

三、中航信ANGEL离港系统值机模块的前端界面​

国内主流企业用的是中航信的ANGEL系统,这个系统的文档只有航空公司才有,但是某些培训企业有模拟系统(和相关的培训书籍)。其中的界面大概是长这个样子的——

(2010年的某PPT)
1702907885569.png1702907905997.png

由于历史原因,非美国的APIS如不需要交互式验证就被称为APP,需要交互式验证就被称为JAPP。我没有在任何外国的文件里查到JAPP这个缩写,这个J代表什么不详(搞不好代表汉语拼音的校验Jiaoyan)。

参见:https://wenku.baidu.com/view/25dce01bb7360b4c2e3f6428

(2020年出版的某教材)
1702908936482.jpeg

1702908947887.jpeg

1702909166070.jpeg

为什么有身份证/API/APP三种​

如上所属,这是历史产物。身份证对应的是SSR FOID,API对应的是SSR DOCS/DOCO/DOCA,适用于美国和使用这套系统的其他目的地。APP对应的是美国以外的交互式系统的国家。

四、中航信ANGEL离港系统值机模块的后端命令​

虽然教材和PPT等信息没有反应出来(由于资料过时),但是中航信系统中有将信息提交各国政府系统验证的命令。

GOV指令​

  • GOV #1, DCN 表示对窗口内#1号未值机旅客执行政府验证(GOVernment check),目的地(destiantion)系统是中国(CN)。
  • 类似地,GOV #1, DCA表示目的地国是加拿大。
  • GOV #1, AQOR / CA 表示对窗口内#1号未值机旅客的AQQ政府验证进行强制跳过(OverRide),适用国为加拿大(CA)。
  • 某些国家没有DXX系列指令,GOV后的参数是APP。例如迪拜的强制跳过指令是GOV #1, APP, AVOR/XXX。
  • 从中国出发去加拿大,DCN和DCA两条指令都要敲。
  • GOV指令敲进去的那一刻,是发送信息,还是检查政府的信息回复,不详。因为没有公开技术资料。
  • 目前我的猜测是,这个指令的意思是把API(SSR DOCS系列)信息发出到指定的系统。
参见:https://www.shangxueba.com/ask/32779362.html

JAPP/APP指令​

  • APP/护照号/国籍/各种信息1/.../各种信息N 描述一个APP信息,这个写法称为全指令
  • APP/护照号/国籍 描述一个APP信息,这个写法称为简指令。如果输入简指令,其他信息(如姓名性别出生日期)是目的地政府系统免于提交,还是从SSR DOCS中提取,不详,因为没有公开技术资料
  • JAPP 1, APP/护照号/国籍/... 是”进行“JAPP验证的指令。至于”进行“的定义是构造一个请求等待用别的指令发出,还是发送一个请求不详,因为没有公开技术资料。
  • 但是无论如何,只要值机员愿意敲,都可以把一个和SSR DOCS不同的证件手工敲进JAPP指令。
参见:https://ks.wjx.top/jq/57921912.aspx
参见:https://kzzx.shangxueba.com/PMVTAM38.html

五、同一个系统对不同航线的“默认配置”可能不同​

海南航空关于“境外-北京-境外”通程服务的文件是这么描述预报旅客信息的:
4.2 API录入:值机员根据中国入境要求查验旅客有效证件及签证,并对旅客API信息进行复核及补录。申根航线:值机员更新旅客API信息时,中国入境IAPI校验由离港系统自动完成。美国航线:值机员更新旅客API信息时,AQQ校验自动完成;系统完成AQQ校验后值机员通过手工指令完成入境中国IAPI校验。澳洲航线:值机员更新旅客API信息时,入境中国IAPI自动校验。对于中国IAPI校验通过的旅客,值机员手动完成APP校验
请注意,这是境外始发的模式。中国始发的模式可能不同。

参见:https://home.baitours.com:82/Baitours/Airline/201912/101142627.PDF

六、关于iAPI当前的“业务规范”​

曾经一度,你可以以任何你想要的方式把登机牌出出来,然后就可以用自动通关走人。这是因为自动通关机器上有登机牌扫描器,在你刷登机牌PNR的时候,你的出境记录和PNR会自动关联。

在当下,这种方式有可能是行不通的。因为“漏报错报”iAPI信息的结果是航空公司有概率被罚款。而如果你走人工的时候边检发现证件下没有关联PNR——
  • NIA心情好就手动关联一下,然后放你走。
  • NIA心情不好,航空公司可能会倒霉。航空公司倒霉了就会反过来查原因,一查你的双护照就暴露了。并且不是那种“无事不理”的暴露——航空公司必须把乘客“卖了”来给当局一个交代。

第二部分:关于过往的例子,仍然存有疑问​

一、“加拿大护照当签证报“到底是怎么报的​

根据上述信息,”F2证件核对-API“界面上的那个其他证件信息,理论上根本就不应该报一个类型P的证件进去。把中国护照放在SSR DOCS,而把加拿大护照放在SSR DOCO,这种做法完全就不符合美国指定的API规范。因此,一个比较合理的猜测是,加拿大的系统针对这部分做过改造。它可以接受SSR DOCO中有P类型证件,并且如果P类型证件签发国是CAN,它会优先用这个证件判断(查数据库)。如果查出来是合法证件,那么就发送OK To Board。

如果上述猜测是正确的,”加拿大护照当签证报进SSR DOCO“只适用于中加直飞。它不能适用于中加双本持有人,从中国向美国或者第三国直飞

二、“加照买机票“到底能不能行​

如果用加拿大护照买机票,加拿大护照的信息会写入SSR DOCS。在iAPI实施前,只要值机员不为难你(或许需要查中国签证、但不需要报送),你可以大摇大摆拿着登机牌用”刷PNR“的方式自助通关走人。但在iAPI实施后,这取决于中国出发的航班如何执行iAPI的报送。非常可惜的是,在这个问题上,全网没有任何公开文件,我也没有找到什么培训教材或者PPT。

如果iAPI有一个类似JAPP的指令可以手敲,那完全可以用加拿大护照买机票,然后用中国护照信息手敲iAPI校验指令。但是,目前的信息是,中国iAPI的指令似乎我只搜索到一个”GOV #1, DCN“,这个指令里面没有护照信息,因此它必然是从SSR DOCS里提取了护照信息。

当然,如果边检愿意放你一马(例如是合法的”美宝“),或者你是赵瑞龙,你可以直接走人工。边检总是可以手动刷登机牌关联护照信息,然后让你用护照出境。

三、“回乡证“是怎么报的​

假设一个香港人要从上海飞往温哥华,他肯定是拿特区护照买机票,因此特区护照的信息会报送到SSR DOCS里面。但是,他自助通关必须使用回乡证。因此值机员必须要采取某种措施,把回乡证的信息报送给iAPI。然而,目前没有任何公开资料可以告诉我,值机员到底是怎么操作的。可能的情况包括:
  • 在命令行界面上,用某个指令手敲了iAPI的校验
  • 在UI界面上,修改了SSR DOCS(加拿大航线原则上不允许修改DOCS)之后点”更新APi信息“
  • 用什么其他渠道(例如iAPI门户网站)单独报送了信息,在命令行上用"GOV #1, AVOR/CN"强行跳过了系统集成的iAPI校验。
这个问题搞清楚非常重要。因为”回乡证+特区护照“的处理方法和”中国护照+加拿大护照“的处理方法本质上是一样的。

结语​

目前我们知道的大概这么多,如果有哪位坛友认识航空公司国际值机业务的地面勤务人员,不妨请教一下他们。

不过,当我们知道了这么多之后,我们其实应该能更加认清楚一件事情:双护照值机的难度不在于系统,而在于低级值机员的水平不足。对于资深值机员(之前例子中大兴机场的南航),他知道每一步怎么操作,因此当事人拿着中国护照顺利的自助通关走人了。而对于新手,与其承认”自己不会操作“,不如直接指控乘客违反国籍法来的更方便一些。

另外一个问题是,我们不知道航空公司的内部政策是什么。他们的文件上是否写过”中国护照出中国、加拿大护照进加拿大“的SOP?这个SOP是告诉他们怎么敲指令,还是告诉他们上报值机主任?但是,不论SOP是什么,我们知道总是有办法解决iAPI的问题,只要他想——用GOV #1, AVOR/CN把他跳过,然后登陆iAPI门户网站手敲就行了。

只不过,作为一个经济舱打折票的客户,似乎我们不值得他们这么大费周章。仅此而已。

gaikaigao : 2023-12-18#2
赞一下楼主的帖子!留着慢慢研究

sunny98 : 2023-12-18#3
感谢楼主专业的信息。学习了!

ziwang : 2023-12-18#4
回乡证/台胞证,在边检的系统里有不同的处理逻辑就完了(只要姓名生日和登机牌对得上即放行,包括自助通道),不要求包括在APP信息里。和中国护照在边检系统里处理逻辑不一样呗。

BoyceH : 2023-12-19#5
回乡证/台胞证,在边检的系统里有不同的处理逻辑就完了(只要姓名生日和登机牌对得上即放行,包括自助通道),不要求包括在APP信息里。和中国护照在边检系统里处理逻辑不一样呗。
自助通道第一个通道原来有一个”登机牌扫描器“,是用来采集PNR的、关联证件的。

你拿一个回乡证到自助通道,如果不刷登机牌就能把第一个通道刷开,请问技术上是怎么实现的?姓名和生日一样的情况是有可能出现的,出入境这种严肃的场景是不可能采用模糊匹配方案的。

唯一的可能就是,目前持回乡证台胞证自助通关还是要自己刷登机牌。这个解释比较合理。但是本论坛可能没有人有回乡证/台胞证。
(已更新,见楼下)

如果这是真的,这也能印证我上面的猜测 - 哪怕iAPI报送了一本奇奇怪怪的证件(中华民国护照、香港特区护照、没有中国签证的外国护照、与入境证件不符的护照),边检仍然可以手工关联PNR把人放出去。

BoyceH : 2023-12-19#6
重申:本文中的信息,全部都是本人基于公开信息所作的猜想和推论。如有人照此操作导致出事,概不负责。

补一下我当前相信的结论​

中国政府的IAPI是从SSR DOCS/DOCO(F2证件核对-API)里面提取的,要用GOV #1 DCN指令验证。

部分国家例如美国、加拿大、韩国的预报旅客信息用的也是上面这套,并且可能由于政策无法修改DOCS、只能补充DOCO/DOCA。已知信息表明持加拿大护照飞往加拿大录入P类证件可以得到正确的处理:
提供三个亲测信息给楼主:
......
2 返加行程:中国护照信息购票,航空公司柜台以中国护照办票。航空公司值机系统弹出加拿大IAPI联网验证界面,无法通过。手工添加”其他证件“,证件类型P,证件号码和有效期均按加拿大护照录入,即通过验证并显示绿色"On Board"提示,打出登机牌。中国护照加登机牌顺利自助通关。时间:1年内。地点:首都机场
......
*其中2的做法是CBSA建议的。之前email给CBSA的IAPI部门,抱怨中加双护照无法通过中国值机系统的联网验证。回信说可以额外录入加拿大护照信息。
对于这些国家,使用中加双护照直飞,最好”只飞往国籍国“(加拿大)、并且中国护照订票。因为即便最后加拿大的预报旅客信息无法处理,航空公司见到你手上的加拿大护照,也可以电子邮件发给CBSA请示后,用AVOR强制跳过校验把登机牌打出来。用中国护照订票的好处是,SSR DOCS里面如果是中国护照的信息,能基本上确保iAPI正确预报、自助通关能用。中加双持(中照无美签/韩签)直飞美国、韩国是未知操作(理论上可以,见下段,但不保证),有DP请告知。

部分国家例如澳大利亚、泰国的预报旅客信息用了另外一套界面(F2-证件核对-APP)。飞往这些国家时用中国护照订票,确保中国护照信息写入SSR DOCS,然后到现场让值机员完成中国IAPI验证(F2-证件核对-API点”更新API信息“,或者手敲GOV #1 DCN),然后切换到”F2-证件核对-APP“录入加拿大护照信息进行JAPP校验(或者手敲JAPP指令),在边检不反电诈(阻止你用自动通道)的情况下就能用中国护照自助通关走人。

UN/EDIFACT格式​

根据《iAPI技术手册》,乘客资料是以UN/EDIFACT格式来传输的。根据美国CBP的格式指南,证件类型是多种多样的:护照P、绿卡A/C/C1、签证V/VI/VN、NEXUS卡IN等等,因此第二证件(SSR DOCO)中确实可以填报各种乱七八糟的东西。

至于SSR DOCO里面只能填申诉旅客号码,这是我的误判。在最新版本的系统中,DHS已知旅客号码和TSA申诉号码不在左下方的API信息里面,但是在右上方的黑屏系统里有(看APP那张图,右上角黑屏绿色小字第四行:Redress No和Known Traveler No)。

参见:https://www.cbp.gov/sites/default/files/assets/documents/2016-Sep/DHS_CUG_v4 2_09-06-2016_Pt 4_EDIFACT.pdf

从离港系统到UN/EDIFACT​

由于UN/EDIFACT格式中“证件”可以报多个,因此中航信系统的逻辑,据猜测应该是把主证件、其他证件、签证三个信息都送进去。之所以要设计一个单独的"签证“栏目,是因为有些系统(比如美国)把证件信息混在一起,而有些系统(比如中国iAPI)要求单独把签证列出来。因此如果读取信息的子系统对接AQQ,就会把三个信息都放在一起,彼此只是类型不同。而读取信息的子系统对接iAPI时会专门把中国签证信息放在iAPI数据格式指定的为止,把”主证件“和”其他证件"分别放在第二证件的位置。

结论性猜测:回乡证处理​

回乡证的类型代码根据《iAPI业务指南》是T。因此如果有人拿护照买票但出示回乡证,值机员的做法应该是在“其他证件信息”里填写“号码H12345678、类型T、生效日期YYYYMMDD、失效日期YYYYMMDD、签署国CHN”。

这个信息传送到iAPI系统中后,系统能自动识别出是回乡证。因为各种类型证件的开头代码不同

证件iAPI指定的类别代码号码格式
普通护照PE********
G******** (旧版)
公务普通护照PP********
公务护照PS********
外交护照PD********
香港特区护照PH******** 或 K********
澳门特区护照PM********
海员证PA********
出入境通行证PX********
旅行证PT********
回国证明P纯数字,四位年份加七位编码
例如20230001214
往来港澳通行证TC********
W********(旧版本式)
因公往来香港澳门特别行政区通行证TK********
港澳居民来往内地通行证TH********(香港居民)
M********(澳门居民)
大陆居民往来台湾通行证TL********
T********(旧版本式)
台湾居民来往大陆通行证T八位纯数字

结论性猜测:加拿大护照买票处理​

拿出中国护照,在“其他证件信息”里填写“号码E********、类型P、生效日期YYYYMMDD、失效日期YYYYMMDD、签署国CHN”,然后单击“更新API信息”。

免责声明​

请注意以下几点:
  • 上述中航信系统的处理逻辑纯属基于公开信息猜测,对着弹孔猜弹道,猜错难免。
  • iAPI系统/美国AQQ系统的处理逻辑是未知的。
  • 如果系统处理回乡证的逻辑和处理中国护照的逻辑相同,理论上可以自助通关。但是,中国护照报第二证件能否自助通关不详。
  • 美国AQQ、韩国API中加拿大护照报第二证件能否打登机牌不详。
  • 即便你持有能入境的护照,如果你去的不是国籍国,航空公司可能会拒绝帮你联系目的地边检、拒绝用override,因为一旦遣返你的食宿和回程票全是他包。如果打不出登机牌,他的惯性绝对是指控你违反国籍法或者指控你的加拿大护照是假的,而不是自己去调查系统到底那一步数据报送错了。
  • 即便你持有有效登机牌,中国NIA也可能会拒绝让你过。
另外请注意:
  • 由于航空公司的系统是集成的,双护照直飞的结果是,你的加拿大护照号码也会被报送给中国iAPI。政府从不删除数据,他可以秋后算账
  • 我见到过有人发帖说“傻逼地勤不给改API”,请各位“反华分子”、“两面人”、“行走的五十万”自行斟酌舆论风险。

重申:纯属猜测,如有人照此操作导致出事,概不负责。

fawang : 2023-12-22#7
太专业了,虽然还是有很多问题需要进一步研究,但是已经非常详细!

ianliu : 2023-12-23#8
牛,专业到我读中文都没看明白