转自 http://wenku.baidu.com/view/eb27bf8a910ef12d2bf9e71f.html###
转自 http://wenku.baidu.com/view/fd13b8e4a45177232f60a2c3.html?from=search
一、定义与说明
二、报文类型
1、 报文的分类与标识
2、 报文重复
3、 报文类型的说明
三、位元表和数据元目录
四、数据元详解
五、拆包举例说明
引言
金融行业的业务包括有关金融交易的电子信息交换。应用规范的约定通常局限在专业级别上。ISO8583国际标准设计了一个保证在采用不同应用规范的系统间能够进行信息交换的界面规范。各应用规范可保持在专用级别上。在信息可以转换成能够进行国际交换的界面格式这一总的约束条件下,各应用系统的设计者可享有完全的灵活性。
ISO8583标准使用一个称为“比特图”的概念,在此,对每个数据元在控制字段或比特图中分配一个位置标记。在一个具体信息中,数据元存在则在指定的位置上用“1”标明,数据元不存在则用“0”标明。
各个系统所采用的信息格式取决于个系统签约双方的商务关系。ISO8583标准定义的数据格式能构保证符合标准的个系统总是兼容的。
一、定义与说明
本节给出简介中涉及的部分术语的解释和定义。
1、版本
版本是对交换报文格式的说明,用于区别根据不同标准或同一标准的不同版本所定义的报文格式,如GB/T 15150-94或ISO8583-1993。报文定义所依据的规范不同,其数据元的含义、组成和数据格式也不尽相同。
本规范的蓝本是国际标准ISO8583-1993《产生报文的银行卡 交换报文规范 金融交易内容》,并根据国家金卡网络的实际业务需求做了相应的裁剪和补充完善。与全国银行卡中心连接的各节点机应统一采用本规范所定义的报文格式。
2、位元表
用来标识报文中各数据元存在(用1表示)或不存在(用0表示)的一个64比特位序列,包括基本位元表和扩展位元表。
3、报文
用于机构或其代理之间交换信息的一个数据元集合,不包括任何用于通信控制或其它目的的标识数据。
4、报文前缀
指交换信息包中位于报文之前的一段固定长度和格式的数据序列,用于通信控制、报文流向控制等用途。
5、报文类别
指一组报文的集合,描述被执行的一种特定活动。
6、报文功能
随报文的目的及其所涉及的动作的一种标识。
7、请求
发送方使用请求报文来通知接收方一笔交易正在进行,而要完成该动作需要接收送响应。
8、报告
报告报文用于发送方将已采取的动作通知接收方,该报文要求响应,但不要求批准。
9、响应
响应是对请求报文或报告报文的一种应答,响应报文中应包括对原请求/报告所涉及内容的明确答复。
10、交易
同一个报文类别中用来完成原报文发送方意图的一个或多个相关的报文。
11、授权
由发卡方向代理方发出的资金批准或担保。
12、查询
一种请求信息的授权交易。
13、财务交易
由代理方到发卡方的一种交易,包含有用于授权、过帐及对帐的所有必要的数据元。
14、借记交易
持卡人对其帐户作借记的认可。同时也提供代理方(和/或受卡方)向发卡方收取资金的要求。
15、贷记交易
一种由持卡人提供资金对其帐户作贷记的请求。同时也提供代理方(和/或受卡方)向发卡方承认可以支付资金的明细。
16、文件动作
用于增加、改变、删除或替换文件或记录的交易。
17、撤消
一种代理方对发卡方的交易,通知发卡方先前发生的一笔交易不能按指令处理。
18、对帐
两个机构(代理方、发卡方或其代理)之间的一种报文交换,以达到财务总计一致。
19、结算
用于先前完成的一笔或多笔交易的资金转帐。
20、网络管理
用于控制交换网络的系统安全和运行状态而进行的报文传输。
21、代理方
从受卡方获取与交易有关的数据并将数据引入交换系统的金融机构或其代理。在整个交易期间代理方保持不变。
22、受卡方
接受卡并向代理方提出交易数据的一方。
23、发卡方
向持卡人发行金融交易卡的金融机构或其代理。在整个交易期间发卡方保持不变。
24、发送机构
在一个交易流中将报文由发生机构向前发送的机构。
25、接收机构
在一个交易流中,在报文到达最终目的地之前接收该报文的机构。
26、结算机构
一个由参加结算的各方在其中开设帐户的金融机构或其代理。该机构根据各参加方提供的信息在各帐户之间进行响应的转帐。
27、交易发起机构
在一笔交易中启动请求和报告报文的机构。交易发起者在整个交易期间保持不变。
28、交易终点机构
一笔交易中接收请求和报告报文的最终机构。交易终点在整个交易期间保持不变。
29、机构标识代码
用于唯一标识每个参与金融交易卡相关报文的报文交换机构。
30、持卡人
向受卡方请求交易的与主帐户有关的客户。
31、服务点
持卡人同意进行交易的受卡方的地点。
32、转帐
持卡人有其一个帐户向其另一个帐户的资金转移,两个帐户都由同一个金融机构拥有。
二、报文类型
本规范定义八种报文,即授权报文、金融交易报文、文件动作报文、撤消报文、对帐控文、管理报文、手续费收取报文和网络管理报文。
1、 报文的分类与标识
报文类型标识符由四位数字组成,用以描述每一报文的类别和功能,所有交易报文以一个报文类型标识符开始。
第一位:版本号
0GB/T15150-1994
1ISO8583-1993(本规范指定版本)
2-9保留
第二位:报文类别
1授权
2财务
3文件动作
4撤消
5对帐
6事务管理
7手续费收取
8网络管理
0、9保留
第三位:报文功能
0请求
1请求响应
2报告
3报告响应
4通知
5-9保留
第四位:交易发起者
0代理方
1代理方重复
2发卡方
3发卡方重复
4其它
5其它重复
6-9保留
2、 报文重复
当一个报文被标识为重复报文(报文类型标识符的第四位指明)时,除报文类型标识符和报文鉴别代码外,该报文与其原报文相同,如果必要,交易日期和时间数据元可以重设。
3、 报文类型的说明
以下简要描述每一种报文类别所支持的特定功能。
(1)授权报文
授权是发卡方对代理方的一种批准或担保。授权报文不能用于根据批准的授权金额对持卡人帐户签单或过帐。
1100授权请求
1101授权请求重复
用途:用于在一服务点收到响应报文指出要采取的动作之前交易不能完成的时候。要求回送1110授权请求响应。
1110授权请求响应
用途:为响应1100授权请求或1101授权请求重复而发送,表明资金认可或担保,或要采取的以动作代码数据元规定的动作。
1120授权报告
1121授权报告重复
用途:用于通知发卡方一个授权交易已在服务点完成。要求回送1130授权报告响应报文。
1130授权报告响应
用途:为响应1120授权通知或1121授权通知重复而发送,指明发卡方接收或拒绝这种金融债务转让。
1140授权通知
用途:用于通知发卡方一个授权交易已在服务点完成。不要求任何响应报文。
(2)财务报文
财务交易允许根据批准的授权金额对持卡人帐户签单或过帐。
1200财务请求
1201财务请求重复
用途:用于在一服务点收到响应报文指出要采取的动作之前交易不能完成的时候。要求回送1210财务请求响应。
1210财务请求响应
用途:为响应1200财务请求或1201财务请求重复而发送,表明资金认可或担保,或要采取的以动作代码数据元规定的动作。
1220财务报告
1221财务报告重复
用途:用于通知发卡方一个财务交易已在服务点完成。要求回送1230财务报告响应报文。
1230财务报告响应
用途:为响应1220财务报告或1221财务报告重复而发送,指明发卡方接收或拒绝这种金融债务转让。
1240财务通知
用途:用于向发卡方通告一个财务行动。不要求任何响应报文。
(3)文件动作报文
文件动作报文用于增加、改变、删除或更换文件或记录,或用于查询文件,或用于卡的管理(如黑名单)。
1304文件动作请求
1305文件动作请求重复
用途:请求更新文件或记录。要求回送1314文件动作请求响应。
1314文件动作请求响应
用途:为响应1304文件动作请求或1305文件动作请求重复而发送,指明文件操作的具体动作和数据。
1324文件动作报告
1325文件动作报告重复
用途:用于发送方通知接收方在文件或记录中所增加、删除或更换的内容。要求回送1334文件动作报告响应报文。
1334文件动作报告响应
用途:为响应1324文件动作报告或1325文件动作报告重复而发送,指明接收方接受或拒绝指定的文件动作。
1344文件动作通知
用途:用于通知接收方某文件操作已在发送方完成。不要求任何响应报文。
(4)撤消和反向记帐报文
撤消用来部分或全部取消过去的一笔财务或授权交易的结果,由代理方发出。
反向记帐用于部分或全部的撤消一个已发生的财务交易,由发卡方发出。
1420撤消报告
1421撤消报告重复
用途:代理方接收授权响应、财务交易请求响应和财务交易报告响应发生超时,应发送该交易的撤消报告。撤消报告要求回送1430撤消报告响应。
1430撤消报告响应
用途:为响应1420撤消报告或1421撤消报告重复而发送,一般情况下发卡方不应拒绝撤消报告。
1440撤消通知
用途:用于通告发卡方某交易已撤消。不要求任何响应报文。
1422反向记帐报告
1423反向记帐报告重复
用途:用于通知代理方某财务交易应被反记。要求回送1432反向记帐报告响应报文。
1432反向记帐报告响应
用途:为响应1422反向记帐报告或1423反向记帐报告重复而发送,一般情况下代理方不应拒绝反向记帐报告。
1442反向记帐通知
用途:向代理方通告一个反向记帐动作。不要求任何响应报文。
(5)对帐控制报文
对帐交易提供一代理方与一发卡方之间的财务总计金额。
1500代理方对帐请求
1501代理方对帐请求重复
用途:代理方请求最后一个对帐周期的发卡方总计(笔数和金额),以便实现双方间的清算。如果可能,报文中应包含所请求的总计。
必须回送1510代理方对帐请求响应。
1502发卡方对帐请求
1503发卡方对帐请求重复
用途:发卡方请求最后一个对帐周期的代理方总计(笔数和金额),以便实现双方间的清算。如果可能,报文中应包含所请求的总计。
必须回送1512发卡方对帐请求响应。
1510代理方对帐请求响应
用途:为响应1500代理方对帐请求或1501代理方对帐请求重复必须发送,以表示该报文的处理状态或应答。报文中应包含所请求的总计。
1512发卡方对帐请求响应
用途:为响应1502发卡方对帐请求或1503发卡方对帐请求重复必须发送,以表示该报文的处理状态或应答。报文中应包含所请求的总计。
1520代理方对帐报告
1521代理方对帐报告重复
用途:报告最后一个对帐周期的代理方总计(笔数和金额),以实现双方间的清算。报文中应包含所请求的总计。
应回送1530代理方对帐报告响应。
1522发卡方对帐报告
1523发卡方对帐报告重复
用途:报告最后一个对帐周期的发卡方总计(笔数和金额),以实现双方间的清算。报文中应包含所请求的总计。
应回送1532发卡方对帐报告响应。
1530代理方对帐报告响应
用途:为响应1520代理方对帐报告和1521代理方对帐报告重复,以表示该报文的处理状态或应答。
1532发卡方对帐报告响应
用途:为响应1522发卡方对帐报告和1523发卡方对帐报告重复,以表示该报文的处理状态或应答。
1540代理方对帐通知
用途:向发卡方通告最后一个对帐周期的代理方总计(笔数和金额),不需要回送需要报文。
1542发卡方对帐通知
用途:向代理方通告最后一个对帐周期的发卡方总计(笔数和金额),不需要回送需要报文。
(6)事务管理报文
事务管理报文用于在两个机构之间交换信息。
1604事务管理请求
1605事务管理请求重复
用途:请求支持交换网络的信息。要求回送1614管理请求响应。
1614事务管理请求响应
用途:为响应1604管理请求或1605管理请求重复必须发送,以表示该报文的处理状态。
1624事务管理报告
1625事务管理报告重复
用途:报告支持交换网络的信息。要求回送1634管理通知响应。
1634事务管理报告响应
用途:为响应1624管理通知或1625管理通知重复必须发送,以表示该报文的处理状态。
1644事务管理通知
用途:用于通告事务管理动作。不需要任何响应。
(7)手续费收取报文
手续费收取报文用于收取或支付各类服务性费用,具有财务影响并对对帐总计起作用。
1720代理方手续费收取报告
1721代理方手续费收取报告重复
用途:报告作为代理方应被收取的手续费金额。应回送1730代理方手续费收取报告响应。
1730代理方手续费收取报告响应
用途:对1720代理方手续费收取报告和1721代理方手续费收取报告重复的响应报文,用于表示该报文的处理状态。
1740代理方手续费收取通知
用途:通告作为代理方应被收取的手续费金额,不需要任何响应。
1722发卡方手续费收取报告
1723发卡方手续费收取报告重复
用途:发卡方报告应被收取的服务费用。要求回送1732发卡方手续费收取报告响应。
1732发卡方手续费收取报告响应
用途:对1722发卡方手续费收取报告和1723发卡方手续费收取报告重复的响应,用于表示该报文的处理状态。
1744发卡方手续费收取通知
用途:通告作为发卡方应被收取的手续费金额,不需要任何响应。
(8)网络管理报文
网络管理报文用于控制交换网络的系统安全、运行状态、会计周期和审计控制等信息。
1804网络管理请求
1805网络管理请求重复
用途:通过提供或描述系统状态或系统安全性,请求网络管理动作。要求回送1814网络管理请求响应。
1814网络管理请求响应
用途:对1804网络管理请求或1805网络管理请求重复的响应信息。
1824网络管理报告
1825网络管理报告重复
用途:报告网络管理动作。要求回送1834网络管理报告响应。
1834网络管理报告响应
用途:对1824网络管理通知和1825网络管理通知重复的应答信息。
1844网络管理通知
用途:用于通告网络管理动作。
三、位元表和数据元目录
报文的第二部分构成是一个或两个位元表,该位元表由64个位元构成,左边起始位置为“01”(第一位元)。每一位元用“1”或“0”表示报文中与该特定位元有关的数据元的存在或不存在。
位元表中第1位取值为“1”表明其后紧接有一个辅助的位元表(64位)。
基本的位元表(1—64位元)总是存在的,最常用的数据元依这些位元位置进行排序。不常用的数据元依辅助的位元表(65—128位元)进行排序。辅助的位元表如果存在,则由基本的位元表中01位置取值为“1”标明(扩展的位元表)。
下表列出位元的定义及格式、属性,并加以简单说明。表中格式和属性栏使用的缩略语解释如下:
a字符字母,A-Z和a-z
n数字,0-9
p打印字符,空格
s特殊字符
an字母和数字字符
as字母和特殊字符
ns数字和特殊字符
anp字母、数字和空格
ans字母、数字和特殊字符
MM月份,01-12
DD日,01-31
YY年份,00-99
hh时,00-23
mm分,00-59
ss秒,00-59
LL可变长数据,长度01-99
LLL可变长数据,长度001-999
VAR可变长度数据元
3三字符的固定长度
..17最大17个字符的可变长度
x金额数据的前缀表示,贷记为“C”,借记为“D”
b数据的二进制表示
z标准定义的磁条第二和第三磁道的代码集
表一、数据元目录
| 名 称 | 格式 | 属性 | 说明 |
1 | 扩展位元表 |
| b8 | 扩展的位元表(65-128位) |
2 | 主帐号 | LLVAR | n..19 | 标识顾客帐户或关系的一系列数字 |
3 | 处理代码 |
| n6 | 用于说明顾客帐户和相关帐户的交易结果的代码 |
4 | 交易金额 |
| n12 | 由持卡人请求的资金,不含手续费 |
5 | 对帐金额 |
| n12 | 代理方和发卡方间转帐的与交易金额相等的资金 |
6 | 持卡人签单金额 |
| n12 | 持卡人用帐户货币签单的金额,不含签单手续费 |
7 | 传输日期和时间 | MMDDhhmmss | n10 | 引入方发送报文的日期时间,用北京时间表示 |
8 | 签单手续费金额 |
| n8 | 发卡机构向持卡人签单所收取的手续费,货币同签单金额的货币 |
9 | 对帐兑换率 |
| n8 | 用于将交易金额转换成对帐金额 |
10 | 持卡人签单兑换率 |
| n8 | 用于将交易金额转换成签单金额 |
11 | 系统跟踪审计号 |
| n6 | 由交易引入者分配的、用于标识交易唯一性的编号。 |
12 | 本地交易日期和时间 | YYMMDDhhmmss | n12 | 报文引入方的当地日期和时间 |
13 | 生效日期 | YYMM | n4 | 金融卡开始生效的年和月 |
14 | 截止日期 | YYMM | n4 | 卡的有效期截止年月 |
15 | 清算日期 | YYMMDD | n6 | 代理方和发卡方间应转移资金的年月日 |
16 | 兑换日期 | MMDD | n4 | 交易金额转换成对帐货币时兑换率生效的月和日 |
17 | 受理日期 | MMDD | n4 | 代理方处理交易数据的月和日 |
18 | 商户类型 |
| n4 | 经营商品或服务的商户的分类 |
19 | 代理机构国家代码 |
| n3 | 代理机构所在地的国家代码 |
20 | 主帐号国家代码 |
| n3 | 发卡机构所在地的国家代码 |
21 | 发送机构国家代码 |
| n3 | 发送机构所在地的国家代码 |
22 | 服务点数据代码 |
| an12 | 用于标识终端性能、环境和提交保密数据的代码,指明发生交易的具体条件 |
23 | 卡顺序号 |
| n3 | 用于区别具有相同主帐号的不同卡 |
24 | 功能代码 |
| n3 | 在报文分类中指示报文具体用途的代码 |
25 | 报文理由代码 |
| n4 | 用于标识该报文的理由和作用的代码 |
26 | 受卡方业务代码 |
| n4 | 受卡方交易业务处理类型的代码 |
27 | 批准代码长度 |
| n1 | 代理方可接受的批准代码的最大长度 |
28 | 对帐日期 | YYMMDD | n6 | 在代理方和发卡方之间进行财务总计对帐的年月日 |
29 | 对帐指示符 |
| n3 | 在对帐日期时间内允许对帐的一个值,由双方约定 |
30 | 原始金额 |
| n24 | 原始交易的金额数据元 |
31 | 代理方参考数据 | LLVAR | ans..99 | 代理方提供后续交易中可能用到的数据 |
32 | 代理方机构标识代码 | LLVAR | n..11 | 标识代理方的代码 |
33 | 发送机构标识代码 | LLVAR | n..11 | 标识发送机构的代码 |
34 | 扩展主帐号 | LLVAR | ns..28 | 用于主帐号以59开头的顾客帐户 |
35 | 二磁道 | LLVAR | z..37 | 在磁条第二磁道编码的信息 |
36 | 三磁道 | LLLVAR | z..104 | 在磁条第三磁道编码的信息 |
37 | 检索参考号 |
| anp12 | 由保存原始资源信息的系统提供的参考号,用于帮助定位该信息 |
38 | 批准代码 |
| anp6 | 由授权机构产生的指示批准的代码 |
39 | 动作代码 |
| n3 | 决定采取动作的代码,或说明采取动作理由的代码 |
40 | 服务代码 |
| n3 | 有关服务的标识 |
41 | 受卡方终端标识 |
| ans8 | 受卡方用于唯一标识终端的代码 |
42 | 受卡方标识代码 |
| ans15 | 标识受卡方的代码 |
43 | 受卡方名称/地址 | LLVAR | ans..99 | 受卡方的名称和地址 |
44 | 附加响应数据 | LLVAR | ans..99 | 响应中要求的其它数据 |
45 | 一磁道 | LLVAR | ans..76 | 磁条第一磁道所编码的数据 |
46 | 手续费金额 | LLLVAR | ans..204 | 与交易有关的手续费 |
47 | 附加数据-国家-身份识别信息 | LLLVAR | ans..999 | 持卡人身份标识,如护照号码、身份证号码 |
48 | 附加数据-民间 | LLLVAR | ans..999 |
|
49 | 交易货币代码 |
| a3或n3 | 交易金额中使用的代理方本地货币或交易发生地货币 |
50 | 对帐货币代码 |
| a3或n3 | 定义对帐金额的货币代码 |
51 | 持卡人签单货币代码 |
| a3或n3 | 标识持卡人签单金额和签单手续费金额的货币代码 |
52 | 个人识别号PIN数据 |
| b8 | 在服务点用于标识持卡人的数据 |
53 | 安全控制信息 | LLVAR | b..48 | 标识交易中使用的安全管理信息 |
54 | 附加金额 | LLLVAR | ans..120 | 最多为六笔的金额及相关数据 |
55 | IC卡系统有关数据 | LLLVAR | b..48 | 与IC卡系统有关的数据 |
56 | 原始数据元 | LLVAR | n..35 | 包含在原始报文中的、与交易相匹配的数据元 |
57 | 授权生命周期代码 |
| n3 | 以日历天、时、分标识的值 |
58 | 授权代理机构标识代码 | LLVAR | n..11 | 标识授权代理机构的代码 |
59 | 传输数据 | LLLVAR | ans..999 | 由报文引入方管理的数据,响应报文中应原值返回 |
60 | 保留-国家-密文新PIN | LLLVAR | ans..999 | 密文形式的持卡人更新的PIN数据 |
61 | 保留-国家-票据号 | LLLVAR | ans..999 | 用于标识终端交易的唯一性,打印在签购单上 |
62 | 保留-民间 | LLLVAR | ans..999 |
|
63 | 保留-民间 | LLLVAR | ans..999 |
|
64 | 报文鉴别代码MAC |
| b8 | 用于鉴别报文的始发源和报文内容的有效性 |
65 | 保留-ISO |
| b8 |
|
66 | 原始手续费金额 | LLLVAR | ans..204 | 执行部分撤消等交易时所需的手续费原始金额 |
67 | 扩展的付款数据 |
| n2 | 经发卡方同意、持卡人选择的支付该款项的月份数 |
68 | 接收机构国家代码 |
| n3 | 接收机构所在地的国家代码 |
69 | 清算机构国家代码 |
| n3 | 清算机构所在地的国家代码 |
70 | 授权代理机构国家代码 |
| n3 | 授权代理机构所在地的国家代码 |
71 | 报文编号 |
| n8 | 交易源发者给报文分配的编号,用于监督数据改变的完整性和连续性 |
72 | 数据记录 | LLLVAR | ans..999 | 管理报文或文件动作报文的其它数据 |
73 | 动作日期 | YYMMDD | n6 | 将来动作的日期或具体的日期 |
74 | 贷记笔数 |
| n10 | 处理代码指示为贷记的所有财务交易的总笔数 |
75 | 撤消贷记笔数 |
| n10 | 处理代码指示为借记的所有撤消交易的总笔数 |
76 | 借记笔数 |
| n10 | 处理代码指示为借记的所有财务交易的总笔数 |
77 | 撤消借记笔数 |
| n10 | 处理代码指示为贷记的所有撤消交易的总笔数 |
78 | 转帐笔数 |
| n10 | 处理代码指示为转帐的所有财务交易的总笔数 |
79 | 撤消转帐笔数 |
| n10 | 处理代码指示为转帐的所有撤消交易的总笔数 |
80 | 查询笔数 |
| n10 | 处理代码指示为查询的所有授权交易的总笔数 |
81 | 授权笔数 |
| n10 | 全部授权交易的总笔数 |
82 | 撤消查询笔数 |
| n10 | 处理代码指示为查询的所有撤消交易的总笔数 |
83 | 付款笔数 |
| n10 | 处理代码指示为付款的所有财务交易的总笔数 |
84 | 撤消付款笔数 |
| n10 | 处理代码指示为付款的所有撤消交易的总笔数 |
85 | 手续费收取笔数 |
| n10 | 所有手续费收取交易的总笔数 |
86 | 贷记金额 |
| n16 | 处理代码指示为贷记的所有财务交易的交易金额总计,不含手续费 |
87 | 撤消贷记金额 |
| n16 | 处理代码指示为借记的所有撤消交易的交易金额总计,不含手续费 |
88 | 借记金额 |
| n16 | 处理代码指示为借记的所有财务交易的交易金额总计,不含手续费 |
89 | 撤消借记金额 |
| n16 | 处理代码指示为贷记的所有撤消交易的交易金额总计,不含手续费 |
90 | 撤消授权笔数 |
| n10 | 处理代码指示为授权的全部撤消交易的总笔数 |
91 | 交易终点机构国家代码 |
| n3 | 交易终点所在地的国家代码 |
92 | 交易发起机构国家代码 |
| n3 | 交易发起方所在地的国家代码 |
93 | 交易终点机构标识代码 | LLVAR | n..11 | 标识交易终点站机构的代码 |
94 | 交易发起机构标识代码 | LLVAR | n..11 | 标识交易发起方机构的代码 |
95 | 发卡方参考数据 | LLVAR | ans..99 | 发卡方提供的可能在后续报文中用到的数据 |
96 | 密钥管理数据 | LLLVAR | b..999 | 包含与密钥管理有关的数据 |
97 | 净对帐金额 |
| x+n16 | 所有总计金额的净值 |
98 | 收款人 |
| ans25 | 处理代码指示为付款的财务交易中的第三方收益人 |
99 | 清算机构代码 | LLVAR | an..11 | 标识清算机构或其代理的代码 |
100 | 接收机构标识代码 | LLVAR | n..11 | 标识接收机构的代码 |
101 | 文件名称 | LLVAR | ans..17 | 被访问文件的实际名称或简称 |
102 | 帐户标识1 | LLVAR | ans..28 | 用于标识顾客帐户或相互关系的一组数字或字符,如转出帐户 |
103 | 帐户标识2 | LLVAR | ans..28 | 用于标识顾客帐户或相互关系的一组数字或字符,如转入帐户 |
104 | 交易说明 | LLLVAR | ans..100 | 用于说明交易的附加特征 |
105 | 反向贷记金额 |
| n16 | 处理代码指示为借记的所有反向记帐交易的交易金额总计,不含手续费 |
106 | 反向借记金额 |
| n16 | 处理代码指示为贷记的所有反向记帐交易的交易金额总计,不含手续费 |
107 | 反向贷记笔数 |
| n10 | 处理代码指示为借记的所有反向记帐交易的总笔数 |
108 | 反向借记笔数 |
| n10 | 处理代码指示为贷记的所有反向记帐交易的总笔数 |
109 | 手续费贷记金额 | LLVAR | ans..84 | 在交易手续费数据中金额指示为贷记“C”的所有金额的总计 |
110 | 手续费借记金额 | LLVAR | ans..84 | 在交易手续费数据中金额指示为借记“D”的所有金额的总计 |
111 | 保留-ISO | LLLVAR | ans..999 |
|
116 | 保留-国家 | LLLVAR | ans..999 |
|
123 | 保留-民间 | LLLVAR | ans..999 |
|
128 | 报文鉴别代码MAC |
| b8 | 用于鉴别报文的始发源和报文内容的有效性 |
注:所有固定长度的数据元应左补零以向右对齐;所有其它固定长度的数据元应后补空格以向左对齐;对二进制数据,8个位元的块应后补零以向左对齐。
四、数据元详解
(1)、数据元#1位元表
位元表用于标识该报文中所涉及到的数据元的信息,标准定义了基本和辅助两个位元表,各有64个数据元。对本规范所着眼的应用而言,由于需要标识交易发起方和交易接收方,因此需要使用到扩展位元表信息。
(2)、数据元#2主帐号
主帐号标志持卡人的帐户,金融交易中,主帐号就是基于卡的卡号。该域为LLVAR型BCD码,最长19位,请求方上送实际长度字节。如果刷卡输入,主帐号从第二磁道读;若是手工输入,则从键盘读取。
若标识转出与转入的帐户标识1(102域)和帐户标识2(103域)不存在,则主帐号代表了转出帐户。
(3)、数据元#3处理代码
处理代码描述了交易的类别。处理代码的前两位数字指定交易的类型,常用的交易类型如下:
00-19借记
20-29贷记
30-39查询服务
40-49转帐服务
50-59付款服务
60-99保留
第三和第四两位数字代码描述借记和查询涉及的帐户类型和转帐的“转出”帐户类型。
第五和第六两位数字代码描述贷记涉及的帐户类型和转帐的“转入”帐户类型。
由处理码和交易的消息类型来确定交易类型及其处理方式。
(4)、数据元#4交易金额
由持卡人请求的本次交易发生的金额,不包括手续费金额。交易金额项长度为12位,BCD码表示,单位为货币的最小单位,如人民币分。不足12位时左补零右对齐。
(5)、数据元#7传输日期和时间
报文发起方处理交易进入交换网络时的日期和时间。该数据域在整个报文传输过程中保持不变,包括其响应报文数据包。其格式为MMDDhhmmss的10位BCD码。
(6)、数据元#11系统跟踪审计号
系统跟踪审计号为6位的BCD码,用以唯一标识一笔交易。系统跟踪审计号在整个交易报文传输/转发过程中保持不变。
全国银行卡中心根据报文类型标识、本地交易日期和时间、代理机构标识代码和系统跟踪审计号作为交易的唯一标识。
(7)、数据元#12本地交易日期和时间
报文发送方发送交易时的当地时间,接收方返回时同样设为其本地时间。其格式为YYMMDDhhmmss的12位BCD码。
(8)、数据元#14卡有效期
卡有效期用YYMM格式的4位BCD码表示,其获取方式同主帐号。
(9)、数据元#22服务点数据代码
由12位BCD码表示,每位用于标识关于服务点获取金融交易卡相关数据的功能和途径及发生交易的环境信息。
(10)、数据元#24功能代码
在报文分类中用于指示报文具体用途的3位BCD编码。
(11)、数据元#25报文理由代码
4位BCD编码,在授权和财务交易报文中,标识报文发送的理由类型;在其它交易中,该代码表示采取动作的理由。
(12)、数据元#26受卡方业务代码
4位BCD编码,用作受卡方交易业务类型的代码划分,如零售服务、个人服务提供、政府服务等等。
(13)、数据元#27批准代码长度
交易代理方用于指示交易批准方应返回的批准代码长度,缺省为6位长度。批准代码不应该大于6位。
(14)、数据元#28对帐日期
用于指示交易发送机构该交易的对帐日期,格式为YYMMDD。
(15)、数据元#32代理方机构标识代码
标识代理机构的11位BCD码。
机构编码用于表示银行金融机构的标识代码。由11位数字组成,格式如下:
位置 | 定义 |
1-4 | 主银行代码 |
5-7 | 城市和地区代码(发卡行) |
8-9 | 城市和地区代码(二级发卡行) |
10-11 | 主机或节点代码 |
在一个从代理方或交易发起方到发卡方或交易终点方的交易中,在整个交易期间,代理方和发卡方应保持不变。下表列出交易传输过程中机构编码的表示方法:
对请求、报告和通知报文
机构编码 | 代理方到A | A到B | B到C | C到发卡方 |
代理方 | 在交易的整个期间保持不变 | |||
发卡方 | 在交易的整个期间保持不变 | |||
发送机构 | (交易方) | A | B | C |
接收机构 | A | B | C | (发卡方) |
对响应报文
机构编码 | 发卡方到C | C到B | B到A | A到代理方 |
代理方 | 在交易的整个期间保持不变 | |||
发卡方 | 在交易的整个期间保持不变 | |||
发送机构 | (发卡方) | C | B | A |
接收机构 | C | B | A | (交易方) |
(16)、数据元#33发送方机构标识代码
标识报文发送机构的11位BCD码。该数据元在整个交易处理过程中随交易转发而变更。
(17)、数据元#35二磁道数据
该数据元存放刷卡输入主帐号情况下卡第二磁道的压缩数据,包括段分隔符,不包括起始符终止符和纵向冗余校验字符(LRC)。存放格式为LLVAR型的37位ASCII码。
(18)、数据元#36三磁道数据
该数据元存放刷卡输入情况下卡第三磁道的压缩数据,包括段分隔符,不包括起始符终止符和纵向冗余校验字符(LRC)。存放格式为LLLVAR型的104位ASCII码。
对于在卡上磁道数据中存放密文PIN的卡种,为校验个人识别号,必须上送三磁道数据。
(19)、数据元#37检索参考号
检索参考号用以记录文件检索参考号,该参考号可用于在以后的查询请求和撤消及反向报文中确定原始交易。
(20)、数据元#38批准代码
交易认可时该数据元返回批准代码。其长度由27位元批准代码长度确定,不超过6位,缺省情况下为六位。
(21)、数据元#39动作代码
3位长度的动作代码用于表示应采取的动作,或用于说明采取动作的理由。动作代码的使用应结合交易的具体类型。
(22)、数据元#41受卡方终端标识
用于唯一标识终端的代码,在该终端的所属组织中必须有唯一性。
(23)、数据元#42受卡方标识代码
用于唯一标识卡受理方的代码。
(24)、数据元#43受卡方名称
可用于传输受卡方—商户、储蓄所—的名称信息,当受理外币卡时,还可用于传送外卡商户代码信息。
(25)、数据元#45一磁道数据
该数据元存放刷卡输入主帐号情况下卡第一磁道的压缩数据,包括段分隔符,不包括起始符终止符和纵向冗余校验字符(LRC)。存放格式为LLVAR型的76位ASCII码。
仅当金融交易卡不含第二和第三磁道数据时,使用第一磁道数据。
(26)、数据元#46手续费金额
手续费金额数据元由最多6组数据组成,每组为34个字节,格式如下:
位置 | 定义 | 属性 |
1-2 | 手续费类型代码 | n2 |
3-5 | 手续费货币代码 | a3/n3 |
6-14 | 手续费金额 | x+n8 |
15-22 | 手续费兑换率 | n8 |
23-31 | 对帐手续费金额 | x+n8 |
31-34 | 对帐手续费货币代码 | x+n8 |
手续费类型代码暂定0义00—交易手续费和01—交易处理手续费两种。
(27)、数据元#47身份识别信息
该数据元用于存放持卡人的身份识别信息,如身份证数据。
(28)、数据元#50对帐货币代码
定义对帐报文中借记和贷记金额、处理费金额的货币的标识代码。货币代码由GB 12406定义。
对交易处理中存在的所有不同的货币类型都需要执行一次对帐交易。
(29)、数据元#51签单货币代码
持卡人签单金额及签单费金额的货币的代码标识。货币代码由GB 12406定义。
(30)、数据元#52个人密码(PIN)
个人密码(PIN)用于验证持卡人身份,由持卡人在密码键盘上输入,密码键盘使用POS的工作密钥对输入的明文密码进行加密后送到POS终端。POS交易前置机在接收到POS交易报文后,使用与POS共享的PINKEY解密,然后用与目标接收方共享的PINKEY加密。该域存放PIN加密后的密文数据。
(31)、数据元#53安全控制信息
该数据元为LLVAR型数据元。本规范定义其为采用不同的加密/解密算法时报文加密和信息安全控制的标识代码。
第一位表示加密算法:
0未加密
1DES
2-9保留
第二位表示密押方式:
0无密押
1全部数据元计算MAC
2-9保留
第三、四两位代表所用的密钥组。
(32)、数据元#54附加金额
附加金额数据元用于存放外币卡消费中的小费、查询余额交易返回时的当前余额。可以由最多6组数值组成,每组为20个字节长,表示如下:
位置 | 定义 | 属性 |
1-2 | 附加金额的金额类型 | n2 |
3-4 | 附加金额的帐户类型 | n2 |
5-7 | 附加金额的货币代码 | n3/a3 |
8-20 | 附加金额的金额 | x+n12 |
金额类型定义02—可用帐户余额、20—本周期余额、36—小费三个代码,在查询余额中,一次最多可以返回两种余额数据。
金额用13位ASCII码表示,后12位是金额数,不足时左边补零右对齐,第一位代表借贷信息:C(0x43)表示借方金额,持卡人帐户为正;D(0x44)表示贷方金额,持卡人帐户为负。
(33)、数据元#56原始数据
原始数据元用于标识原始交易数据信息,格式如下:
位置 | 定义 | 属性 |
1-4 | 原交易报文类型标识符 | n4 |
5-10 | 原交易系统跟踪审计号 | n6 |
11-22 | 原交易的本地交易日期和时间 | n12 |
23-35 | 原交易的代理方机构标识代码 | n..11 |
(34)、数据元#60持卡人改卡密
所输入的新密码由密码键盘加密后形成密文数据存放于该数据域,在网络传输过程中应进行相应的解密/加密处理。
(35)、数据元#71报文编号
报文编号数据元用于存放双方数据传输时的报文顺序编号,以实施传输控制。
(36)、数据元#72数据记录
该数据元用于存放在网络管理和文件动作报文中需要传输的数据。
(37)、数据元#93交易终点机构标识代码
用于标识交易的最终接收者。该数据元在整个交易处理过程中保持不变,用于交易报文转发的路由选择。
(38)、数据元#94交易发起机构标识代码
用于标识交易的初始发起方。该数据元在整个交易处理过程中保持不变,用于指示交易报文返回时的路由选择。
(39)、数据元#97净对帐金额
净对帐金额= (手续费贷记金额+贷记金额+反向贷记金额)— (手续费借记金额+借记金额+反向借记金额+撤销借记金额)。
执行对帐交易时,应先将各类交易的数量和金额进行累计,计算出总笔数和总金额,再根据交易的借贷信息,计算净对帐金额,将相应数据分别存放到对应的数据域中。
用于对帐的数据元列表如下:
位元 | 数据元名称 | 位元 | 数据元名称 |
74 | 贷记笔数 | 97 | 净清算额 |
75 | 撤消贷记笔数 | 105 | 反向贷记金额 |
76 | 借记笔数 | 106 | 反向借记金额 |
77 | 撤消借记笔数 | 107 | 反向贷记笔数 |
78 | 转帐笔数 | 108 | 反向借记笔数 |
79 | 撤消转帐笔数 | 109 | 手续费贷记金额 |
86 | 贷记金额 | 110 | 手续费借记金额 |
87 | 撤消贷记金额 |
|
|
88 | 借记金额 |
|
|
89 | 撤消借记金额 |
|
|
(40)、数据元#100接收方机构标识代码
标识报文接收机构的11位BCD码。该数据元在整个交易处理过程中随交易转发而变更。
(41)、数据元#101文件名称
文件名称数据元用于存放文件动作报文中的文件名,本细则定义黑名单管理及查止付交易中用“HMD”代表文件名。
(42)、数据元#102转出帐号
转出帐号用以标识发生金融交易的帐户。
(43)、数据元#103转入帐号
转入帐号用以记录卡卡转帐和代收费交易中的对方帐号,类型是LLLVAR。
卡卡转帐时,存放ASCII形式的对方卡号;代收费时,存放事先约定的代收费费种。
(44)、数据元#128消息认证码
请求和响应数据包都应当计算消息认证码MAC并附带传输。
五.举例说明
以下是主机从网控器收到的消费数据包(用二位十六进制数表示一个字节):
02 01 06 60 00 07 08 08 |02 00 30 20 05 00 20 c0
10 1c 00 40 00 00 00 00 00 99 80 00 00 01 00 21
00 03 37 62 14 02 10 00 07 41 50 78 d1 56 07 12
20 10 00 00 00 00 31 32 33 34 35 36 37 38 30 34
33 20 20 20 20 20 20 20 20 20 20 20 20 c5 8e b2
00 18 03 1e 9a 00 06 30 30 30 30 30 31 00 06 30
30 30 30 30 30 00 06 30 30 30 30 30 31| 03 22
备注:|…|之间是8583数据包(|是人为加的)
解包分析:
02 表示是数据开始
01 06 表示后面数据长度为106个字节(在06到结束符03
之间,不包括03字符,即8583包)
60 00 07 08 08 是网控tpdu的地址
02 00 8583包开始,表示交易信息码 message_id
消费信息码为0200
30 20 05 00 20 c0 02 01 是数据包的位图,8个字节,64位,3的二进制0011
第一位为0,所以没有扩展位图,二进制展开后如下域
有信息
3 4 11 22 24 35 41 42 52 60 61 62
… 是数据元
03 是数据结束
31 是crc校验:02后面开始,即从01开始到03之间字
节(包括03)异或的结果。
数据元解包分析: 实据元是从位图后开始,到03结束之前。
位图分析有3 4 11 22 24 35 41 42 52 60 61 62 域的信息
格式说明:
a表示字符,
n表示数字,
s表示特殊字符,
b二进制数据
第3域: 第3域:
名称:处理代码
格式:n6(固定长度为6的数字)
截取字符:00 40 00
原始数据:“004000”。
第4域: 第4域:
名称:交易金额
格式:n12
截取字符:00 00 00 00 99 80
原始数据:99.80
第11域:
名称:系统流水号
格式:n6
截取字符:00 00 01
原始数据:000001
第22域:
名称:服务点方式
格式:n3
截取字符:00 21
原始数据:“021”
第24域:
名称:国际网络识别符
格式:n3
截取字符:00 03
原始数据:“003”
第35域:
名称:第2磁道数据
格式:llvar
长度为37,取整后有19个字符
截取字符:37 62 14 02 10 00 07 41 50 78 d1 56 07
12 20 10 00 00 00 00
原始数据:62 14 02 10 00 07 41 50 78 d1 56 07
12 20 10 00 00 00 0
第41域:
名称:终端号
格式:ans8 (字母,数字,特殊字符皆可,长度为8)
截取字符:31 32 33 34 35 36 37 38
原始数据:“12345678”
第42域:
名称:商户号
格式:ans15
截取字符:30 34 33 20 20 20 20 20 20 20 20 20 20
20 20
原始数据:“043”
第52域:
名称:个人密码
格式:b64 (表示二进制数据64位)
截取字符:c5 8e b2 00 18 03 1e 9a
原始数据:c5 8e b2 00 18 03 1e 9a
第60域:
名称:保留使用(实际存放pos的批次号)
格式:lllvar
长度为00 06
截取字符:00 06 30 30 30 30 30 31
原始数据:“000001”
第61域:
名称:保留使用(实际存放操作员和操作员密码)
格式:lllvar
长度为00 06
截取字符:00 06 30 30 30 30 30 30
原始数据:“000000”00操作员,0000密码
第62域:
名称:保留使用(实际存放pos的票据号)
格式:lllvar
长度为00 06
截取字符:00 06 30 30 30 30 30 31
原始数据:“000001”