第三方存管系统证券端接口规范V20.docx
- 文档编号:12730298
- 上传时间:2023-06-07
- 格式:DOCX
- 页数:102
- 大小:69.34KB
第三方存管系统证券端接口规范V20.docx
《第三方存管系统证券端接口规范V20.docx》由会员分享,可在线阅读,更多相关《第三方存管系统证券端接口规范V20.docx(102页珍藏版)》请在冰点文库上搜索。
第三方存管系统证券端接口规范V20
第三方存管系统2.0
证券端接口规范
金融事业部
2007年8月
第1章序言
1.1关键字
本规范中恒生、恒生公司均指恒生电子股份有限公司
1.2适用范围
本接口规范适用于恒生第三方存管系统银行端与证券端接口。
恒生公司保留本接口最终解释权利。
1.3修改记录
修改日期
版本号
修改说明
修改缘由
修改人
20070810
V2.0
建立新版本文档
新版本
朱武林
20090302
V2.0.1
修改Card类型定义
刘俊阳
20090608
V2.0.2
明确业务包结构字段ReturnCode定义
刘俊阳
20090610
V2.0.3
新增25611、26611交易接口;调整ErrorNo取值字符与属性
刘俊阳
20090622
V2.0.4
评审整理
刘俊阳
第2章协议解释
2.1遵循标准
2.2恒生通讯机模式
本接口是基于TCP/IP协议并遵循类FIX标准设计的,证券端和银行端均需同时支持客户端/服务端的通信方式。
为了方便使用,提供了COMMX和COMM32两个Object供接口开发方选择使用,分别可以完成通讯及通讯/打包的过程,具体使用说明可以见相关技术文档。
2.2.1通讯数据包头
typedefstruct_DATAHDR
{
DWORDdwSignature;/*签名0x742582AF(以网络字节顺序表示为0xAF822574)*/
INTiLength;/*数据长度,包括自身包头长度(网络字节顺序)*/
DWORDdwOrdinal;/*序数(网络字节顺序)*/
DWORDdwChecksum;/*校验和dwChecksum=(((DWORD)iLength<<19)+((DWORD)iLength>>13))^((dwOrdinal<<25)+(dwOrdinal>>7))*/
}DATAHDR,*LPDATAHDR;
dwOrdinal在每次连接成功后置0,每次发送时递增,溢出后又从0开始。
不一定连续,目前允许间隔不超过50。
2.2.2业务包结构
名称
类型
长度
说明
HeaderVersion
BYTE
1
包头版本号,目前必须为1
PacketType
BYTE
1
0-请求,1-应答
Branch
Short
2
开户网点号,0-9999
FunctionNo
Short
2
功能号,-30000-30000
SenderID
INT
4
发送方标识,应答时原样返回
AddressLevel
BYTE
1
地址层数,目前限制最大为32
DataLength
INT
4
数据区长度(不含地址表)
ReturnCode
INT
4
此字段仅作为预留字段存在
AddressTable
32*AddressLevel
地址表
DataBuffer
DataLength
数据区(就是协议接口中的内容)
其中地址表结构如下
名称
类型
长度
说明
Connection
INT
4
连接号
Protocol
WORD
2
协议类型,1-TCP,2-SPX
Address
Char
22
地址串,与协议类型有关。
TCP时格式如192.168.42.45;SPX时格式为8位网络号.12位网卡号,如98120101.0080C888360A
ID
INT
4
标识符,用于区别同地址的多个连接。
若系统返回应答时发现相应的客户端连接中断过,系统根据地址和本标识尝试找回原客户端
请求经过组件服务器转发到其他组件服务器时,包头中增加请求发送者的地址,地址层数加一。
组件服务器收到一个应答时,去除最后一层地址,地址层数减一,把应答返回给最后一层地址中指定的请求发送者。
2.2.3实际包示例
说明
数据
通讯包头
dwSignature
0x742582AF
iLength
?
?
?
dwOrdinal
?
?
?
dwChecksum
?
?
?
数据区
业务包头
HeaderVersion
1
PacketType
0
Branch
9999
FunctionNo
200
SenderID
0
AddressLevel
0
DataLength
?
?
?
ReturnCode
9
AddressTable
地址表,变长(0-31)
数据区
DataBuffer
9
version
op_entrust_way
content_type
1
?
?
’
‘0’
‘0’
客户端注册请求包结构如下:
业务包头内填充值:
HeaderVersion=1,
PacketType=0,
Branch=0,
FunctionNo=-30000,
SenderID随意,
AddressLevel=0,
DataLength=5
ReturnCode=-30000
Databuffer的内容:
‘0’(1Byte)
唯一标识(4Bytes),用于区别同地址的多个连接,一般为进程号。
客户端注册成功应答包结构如下:
业务包头内填充值:
除PacketType=1和ReturnCode外,其它同请求包。
2.2.4数据区结构定义
数据区内容遵循类FIX标准报文的格式。
数据区全部内容均为字符串。
请求与应答数据的组成按照下面的格式:
请求:
列数
列名1
数据1
数据1
......
数据1
应答:
列数
列名1
数据1
数据1
......
数据1
备注:
字段的顺序可以改变;如某字段不存在,表示为空值。
数据区示例:
请求:
2
function_id
200
应答(错误):
2
error_no
-61
应答(正确):
3
branch_no
0
2.2.5通讯中的处理流程
注:
本部分更详细内容可见COMM32和COMMX的开发文档
2.3直联模式
本接口是基于TCP/IP协议并遵循类FIX标准设计的,证券端和银行端均需同时支持客户端/服务端的SOCKET通信机制。
2.3.1业务包头结构定义
F+3位包头长度+5位包体长度+8位券商号+3位密码加密标志+8位MAC值
(每一段前补0,共28位长度)。
说明:
包头长度:
指包头实际长度,固定3位长度,填固定值:
“028”;
包体长度:
指传输的实际包体长度(不包含包头),固定5为长度,填法为前补0;
密码加密标志:
表示通讯加密方式,固定3位长度,第一位:
密码加密标志,第二位:
MAC加密标志,第三位:
报文加密标志;
MAC值:
报文的MAC值,固定8位长度。
2.3.2数据区包体结构定义
数据区内容遵循类FIX标准报文的格式。
数据区全部内容均为字符串。
请求与应答数据的组成按照下面的格式:
请求:
列数
列名1
数据1
数据1
......
数据1
应答:
列数
列名1
数据1
数据1
......
数据1
备注:
字段的顺序可以改变;如某字段不存在,表示为空值。
数据区示例:
请求:
2
function_id
200
应答(错误):
2
error_no
-61
应答(正确):
3
branch_no
0
2.3.3实际包示例
业务包头
F
028
?
?
?
?
?
?
?
?
?
?
?
?
?
000
?
?
?
?
?
?
?
?
业务包体
9
version
op_entrust_way
content_type
1
?
?
’
‘0’
‘0’
第3章字段列表定义
3.1字段约定
1.接口中字段名要区分大小写;
2.接口第一位使用b表示为银行的缩写,s为证券的缩写,无缩写的表示该数据没有银行和证券的显著区别;
3.2取值定义
1.在类FIX标准内,并没有严格的定义数据类型,因为不管是字符串类型、整数、浮点数或者是其他类型,都是使用字符串类型表达的,同时对字段的最大长度也没有特别的限制,应该是非常灵活的,但为了便于理解,特定义了以下数据类型以供参考。
2.C4:
表示最多4位的字符型字串,不足4位按实际位数。
3.N5:
表示最多5位的数字型字串,不足5位按实际位数。
4.N13.2:
用可变长字符串形式表达的数字型,表示13位整数和2位小数,带小数点,不带符号,最大长度为16;如字符串为空,则表示为NULL;
5.接口中当密码为**********时不校验(10个*不校验);
3.3字段列表
字段名
字段含义
字符
属性
说明
FunctionId
功能号
0-9
N5
定长为五位数字,23?
?
?
和25?
?
?
表示为银行发起,24?
?
?
和26?
?
?
表示为证券发起
ExSerial
外部流水号
0-9
N12
标识串,用于唯一标记请求,在应答时原样返回
CorrectSerial
被冲正外部流水号
0-9
N12
用于冲正,被冲正交易的流水号
ErrorNo
错误号
C8
ErrorInfo
错误信息
C100
bOrganId
银行类型
0-9,a-z,A-Z
C1
‘3’农行,‘4’交行,
‘6’浦发,‘8’光大,
‘a’兴业,‘b’民生,
‘c’徽商银行,‘h’北京银行,
‘i’上海银行,‘j’宁波银行,
‘k’绍兴银行,‘l’青岛银行
bBranchId
银行分行号
0-9
N6
bDeptId
储蓄所号(银行网点号)
0-9
N16
bTerminalId
终端设备编号
0-9,A-Z
C16
bOpCode
柜员编号
0-9,A-Z
C6
银行操作人员编号
bCustAcct
银行账号/管理账号
0-9,A-Z
C32
bNewAcct
新银行账号
0-9
C32
bCustPwd
银行密码
0-9,A-F
C10
bCustPwd2
存管密码
0-9,A-F
C10
bEnableBala
银行可用金额
N13.2
客户可用资金
bFetchBala
银行可取金额
N13.2
客户可取资金
bOnWayBala
银行可用金额(未回金额)
N13.2
sBrokeFlag
是否有代理人
0-9
N1
1表示有代理人
bSerial
银行流水号
0-9
N8
存管处理流水号
bHostSerial
主机流水号
0-9
N8
暂未使用
sOrganId
券商编号
0-9
C8
sBranchId
券商营业部编码
0-9
C8
sCustAcct
证券资金账号
0-9
C32
sCustPwd
证券交易密码
0-9
C10
sCustPwd2
证券资金密码
0-9,A-F
C10
sNewPwd
新密码
0-9,A-F
C10
sCustProperty
客户性质
0-9
C1
0个人,1机构
sCustStatus
客户状态
0-9
C1
0正常,1挂失,2冻结,4销户
sCustPermit
客户权限暨业务开通标志
0-9
C20
每位字符描述一种服务;0自助,1电话,4柜台,7网上
sEnableBala
证券可用金额
N13.2
sFetchBala
证券可取金额
N13.2
可转资金
sSerial
证券流水号
N10
PkgFlag
报文标志
0-9
C1
N正常,Q查询
sPostionStr
定位串
C40
由证券返回,在第一次请求时发空串;在下次请求时发送时,根据查询方向,如正方向将定位串置成后定位串(对应返回中的最后一条记录),如反方向将定位串置成前定位串(对应返回中的第一条记录)
Name
客户姓名
字符
C60
支持存放机构户名称
Nationality
国籍或地区代码
字符
C3
主要用于B股开户,默认为中国CHN,其它请查看列表
CardType
客户证件类型
0-9
C1
1身份证,2军官证,3国内护照,4户口本,5学员证,6退休证,7临时身份证,8组织机构代码,9营业执照,A警官证,B解放军士兵证,C回乡证,D外国护照,E港澳台居民身份证,F台湾通行证及其他有效旅行证,G海外客户编号,H解放军文职干部证,I武警文职干部证,J武警士兵证,X其他有效证件,Z重号身份证
Card
客户证件号
字符
C30
PostCode
邮政编码
0-9
C10
Address
客户地址
字符
C60
TelNo
电话号码
字符
C20
电子邮件
字符
C30
Summary
业务摘要
字符
C255
相当于备注字段
AccrualBala
利息(正数)
N13.2
保留利息税(负数)的利息金额
TaxBala
利息税(负数)
N13.2
证券结息时用
BusinType
业务类型
0-9
C1
业务类别0普通转帐类,1银证存管,2融资融券
Date
发生日期
N8
Time
发生时间
N6
MoneyType
币种
C1
0人民币,1美元,2港币
OccurBala
发生金额
N13.2
RequestNum
请求行数
N3
BeginDate
查询起始日期
0-9
N8
EndDate
查询结束日期
0-9
N8
sRoomCode
客户室号
0-9,A-Z
C4
sAgentId
经纪人编号
0-9
C10
sAgentFare
经纪人费率
N1.5
SerialStatus
流水状态
0-9
C2
第一位含义:
0成功、1存疑、2成功、3已冲正
sBrokeCustPermit
代理人权限
C20
1-代理委托
2-代理存取
3-代理转帐
z-银行签约
sBrokeName
代理人姓名
C20
sBrokeNationality
代理人国籍或地区
C3
sBrokeCardType
代理人证件类型
C1
sBrokeCard
代理人证件号
C18
sBrokePostCode
代理人邮政编码
C10
sBrokeAddress
代理人地址
C60
sBrokeTelNo
代理人电话号码
C20
sBrokeFaxNo
代理人传真
C20
sBrokeMobiNo
代理人手机
C20
sBrokeEmail
代理人电子邮件
C30
资金类型
A-Z
C1
0-存管银行存管账户总余额
1-存管专用账户汇总余额
2-法人交收账户余额
3-上海客户结算备付金账户余额
4-深圳客户结算备付金账户余额
5-在他行转帐备付金账户余额
6-存管专用账户利息
7-法人交收账户利息
8-存管客户交易待交收金额
9-存管客户季度结息金额
A-存管客户当日签约期初金额
B-存管客户当日解约金额
C-存管客户当日销户结息金额
3.4国家地区代码
编号
名称
编号
名称
编号
名称
编号
名称
BRA
巴西
FRA
法国
KOR
韩国
CAN
加拿大
GBR
英国
MAC
澳门
CHN
中国
HKG
香港
PRK
朝鲜
CTN
台湾
ITA
意大利
THA
泰国
DEU
德国
JPN
日本
USA
美国
3.5业务标志
编号
名称
编号
名称
编号
名称
4001
证券卖出
4002
证券买入
4013
配股缴款
4018
股息入帐
4019
余额入账
4021
申购返款
2027
开放式基金资金划入
2028
开放式基金资金划出
2029
销户利息入帐
3.6返回码约定
要求证券系统的应答包中包含返回码和返回信息,存管系统将返回信息直接提示给最终用户。
要求证券常见返回应遵照以下约定:
返回码
返回信息
返回码
返回信息
0000
交易成功
2001
资金密码校验错误
2101
该资金账号已挂失
2002
资金账户余额不足
2102
该资金账号已冻结
2003
累计金额超限
2103
该币种已经存在
2004
银行流水号重复
2104
该代理人已经存在
2005
被冲正流水不存在(冲正交易)
2105
该代理人不存在
2006
原流水已冲正(冲正交易)
2119
该币种不存在
2007
与原流水信息不符(冲正交易)
2120
当天有业务发生,不可销户
2008
资金账户余额不足,不允许冲正
2124
该银行账户状态错
2009
身份证号码不符
2126
无此股东账号
2010
资金账户状态不正常
2127
该股东账号已存在
2011
资金账户不存在
2129
该股东账号已销户
2012
资金账户已经销户
2130
该股东账号已挂失
2013
资金账户与银行方账户未建立对应关系
2131
该股东账号已冻结
2014
资金账户与银行方账户已建立对应关系
2132
该股东账号状态错误
2015
该客户转帐功能未开启
2133
该股东账号有未回交割
2016
客户被限制转账
2134
该股东账号当天有委托
2018
预约流水不存在
2135
有托管股票,不可销户
2019
预约流水信息不符
2136
有托管股票,股东不可修改
2020
预约流水已取款
2138
存在购回流水,
2021
预约流水未生效
2139
未撤消指定,
2024
单笔金额超限
2140
非交易时间
2025
被查询流水已成功
2147
价格输入错误
2026
被查询流水已失败
2150
可转资金不足
2027
被查询流水不存在
2154
修改密码失败
2028
被查询流水状态未知
2301
银行账号错误
2031
券商编码错
2302
证券账号错误
2032
系统交易日期不符
2303
对应关系状态错误
2033
此交易未开通
2305
交易金额错误
2034
不允许该操作方式
2306
新工作密钥生成失败
2035
证券公司未签到
2307
转帐时间已过
2036
证券公司已经签退
2308
证券总部未取银行明细
2038
当天有业务发生,不允许销户
2309
证券总部限制转帐
2041
证券服务器系统错误
2310
此笔交易被手工取消
2042
MAC校验错
2311
币种错
2043
通讯校验错误
2312
不支持联机开销户
2044
通讯消息体格式错误
2314
无此币种
2047
账户姓名不符
2315
客户性质错误
2048
资金账号与管理账号未建立对应关系
2316
当天有业务发生不能销户
2049
资金账号与管理账号已建立对应关系
2317
银证系统错误
2318
取银行明细失败
2405
连接证券失败
2319
取证券明细失败
2406
发送请求到证券失败
2320
交易类别非法
2407
接受证券应答失败
2321
当日已经有成功转入的相同交易
8887
参数错误
2322
不支持该业务类别
8888
其他错误
2323
没有该股东账号对应的信息
第4章交易明细
4.1支持交易类型
4.1.1银行
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 第三 方存管 系统 证券 端接 规范 V20