智能安全金融服务ISF
产品概述
为提升地方政府、企业的产业金融服务支持能力,真正将区块链服务到实体经济中,解决小微企业融资难、融资贵的问题,以信通院和工信部牵头打造国家级底层基础设施星火·链网,搭建星火·链网智能安全金融服务网络,实现各地政府通过星火·链网一次对接多处复用的高效协同模式。
主链旨在提供更强大的基础服务能力,满足跨区域、跨系统、跨机构协作、互信、共享的需求。主链ISF服务网络提供了数字身份、BID标识、链上签等公共基础服务,同时,还提供了账户服务、清结算服务、融资服务、贸易真实性验真等行业基础服务。
骨干节点根据地方政府、区域产业的需求灵活构建支持全产业链的星火产融平台,主要以债权信用、数据信用、物权信用为基础构建产融协同平台,快速实现产融业务的落地及推广。同时骨干节点允许其他产融平台高效接入,满足其他产融平台对区块链的需求,并且利用星火·链网让金融资产更可信,实现金融资产跨区域、跨机构、跨系统之间的高效共享及协作。以扩大互通为目的,接入行业、区域应用,构建行业、区域的产业生态集群发展模式。

产品特点
共享:通过主链产融域保障数据安全及隐私,真正形成数据共享网络,解决金融过程中的“跨区域”“跨机构”“跨系统”的协同问题。
安全:与服务商建设服务节点,解决金融过程中真实意愿传输及“信息二清”等安全问题。
公信力:国家级区块链作为底层技术支撑,数据更加安全可靠。
规范:通过制定一系列标准,降低地方对金融及科技的要求,聚焦在产业业务端。
降本增效:基础服务一次对接多处复用及完善的产品体系,降低地方建设产融平台的投入,缩短建设周期;建设标准和解决方案的输出,便于骨干节点快速搭建产融平台;标准化运营解决方案,方便地方产融平台规模化作业。
ISF服务模块
实名认证服务:星火产融域集成主链的实名认证服务,为骨干节点产融平台提供企业、个人身份认证能力。
BID标识服务:星火产融域集成主链的BID标识服务,为骨干节点产融平台提供BID注册、解析服务。
合同服务:星火产融域集成主链的链上签服务,为骨干节点产融平台提供链上签约能力。
账户服务:集成银行产品为产融平台提供开户申请、开户审批、子账户分配、结算户与子账户绑定等功能。
发票验真服务:集成发票验真服务商向产融平台提供OCR识别(单张/批量)、发票验真以及发票存证等服务。
清结算服务:产融平台依托清算服务可生成资金清算明细,核心企业付款时依托结算服务可完成付款生成结算明细。
融资服务:集成多类型融资渠道,为供应商、经销商提供全场景的融资服务,把控客户建档、融资申请、贷后预警等。
债权登记服务(规划中):与中登网对接,向产融平台提供应收账款登记、应收账款登记查询、证明查验等服务。
供应链票据服务(规划中):与票交所的应收账款票据化平台对接,向产融平台提供信息登记、票据签发、背书转让以及票据到期兑付等服务。
应用场景
骨干节点根据地方政府/区域产业的需求灵活构建支持全产业链的星火产融平台,主要以债权信用、数据信用、物权信用为基础构建产融协同平台。同时骨干节点允许其他产融平台高效接入,满足其他产融平台对区块链的需求,并且利用星火·链网让金融资产更可信,实现金融资产跨区域、跨机构、跨系统之间的高效共享及协作。以扩大互通为目的,接入行业、区域应用,构建行业、区域的产业生态集群发展模式。
1、多级拆转融
产品介绍:基于核心企业对一级供应商的应付账款,核心企业在星火产融平台向一级供应商签发电子债权凭证,同时在线签署《付款承诺函》,一级以及往后的多级供应商可在平台进行凭证签收、拆分流转、凭证融资,或者持有到期。
适用场景:适合于核心企业的上游产业链长而分散,以弱势中小企业为主的产业场景。比如在基建场景中,对于上游提供人力服务、原材料产品的一级或多级供应商,核心企业处于绝对强势地位,对单家采购量不大,付款账期长。
产品价值:多级产品模式成熟,推广简单,能够减少贷款卡融资反映,触达多级供应商;同时,平台可与企业ERP对接,直接在ERP上对应付账款做确权,提升供应链管理和服务的效率。
2、订单融资
产品介绍:本产品旨在解决经销商借助核心企业信用,在接到订单后,需预付货款采购原材料而产生的资金需求。核心企业作为销售订单的发起端,在星火产融平台创建订单并发送给经销商,经销商可以借助于核心企业的信用,向资金方申请订单融资。
适用场景:适合需要提前下订单采购的商业场景,核心企业对订单的排产需要准备时间,同时订单准备或订单生产过程中有融资的需求。
产品价值:可减少核心企业自有负债,帮助中小经销商解决融资的问题,提升经销商对核心企业的合作粘度,提升供应链运行效率。
3、保兑仓
产品介绍:中小企业向核心企业采购,依靠核心企业对货物的控制,金融机构对资金不足的下游客户提供融资,锁定未来提货权,提货时还款赎货;核心企业按照指令放货,并承担货物回购(或货物担保、调剂销售)、货物监管等责任。核心企业在平台创建订单,经销商确认订单并申请融资,货物到仓库后,核心企业在平台生成电子仓单,向经销商转移货权的同时,将仓单出质给资金方,经销商按照规定向资金方还款申请赎货。
适用场景:对一些热销需要排期的或价格容易波动的货品,下游经销商因担心货源、货期或价格波动风险等问题,自有资金不足,同时需要提前预付采购,借此锁定货源或者拿到优惠价格。
产品价值:有利于核心企业加快锁定货物销售和回款,降低垫款风险,减少自有负债,扩大下游销售。
4、资产证券化
产品介绍:保理商基于核心企业信用,选择核心企业确认付款的应付账款债权作为基础资产,发行供应链金融资产证券化产品进行融资。通过引入证券公司、评级公司、增信公司等资产证券化机构,将产业组合资产证券化后向投资者发行,从而为产业引入更多更优质的资金。
适用场景:产业链上的中小企业供应商受其自身偿债能力的信用影响,直接融资授信额度有限,融资难、融资贵。
产品价值:通过资产证券化,盘活产业链上的优质资产,向投资者发行多样化的有价证券,为产业发展引入更多的优质的资金,降低融资成本。
用户使用手册
简介
本章将简要地说明软件操作手册(以下简称本手册)地目的、范围、名词定义和参考文件。
手册目的
本手册编写的目的在于告诉星火产融管理(以下简称为本系统)的使用者,本系统提供了哪些功能,以及如何正确地、有效地来使用这些功能。
手册范围
本手册首先简要地介绍本系统的结构,然后说明本系统为使用者提供的各项功能及其详细的操作步骤。本手册的使用者为拥有星火·链网插件钱包的企业用户。
相关术语
术语全称 |
说明 |
---|---|
超级节点 |
拥有主链全量数据,负责链上共识计算,管理产融域,保证可靠安全的出块 |
服务节点 |
作为主链的非共识节点,可验证交易,同步主链中的账本数据,面向骨干链/子链提供区块链应用服务 |
骨干节点 |
作为主链的非共识节点,可验证交易,同步主链账本内相关数据,为骨干链使用主链应用服务提供跨链网关 |
产融域 |
由超级节点和服务节点组成产融域,超级节点负责共识计算,服务节点负责达成业务共识 |
直接接入 |
企业用户直接接入星火主链 |
间接接入 |
企业用户通过选择骨干节点后,代替骨干节点完成产融平台的接入申请 |
服务商 |
提供星火产融服务的服务商,包括账户服务、清结算服务、产融融资服务以及贸易真实性验真服务 |
产融平台 |
需接入星火链网智能安全金融服务网络ISF的第三方供应链金融应用平台,简称产融平台 |
角色和职责
角色 |
职责 |
---|---|
企业用户 |
1.在直接接入方式下进行产融平台接入的申请2.在间接接入方式下通过选择骨干节点后,代替骨干节点完成产融平台的接入申请。 |
超级节点运营人员 |
1.服务商的接入2.产融平台接入的审核 |
使用说明
目标
主链引入产融域,面向用户提供智能安全金融服务能力,包括产融平台的接入、账户服务/清结算服务/发票验证服务/融资服务的开通及调用管理,便于用户基于主链智能安全金融服务能力,快速建设第三方产融平台,满足用户跨区域、跨系统、跨机构协作、互信、共享的需求。
业务流程
产融平台直接接入主链

说明:
1.企业用户如果未申请可信凭证,需要先向超级节点申请可信凭证;
2.企业用户如果已获得可信凭证,可通过以下两种方式进入到星火产融服务ISF:
(1) 企业用户登录星火服务平台后,选择其他服务->星火产融服务ISF后,在新的页面完成钱包授权后登录。
(2) 企业用户直接通过星火产融服务ISF的独立的入口完成钱包授权后登录。
产融平台间接接入主链

功能清单
功能类别 |
子功能 |
描述 |
---|---|---|
产融平台接入 |
接入申请 |
企业用户根据实际的需求选择直接接入或者间接接入。 |
接入查询 |
记录企业用户接入申请后的记录 |
|
服务配置查询 |
服务配置查询 |
展示运营人员已经添加后的记录。 |
产融服务开通 |
开通记录 |
记录运营端产融接入审核通过后的记录。 |
账单管理 |
服务调用账单 |
根据运营端服务配置管理中配置的规则按自然月出账单,账单数据为产融平台调用产融中台的数据,按照不同的服务类型进行账单的生成。 |
运行环境
硬件
本系统部分功能为浏览器访问,使用常规笔记本、台式机均可;部分功能需要下载安装包进行安装,使用常规手机即可。
软件
优先使用chrome最新版本访问。
操作步骤
登录
访问星火产融平台,点击【快捷授权登录】通过插件钱包插件,输入账户密码、选择登录的数字身份,授权后完成登录。
说明:需选择已经申请过企业可信认证的数字身份进行登录,否则会提示无权限。若未申请,需先在插件钱包里进行可信认证申请。参考数字身份服务 — 星火·链网开放文档 (bif-doc.readthedocs.io)


出示星火可信认证
登录后左侧菜单默认仅显示一级菜单”星火产融管理”,其他菜单需要企业用户出示星火可信凭证授权后显示。

点击【请出示企业凭证】,弹出账户窗口,点击【签名】,提示“操作成功”完成星火可信认证出示。出示凭证后,可看到星火产融管理下二级菜单。

产融平台接入
企业用户可进行产融平台的接入,系统支持直接接入和间接接入两种方式,企业用户可根据自己实际的需求进行产融平台的接入申请。选择接入方式,【直接接入】或【间接接入】。

直接接入
企业用户直接进行产融平台的申请。
填写接入信息,包括平台建设方信息、平台基础情况、平台客户情况、平台建设情况、平台在合作中发挥的作用,上传接入材料。
其中《接入申请书》需要在线下载模板进行填写,根据实际要求,加盖公章,上传扫描件。点击【确认】后调用钱包进行签名,提交完成,提示“操作成功”,等待运营方审批处理。


说明:产融平台BID需提前准备,用户可通过插件钱包创建一个BID,并通过一笔转账激活该BID。

间接接入
企业用户代替建设的骨干节点进行产融平台接入的申请。
前提:该企业身份已申请过骨干节点并通过。即该企业有关联的骨干节点。
选择所属骨干节点,填写平台建设方信息、平台基本情况、平台客户情况、平台建设情况、平台在合作中发挥的作用,上传接入申请材料,其中《接入申请书》需要在线下载模板进行填写,根据实际要求,加盖公章,上传扫描件。点击【确认】后调用钱包进行签名,提交完成,提示“操作成功”,等待运营方审批处理。


接入查询
申请提交成功后,可查看申请记录及状态。
服务平台通过【接入查询】菜单,查看接入审批情况,可以通过产融平台名称、产融平台BID、接入方式、所属骨干节点、申请时间、审批时间进行筛选查询。点击【详情】查看审批申请接入信息。

服务配置查询
产融平台接入申请审核通过后,用户可查询已开通的相关服务的具体配置情况。
点击【服务配置查询】,查看运营端已添加的服务配置,包括产融平台信息、服务类型、接口次数、有效期、出账日等。

产融服务开通查询
产融平台接入申请审核通过后,用户可查看各项服务开通情况。目前ISF提供的服务包含:账户服务、清结算服务、融资服务、发票验真服务。
用户通过产融服务【开通记录】,可以查询运营端配置的服务开通情况。选择需要查看的产融平台,点击【详情】,跳转至服务开通详情页面。


点击【服务商清单】显示每个服务对应的服务商列表。

账单管理
用户调用各服务接口,使用服务后,平台会输出服务调用账单。根据服务配置管理中配置的规则按自然月出账单,按照不同的服务类型进行账单的生成产融平台调用产融中台的数据。

产融中台-开放接口API文档
简介
欢迎使用“星火·链网”-星火产融服务中台。 星火产融服务中台是面向产融客户,可以提供跨地域业务协作、多品类金融产品融合、多样化产融公共服务,通过将多个企业/机构连接成一个网络,建立起多方参与的新型数字化产融协作的统一服务中台。 星火产融服务平台提供以下接口服务
服务类型 |
描述 |
---|---|
账户服务 |
用于用户账户的操作,包含资金账簿开立、小额鉴权、入金、出金、转账、流水、电子回单下载,银行账户添加、资金账簿与银行账户关联等操作。 |
清结算服务 |
用于产融清结算信息操作,包含清结算信息预览,清算支付,清算调账等操作 |
融资服务 |
用于产融融资信息操作,包含融资客户信息推送,融资成本试算申请,融资申请,融资查询,查询等操作 |
贸易真实性验真服务 |
用于产融的贸易信息验真操作,包含发票OCR,验真等操作 |
接入方式
第一步:创建星火账户及企业认证;安装星火通并完成星火账户创建及企业认证。具体操作指引详见浏览器插件钱包章节。
第二步:登录“超级节点星火服务平台-星火产融服务ISF-产融平台接入”功能申请准入,审批后获取apiKey及apiSecret。 第三步:接入测试:接入测试环境进行测试联调。 第四步:应用对接:用生产环境申请的apiKey/apiSecret接入正式环境。
对接说明
API认证机制
所有API的安全认证一律采用accessToken认证,服务端根据生成算法验证认证字符串的正确性。accessToken需要应用方通过apiKey和apiSecret调用相关平台接口获得,具有时效性,有效时间为2小时,过期后需要重新获取否则会调用接口失败,建议妥善保存并管理。
API对接环境
测试环境域名为:http://test-isfopenapi.bitfactory.cn/
正式环境域名为:https://isfopenapi.bitfactory.cn/
API接口调用方式
规则 |
说明 |
---|---|
通信协议 |
HTTPS |
编码规则 |
UTF-8 |
参数格式 |
JSON |
API接口公共参数说明
公共请求参数
参数 |
类型 |
是否必填 |
说明 |
---|---|---|---|
requestNo |
String(32) |
是 |
请求号 |
公共header携带
key |
value |
---|---|
Authorization |
Bearer ${access_token} |
access_token的获取见 获取access_token
公共响应参数
参数 |
类型 |
是否必填 |
说明 |
---|---|---|---|
code |
String |
是 |
响应码:00000-成功 |
message |
String |
否 |
错误码编码 |
data |
String |
是 |
具体的响应内容 |
响应成功报文
{
"data": {},
"code": "00000",
"message": "SUCCESS"
}
响应异常报文
{
"code": "A0230",
"message": "token invalid or expired."
}
接口权限
获取access_token
接口地址:/if-ops/oauth/token?api_secret=${apiSecret}&grant_type=open_api&api_key=${apiKey}
请求方式:POST
请求数据类型:application/json
响应数据类型:application/json
接口描述:获取access_token
请求示例:
if-ops/oauth/token?api_secret=mxw6qx96vpzuif00fyt0tdz1jf52kfbvd5b3nk06&grant_type=open_api&api_key=did:bid:efe14gUdkN9ckUxhm5zBWj5uvoK57CKK
header携带
key |
value |
---|---|
Authorization |
Basic aWYtb3Blbi1hcGk6MTIzNDU2 |
请求参数:
参数名称 |
参数说明 |
是否必须 |
---|---|---|
apiSecret |
星火服务平台获取到的APISecret |
true |
apiKey |
星火服务平台获取到的APIKey |
true |
响应状态:
状态码 |
说明 |
schema |
---|---|---|
200 |
OK |
|
201 |
Created |
|
401 |
Unauthorized |
|
403 |
Forbidden |
|
404 |
Not Found |
响应参数:
参数名称 |
参数说明 |
类型 |
schema |
---|---|---|---|
access_token |
业务接口所需token |
string |
|
expires_in |
access_token有效期,单位:秒 |
integer |
|
platformBid |
当前apiKey对应的产融平台bid |
string |
|
serviceList |
当前可用服务列表:ACCOUNT-账户服务;SETTLEMENT-清结算服务;FINANCE-融资服务;VOTI-贸易真实性验真服务 |
array |
|
platformName |
当前apiKey对应的产融平台名称 |
string |
响应示例:
{
"access_token": "",
"token_type": "bearer",
"refresh_token": "",
"expires_in": 7200,
"scope": "all",
"platformBid": "",
"serviceList": [
"ACCOUNT",
"SETTLEMENT",
"FINANCE",
"VOTI"
],
"platformName": "",
"jti": ""
}
MD5签名示例代码
1、示例代码
import com.alibaba.fastjson.JSON;
import com.alibaba.fastjson.JSONObject;
import com.alibaba.fastjson.parser.Feature;
import com.alibaba.fastjson.serializer.SerializerFeature;
import org.apache.commons.codec.digest.DigestUtils;
import java.io.UnsupportedEncodingException;
public class TestSign {
public static void main(String[] args) {
// 参数对应的json串
String params = "";
//加密对应的key
String key = "";
//将参数进行处理,处理字段排序,转义符
JSONObject jsonObject = JSONObject.parseObject(params, JSONObject.class);
String jsonString = JSON.toJSONString(jsonObject, SerializerFeature.MapSortField);
JSONObject jsonObject2 = JSONObject.parseObject(jsonString, JSONObject.class, Feature.OrderedField);
//将入参对应json串和key进行拼接
String originStr = JSONObject.toJSONString(jsonObject2) + "&key=" + key;
byte [] originData;
try {
originData = originStr.getBytes("utf-8");
} catch (RuntimeException | UnsupportedEncodingException e) {
throw new RuntimeException(e);
}
//MD5进行加密
String signStr = DigestUtils.md5Hex(originData);
System.out.println("signStr = "+signStr);
}
}
2、依赖包
<dependency>
<artifactId>fastjson</artifactId>
<groupId>com.alibaba</groupId>
<version>1.2.83</version>
</dependency>
<dependency>
<groupId>commons-codec</groupId>
<artifactId>commons-codec</artifactId>
<version>1.15</version>
</dependency>
贸易真实性验真服务
简介:用于产融的贸易信息验真操作,包含发票OCR,验真等操作。
贸易真实性验真服务:发票操作
发票文件批量识别
接口地址:/if-voti/api/voti/v1/invoice/function/batch-ocr
请求方式:POST
请求数据类型:application/json
响应数据类型:*/*
接口描述:
仅为ocr模型图片识别,不含发票与状态,发票各字段均有可能为空;图片正常识别完成,但无法识别出发票时,对应返回空数组
请求示例:
{
"annexLabelList": [],
"requestNo": ""
}
请求参数:
参数名称 |
参数说明 |
请求类型 |
是否必须 |
数据类型 |
schema |
---|---|---|---|---|---|
form |
form |
body |
true |
发票识别请求对象 |
发票识别请求对象 |
annexLabelList |
识别列表-文件在产融平台唯一标记,上限10个,需先通过”文件上传“接口,得到文件标识 |
false |
array |
string |
|
requestNo |
请求号 |
true |
string |
响应状态:
状态码 |
说明 |
schema |
---|---|---|
200 |
OK |
|
201 |
Created |
|
401 |
Unauthorized |
|
403 |
Forbidden |
|
404 |
Not Found |
响应参数:
返回Map<String, List>格式,key为对应的文件标识,value为该文件的识别结果。
List元素参数名称释义:
参数名称 |
参数说明 |
类型 |
schema |
---|---|---|---|
invoiceType |
发票类型:发票类型code值 |
string |
|
invoiceCode |
发票代码 |
string |
|
invoiceNumber |
发票号码 |
string |
|
billingDate |
开票日期 格式yyyy年MM月dd日 |
string |
|
amountTax |
不含税金额, 单位:元 |
string |
|
totalAmount |
总金额, 单位:元 |
string |
|
tax |
税额, 单位:元 |
string |
|
checkCode |
校验码 |
string |
|
salesName |
销方纳税人名称 |
string |
|
salesTaxNo |
销方纳税人识别号 |
string |
|
purchaserName |
购方纳税人名称 |
string |
|
purchaserTaxNo |
购方纳税人识别号 |
string |
|
companySeal |
是否有公司印章 (0:没有; 1:有) |
string |
|
formType |
显示发票是第几联 |
string |
|
formName |
发票联次 |
string |
|
kind |
发票消费类型 |
string |
|
ciphertext |
密码区,四行密码,每行以逗号隔开 |
string |
|
transitMark |
通行费标志 |
string |
|
refinedOil |
成品油标志 |
string |
|
machineCode |
机器编号 |
string |
|
travelTax |
车船税 |
string |
|
receiptor |
收款人 |
string |
|
reviewer |
复核人 |
string |
|
issuer |
开票人 |
string |
|
province |
省 |
string |
|
city |
市 |
string |
|
serviceName |
服务类型 |
string |
|
remark |
备注 |
string |
|
itemNames |
品名,每个以逗号隔开 |
string |
|
agentMark |
是否代开 (0:没有; 1:有) |
string |
|
acquisitionMark |
是否收购 (0:没有; 1:有) |
string |
|
category |
种类,oil 表示是加油票(机打发票,普票,卷票) |
string |
|
highwayFlag |
高速标志 (0:没有; 1:有) |
string |
响应示例:
{
"对应的文件标识": [
{
"invoiceType": "",
"invoiceCode": "",
"invoiceNumber": "",
"billingDate": "",
"amountTax": "",
"totalAmount": "",
"tax": "",
"checkCode": "",
"salesName": "",
"salesTaxNo": "",
"purchaserName": "",
"purchaserTaxNo": "",
"companySeal": "",
"formType": "",
"formName": "",
"kind": "",
"ciphertext": "",
"transitMark": "",
"refinedOil": "",
"machineCode": "",
"travelTax": "",
"receiptor": "",
"reviewer": "",
"issuer": "",
"province": "",
"city": "",
"serviceName": "",
"remark": "",
"itemNames": "",
"agentMark": "",
"acquisitionMark": "",
"category": "",
"highwayFlag": ""
}
]
}
发票验真
接口地址:/if-voti/api/voti/v1/invoice/function/recognize-check
请求方式:POST
请求数据类型:application/json
响应数据类型:application/json
接口描述:
发票验真
请求示例:
{
"infoForms": [
{
"amountNoTax": 0,
"checkCode": "",
"invoiceCode": "",
"invoiceDate": "",
"invoiceNum": "",
"invoiceType": ""
}
],
"requestNo": ""
}
请求参数:
参数名称 |
参数说明 |
请求类型 |
是否必须 |
数据类型 |
schema |
---|---|---|---|---|---|
form |
form |
body |
true |
发票识别响应对象 |
发票识别响应对象 |
infoForms |
发票查验请求list, 上限10个 |
false |
array |
发票查询请求对象 |
|
amountNoTax |
发票不含税金额(元):专票不能为空 |
false |
number |
||
checkCode |
校验码后6位:普票不能为空 |
false |
string |
||
invoiceCode |
发票代码 |
true |
string |
||
invoiceDate |
开票日期(eg:2020-01-01) |
true |
string |
||
invoiceNum |
发票号码 |
true |
string |
||
invoiceType |
发票类型,可用值:发票类型枚举 |
true |
string |
||
requestNo |
请求号 |
true |
string |
响应状态:
状态码 |
说明 |
schema |
---|---|---|
200 |
OK |
发票查验结果 |
201 |
Created |
|
401 |
Unauthorized |
|
403 |
Forbidden |
|
404 |
Not Found |
响应参数:
参数名称 |
参数说明 |
类型 |
schema |
---|---|---|---|
invoiceMap |
发票查验结果Map,入参字段与发票真实信息均一致时返回验真成功 |
单张发票查验结果 |
单张发票查验结果 |
failMsg |
查验失败时返回查验失败的原因 |
string |
|
status |
发票查验结果,可用值:INIT,PROCESS,REJECTED,SUCCESS |
string |
响应示例:
{
"invoiceMap": {
"additionalProperties1": {
"failMsg": "",
"status": ""
}
}
}
字典表
发票类型
发票类型 |
枚举 |
code |
---|---|---|
增值税专用发票 |
SPECIAL_TICKET |
01 |
货运运输业增值税专用发票 |
TRANSPORT_TICKET |
02 |
机动车销售统一发票 |
VEHICLE |
03 |
增值税普通发票 |
POPULAR_VOTES |
04 |
增值税普通发票(电子) |
E_TICHET |
10 |
增值税普通发票(卷式) |
VOLUNE_TICKET |
11 |
增值税普通发票(通行费) |
VOLUNE_TICKET_TOLL |
14 |
二手车发票 |
USERD_CAR |
15 |
账户服务
简介: 用于用户账户的操作,包含资金账簿开立、小额鉴权、入金、出金、转账、流水、电子回单下载,银行账户添加、资金账簿与银行账户关联等操作。
资金流向说明
充值:资金流向为:银行卡->子账户
提现:资金流向为:子账户->银行卡
转账:资金流向为:子账户->子账户
组合使用接口说明
充值
充值入参中的子账户区块链地址,与银行卡区块链地址,应先通过“账户绑定银行卡”接口(/if-account/api/account/v1/bindBankCard),完成绑定关系
调用充值之前,需确保银行卡中有余额
充值blob生成接口,返回的待签名数据需使用子账户对应的企业主体bid私钥进行数据签名
提交签名结果接口的requestNo,需与blob生成接口保持一致
提现
提现入参中的子账户区块链地址,与银行卡区块链地址,应先通过“账户绑定银行卡”接口(/if-account/api/account/v1/bindBankCard),完成绑定关系
调用提现之前,需确保子账户中有余额
提现blob生成接口,返回的待签名数据需使用子账户对应的企业主体bid私钥进行数据签名
提交签名结果接口的requestNo,需与blob生成接口保持一致
提现结果可通过“交易状态查询接口”(/if-account/api/account/v1/status/transaction-status),对交易结果进行查询
转账
调用转账之前,需确保转出方子账户中有余额
转账blob生成接口,返回的待签名数据需使用转出方子账户对应的企业主体bid私钥进行数据签名
提交签名结果接口的requestNo,需与blob生成接口保持一致
账户服务:业务操作
开立子账户
接口地址:/if-account/api/account/v1/register
请求方式:POST
请求数据类型:application/json
响应数据类型:*/*
接口描述:
开立子账户
请求示例:
{
"bankCode": "",
"merchantId": "",
"nonceStr": "",
"payAccountAddress": "did:bid:efSwvJcRMyAc2P4q8S8avZcrAkFVkEyP",
"payAccountIdentiNum": "",
"payAccountName": "",
"payAccountParams": "",
"payAccountProperty": "",
"payAccountType": "",
"realAddress": "",
"remark": "",
"requestNo": "",
"sign": "",
"signType": ""
}
请求参数:
参数名称 |
参数说明 |
请求类型 |
是否必须 |
数据类型 |
schema |
---|---|---|---|---|---|
input |
input |
body |
true |
AccountRegisterInputForm |
AccountRegisterInputForm |
bankCode |
银行编码 |
true |
string |
||
merchantId |
商户号 |
true |
string |
||
nonceStr |
随机字符串 |
true |
string |
||
payAccountAddress |
支付账户bid地址 |
true |
string |
||
payAccountIdentiNum |
证件号码 |
true |
string |
||
payAccountName |
名称 |
true |
string |
||
payAccountParams |
支付拓展字段 |
false |
string |
||
payAccountProperty |
开户类型 0=企业 1=个人 |
false |
string |
||
payAccountType |
账户类型 |
true |
string |
||
realAddress |
实名账户地址 |
true |
string |
||
remark |
备注 |
false |
string |
||
requestNo |
请求号 |
true |
string |
||
sign |
签名串 |
true |
string |
||
signType |
签名类型 |
true |
string |
响应状态:
状态码 |
说明 |
schema |
---|---|---|
200 |
OK |
Result«AccountRegisterV0» |
201 |
Created |
|
401 |
Unauthorized |
|
403 |
Forbidden |
|
404 |
Not Found |
响应参数:
参数名称 |
参数说明 |
类型 |
schema |
---|---|---|---|
code |
string |
||
data |
AccountRegisterV0 |
AccountRegisterV0 |
|
bankAccountNum |
银⾏虚拟账号 |
string |
|
bankInterNum |
跨⾏收款账号(华夏银⾏才返回 |
string |
|
code |
返回状态 |
string(byte) |
|
payAccountAddress |
bid- ⼦账户区块链地址 |
string |
|
message |
string |
||
total |
integer(int32) |
integer(int32) |
响应示例:
{
"code": "",
"data": {
"bankAccountNum": "",
"bankInterNum": "",
"code": "",
"payAccountAddress": ""
},
"message": "",
"total": 0
}
添加银行卡
接口地址:/if-account/api/account/v1/addBankCard
请求方式:POST
请求数据类型:application/json
响应数据类型:*/*
接口描述:
添加银行卡
请求示例:
{
"bankAccountName": "星火",
"bankCardNum": 601106020000001093,
"bankCode": "",
"cnapsCode": 313146000035,
"realAddress": "",
"requestNo": 187542789578293248
}
请求参数:
参数名称 |
参数说明 |
请求类型 |
是否必须 |
数据类型 |
schema |
---|---|---|---|---|---|
input |
添加银行卡参数 |
body |
true |
AccountAddBankCardInputForm |
AccountAddBankCardInputForm |
bankAccountName |
银行账户名 |
true |
string |
||
bankCardNum |
银行卡号 |
true |
string |
||
bankCode |
银行编码 |
true |
string |
||
cnapsCode |
银行联行号 |
true |
string |
||
realAddress |
实名账户地址 |
true |
string |
||
requestNo |
请求号 |
true |
string |
响应状态:
状态码 |
说明 |
schema |
---|---|---|
200 |
OK |
Result«AccountAddBankCardVO» |
201 |
Created |
|
401 |
Unauthorized |
|
403 |
Forbidden |
|
404 |
Not Found |
响应参数:
参数名称 |
参数说明 |
类型 |
schema |
---|---|---|---|
code |
string |
||
data |
AccountAddBankCardVO |
AccountAddBankCardVO |
|
bankCardAddressBid |
string |
||
message |
string |
||
total |
integer(int32) |
integer(int32) |
响应示例:
{
"code": "",
"data": {
"bankCardAddressBid": ""
},
"message": "",
"total": 0
}
子账户绑定银行卡
接口地址:/if-account/api/account/v1/bindBankCard
请求方式:POST
请求数据类型:application/json
响应数据类型:*/*
接口描述:
账户绑定银行卡
请求示例:
{
"bankAccountName": "星火",
"bankCardAddress": "a001671df866fc0a41e6d8e8db18da0dde375275cb1dd8",
"bankCardNum": 601106020000001093,
"bankCardType": 0,
"cnapsNo": 313146000035,
"merchantId": "",
"nonceStr": "",
"payAccountAddress": "a001117c3e9d3d5b6315833b9f96a7b452ce489c5c0fc3",
"remark": "绑定银行卡",
"requestNo": 187542789578293248,
"sign": "",
"signType": ""
}
请求参数:
参数名称 |
参数说明 |
请求类型 |
是否必须 |
数据类型 |
schema |
---|---|---|---|---|---|
input |
账户绑定银行卡参数 |
body |
true |
AccountBindBankCardInputForm |
AccountBindBankCardInputForm |
bankAccountName |
银行账户名 |
true |
string |
||
bankCardAddress |
银行卡地址,需通过“添加银行卡”接口获得 |
true |
string |
||
bankCardNum |
银行卡号 |
true |
string |
||
bankCardType |
绑卡类型 0:出入金,1:出金,2:入金 |
true |
string |
||
cnapsNo |
银行联行号 |
true |
string |
||
merchantId |
商户号 |
true |
string |
||
nonceStr |
随机字符串 |
true |
string |
||
payAccountAddress |
支付账户地址,需通过“开立子账户”接口获得 |
true |
string |
||
remark |
备注 |
true |
string |
||
requestNo |
请求号 |
true |
string |
||
sign |
签名串 |
true |
string |
||
signType |
签名类型 |
true |
string |
响应状态:
状态码 |
说明 |
schema |
---|---|---|
200 |
OK |
Result«AccountBindBankCardVO» |
201 |
Created |
|
401 |
Unauthorized |
|
403 |
Forbidden |
|
404 |
Not Found |
响应参数:
参数名称 |
参数说明 |
类型 |
schema |
---|---|---|---|
code |
string |
||
data |
AccountBindBankCardVO |
AccountBindBankCardVO |
|
bankCardAddress |
string |
||
code |
string |
||
message |
string |
||
total |
integer(int32) |
integer(int32) |
响应示例:
{
"code": "",
"data": {
"bankCardAddress": "",
"code": ""
},
"message": "",
"total": 0
}
子账户解绑银行卡
接口地址:/if-account/api/account/v1/unBindBankCard
请求方式:POST
请求数据类型:application/json
响应数据类型:*/*
接口描述:
账户解绑银行卡
请求示例:
{
"merchantId": "",
"nonceStr": "",
"payAccountAddress": "",
"realCardAddress": "",
"requestNo": "",
"sign": "",
"signType": ""
}
请求参数:
参数名称 |
参数说明 |
请求类型 |
是否必须 |
数据类型 |
schema |
---|---|---|---|---|---|
input |
账户解绑银行卡参数 |
body |
true |
AccountUnBindBankCardInputForm |
AccountUnBindBankCardInputForm |
merchantId |
商户号 |
true |
string |
||
nonceStr |
随机字符串 |
true |
string |
||
payAccountAddress |
支付账户地址,需通过“开立子账户”接口获得 |
true |
string |
||
realCardAddress |
实体卡地址,需通过“添加银行卡”接口获得 |
true |
string |
||
requestNo |
请求号 |
true |
string |
||
sign |
签名串 |
true |
string |
||
signType |
签名类型 |
true |
string |
响应状态:
状态码 |
说明 |
schema |
---|---|---|
200 |
OK |
Result«AccountUnBindBankCardVO» |
201 |
Created |
|
401 |
Unauthorized |
|
403 |
Forbidden |
|
404 |
Not Found |
响应参数:
参数名称 |
参数说明 |
类型 |
schema |
---|---|---|---|
code |
string |
||
data |
AccountUnBindBankCardVO |
AccountUnBindBankCardVO |
|
bankCardAddress |
string |
||
code |
string |
||
message |
string |
||
total |
integer(int32) |
integer(int32) |
响应示例:
{
"code": "",
"data": {
"bankCardAddress": "",
"code": ""
},
"message": "",
"total": 0
}
充值blob生成
接口地址:/if-account/api/account/v1/blob/txrecharge
请求方式:POST
请求数据类型:application/json
响应数据类型:*/*
接口描述:
充值blob生成
请求示例:
{
"amount": 0,
"bankCardAccountAddress": "",
"merchantId": "",
"nonceStr": "",
"payAccountAddress": "",
"remark": "",
"requestNo": "",
"sign": "",
"signType": ""
}
请求参数:
参数名称 |
参数说明 |
请求类型 |
是否必须 |
数据类型 |
schema |
---|---|---|---|---|---|
input |
input |
body |
true |
RechargeBlobInputForm |
RechargeBlobInputForm |
amount |
金额 |
true |
number |
||
bankCardAccountAddress |
银行卡地址,需与对应的子账户先通过绑定接口完成绑定 |
true |
string |
||
merchantId |
商户号 |
true |
string |
||
nonceStr |
随机字符串 |
true |
string |
||
payAccountAddress |
bid-⼦账户区块链地址,需通过“开立子账户”接口获得 |
true |
string |
||
remark |
备注 |
true |
string |
||
requestNo |
请求号 |
true |
string |
||
sign |
签名串 |
true |
string |
||
signType |
签名类型 |
true |
string |
响应状态:
状态码 |
说明 |
schema |
---|---|---|
200 |
OK |
Result«BlobOutputForm» |
201 |
Created |
|
401 |
Unauthorized |
|
403 |
Forbidden |
|
404 |
Not Found |
响应参数:
参数名称 |
参数说明 |
类型 |
schema |
---|---|---|---|
code |
string |
||
data |
BlobOutputForm |
BlobOutputForm |
|
blob |
blob |
string |
|
hash |
hash |
string |
|
message |
string |
||
total |
integer(int32) |
integer(int32) |
响应示例:
{
"code": "",
"data": {
"blob": "",
"hash": ""
},
"message": "",
"total": 0
}
转账blob生成
接口地址:/if-account/api/account/v1/blob/txtransfer
请求方式:POST
请求数据类型:application/json
响应数据类型:*/*
接口描述:
转账blob生成
请求示例:
{
"amount": 0,
"fromPayAccountAddress": "",
"merchantId": "",
"nonceStr": "",
"remark": "",
"requestNo": "",
"sign": "",
"signType": "",
"toPayAccountAddress": "",
"transferMake": "",
"transferType": ""
}
请求参数:
参数名称 |
参数说明 |
请求类型 |
是否必须 |
数据类型 |
schema |
---|---|---|---|---|---|
input |
input |
body |
true |
TransferBlobInputForm |
TransferBlobInputForm |
amount |
转账金额 |
true |
number |
||
fromPayAccountAddress |
bid-转出⽅⼦账户区块链地址 |
true |
string |
||
merchantId |
商户号 |
true |
string |
||
nonceStr |
随机字符串 |
true |
string |
||
remark |
备注 |
true |
string |
||
requestNo |
请求号 |
true |
string |
||
sign |
签名串 |
true |
string |
||
signType |
签名类型 |
true |
string |
||
toPayAccountAddress |
bid-接受⽅⼦账户区块链地址 |
true |
string |
||
transferMake |
转账标识[1、凭证 2、订单] |
true |
string |
||
transferType |
转账类型 |
true |
string |
响应状态:
状态码 |
说明 |
schema |
---|---|---|
200 |
OK |
Result«BlobOutputForm» |
201 |
Created |
|
401 |
Unauthorized |
|
403 |
Forbidden |
|
404 |
Not Found |
响应参数:
参数名称 |
参数说明 |
类型 |
schema |
---|---|---|---|
code |
string |
||
data |
BlobOutputForm |
BlobOutputForm |
|
blob |
blob |
string |
|
hash |
hash |
string |
|
message |
string |
||
total |
integer(int32) |
integer(int32) |
响应示例:
{
"code": "",
"data": {
"blob": "",
"hash": ""
},
"message": "",
"total": 0
}
提现blob生成
接口地址:/if-account/api/account/v1/blob/txwithdraw
请求方式:POST
请求数据类型:application/json
响应数据类型:*/*
接口描述:
提现blob生成
请求示例:
{
"amount": 0,
"bankCardAccountAddress": "",
"channelNo": "",
"feePayType": "",
"merchantId": "",
"nonceStr": "",
"payAccountAddress": "",
"remark": "",
"requestNo": "",
"sign": "",
"signType": ""
}
请求参数:
参数名称 |
参数说明 |
请求类型 |
是否必须 |
数据类型 |
schema |
---|---|---|---|---|---|
input |
input |
body |
true |
WithdrawBlobInputForm |
WithdrawBlobInputForm |
amount |
金额 |
true |
number |
||
bankCardAccountAddress |
bid-银⾏账户区块链地址,需与对应的子账户先通过绑定接口完成绑定 |
true |
string |
||
channelNo |
提现渠道 华夏银⾏使⽤(默认 0000本\n⾏,3000⼤额出⾦,4000超级⽹银 |
true |
string |
||
feePayType |
手续费承担方 |
true |
string |
||
merchantId |
商户号 |
true |
string |
||
nonceStr |
随机字符串 |
true |
string |
||
payAccountAddress |
bid-⼦账户区块链地址,需通过“开立子账户”接口获得 |
true |
string |
||
remark |
备注 |
true |
string |
||
requestNo |
请求号 |
true |
string |
||
sign |
签名串 |
true |
string |
||
signType |
签名类型 |
true |
string |
响应状态:
状态码 |
说明 |
schema |
---|---|---|
200 |
OK |
Result«BlobOutputForm» |
201 |
Created |
|
401 |
Unauthorized |
|
403 |
Forbidden |
|
404 |
Not Found |
响应参数:
参数名称 |
参数说明 |
类型 |
schema |
---|---|---|---|
code |
string |
||
data |
BlobOutputForm |
BlobOutputForm |
|
blob |
blob |
string |
|
hash |
hash |
string |
|
message |
string |
||
total |
integer(int32) |
integer(int32) |
响应示例:
{
"code": "",
"data": {
"blob": "",
"hash": ""
},
"message": "",
"total": 0
}
充值-blob提交
接口地址:/if-account/api/account/v1/transaction/recharge
请求方式:POST
请求数据类型:application/json
响应数据类型:*/*
接口描述:
充值-blob提交
请求示例:
{
"blob": "",
"merchantId": "",
"nonceStr": "",
"requestNo": "",
"sign": "",
"signBlob": "",
"signType": "",
"signerPublicKey": ""
}
请求参数:
参数名称 |
参数说明 |
请求类型 |
是否必须 |
数据类型 |
schema |
---|---|---|---|---|---|
input |
input |
body |
true |
RechargeInputForm |
RechargeInputForm |
blob |
blob串 |
true |
string |
||
merchantId |
商户号 |
true |
string |
||
nonceStr |
随机字符串 |
true |
string |
||
requestNo |
请求号 |
true |
string |
||
sign |
签名串 |
true |
string |
||
signBlob |
账户充值操作签名串 |
true |
string |
||
signType |
签名类型 |
true |
string |
||
signerPublicKey |
账户签名公钥 |
true |
string |
响应状态:
状态码 |
说明 |
schema |
---|---|---|
200 |
OK |
Result«RechargOutputForm» |
201 |
Created |
|
401 |
Unauthorized |
|
403 |
Forbidden |
|
404 |
Not Found |
响应参数:
参数名称 |
参数说明 |
类型 |
schema |
---|---|---|---|
code |
string |
||
data |
RechargOutputForm |
RechargOutputForm |
|
bcHash |
交易hash |
string |
|
requestNo |
请求号 |
string |
|
message |
string |
||
total |
integer(int32) |
integer(int32) |
响应示例:
{
"code": "",
"data": {
"bcHash": "",
"requestNo": ""
},
"message": "",
"total": 0
}
提现-blob提交
接口地址:/if-account/api/account/v1/transaction/withdraw
请求方式:POST
请求数据类型:application/json
响应数据类型:*/*
接口描述:
提现-blob提交
请求示例:
{
"blob": "",
"channelNo": "",
"merchantId": "",
"nonceStr": "",
"requestNo": "",
"sign": "",
"signBlob": "",
"signType": "",
"signerPublicKey": ""
}
请求参数:
参数名称 |
参数说明 |
请求类型 |
是否必须 |
数据类型 |
schema |
---|---|---|---|---|---|
input |
input |
body |
true |
WithdrawInputForm |
WithdrawInputForm |
blob |
blob串 |
true |
string |
||
channelNo |
华夏银行-渠道 |
true |
string |
||
merchantId |
商户号 |
true |
string |
||
nonceStr |
随机字符串 |
true |
string |
||
requestNo |
请求号 |
true |
string |
||
sign |
签名串 |
true |
string |
||
signBlob |
bolb签名串 |
true |
string |
||
signType |
签名类型 |
true |
string |
||
signerPublicKey |
签名公钥 |
true |
string |
响应状态:
状态码 |
说明 |
schema |
---|---|---|
200 |
OK |
Result«WithdrawOutputForm» |
201 |
Created |
|
401 |
Unauthorized |
|
403 |
Forbidden |
|
404 |
Not Found |
响应参数:
参数名称 |
参数说明 |
类型 |
schema |
---|---|---|---|
code |
string |
||
data |
WithdrawOutputForm |
WithdrawOutputForm |
|
code |
内部状态 0成功,1失败,99 处理中 |
string(byte) |
|
requestNo |
请求号 |
string |
|
tradeNo |
交易号 |
string |
|
message |
string |
||
total |
integer(int32) |
integer(int32) |
响应示例:
{
"code": "",
"data": {
"code": "",
"requestNo": "",
"tradeNo": ""
},
"message": "",
"total": 0
}
转账-blob提交
接口地址:/if-account/api/account/v1/transaction/transfer
请求方式:POST
请求数据类型:application/json
响应数据类型:*/*
接口描述:
转账-blob
请求示例:
{
"blob": "",
"merchantId": "",
"nonceStr": "",
"requestNo": "",
"sign": "",
"signBlob": "",
"signType": "",
"signerPublicKey": "",
"tradeAbstract": ""
}
请求参数:
参数名称 |
参数说明 |
请求类型 |
是否必须 |
数据类型 |
schema |
---|---|---|---|---|---|
input |
input |
body |
true |
TransferInputForm |
TransferInputForm |
blob |
blob串 |
true |
string |
||
merchantId |
商户号 |
true |
string |
||
nonceStr |
随机字符串 |
true |
string |
||
requestNo |
请求号 |
true |
string |
||
sign |
签名串 |
true |
string |
||
signBlob |
账户转账操作签名串 |
true |
string |
||
signType |
签名类型 |
true |
string |
||
signerPublicKey |
签名公钥 |
true |
string |
||
tradeAbstract |
交易摘要 |
false |
string |
响应状态:
状态码 |
说明 |
schema |
---|---|---|
200 |
OK |
Result«TransferOutputForm» |
201 |
Created |
|
401 |
Unauthorized |
|
403 |
Forbidden |
|
404 |
Not Found |
响应参数:
参数名称 |
参数说明 |
类型 |
schema |
---|---|---|---|
code |
string |
||
data |
TransferOutputForm |
TransferOutputForm |
|
bcHash |
交易hash |
string |
|
requestNo |
请求号 |
string |
|
message |
string |
||
total |
integer(int32) |
integer(int32) |
响应示例:
{
"code": "",
"data": {
"bcHash": "",
"requestNo": ""
},
"message": "",
"total": 0
}
子账户资金冻结
接口地址:/if-account/api/account/v1/transaction/freeze
请求方式:POST
请求数据类型:application/json
响应数据类型:*/*
接口描述:
资金冻结
请求示例:
{
"merchantId": "",
"nonceStr": "",
"payAccountAddress": "",
"remark1": "",
"requestNo": "",
"sign": "",
"signType": "",
"tranAmount": 0
}
请求参数:
参数名称 |
参数说明 |
请求类型 |
是否必须 |
数据类型 |
schema |
---|---|---|---|---|---|
inputForm |
inputForm |
body |
true |
PayFreezeTransInputForm |
PayFreezeTransInputForm |
merchantId |
商户号 |
true |
string |
||
nonceStr |
随机字符串 |
true |
string |
||
payAccountAddress |
bid-⼦账户区块链地址 |
false |
string |
||
remark1 |
备注 |
true |
string |
||
requestNo |
请求号 |
true |
string |
||
sign |
签名串 |
true |
string |
||
signType |
签名类型 |
true |
string |
||
tranAmount |
冻结金额 |
true |
number |
响应状态:
状态码 |
说明 |
schema |
---|---|---|
200 |
OK |
Result«PayFreezeTransVO» |
201 |
Created |
|
401 |
Unauthorized |
|
403 |
Forbidden |
|
404 |
Not Found |
响应参数:
参数名称 |
参数说明 |
类型 |
schema |
---|---|---|---|
code |
string |
||
data |
PayFreezeTransVO |
PayFreezeTransVO |
|
balanceAmount |
余额 |
number |
|
frezTotalAmount |
冻结总金额 |
number |
|
requestNo |
请求号 |
string |
|
tradeNo |
流水号 |
string |
|
tranAmount |
本次冻结金额 |
number |
|
message |
string |
||
total |
integer(int32) |
integer(int32) |
响应示例:
{
"code": "",
"data": {
"balanceAmount": 0,
"frezTotalAmount": 0,
"requestNo": "",
"tradeNo": "",
"tranAmount": 0
},
"message": "",
"total": 0
}
子账户资金解冻
接口地址:/if-account/api/account/v1/transaction/unfreeze
请求方式:POST
请求数据类型:application/json
响应数据类型:*/*
接口描述:
资金解冻
请求示例:
{
"merchantId": "",
"nonceStr": "",
"payAccountAddress": "",
"remark1": "",
"requestNo": "",
"sign": "",
"signType": "",
"tranAmount": 0
}
请求参数:
参数名称 |
参数说明 |
请求类型 |
是否必须 |
数据类型 |
schema |
---|---|---|---|---|---|
inputForm |
inputForm |
body |
true |
PayUnFreezeTransInputForm |
PayUnFreezeTransInputForm |
merchantId |
商户号 |
true |
string |
||
nonceStr |
随机字符串 |
true |
string |
||
payAccountAddress |
bid-⼦账户区块链地址 |
false |
string |
||
remark1 |
备注 |
true |
string |
||
requestNo |
请求号 |
true |
string |
||
sign |
签名串 |
true |
string |
||
signType |
签名类型 |
true |
string |
||
tranAmount |
解冻金额 |
true |
number |
响应状态:
状态码 |
说明 |
schema |
---|---|---|
200 |
OK |
Result«PayUnFreezeTransVO» |
201 |
Created |
|
401 |
Unauthorized |
|
403 |
Forbidden |
|
404 |
Not Found |
响应参数:
参数名称 |
参数说明 |
类型 |
schema |
---|---|---|---|
code |
string |
||
data |
PayUnFreezeTransVO |
PayUnFreezeTransVO |
|
balanceAmount |
余额 |
number |
|
frezTotalAmount |
冻结总金额 |
number |
|
requestNo |
请求号 |
string |
|
tradeNo |
流水号 |
string |
|
tranAmount |
本次解冻金额 |
number |
|
message |
string |
||
total |
integer(int32) |
integer(int32) |
响应示例:
{
"code": "",
"data": {
"balanceAmount": 0,
"frezTotalAmount": 0,
"requestNo": "",
"tradeNo": "",
"tranAmount": 0
},
"message": "",
"total": 0
}
账户服务:查询操作
电子回单下载
接口地址:/if-account/api/account/v1/status/external-receipt
请求方式:POST
请求数据类型:application/json
响应数据类型:*/*
接口描述:
电子回单下载
请求示例:
{
"accountTradeNo": "",
"merchantId": "",
"nonceStr": "",
"payAccountAddress": "",
"requestNo": "",
"sign": "",
"signType": "",
"tranType": ""
}
请求参数:
参数名称 |
参数说明 |
请求类型 |
是否必须 |
数据类型 |
schema |
---|---|---|---|---|---|
input |
input |
body |
true |
DownVoucherInputForm |
DownVoucherInputForm |
accountTradeNo |
流水号 |
true |
string |
||
merchantId |
商户号 |
true |
string |
||
nonceStr |
随机字符串 |
true |
string |
||
payAccountAddress |
支付账户地址bid |
true |
string |
||
requestNo |
请求号 |
true |
string |
||
sign |
签名串 |
true |
string |
||
signType |
签名类型 |
true |
string |
||
tranType |
交易类型 0 提现 1 转账 2 充值 3⼿续费 4融资\n贷款 5还款 7专项计划 10融资服务费 12平台服\n务费 14分润 |
true |
string |
响应状态:
状态码 |
说明 |
schema |
---|---|---|
200 |
OK |
ExternalReceiptOutputForm |
201 |
Created |
|
401 |
Unauthorized |
|
403 |
Forbidden |
|
404 |
Not Found |
响应参数:
参数名称 |
参数说明 |
类型 |
schema |
---|---|---|---|
bankMemNum |
资金账簿信息 |
string |
|
downUrl |
下载路径 |
string |
|
verifyCode |
下载电子回单打印校验码 |
string |
响应示例:
{
"bankMemNum": "",
"downUrl": "",
"verifyCode": ""
}
交易状态
接口地址:/if-account/api/account/v1/status/transaction-status
请求方式:POST
请求数据类型:application/json
响应数据类型:*/*
接口描述:
交易状态
请求示例:
{
"bizType": 0,
"merchantId": "",
"nonceStr": "",
"requestNo": "",
"sign": "",
"signType": ""
}
请求参数:
参数名称 |
参数说明 |
请求类型 |
是否必须 |
数据类型 |
schema |
---|---|---|---|---|---|
input |
input |
body |
true |
TxStatusInputForm |
TxStatusInputForm |
bizType |
交易类型 0 提现 1 转账 2 充值 |
true |
integer(int32) |
||
merchantId |
商户号 |
true |
string |
||
nonceStr |
随机字符串 |
true |
string |
||
requestNo |
请求号 |
true |
string |
||
sign |
签名串 |
true |
string |
||
signType |
签名类型 |
true |
string |
响应状态:
状态码 |
说明 |
schema |
---|---|---|
200 |
OK |
TransStatusVO |
201 |
Created |
|
401 |
Unauthorized |
|
403 |
Forbidden |
|
404 |
Not Found |
响应参数:
参数名称 |
参数说明 |
类型 |
schema |
---|---|---|---|
hash |
交易hash |
string |
|
requestNo |
请求号 |
string |
|
txStatus |
交易状态 |
integer(int32) |
integer(int32) |
响应示例:
{
"hash": "",
"requestNo": "",
"txStatus": 0
}
账户余额
接口地址:/if-account/api/account/v1/balance
请求方式:POST
请求数据类型:application/json
响应数据类型:*/*
接口描述:
账户余额
请求示例:
{
"merchantId": "",
"nonceStr": "",
"payAccountAddress": "",
"queryType": "0:账户余额,1:子账户余额,2:结算户余额,3:监管户余额",
"requestNo": "",
"sign": "",
"signType": ""
}
请求参数:
参数名称 |
参数说明 |
请求类型 |
是否必须 |
数据类型 |
schema |
---|---|---|---|---|---|
input |
账户余额参数 |
body |
true |
AccountBalanceInputForm |
AccountBalanceInputForm |
merchantId |
商户号 |
true |
string |
||
nonceStr |
随机字符串 |
true |
string |
||
payAccountAddress |
支付账户地址 |
true |
string |
||
queryType |
查询余额账户类型 |
true |
string |
||
requestNo |
请求号 |
true |
string |
||
sign |
签名串 |
true |
string |
||
signType |
签名类型 |
true |
string |
响应状态:
状态码 |
说明 |
schema |
---|---|---|
200 |
OK |
Result«AccountBalanceVO» |
201 |
Created |
|
401 |
Unauthorized |
|
403 |
Forbidden |
|
404 |
Not Found |
响应参数:
参数名称 |
参数说明 |
类型 |
schema |
---|---|---|---|
code |
string |
||
data |
AccountBalanceVO |
AccountBalanceVO |
|
frozenBalance |
冻结余额 |
number |
|
totalBalance |
总余额 |
number |
|
useAbleBalance |
可用余额 |
number |
|
message |
string |
||
total |
integer(int32) |
integer(int32) |
响应示例:
{
"code": "",
"data": {
"frozenBalance": 0,
"totalBalance": 0,
"useAbleBalance": 0
},
"message": "",
"total": 0
}
账户流水
接口地址:/if-account/api/account/v1/bill
请求方式:POST
请求数据类型:application/json
响应数据类型:*/*
接口描述:
账户流水
请求示例:
{
"accountingStatus": "",
"bizType": "",
"endTime": "",
"maxAmount": 0,
"merchantId": "",
"minAmount": 0,
"nonceStr": "",
"oppositeAccountName": "",
"oppositeAccountNumber": "",
"pageNum": 1,
"pageSize": 20,
"payAccountAddress": "",
"requestNo": "",
"sign": "",
"signType": "",
"startTime": ""
}
请求参数:
参数名称 |
参数说明 |
请求类型 |
是否必须 |
数据类型 |
schema |
---|---|---|---|---|---|
input |
账户流水参数 |
body |
true |
AccountBillInputForm |
AccountBillInputForm |
accountingStatus |
入账类型 |
true |
string |
||
bizType |
交易类型 |
true |
string |
||
endTime |
结束时间 |
true |
string |
||
maxAmount |
最大金额 |
false |
number |
||
merchantId |
商户号 |
true |
string |
||
minAmount |
最小金额 |
false |
number |
||
nonceStr |
随机字符串 |
true |
string |
||
oppositeAccountName |
对手方账户名 |
true |
string |
||
oppositeAccountNumber |
对手方账户号 |
true |
string |
||
pageNum |
当前页 |
false |
integer(int32) |
||
pageSize |
每页记录数 |
false |
integer(int32) |
||
payAccountAddress |
支付账户地址 |
true |
string |
||
requestNo |
请求号 |
true |
string |
||
sign |
签名串 |
true |
string |
||
signType |
签名类型 |
true |
string |
||
startTime |
开始时间 |
true |
string |
响应状态:
状态码 |
说明 |
schema |
---|---|---|
200 |
OK |
PageResult«AccountBillVO» |
201 |
Created |
|
401 |
Unauthorized |
|
403 |
Forbidden |
|
404 |
Not Found |
响应参数:
参数名称 |
参数说明 |
类型 |
schema |
---|---|---|---|
code |
string |
||
data |
Data«AccountBillVO» |
Data«AccountBillVO» |
|
list |
array |
AccountBillVO |
|
accountTradeNo |
交易流水号 |
string |
|
accountingStatus |
入账类型(支出0、收入1) |
string |
|
accountingTime |
入账时间 |
string |
|
amount |
入账金额 |
number |
|
bankCode |
银行code |
string |
|
billNum |
账单数量 |
string |
|
bizType |
业务类型(充值、提现、融资、还款 等) |
string |
|
createTime |
创建时间 |
string |
|
feeAmount |
手续费 |
number |
|
id |
integer |
||
metadata |
业务信息 |
string |
|
payAccountAddress |
bid- ⼦账户区块链地址 |
string |
|
payAccountBalance |
当时账户余额 |
number |
|
remark1 |
备注 |
string |
|
updateTime |
更新时间 |
string |
|
uploadStatus |
string |
||
total |
integer(int64) |
||
msg |
string |
响应示例:
{
"code": "",
"data": {
"list": [
{
"accountTradeNo": "",
"accountingStatus": "",
"accountingTime": "",
"amount": 0,
"bankCode": "",
"billNum": "",
"bizType": "",
"createTime": "",
"feeAmount": 0,
"id": 0,
"metadata": "",
"payAccountAddress": "",
"payAccountBalance": 0,
"remark1": "",
"updateTime": "",
"uploadStatus": ""
}
],
"total": 0
},
"msg": ""
}
跨行子账户查询
接口地址:/if-account/api/account/v1/crossBankSubAccount
请求方式:POST
请求数据类型:application/json
响应数据类型:*/*
接口描述:
跨行子账户查询
请求示例:
{
"merchantId": "",
"nonceStr": "",
"payAccountAddress": "",
"requestNo": "",
"sign": "",
"signType": ""
}
请求参数:
参数名称 |
参数说明 |
请求类型 |
是否必须 |
数据类型 |
schema |
---|---|---|---|---|---|
input |
跨行子账户查询参数 |
body |
true |
AccountCrossBankSubInputForm |
AccountCrossBankSubInputForm |
merchantId |
商户号 |
true |
string |
||
nonceStr |
随机字符串 |
true |
string |
||
payAccountAddress |
支付账户地址 |
true |
string |
||
requestNo |
请求号 |
true |
string |
||
sign |
签名串 |
true |
string |
||
signType |
签名类型 |
true |
string |
响应状态:
状态码 |
说明 |
schema |
---|---|---|
200 |
OK |
Result«AccountCrossBankSubVO» |
201 |
Created |
|
401 |
Unauthorized |
|
403 |
Forbidden |
|
404 |
Not Found |
响应参数:
参数名称 |
参数说明 |
类型 |
schema |
---|---|---|---|
code |
string |
||
data |
AccountCrossBankSubVO |
AccountCrossBankSubVO |
|
bankCode |
开户⾏银⾏编码 |
string |
|
bankInterNum |
跨⾏收款账号 |
string |
|
bankPayeeSubAccName |
跨行收款账户名称 |
string |
|
bankPayeeSubAccSetteName |
跨行收款子账号清算行名称 |
string |
|
payAccountAddress |
跨⾏bid-⼦账户区块链地址 |
string |
|
message |
string |
||
total |
integer(int32) |
integer(int32) |
响应示例:
{
"code": "",
"data": {
"bankCode": "",
"bankInterNum": "",
"bankPayeeSubAccName": "",
"bankPayeeSubAccSetteName": "",
"payAccountAddress": ""
},
"message": "",
"total": 0
}
账户信息查询
接口地址:/if-account/api/account/v1/getInfo
请求方式:POST
请求数据类型:application/json
响应数据类型:*/*
接口描述:
账户信息
请求示例:
{
"merchantId": "",
"nonceStr": "",
"payAccountAddress": "",
"requestNo": "",
"sign": "",
"signType": ""
}
请求参数:
参数名称 |
参数说明 |
请求类型 |
是否必须 |
数据类型 |
schema |
---|---|---|---|---|---|
input |
账户信息参数 |
body |
true |
AccountEditInputForm |
AccountEditInputForm |
merchantId |
商户号 |
true |
string |
||
nonceStr |
随机字符串 |
true |
string |
||
payAccountAddress |
支付账户地址 |
true |
string |
||
requestNo |
请求号 |
true |
string |
||
sign |
签名串 |
true |
string |
||
signType |
签名类型 |
true |
string |
响应状态:
状态码 |
说明 |
schema |
---|---|---|
200 |
OK |
Result«AccountInfoVO» |
201 |
Created |
|
401 |
Unauthorized |
|
403 |
Forbidden |
|
404 |
Not Found |
响应参数:
参数名称 |
参数说明 |
类型 |
schema |
---|---|---|---|
code |
string |
||
data |
AccountInfoVO |
AccountInfoVO |
|
accountAddress |
bid-企业区块链地址 |
string |
|
bankCode |
银行CODE |
string |
|
bankInterNum |
跨⾏收款账号 |
string |
|
bankMemNum |
银⾏会员⼦账户 |
string |
|
bankName |
银行名称 |
string |
|
payAccountAddress |
bid-⼦账户区块链地址 |
string |
|
payAccountNum |
支付账号 |
string |
|
payAccountType |
支付账户类型 |
string |
|
message |
string |
||
total |
integer(int32) |
integer(int32) |
响应示例:
{
"code": "",
"data": {
"accountAddress": "",
"bankCode": "",
"bankInterNum": "",
"bankMemNum": "",
"bankName": "",
"payAccountAddress": "",
"payAccountNum": "",
"payAccountType": ""
},
"message": "",
"total": 0
}
跨行出入金手续费试算
接口地址:/if-account/api/account/v1/transaction/calculatefee
请求方式:POST
请求数据类型:application/json
响应数据类型:*/*
接口描述:
跨行出入金手续费试算
请求示例:
{
"amount": "",
"bankCode": "",
"inOutMoneyType": "",
"isCrossLine": "",
"merchantId": "",
"nonceStr": "",
"payAccountAddress": "",
"requestNo": "",
"sign": "",
"signType": ""
}
请求参数:
参数名称 |
参数说明 |
请求类型 |
是否必须 |
数据类型 |
schema |
---|---|---|---|---|---|
input |
input |
body |
true |
FeeCalculateInputForm |
FeeCalculateInputForm |
amount |
金额 |
true |
string |
||
bankCode |
银行CODE |
true |
string |
||
inOutMoneyType |
华夏银行-选择跨行手续费试算类型0-出金,1,入金 |
true |
string |
||
isCrossLine |
是否跨行 |
true |
string |
||
merchantId |
商户号 |
true |
string |
||
nonceStr |
随机字符串 |
true |
string |
||
payAccountAddress |
华夏银行-支付账户地址 |
false |
string |
||
requestNo |
请求号 |
true |
string |
||
sign |
签名串 |
true |
string |
||
signType |
签名类型 |
true |
string |
响应状态:
状态码 |
说明 |
schema |
---|---|---|
200 |
OK |
Result«FeeCalculateOutputForm» |
201 |
Created |
|
401 |
Unauthorized |
|
403 |
Forbidden |
|
404 |
Not Found |
响应参数:
参数名称 |
参数说明 |
类型 |
schema |
---|---|---|---|
code |
string |
||
data |
FeeCalculateOutputForm |
FeeCalculateOutputForm |
|
feeAmount |
手续费金额 |
integer(int64) |
|
feeNo |
手续费模型 |
string |
|
message |
string |
||
total |
integer(int32) |
integer(int32) |
响应示例:
{
"code": "",
"data": {
"feeAmount": 0,
"feeNo": ""
},
"message": "",
"total": 0
}
融资服务
简介:用于产融融资信息操作,包含融资客户信息推送,融资成本试算申请,融资申请,融资查询,查询等操作。
状态机

操作类接口调用流程
步骤1
开通融资产品,星火产融会维护不同的融资服务商,第三方平台根据产融端分配的融资服务商进行融资产品的开通调用。
开通融资产品接口调用之后,不同的服务商应答时间不等,产融会利用定时任务去不同的服务商去查询融资产品的开通结果。
步骤2
融资提交准备接口,入参nonce值由第三方产融平台自行维护,可通过辅助接口:/api/finance/v1/blockchain/get-nonce获取指定账户在链上的实时nonce值,+1后作为入参。
融资提交准备接口,返回的待签名数据需使用clientPlatformBid对应账户私钥进行数据签名
相同融资申请单号,如果单据不被退回,不允许多次提交
/api/finance/v1/finance/submit接口执行之后,需要等待区块链执行结果,区块链交易执行成功,该操作成功,此时业务状态为初始化。
步骤3
针对步骤2已执行成功的融资数据,可以调用融资指令转发接口,将融资数据推送到服务商。
入参中,contractAddress、hash、label 需要依赖步骤2中返回的结果。
调用此接口之后,业务状态为处理中。
融资服务:业务操作
开通融资产品
接口地址:/if-finance/api/finance/v1/custom/open-finance
请求方式:POST
请求数据类型:application/json
响应数据类型:*/*
接口描述:
开通融资产品
请求示例:
{
"astAmt": 0,
"clientPlatformBid": "",
"corpName": "",
"corpNo": "",
"corpNumber": "",
"ctfExpDate": "",
"ctfRegDate": "",
"ctfType": "",
"customBid": "",
"customName": "",
"customNo": "",
"dtlAddr": "",
"financeYear": "",
"interestPaymentCode": "",
"lbyAmt": 0,
"linkName": "",
"linkNumber": "",
"merchantId": "",
"netAsset": 0,
"netProfit": 0,
"oppCtfexpDt": "",
"oppCtfrgstDt": "",
"oppNm": "",
"oppNo": "",
"oppType": "",
"oppmbNo": "",
"permitNo": "",
"postAddr": "",
"registerTime": "",
"requestNo": "",
"saleIncm": ""
}
请求参数:
参数名称 |
参数说明 |
请求类型 |
是否必须 |
数据类型 |
schema |
---|---|---|---|---|---|
input |
input |
body |
true |
OpenFinanceInputForm |
OpenFinanceInputForm |
astAmt |
资产总额:元 |
false |
number |
||
clientPlatformBid |
产融平台Bid |
true |
string |
||
corpName |
法人姓名 |
true |
string |
||
corpNo |
法人证件号 |
false |
string |
||
corpNumber |
法人联系电话 |
false |
string |
||
ctfExpDate |
证件到期日-yyyyMMdd |
false |
string |
||
ctfRegDate |
证件注册日-yyyyMMdd |
false |
string |
||
ctfType |
客户证件类型01-组织机构代码 02-统⼀社会信⽤代码 |
true |
string |
||
customBid |
客户Bid |
true |
string |
||
customName |
客户名称 |
true |
string |
||
customNo |
客户证件号 |
true |
string |
||
dtlAddr |
注册地址 |
false |
string |
||
financeYear |
财务信息所属年份 |
false |
string |
||
interestPaymentCode |
付息⽅式 1-卖⽅付息 2-买⽅付息 |
false |
string |
||
lbyAmt |
负债总额:元 |
false |
number |
||
linkName |
联系人 |
false |
string |
||
linkNumber |
联系电话 |
false |
string |
||
merchantId |
商户号 |
true |
string |
||
netAsset |
净资产:元 |
false |
number |
||
netProfit |
净利润:元 |
false |
number |
||
oppCtfexpDt |
经办⼈证件到期⽇ |
false |
string |
||
oppCtfrgstDt |
经办⼈证件注册⽇ |
false |
string |
||
oppNm |
经办⼈姓名 |
false |
string |
||
oppNo |
经办⼈证件号 |
false |
string |
||
oppType |
经办⼈证件类型 |
false |
string |
||
oppmbNo |
经办⼈⼿机号 |
false |
string |
||
permitNo |
开户许可证核准号 |
false |
string |
||
postAddr |
通讯地址 |
false |
string |
||
registerTime |
企业在平台注册的时间 |
false |
string |
||
requestNo |
请求号 |
true |
string |
||
saleIncm |
营业收⼊ |
false |
string |
响应状态:
状态码 |
说明 |
schema |
---|---|---|
200 |
OK |
Result«OpenFinanceOutputVO» |
201 |
Created |
|
401 |
Unauthorized |
|
403 |
Forbidden |
|
404 |
Not Found |
响应参数:
参数名称 |
参数说明 |
类型 |
schema |
---|---|---|---|
code |
string |
||
data |
OpenFinanceOutputVO |
OpenFinanceOutputVO |
|
status |
状态 0-成功 1-失败 |
string |
|
message |
string |
||
total |
integer(int32) |
integer(int32) |
响应示例:
{
"code": "",
"data": {
"status": ""
},
"message": "",
"total": 0
}
融资提交准备
接口地址:/if-finance/api/finance/v1/finance/prepare
请求方式:POST
请求数据类型:application/json
响应数据类型:*/*
接口描述:
融资提交准备
请求示例:
{
"annexInfoList": [
{
"annexLabel": "",
"annexName": "",
"annexType": "",
"ext": ""
}
],
"applyRate": 0,
"certCode": "",
"certType": "",
"clientPlatformBid": "",
"contractInfoList": [
{
"annexLabel": "",
"buyerName": "",
"contractAmount": 0,
"contractCode": "",
"contractName": "",
"endDate": 0,
"sellerName": "",
"signDate": 0
}
],
"customBid": "",
"customName": "",
"dueDate": 0,
"financeNo": "",
"financingAmount": 0,
"financingRatio": 0,
"interestPaymentCode": "",
"invoiceInfoList": [
{
"applyAmount": 0,
"invoiceHash": ""
}
],
"loanAccountBid": "",
"merchantId": "",
"nonce": 0,
"nonceStr": "",
"phone": "",
"repaymentAccountBid": "",
"requestNo": "",
"serviceFee": {
"amount": 0,
"fromAccountBid": "",
"toAccountBid": ""
},
"sign": "",
"signType": "",
"validateInfo": {
"hash": "",
"originalData": "",
"publicKey": "",
"signature": "",
"smartContractBid": "",
"smartContractLabel": "",
"validateType": ""
},
"voucherAmount": 0,
"voucherInfoList": [
{
"amount": 0,
"cashTime": 0,
"contractInfoList": [
{
"annexLabel": "",
"buyerName": "",
"contractAmount": 0,
"contractCode": "",
"contractName": "",
"endDate": 0,
"sellerName": "",
"signDate": 0
}
],
"createTime": 0,
"invoiceInfoList": [
{
"applyAmount": 0,
"invoiceHash": ""
}
],
"parentVoucherNo": "",
"payee": {
"certNo": "",
"certType": "",
"companyName": "",
"phone": ""
},
"payer": {
"certNo": "",
"certType": "",
"companyName": "",
"phone": ""
},
"rootVouchNo": "",
"voucherNo": ""
}
],
"voucherNo": ""
}
请求参数:
参数名称 |
参数说明 |
请求类型 |
是否必须 |
数据类型 |
schema |
---|---|---|---|---|---|
input |
input |
body |
true |
FinancePrepareInputForm |
FinancePrepareInputForm |
annexInfoList |
附件列表 |
true |
array |
ExAnnexInputForm |
|
annexLabel |
产融中台为每个文件提供的唯一标识 |
false |
string |
||
annexName |
附件名称 |
false |
string |
||
annexType |
附件类型:0001-个人征信授权书等,可用值:TYPE0,TYPE1,TYPE2,TYPE3,TYPE4,TYPE5,TYPE6 |
false |
string |
||
ext |
扩展字段 |
false |
string |
||
applyRate |
融资申请利率 |
true |
number |
||
certCode |
客户证件号 |
true |
string |
||
certType |
客户证件类型 |
true |
string |
||
clientPlatformBid |
产融平台bid |
true |
string |
||
contractInfoList |
合同信息列表 |
true |
array |
ExContractInputForm |
|
annexLabel |
文件唯一标识 |
false |
string |
||
buyerName |
买方名称 |
false |
string |
||
contractAmount |
合同金额:分 |
false |
number |
||
contractCode |
商务合同编号 |
false |
string |
||
contractName |
商务合同名称 |
false |
string |
||
endDate |
合同截止日期精确到日 |
false |
integer |
||
sellerName |
卖方名称 |
false |
string |
||
signDate |
合同签署日期精确到日 |
false |
integer |
||
customBid |
客户Bid |
true |
string |
||
customName |
客户名称 |
true |
string |
||
dueDate |
融资到期日 |
true |
integer(int64) |
||
financeNo |
融资申请单号 |
true |
string |
||
financingAmount |
融资申请金额(元) |
true |
number |
||
financingRatio |
融资比例 |
true |
number |
||
interestPaymentCode |
付息方式 1-卖方付息 2-买方付息,可用值:TYPE1,TYPE2 |
true |
string |
||
invoiceInfoList |
发票信息列表 |
true |
array |
ExInvoiceInputForm |
|
applyAmount |
本次融资申请占用金额(单位:分) |
false |
number |
||
invoiceHash |
发票Hash |
false |
string |
||
loanAccountBid |
融资申请人用于放款的账户BID |
true |
string |
||
merchantId |
商户号 |
true |
string |
||
nonce |
产融平台bid指定区块链交易的nonce值 |
true |
integer(int64) |
||
nonceStr |
随机字符串 |
true |
string |
||
phone |
联系电话 |
true |
string |
||
repaymentAccountBid |
融资申请人用于还款的账户BID |
true |
string |
||
requestNo |
请求号 |
true |
string |
||
serviceFee |
代收手续费信息 |
true |
ExServiceFeeInfoInputForm |
ExServiceFeeInfoInputForm |
|
amount |
代收手续费金额(单位:元) |
false |
number |
||
fromAccountBid |
代收手续费From账户BID |
false |
string |
||
toAccountBid |
代收手续费To账户BID |
false |
string |
||
sign |
签名串 |
true |
string |
||
signType |
签名方式 |
true |
string |
||
validateInfo |
主体确权信息(对融资申请基础信息进行签名) |
false |
ExValidateInfoInputForm |
ExValidateInfoInputForm |
|
hash |
区块链交易hash,当确权类型为“区块链交易自带签名”时使用,合约自动取值 |
false |
string |
||
originalData |
签名原文:当确权类型为“BID私钥签名”/“CA证书签名”时使用 |
false |
string |
||
publicKey |
签名公钥:当确权类型为“BID私钥签名”时使用 |
false |
string |
||
signature |
签名结果:当确权类型为“BID私钥签名”/“CA证书签名”时使用 |
false |
string |
||
smartContractBid |
业务合约BID,当确权类型为“业务合约衍生”时使用 |
false |
string |
||
smartContractLabel |
在业务合约中的标识,使用时根据合约类型进一步解析业务,当确权类型为“业务合约衍生”时使用 |
false |
string |
||
validateType |
确权类型:无/BID私钥签名/CA证书签名/业务合约衍生,可用值:BID_PRIVATE_KEY,BUSINESS_CONSTART,CA_PRIVATE_KEY,CURRENT_TX,NONE |
false |
string |
||
voucherAmount |
上一首凭证金额(元) |
true |
number |
||
voucherInfoList |
溯源凭证信息 |
true |
array |
ExVoucherInfoInputForm |
|
amount |
凭证金额:元 |
false |
number |
||
cashTime |
兑付时间 精确到日 |
false |
integer |
||
contractInfoList |
该凭证合同信息 |
false |
array |
ExContractInputForm |
|
annexLabel |
文件唯一标识 |
false |
string |
||
buyerName |
买方名称 |
false |
string |
||
contractAmount |
合同金额:分 |
false |
number |
||
contractCode |
商务合同编号 |
false |
string |
||
contractName |
商务合同名称 |
false |
string |
||
endDate |
合同截止日期精确到日 |
false |
integer |
||
sellerName |
卖方名称 |
false |
string |
||
signDate |
合同签署日期精确到日 |
false |
integer |
||
createTime |
凭证创建时间 精确到日 |
false |
integer |
||
invoiceInfoList |
该凭证发票信息 |
false |
array |
ExInvoiceInputForm |
|
applyAmount |
本次融资申请占用金额(单位:分) |
false |
number |
||
invoiceHash |
发票Hash |
false |
string |
||
parentVoucherNo |
上级凭证编号 |
false |
string |
||
payee |
该凭证收款方信息 |
false |
ExCompanyInfoInputForm |
ExCompanyInfoInputForm |
|
certNo |
证件号码 |
false |
string |
||
certType |
企业证件类型 |
false |
string |
||
companyName |
企业名称 |
false |
string |
||
phone |
手机号 |
false |
string |
||
payer |
该凭证付款方信息 |
false |
ExCompanyInfoInputForm |
ExCompanyInfoInputForm |
|
certNo |
证件号码 |
false |
string |
||
certType |
企业证件类型 |
false |
string |
||
companyName |
企业名称 |
false |
string |
||
phone |
手机号 |
false |
string |
||
rootVouchNo |
原始凭证编号 |
false |
string |
||
voucherNo |
凭证编号 |
false |
string |
||
voucherNo |
上一首凭证编号 |
true |
string |
响应状态:
状态码 |
说明 |
schema |
---|---|---|
200 |
OK |
Result«FinancePrepareVO» |
201 |
Created |
|
401 |
Unauthorized |
|
403 |
Forbidden |
|
404 |
Not Found |
响应参数:
参数名称 |
参数说明 |
类型 |
schema |
---|---|---|---|
code |
string |
||
data |
FinancePrepareVO |
FinancePrepareVO |
|
blob |
待签数据 |
string |
|
hash |
交易hash |
string |
|
message |
string |
||
total |
integer(int32) |
integer(int32) |
响应示例:
{
"code": "",
"data": {
"blob": "",
"hash": ""
},
"message": "",
"total": 0
}
融资提交
接口地址:/if-finance/api/finance/v1/finance/submit
请求方式:POST
请求数据类型:application/json
响应数据类型:*/*
接口描述:
融资提交
请求示例:
{
"blob": "",
"clientPlatformBid": "",
"hash": "",
"merchantId": "",
"nonceStr": "",
"publicKey": "",
"requestNo": "",
"sign": "",
"signStr": "",
"signType": ""
}
请求参数:
参数名称 |
参数说明 |
请求类型 |
是否必须 |
数据类型 |
schema |
---|---|---|---|---|---|
input |
input |
body |
true |
FinanceSubmitInputForm |
FinanceSubmitInputForm |
blob |
待签数据 |
false |
string |
||
clientPlatformBid |
产融平台bid |
true |
string |
||
hash |
hash |
false |
string |
||
merchantId |
商户号 |
true |
string |
||
nonceStr |
随机字符串 |
true |
string |
||
publicKey |
公钥 |
false |
string |
||
requestNo |
请求号 |
true |
string |
||
sign |
签名串 |
true |
string |
||
signStr |
签名串 |
false |
string |
||
signType |
签名方式 |
true |
string |
响应状态:
状态码 |
说明 |
schema |
---|---|---|
200 |
OK |
Result«FinanceSubmitVO» |
201 |
Created |
|
401 |
Unauthorized |
|
403 |
Forbidden |
|
404 |
Not Found |
响应参数:
参数名称 |
参数说明 |
类型 |
schema |
---|---|---|---|
code |
string |
||
data |
FinanceSubmitVO |
FinanceSubmitVO |
|
contractAddress |
合约地址 |
string |
|
label |
唯一标识 |
string |
|
message |
string |
||
total |
integer(int32) |
integer(int32) |
响应示例:
{
"code": "",
"data": {
"contractAddress": "",
"label": ""
},
"message": "",
"total": 0
}
融资指令转发
接口地址:/if-finance/api/finance/v1/finance/transmit
请求方式:POST
请求数据类型:application/json
响应数据类型:*/*
接口描述:
融资指令转发
请求示例:
{
"clientPlatformBid": "",
"contractAddress": "",
"hash": "",
"label": "",
"merchantId": "",
"nonceStr": "",
"requestNo": "",
"sign": "",
"signType": ""
}
请求参数:
参数名称 |
参数说明 |
请求类型 |
是否必须 |
数据类型 |
schema |
---|---|---|---|---|---|
input |
input |
body |
true |
FinanceTransmitInputForm |
FinanceTransmitInputForm |
clientPlatformBid |
产融平台bid |
true |
string |
||
contractAddress |
合约地址 |
false |
string |
||
hash |
交易hash |
false |
string |
||
label |
唯一标识 |
false |
string |
||
merchantId |
商户号 |
true |
string |
||
nonceStr |
随机字符串 |
true |
string |
||
requestNo |
请求号 |
true |
string |
||
sign |
签名串 |
true |
string |
||
signType |
签名方式 |
true |
string |
响应状态:
状态码 |
说明 |
schema |
---|---|---|
200 |
OK |
Result«FinanceTransmitVO» |
201 |
Created |
|
401 |
Unauthorized |
|
403 |
Forbidden |
|
404 |
Not Found |
响应参数:
参数名称 |
参数说明 |
类型 |
schema |
---|---|---|---|
code |
string |
||
data |
FinanceTransmitVO |
FinanceTransmitVO |
|
status |
状态 |
string |
|
message |
string |
||
total |
integer(int32) |
integer(int32) |
响应示例:
{
"code": "",
"data": {
"status": ""
},
"message": "",
"total": 0
}
融资服务:查询操作
融资成本试算
接口地址:/if-finance/api/finance/v1/finance-query/finance-fee
请求方式:POST
请求数据类型:application/json
响应数据类型:*/*
接口描述:
融资成本试算
接口功能描述:针对已经开通完融资产品的调用方,可以调用此接口,根据融资相关数据,计算本次融资所需的融资成本。
请求示例:
{
"clientPlatformBid": "",
"custName": "",
"custNo": "",
"dueDate": "",
"interestPaymentCode": "",
"invoiceNum": "",
"invoiceTotalAmount": "",
"isRttm": "",
"loanAmt": "",
"merchantId": "",
"requestNo": "",
"scoCod": "",
"scoName": ""
}
请求参数:
参数名称 |
参数说明 |
请求类型 |
是否必须 |
数据类型 |
schema |
---|---|---|---|---|---|
input |
input |
body |
true |
QueryFinanceFeeInputForm |
QueryFinanceFeeInputForm |
clientPlatformBid |
产融平台bid |
true |
string |
||
custName |
供应商企业名称(中信) |
true |
string |
||
custNo |
【民生:客户平台编号;招商:供应商证件号码;中信】 |
true |
string |
||
dueDate |
账款到期日(招商:单据最晚付款日期) |
true |
string |
||
interestPaymentCode |
false |
string(byte) |
|||
invoiceNum |
发票合计数量【民生为空,招商必填,上海为空】 |
true |
string |
||
invoiceTotalAmount |
发票合计金额【民生为空,招商必填,上海为空】 |
true |
string |
||
isRttm |
利率档期Y01-一年(中信) |
true |
string |
||
loanAmt |
申请融资金额:元 |
true |
string |
||
merchantId |
商户号 |
true |
string |
||
requestNo |
请求号 |
true |
string |
||
scoCod |
核心企业证件号码 |
true |
string |
||
scoName |
核心企业客户名称(中信) |
true |
string |
响应状态:
状态码 |
说明 |
schema |
---|---|---|
200 |
OK |
Result«QueryFinanceFeeVO» |
201 |
Created |
|
401 |
Unauthorized |
|
403 |
Forbidden |
|
404 |
Not Found |
响应参数:
参数名称 |
参数说明 |
类型 |
schema |
---|---|---|---|
code |
string |
||
data |
QueryFinanceFeeVO |
QueryFinanceFeeVO |
|
interestFee |
融资利率费:元 |
number |
|
serviceFee |
融资服务费:元 |
number |
|
message |
string |
||
total |
integer(int32) |
integer(int32) |
响应示例:
{
"code": "",
"data": {
"interestFee": 0,
"serviceFee": 0
},
"message": "",
"total": 0
}
融资结果查询
接口地址:/if-finance/api/finance/v1/finance-query/loan
请求方式:POST
请求数据类型:application/json
响应数据类型:*/*
接口描述:
融资结果查询
接口功能描述:针对已有明确融资结果(已放款、审批退回、还款中、已还款)的融资数据,可以根据此接口查询融资放款的数据。
请求示例:
{
"clientPlatformBid": "",
"requestNo": ""
}
请求参数:
参数名称 |
参数说明 |
请求类型 |
是否必须 |
数据类型 |
schema |
---|---|---|---|---|---|
query |
query |
body |
true |
FinanceLoanQuery |
FinanceLoanQuery |
clientPlatformBid |
产融平台Bid |
true |
string |
||
requestNo |
请求号 |
true |
string |
响应状态:
状态码 |
说明 |
schema |
---|---|---|
200 |
OK |
Result«FinanceLoanVO» |
201 |
Created |
|
401 |
Unauthorized |
|
403 |
Forbidden |
|
404 |
Not Found |
响应参数:
参数名称 |
参数说明 |
类型 |
schema |
---|---|---|---|
code |
string |
||
data |
FinanceLoanVO |
FinanceLoanVO |
|
amount |
融资金额,单位:分 |
integer(int64) |
|
dueDate |
融资到期日期 |
string |
|
financingNo |
融资申请编号 |
string |
|
financingTimeLimit |
融资期限,单位:天 |
integer(int32) |
|
fundingLoanNo |
行方业务编号 |
string |
|
interest |
利息,单位:分 |
integer(int64) |
|
loanAmount |
实际放款金额 |
number |
|
loanDate |
放款日期 |
string |
|
rate |
利率,单位:分 |
integer(int64) |
|
refuseReason |
失败原因 |
string |
|
requestNo |
请求号 |
string |
|
status |
融资处理结果 |
string |
|
message |
string |
||
total |
integer(int32) |
integer(int32) |
响应示例:
{
"code": "",
"data": {
"amount": 0,
"dueDate": "",
"financingNo": "",
"financingTimeLimit": 0,
"fundingLoanNo": "",
"interest": 0,
"loanAmount": 0,
"loanDate": "",
"rate": 0,
"refuseReason": "",
"requestNo": "",
"status": ""
},
"message": "",
"total": 0
}
还款结果查询
接口地址:/if-finance/api/finance/v1/finance-query/repayment
请求方式:POST
请求数据类型:application/json
响应数据类型:*/*
接口描述:
还款结果查询
接口功能描述:针对已还款的融资数据,可以根据此接口查询融资还款数据。
请求示例:
{
"clientPlatformBid": "",
"requestNo": ""
}
请求参数:
参数名称 |
参数说明 |
请求类型 |
是否必须 |
数据类型 |
schema |
---|---|---|---|---|---|
query |
query |
body |
true |
FinanceRepaymentQuery |
FinanceRepaymentQuery |
clientPlatformBid |
产融平台Bid |
true |
string |
||
requestNo |
请求号 |
true |
string |
响应状态:
状态码 |
说明 |
schema |
---|---|---|
200 |
OK |
Result«FinanceRepaymentVO» |
201 |
Created |
|
401 |
Unauthorized |
|
403 |
Forbidden |
|
404 |
Not Found |
响应参数:
参数名称 |
参数说明 |
类型 |
schema |
---|---|---|---|
code |
string |
||
data |
FinanceRepaymentVO |
FinanceRepaymentVO |
|
financingNo |
融资申请编号 |
string |
|
repaymentTime |
还款时间 |
string |
|
requestNo |
请求号 |
string |
|
status |
还款处理结果 |
string(byte) |
|
message |
string |
||
total |
integer(int32) |
integer(int32) |
响应示例:
{
"code": "",
"data": {
"financingNo": "",
"repaymentTime": "",
"requestNo": "",
"status": ""
},
"message": "",
"total": 0
}
开通信息查询
接口地址:/if-finance/api/finance/v1/custom/open-finance-query
请求方式:POST
请求数据类型:application/json
响应数据类型:*/*
接口描述:
开通信息查询
接口功能描述:调用开通产品接口之后,可调用此接口查询开通融资产品的相关信息。如果开通融资产品还未成功或者还未调用过开通融资产品 ,此接口返回null
请求示例:
{
"clientPlatformBid": "",
"requestNo": ""
}
请求参数:
参数名称 |
参数说明 |
请求类型 |
是否必须 |
数据类型 |
schema |
---|---|---|---|---|---|
query |
query |
body |
true |
OpenFinanceQuery |
OpenFinanceQuery |
clientPlatformBid |
产融平台bid |
false |
string |
||
requestNo |
请求号 |
true |
string |
响应状态:
状态码 |
说明 |
schema |
---|---|---|
200 |
OK |
Result«OpenFinanceQueryOutputVO» |
201 |
Created |
|
401 |
Unauthorized |
|
403 |
Forbidden |
|
404 |
Not Found |
响应参数:
参数名称 |
参数说明 |
类型 |
schema |
---|---|---|---|
code |
string |
||
data |
OpenFinanceQueryOutputVO |
OpenFinanceQueryOutputVO |
|
availableCreditLine |
剩余授信额度 |
integer(int64) |
|
bankAccountName |
供应商账户名称 |
string |
|
bankAccountNo |
供应商账户 |
string |
|
bankCode |
银行编码 |
string |
|
companyName |
企业名称 |
string |
|
contractNo |
交易合同编号 |
string |
|
createTime |
创建时间 |
integer(int64) |
|
creditLine |
授信额度 |
integer(int64) |
|
custNo |
平台编号社会统一信用代码 |
string |
|
factFeeRate |
保理手续费率 |
integer(int32) |
|
merchantId |
授信机构ID |
string |
|
rateMax |
利率最大值 |
integer(int32) |
|
rateMin |
利率最小值 |
integer(int32) |
|
ratioMax |
融资比率最大值 |
integer(int32) |
|
ratioMin |
融资比率最小值 |
integer(int32) |
|
repayType |
还款方式(计费融资) |
string(byte) |
|
status |
生效状态 |
string |
|
t24Id |
t24id |
string |
|
timeLimitMax |
融资期限最大值 |
integer(int32) |
|
timeLimitMin |
融资期限最小值 |
integer(int32) |
|
validBeginTime |
生效开始时间 |
integer(int64) |
|
validEndTime |
生效结束时间 |
integer(int64) |
|
validTime |
授信有效期(天) |
integer(int64) |
|
message |
string |
||
total |
integer(int32) |
integer(int32) |
响应示例:
{
"code": "",
"data": {
"availableCreditLine": 0,
"bankAccountName": "",
"bankAccountNo": "",
"bankCode": "",
"companyName": "",
"contractNo": "",
"createTime": 0,
"creditLine": 0,
"custNo": "",
"factFeeRate": 0,
"merchantId": "",
"rateMax": 0,
"rateMin": 0,
"ratioMax": 0,
"ratioMin": 0,
"repayType": "",
"status": "",
"t24Id": "",
"timeLimitMax": 0,
"timeLimitMin": 0,
"validBeginTime": 0,
"validEndTime": 0,
"validTime": 0
},
"message": "",
"total": 0
}
链上查询操作
接口地址:/if-finance/api/finance/v1/bc-query/query-status
请求方式:POST
请求数据类型:application/json
响应数据类型:*/*
接口描述:
链上查询操作
请求示例:
{
"hash": "",
"requestNo": ""
}
请求参数:
参数名称 |
参数说明 |
请求类型 |
是否必须 |
数据类型 |
schema |
---|---|---|---|---|---|
query |
query |
body |
true |
BcOperateStatusQuery |
BcOperateStatusQuery |
hash |
交易hash |
true |
string |
||
requestNo |
请求号 |
true |
string |
响应状态:
状态码 |
说明 |
schema |
---|---|---|
200 |
OK |
Result«BcOperateStatusVO» |
201 |
Created |
|
401 |
Unauthorized |
|
403 |
Forbidden |
|
404 |
Not Found |
响应参数:
参数名称 |
参数说明 |
类型 |
schema |
---|---|---|---|
code |
string |
||
data |
BcOperateStatusVO |
BcOperateStatusVO |
|
status |
状态 1-初始化 2-成功 3-失败 4-上链中 |
string(byte) |
|
message |
string |
||
total |
integer(int32) |
integer(int32) |
响应示例:
{
"code": "",
"data": {
"status": ""
},
"message": "",
"total": 0
}
查询指定账户当前实时nonce值
服务调用:当前接口获取到的nonce值,+1之后,作为入参调用融资提交准备接口
接口地址:/if-finance/api/finance/v1/blockchain/get-nonce
请求方式:POST
请求数据类型:application/json
响应数据类型:*/*
接口描述:
请求示例:
{
"accountAddress": "",
"requestNo": ""
}
请求参数:
参数名称 |
参数说明 |
请求类型 |
是否必须 |
数据类型 |
schema |
---|---|---|---|---|---|
input |
input |
body |
true |
AccountNonceQuery |
AccountNonceQuery |
accountAddress |
待查询的区块链地址 |
true |
string |
||
requestNo |
请求号 |
true |
string |
响应状态:
状态码 |
说明 |
schema |
---|---|---|
200 |
OK |
Result«long» |
201 |
Created |
|
401 |
Unauthorized |
|
403 |
Forbidden |
|
404 |
Not Found |
响应参数:
参数名称 |
参数说明 |
类型 |
schema |
---|---|---|---|
code |
string |
||
data |
integer(int64) |
integer(int64) |
|
message |
string |
||
total |
integer(int32) |
integer(int32) |
响应示例:
{
"code": "",
"data": 0,
"message": "",
"total": 0
}
清结算服务
简介:用于产融清结算信息操作,包含清结算信息预览,清算支付,清算调账等操作。
状态机

操作类接口调用流程
步骤1
清结算提交准备接口,涉及到资金清算路径收付款账户的入参,需使用账户服务登记过的子账户或结算户bid,目前仅子账户可在申请清结算的时候使用线上清算(payMode为ONLINE)功能,结算户仅可使用线下结算(payMode为OFFLINE)的功能。
清结算提交准备接口,入参nonce值由第三方产融平台自行维护,可通过辅助接口:/api/settlement/v1/blockchain/get-nonce获取指定账户在链上的实时nonce值,+1后作为入参。
清结算提交准备接口,返回的待签名数据需使用clientPlatformBid对应账户私钥进行数据签名。
入参有ISSUE类业务登记时,认为是一笔新的清结算业务登记,数据提交成功后会返回该笔业务对应的合约地址+业务唯一标识label。若要基于此业务追加非ISSUE的资产流转,需指定“合约地址+业务唯一标识label”,使用步骤1继续追加。
步骤1完成后,需等待区块链交易执行结果,区块链交易执行成功,该操作成功,业务状态为“业务上链”。
步骤2
申请清结算接口,依赖步骤1得到的“合约地址+业务唯一标识label.
申请清结算接口,入参nonce值由第三方产融平台自行维护,可通过辅助接口:/api/settlement/v1/blockchain/get-nonce获取指定账户在链上的实时nonce值,+1后作为入参。
申请清结算接口,返回的待签名数据需使用clientPlatformBid对应账户私钥进行数据签名。
步骤2完成后,需等待区块链交易执行结果,区块链交易执行成功,该操作成功,业务状态为“申请清结算。
步骤3
开始清结算接口,依赖步骤1得到的“合约地址+业务唯一标识label”。
若选择子账户+线上清算模式,需提前调用账户服务的子账户余额查询接口,确保ISSUE的资金清算路径from账户有足够的余额进行兑付。
步骤3完成后,需等待区块链交易执行结果,区块链交易执行成功,该操作成功,业务状态为“开始清结算”。
清结算服务会对该笔业务进行清结算处理,处理进度可通过“清结算结果查询”接口进行查询。
清结算服务:业务操作
清算提交准备
接口地址:/if-settlement/api/settlement/v1/settlement/prepare
请求方式:POST
请求数据类型:application/json
响应数据类型:*/*
接口描述:
清算提交准备-合约
请求示例:
{
"clientPlatformBid": "",
"contractAddress": "",
"contractInputFormMap": {
"additionalProperties1": {
"dataVersion": "",
"finance": {
"amount": 0,
"cashTime": 0,
"dataVersion": "",
"ext": "",
"financeAmount": 0,
"financeMode": "",
"financeRatio": 0,
"from": "",
"interestRepaid": 0,
"loanAmount": 0,
"loanStatus": true,
"loanTime": 0,
"loanType": "",
"principalRepaid": 0,
"rate": 0,
"repayType": "",
"serviceCommissionAmount": 0,
"serviceCommissionFromAccBid": "",
"serviceCommissionToAccBid": "",
"settlementType": "",
"timeLimit": 0,
"to": "",
"type": "",
"voucherAmount": 0,
"voucherNo": ""
},
"pub": {
"action": "",
"no": "",
"parentNo": "",
"type": ""
},
"transaction": {
"amount": 0,
"from": "",
"to": ""
},
"validateInfo": [
{
"originalData": "",
"publicKey": "",
"signature": "",
"smartContractBid": "",
"smartContractLabel": "",
"txHash": "",
"validateType": ""
}
],
"voucher": {
"amount": 0,
"amountPaid": 0,
"cashTime": 0,
"dataVersion": "",
"ext": "",
"from": "",
"serviceCommissionAmount": 0,
"serviceCommissionFromAccBid": "",
"serviceCommissionToAccBid": "",
"settlementType": "",
"to": "",
"type": ""
}
}
},
"label": "",
"merchantId": "",
"nonce": 0,
"nonceStr": "",
"requestNo": "",
"sign": "",
"signType": ""
}
请求参数:
参数名称 |
参数说明 |
请求类型 |
是否必须 |
数据类型 |
schema |
---|---|---|---|---|---|
input |
input |
body |
true |
SettlementPrepareInputForm |
SettlementPrepareInputForm |
clientPlatformBid |
产融平台bid |
true |
string |
||
contractAddress |
合约地址 |
true |
string |
||
contractInputFormMap |
合约入参 |
false |
BaseContractInputForm |
BaseContractInputForm |
|
dataVersion |
数据版本,可用值:V1 |
false |
string |
||
finance |
false |
DetailFinancePrivInputForm |
DetailFinancePrivInputForm |
||
amount |
资金清算的确切金额(分) |
false |
integer |
||
cashTime |
承诺付款日期(精确到日,毫秒级时间戳) |
false |
integer |
||
dataVersion |
数据版本,可用值:V1 |
false |
string |
||
ext |
扩展 |
false |
string |
||
financeAmount |
融资金额(分) |
false |
integer |
||
financeMode |
融资模式:ASSIGNMENT_FINANCING 转让融资;PLEDGE_FINANCING 质押融资,可用值:ASSIGNMENT_FINANCING,PLEDGE_FINANCING |
false |
string |
||
financeRatio |
融资比率(ppm, 百万分之(几),1ppm=0.0001%) |
false |
integer |
||
from |
付款账户地址(资金清算路径付款账户) |
false |
string |
||
interestRepaid |
已还利息(分) |
false |
integer |
||
loanAmount |
放款金额(分) |
false |
integer |
||
loanStatus |
放款状态:false-未放款;true-已放款 |
false |
boolean |
||
loanTime |
放款时间(精确到日,毫秒级时间戳) |
false |
integer |
||
loanType |
放款方式:ONLINE_PAY_TYPE 线上放款;OFFLINE_PAY_TYPE 线下放款,可用值:OFFLINE_PAY_TYPE,ONLINE_PAY_TYPE |
false |
string |
||
principalRepaid |
已还本金(分) |
false |
integer |
||
rate |
利率(ppm,百万分之(几),1ppm=0.0001%) |
false |
integer |
||
repayType |
还款方式:TYPE1-一次性还本付息;TYPE2-计费融资,可用值:TYPE1,TYPE2 |
false |
string |
||
serviceCommissionAmount |
代收手续费金额(分,从from到代收手续费账户) |
false |
integer |
||
serviceCommissionFromAccBid |
代收手续费From账户BID |
false |
string |
||
serviceCommissionToAccBid |
代收手续费To账户BID |
false |
string |
||
settlementType |
清算方式:NONE 不清算;TRANSFER 转账;WITHDRAW 提现,可用值:NONE,TRANSFER,WITHDRAW |
false |
string |
||
timeLimit |
融资期限(天) |
false |
integer |
||
to |
收款账户地址(资金清算路径收款账户) |
false |
string |
||
type |
资金业务类型:贸易金额、融资本金、融资利息等,可用值:TYPE1,TYPE2,TYPE3 |
false |
string |
||
voucherAmount |
凭证金额(分) |
false |
integer |
||
voucherNo |
融资凭证编号/质押物凭证编号 |
false |
string |
||
pub |
pub |
false |
DetailPubInputForm |
DetailPubInputForm |
|
action |
业务动作:ISSUE/TRANSFER_VOUCHER/TRANSFER_FINANCE,可用值:ISSUE,REVOKE_TRANSFER_ABN,TRANSFER_ABN,TRANSFER_FINANCE,TRANSFER_VOUCHER |
false |
string |
||
no |
业务编号 |
false |
string |
||
parentNo |
父业务编号 |
false |
string |
||
type |
资产类型:ACCOUNTS_RECEIVABLE-应收账款;ORDER-订单,可用值:ACCOUNTS_RECEIVABLE,ORDER |
false |
string |
||
transaction |
transaction |
false |
TransactionInputForm |
TransactionInputForm |
|
amount |
资产额度 |
false |
integer |
||
from |
资产转出主体BID |
false |
string |
||
to |
资产转入主体BID |
false |
string |
||
validateInfo |
validateInfo |
false |
array |
ValidateInfoInputForm |
|
originalData |
签名原文:当确权类型为“BID私钥签名”/“CA证书签名”时使用 |
false |
string |
||
publicKey |
签名公钥:当确权类型为“BID私钥签名”时使用 |
false |
string |
||
signature |
签名结果:当确权类型为“BID私钥签名”/“CA证书签名”时使用 |
false |
string |
||
smartContractBid |
业务合约BID,当确权类型为“业务合约衍生”时使用 |
false |
string |
||
smartContractLabel |
在业务合约中的标识,使用时根据合约类型进一步解析业务,当确权类型为“业务合约衍生”时使用 |
false |
string |
||
txHash |
区块链交易hash,当确权类型为“区块链交易自带签名”时使用,合约自动取值 |
false |
string |
||
validateType |
确权类型:无/BID私钥签名/CA证书签名/业务合约衍生,可用值:BID_PRIVATE_KEY,BUSINESS_CONSTART,CA_PRIVATE_KEY,CURRENT_TX,NONE |
false |
string |
||
voucher |
false |
DetailVoucherPrivInputForm |
DetailVoucherPrivInputForm |
||
amount |
资金清算的确切金额(分) |
false |
integer |
||
amountPaid |
已付金额(分) |
false |
integer |
||
cashTime |
承诺付款日期(精确到日,毫秒级时间戳) |
false |
integer |
||
dataVersion |
数据版本,可用值:V1 |
false |
string |
||
ext |
扩展 |
false |
string |
||
from |
付款账户地址(资金清算路径付款账户) |
false |
string |
||
serviceCommissionAmount |
代收手续费金额(分,从from到代收手续费账户) |
false |
integer |
||
serviceCommissionFromAccBid |
代收手续费From账户BID |
false |
string |
||
serviceCommissionToAccBid |
代收手续费To账户BID |
false |
string |
||
settlementType |
清算方式:NONE 不清算;TRANSFER 转账;WITHDRAW 提现,可用值:NONE,TRANSFER,WITHDRAW |
false |
string |
||
to |
收款账户地址(资金清算路径收款账户) |
false |
string |
||
type |
资金业务类型:贸易金额、融资本金、融资利息等,可用值:TYPE1,TYPE2,TYPE3 |
false |
string |
||
label |
唯一标识 |
true |
string |
||
merchantId |
商户号 |
true |
string |
||
nonce |
产融平台Bid指定区块链交易的nonce值 |
true |
integer(int64) |
||
nonceStr |
随机字符串 |
true |
string |
||
requestNo |
请求号 |
true |
string |
||
sign |
签名串 |
true |
string |
||
signType |
签名方式 |
true |
string |
响应状态:
状态码 |
说明 |
schema |
---|---|---|
200 |
OK |
Result«SettlementPrepareVO» |
201 |
Created |
|
401 |
Unauthorized |
|
403 |
Forbidden |
|
404 |
Not Found |
响应参数:
参数名称 |
参数说明 |
类型 |
schema |
---|---|---|---|
code |
string |
||
data |
SettlementPrepareVO |
SettlementPrepareVO |
|
blob |
待签数据 |
string |
|
hash |
交易hash |
string |
|
message |
string |
||
total |
integer(int32) |
integer(int32) |
响应示例:
{
"code": "",
"data": {
"blob": "",
"hash": ""
},
"message": "",
"total": 0
}
申请清结算-准备阶段
接口地址:/if-settlement/api/settlement/v1/settlement/apply
请求方式:POST
请求数据类型:application/json
响应数据类型:*/*
接口描述:
申请清结算-准备阶段
请求示例:
{
"clientPlatformBid": "",
"contractAddress": "",
"label": "",
"merchantId": "",
"nonce": 0,
"nonceStr": "",
"requestNo": "",
"settlementType": "",
"sign": "",
"signType": ""
}
请求参数:
参数名称 |
参数说明 |
请求类型 |
是否必须 |
数据类型 |
schema |
---|---|---|---|---|---|
input |
input |
body |
true |
SettlementApplyInputForm |
SettlementApplyInputForm |
clientPlatformBid |
产融平台bid |
true |
string |
||
contractAddress |
合约地址 |
true |
string |
||
label |
唯一标识 |
true |
string |
||
merchantId |
商户号 |
true |
string |
||
nonce |
产融平台Bid指定区块链交易的nonce值 |
true |
integer(int64) |
||
nonceStr |
随机字符串 |
true |
string |
||
requestNo |
请求号 |
true |
string |
||
settlementType |
结算类型:线上结算/线下结算,可用值:OFFLINE,ONLINE |
true |
string |
||
sign |
签名串 |
true |
string |
||
signType |
签名方式 |
true |
string |
响应状态:
状态码 |
说明 |
schema |
---|---|---|
200 |
OK |
Result«SettlementApplyVO» |
201 |
Created |
|
401 |
Unauthorized |
|
403 |
Forbidden |
|
404 |
Not Found |
响应参数:
参数名称 |
参数说明 |
类型 |
schema |
---|---|---|---|
code |
string |
||
data |
SettlementApplyVO |
SettlementApplyVO |
|
blob |
待签数据 |
string |
|
hash |
交易hash |
string |
|
message |
string |
||
total |
integer(int32) |
integer(int32) |
响应示例:
{
"code": "",
"data": {
"blob": "",
"hash": ""
},
"message": "",
"total": 0
}
开始清结算
接口地址:/if-settlement/api/settlement/v1/settlement/start-settle
请求方式:POST
请求数据类型:application/json
响应数据类型:*/*
接口描述:
开始清结算
请求示例:
{
"bankAccountType": "",
"capitalPathType": "",
"channelCode": "",
"clientPlatformBid": "",
"contractAddress": "",
"label": "",
"merchantId": "",
"nonceStr": "",
"payMode": "",
"requestNo": "",
"sign": "",
"signType": ""
}
请求参数:
参数名称 |
参数说明 |
请求类型 |
是否必须 |
数据类型 |
schema |
---|---|---|---|---|---|
input |
input |
body |
true |
SettlementStartInputForm |
SettlementStartInputForm |
bankAccountType |
子账户模式,可用值:CARD,PLATFORM_ACCOUNT,SUB_ACC |
true |
string |
||
capitalPathType |
资金清分方式,可用值:ENDTOEND,FINANCEENDTOEND,FINANCEGRADUALLY,GRADUALLY,GRADUALLY_CORE_REPAY_DEFAULT_DONE |
true |
string |
||
channelCode |
结算渠道配置 |
true |
string |
||
clientPlatformBid |
产融平台bid |
true |
string |
||
contractAddress |
合约地址 |
true |
string |
||
label |
唯一标识 |
true |
string |
||
merchantId |
商户号 |
true |
string |
||
nonceStr |
随机字符串 |
true |
string |
||
payMode |
结算方式,可用值:OFFLINE,ONLINE |
true |
string |
||
requestNo |
请求号 |
true |
string |
||
sign |
签名串 |
true |
string |
||
signType |
签名方式 |
true |
string |
响应状态:
状态码 |
说明 |
schema |
---|---|---|
200 |
OK |
Result«SettlementStartVO» |
201 |
Created |
|
401 |
Unauthorized |
|
403 |
Forbidden |
|
404 |
Not Found |
响应参数:
参数名称 |
参数说明 |
类型 |
schema |
---|---|---|---|
code |
string |
||
data |
SettlementStartVO |
SettlementStartVO |
|
sourceAddress |
交易发起人 |
string |
|
txHash |
交易hash |
string |
|
message |
string |
||
total |
integer(int32) |
integer(int32) |
响应示例:
{
"code": "",
"data": {
"sourceAddress": "",
"txHash": ""
},
"message": "",
"total": 0
}
清结算业务区块链交易提交
接口地址:/if-settlement/api/settlement/v1/settlement/submit
请求方式:POST
请求数据类型:application/json
响应数据类型:*/*
接口描述:
清算提交-合约
请求示例:
{
"blob": "",
"clientPlatformBid": "",
"hash": "",
"merchantId": "",
"nonceStr": "",
"publicKey": "",
"requestNo": "",
"sign": "",
"signStr": "",
"signType": ""
}
请求参数:
参数名称 |
参数说明 |
请求类型 |
是否必须 |
数据类型 |
schema |
---|---|---|---|---|---|
input |
input |
body |
true |
SettlementSubmitInputForm |
SettlementSubmitInputForm |
blob |
待签数据 |
false |
string |
||
clientPlatformBid |
产融平台bid |
true |
string |
||
hash |
hash |
true |
string |
||
merchantId |
商户号 |
true |
string |
||
nonceStr |
随机字符串 |
true |
string |
||
publicKey |
公钥 |
false |
string |
||
requestNo |
请求号 |
true |
string |
||
sign |
签名串 |
true |
string |
||
signStr |
签名串 |
true |
string |
||
signType |
签名方式 |
true |
string |
响应状态:
状态码 |
说明 |
schema |
---|---|---|
200 |
OK |
Result«SettlementSubmitVO» |
201 |
Created |
|
401 |
Unauthorized |
|
403 |
Forbidden |
|
404 |
Not Found |
响应参数:
参数名称 |
参数说明 |
类型 |
schema |
---|---|---|---|
code |
string |
||
data |
SettlementSubmitVO |
SettlementSubmitVO |
|
contractAddress |
合约地址 |
string |
|
label |
唯一标识 |
string |
|
message |
string |
||
total |
integer(int32) |
integer(int32) |
响应示例:
{
"code": "",
"data": {
"contractAddress": "",
"label": ""
},
"message": "",
"total": 0
}
调账
接口地址:/if-settlement/api/settlement/v1/settlement/order
请求方式:POST
请求数据类型:application/json
响应数据类型:*/*
接口描述:
调账
请求示例:
{
"bankAccountType": "",
"capitalPathType": "",
"clientPlatformBid": "",
"contractAddress": "",
"label": "",
"merchantId": "",
"nonceStr": "",
"payMode": "",
"requestId": "",
"requestNo": "",
"sign": "",
"signType": ""
}
请求参数:
参数名称 |
参数说明 |
请求类型 |
是否必须 |
数据类型 |
schema |
---|---|---|---|---|---|
input |
input |
body |
true |
CheckContractInputForm |
CheckContractInputForm |
bankAccountType |
子账户模式,可用值:CARD,PLATFORM_ACCOUNT,SUB_ACC |
true |
string |
||
capitalPathType |
资金清分方式,可用值:ENDTOEND,FINANCEENDTOEND,FINANCEGRADUALLY,GRADUALLY,GRADUALLY_CORE_REPAY_DEFAULT_DONE |
true |
string |
||
clientPlatformBid |
产融平台bid |
true |
string |
||
contractAddress |
合约地址 |
true |
string |
||
label |
合约唯一标识 |
true |
string |
||
merchantId |
商户号 |
true |
string |
||
nonceStr |
随机字符串 |
true |
string |
||
payMode |
结算方式,可用值:OFFLINE,ONLINE |
true |
string |
||
requestId |
请求号 |
true |
string |
||
requestNo |
请求号 |
true |
string |
||
sign |
签名串 |
true |
string |
||
signType |
签名方式 |
true |
string |
响应状态:
状态码 |
说明 |
schema |
---|---|---|
200 |
OK |
Result«ContractVO» |
201 |
Created |
|
401 |
Unauthorized |
|
403 |
Forbidden |
|
404 |
Not Found |
响应参数:
参数名称 |
参数说明 |
类型 |
schema |
---|---|---|---|
code |
string |
||
data |
ContractVO |
ContractVO |
|
requestId |
string |
||
message |
string |
||
total |
integer(int32) |
integer(int32) |
响应示例:
{
"code": "",
"data": {
"requestId": ""
},
"message": "",
"total": 0
}
清结算服务:查询操作
清结算资金路径预览
接口地址:/if-settlement/api/settlement/v1/settlement/list/payments
请求方式:POST
请求数据类型:application/json
响应数据类型:*/*
接口描述:
根据合约号(结算渠道,资金路径)查询付款还款列表信息 (支持批量)
接口功能描述:
数据状态是“业务上链”、“申请清结算”均可调用清结算预览,预览资金清算数据情况。
请求示例:
{
"clearedData": [
{
"capitalPathType": "",
"channelCode": "",
"contractAddress": "",
"label": "",
"requestId": ""
}
],
"clientPlatformBid": "",
"merchantId": "",
"nonceStr": "",
"requestNo": "",
"sign": "",
"signType": ""
}
请求参数:
参数名称 |
参数说明 |
请求类型 |
是否必须 |
数据类型 |
schema |
---|---|---|---|---|---|
input |
input |
body |
true |
QueryContractQuery |
QueryContractQuery |
clearedData |
请求参数 |
true |
array |
ContractClearedData |
|
capitalPathType |
资金清分方式,可用值:ENDTOEND,FINANCEENDTOEND,FINANCEGRADUALLY,GRADUALLY,GRADUALLY_CORE_REPAY_DEFAULT_DONE |
true |
string |
||
channelCode |
结算渠道配置 |
true |
string |
||
contractAddress |
合约地址 |
true |
string |
||
label |
合约唯一标识 |
true |
string |
||
requestId |
请求号 |
true |
string |
||
clientPlatformBid |
产融平台bid |
true |
string |
||
merchantId |
商户号 |
true |
string |
||
nonceStr |
随机字符串 |
true |
string |
||
requestNo |
请求号 |
true |
string |
||
sign |
签名串 |
true |
string |
||
signType |
签名方式 |
true |
string |
响应状态:
状态码 |
说明 |
schema |
---|---|---|
200 |
OK |
Result |
201 |
Created |
|
401 |
Unauthorized |
|
403 |
Forbidden |
|
404 |
Not Found |
响应参数:
参数名称 |
参数说明 |
类型 |
schema |
---|---|---|---|
code |
string |
||
data |
object |
||
message |
string |
||
total |
integer(int32) |
integer(int32) |
响应示例:
{
"code": "",
"data": {},
"message": "",
"total": 0
}
清算结果查询
接口地址:/if-settlement/api/settlement/v1/settlement-query/execute-result
请求方式:POST
请求数据类型:application/json
响应数据类型:*/*
接口描述:
清算结果查询
接口功能描述:数据状态是“执行清结算”、“待调账”、“清结算完成”均可调用清结算结果查询,查询清结算实时进度。
请求示例:
{
"clientPlatformBid": "",
"contractAddress": "",
"label": "",
"requestNo": ""
}
请求参数:
参数名称 |
参数说明 |
请求类型 |
是否必须 |
数据类型 |
schema |
---|---|---|---|---|---|
query |
query |
body |
true |
SettlementResultQuery |
SettlementResultQuery |
clientPlatformBid |
产融平台Bid |
true |
string |
||
contractAddress |
合约地址 |
true |
string |
||
label |
唯一标识 |
true |
string |
||
requestNo |
请求号 |
true |
string |
响应状态:
状态码 |
说明 |
schema |
---|---|---|
200 |
OK |
Result«SettlementExecuteResultVO» |
201 |
Created |
|
401 |
Unauthorized |
|
403 |
Forbidden |
|
404 |
Not Found |
响应参数:
参数名称 |
参数说明 |
类型 |
schema |
---|---|---|---|
code |
string |
||
data |
SettlementExecuteResultVO |
SettlementExecuteResultVO |
|
detailList |
清算明细 |
array |
SettlementExecuteDetailVO |
amount |
结算金额 |
integer |
|
from |
付款账户地址(资金清算路径付款账户) |
string |
|
payTime |
结算时间 |
integer |
|
requestNo |
业务编号 |
string |
|
status |
结算状态 |
string |
|
to |
收款账户地址(资金清算路径收款账户) |
string |
|
requestNo |
请求号 |
string |
|
message |
string |
||
total |
integer(int32) |
integer(int32) |
响应示例:
{
"code": "",
"data": {
"detailList": [
{
"amount": 0,
"from": "",
"payTime": 0,
"requestNo": "",
"status": "",
"to": ""
}
],
"requestNo": ""
},
"message": "",
"total": 0
}
出金结果查询
接口地址:/if-settlement/api/settlement/v1/settlement-query/withdraw-result
请求方式:POST
请求数据类型:application/json
响应数据类型:*/*
接口描述:
出金结果查询
请求示例:
{
"financeNo": [],
"requestNo":""
}
请求参数:
参数名称 |
参数说明 |
请求类型 |
是否必须 |
数据类型 |
schema |
---|---|---|---|---|---|
query |
query |
body |
true |
SettlementWithdrawResultQuery |
SettlementWithdrawResultQuery |
financeNo |
融资编号 |
true |
array |
string |
|
requestNo |
请求号 |
true |
响应状态:
状态码 |
说明 |
schema |
---|---|---|
200 |
OK |
Result«SettlementWithdrawResultVO» |
201 |
Created |
|
401 |
Unauthorized |
|
403 |
Forbidden |
|
404 |
Not Found |
响应参数:
参数名称 |
参数说明 |
类型 |
schema |
---|---|---|---|
code |
string |
||
data |
SettlementWithdrawResultVO |
SettlementWithdrawResultVO |
|
orderDomains |
订单列表 |
array |
SettlementOrderDomain对象 |
action |
action 动作 |
string |
|
amount |
交易金额:单位元 |
number |
|
bankAccountType |
银行账户类型(0:子账户1:结算户) |
string |
|
bidPayee |
收款方bid |
string |
|
bidPayer |
付款方bid |
string |
|
capitalType |
资金清分方式:gradually,逐级清算,end-to-end首尾兑付 |
string |
|
contractAddress |
合约地址 |
string |
|
created |
string |
||
deleted |
是否删除 |
boolean |
|
id |
integer |
||
label |
业务唯一标识 |
string |
|
no |
业务编号 |
string |
|
nodeNo |
节点编号 |
string |
|
orderId |
清算订单ID |
string |
|
parentNodeNo |
父节点编号 |
string |
|
payMode |
支付方式(1:线上2:线下) |
string |
|
remark |
备注 |
string |
|
requestId |
请求号 |
string |
|
settlementType |
交易类型:TRANSFER NONE WITHDRAW |
string |
|
state |
状态1待付款、2进行中、3已付款、4付款失败 |
string |
|
updated |
string |
||
version |
版本号 |
string |
|
message |
string |
||
total |
integer(int32) |
integer(int32) |
响应示例:
{
"code": "",
"data": {
"orderDomains": [
{
"action": "",
"amount": 0,
"bankAccountType": "",
"bidPayee": "",
"bidPayer": "",
"capitalType": "",
"contractAddress": "",
"created": "",
"deleted": true,
"id": 0,
"label": "",
"no": "",
"nodeNo": "",
"orderId": "",
"parentNodeNo": "",
"payMode": "",
"remark": "",
"requestId": "",
"settlementType": "",
"state": "",
"updated": "",
"version": ""
}
]
},
"message": "",
"total": 0
}
查询指定账户当前实时nonce值
接口地址:/if-settlement/api/settlement/v1/blockchain/get-nonce
请求方式:POST
请求数据类型:application/json
响应数据类型:*/*
接口描述:
请求示例:
{
"accountAddress": "",
"requestNo": ""
}
请求参数:
参数名称 |
参数说明 |
请求类型 |
是否必须 |
数据类型 |
schema |
---|---|---|---|---|---|
input |
input |
body |
true |
AccountNonceQuery |
AccountNonceQuery |
accountAddress |
待查询的区块链地址 |
true |
string |
||
requestNo |
请求号 |
true |
string |
响应状态:
状态码 |
说明 |
schema |
---|---|---|
200 |
OK |
Result«long» |
201 |
Created |
|
401 |
Unauthorized |
|
403 |
Forbidden |
|
404 |
Not Found |
响应参数:
参数名称 |
参数说明 |
类型 |
schema |
---|---|---|---|
code |
string |
||
data |
integer(int64) |
integer(int64) |
|
message |
string |
||
total |
integer(int32) |
integer(int32) |
响应示例:
{
"code": "",
"data": 0,
"message": "",
"total": 0
}
文件存储服务
简介:星火产融中台通用文件上传下载接口。
文件传输接口
下载文件
接口地址:/if-oss/api/oss/v1/downFile
请求方式:GET
请求数据类型:application/x-www-form-urlencoded
响应数据类型:*/*
接口描述:
请求参数:
参数名称 |
参数说明 |
请求类型 |
是否必须 |
数据类型 |
schema |
---|---|---|---|---|---|
fileUrl |
fileUrl |
query |
true |
string |
响应状态:
状态码 |
说明 |
schema |
---|---|---|
200 |
OK |
|
401 |
Unauthorized |
|
403 |
Forbidden |
|
404 |
Not Found |
响应参数:
暂无
响应示例:
文件上传
接口地址:/if-oss/api/oss/v1/upload
请求方式:POST
请求数据类型:application/json
响应数据类型:*/*
接口描述:
请求参数:
暂无
响应状态:
状态码 |
说明 |
schema |
---|---|---|
200 |
OK |
Result«List«文件上传结果»» |
201 |
Created |
|
401 |
Unauthorized |
|
403 |
Forbidden |
|
404 |
Not Found |
响应参数:
参数名称 |
参数说明 |
类型 |
schema |
---|---|---|---|
code |
string |
||
data |
array |
文件上传结果 |
|
fileUrl |
产融文件上传唯一标识 |
string |
|
requestFileId |
调用方请求文件标识 |
string |
|
message |
string |
||
total |
integer(int32) |
integer(int32) |
响应示例:
{
"code": "",
"data": [
{
"fileUrl": "",
"requestFileId": ""
}
],
"message": "",
"total": 0
}