ISO8583简介
ISO8583简介
一、定义与说明
二、报文类型
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、报文的分类与标识
报文类型标识符由四位数字组成,用以描述每一报文的类别和功能,所有交易报文以一个报文类型标识符开始。
第一位:版本号
0 GB/T15150-1994
1 ISO8583-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发卡方手续费收取通知
用途:通告作为发卡方应被收取的手续费金额,不需要任何响应。
(7)网络管理报文
网络管理报文用于控制交换网络的系统安全、运行状态、会计周期和审计控制等信息。
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 标准定义的磁条第二和第三磁道的代码集
表一、数据元目录
注:所有固定长度的数据元应左补零以向右对齐;所有其它固定长度的数据元应后补空格以向左对齐;对二进制数据,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 本地交易日期和时间
报文发送方发送交易时的当地时间,接收方返回时同样设为其本地时间。其格式为YYMMDD hhmmss的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码。
在一个从代理方或交易发起方到发卡方或交易终点方的交易中,在整个交易期间,代理方和发卡方应保持不变。下表列出交易传输过程中机构编码的表示方法:
(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 手续费金额
手续费类型代码暂定
(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 未加密
1 DES
2-9 保留
第二位表示密押方式:
0 无密押
1 全部数据元计算MAC
2-9 保留
第三、四两位代表所用的密钥组。
(32)、数据元#54 附加金额
附加金额数据元用于存放外币卡消费中的小费、查询余额交易返回时的当前余额。可以由最多6组数值组成,每组为20个字节长,表示如下: