创建企业
1、接口描述
使用登录、发票或申报等相关接口前,需要在企享云创建企业信息,可通过此接口传入企业信息以备后用。
2、接口地址
调用方式 | 功能模块 | 接口地址 | 协议 |
---|---|---|---|
POST | 发票云认证 | /v1/AGG/org/create | HTTP/1.1 |
POST | 税局登录归集 | /v1/AGG/org/create | HTTP/1.1 |
POST | 企业税申报 | /v1/AGG/org/createInfo | HTTP/1.1 |
3、请求参数
- 参数说明
请求参数为JSON格式。
参数名称 | 参数类型 | 是否必填 | 说明 |
---|---|---|---|
aggOrgName | String | 是 | 企业名称 |
nsrsbh | String | 是 | 企业纳税人识别号 |
encryptionType | Integer | 否 | 加密类型:1表示加密,默认0不加密 |
isCollection | Boolean | 否 | 【企业税申报专用】是否同时发起采集税务信息任务,非必传,默认及空为true,true代表同时发起采集税务信息任务,false表示不同时发起采集税务信息任务 |
isFprz | Boolean | 条件必传 | 【发票云认证专用】使用发票云认证,请传true;其他情况可不传。 |
orgTaxLogin.dq | String | 是 | 省市地区代码 |
orgTaxLogin.gdsdlfs | String | 是 | 登录方式(9新版账号密码登录 11新版税务数字证书登录,14 远程登录) |
orgTaxLogin.gdsdlzh | String | 是 | 登录账号,当encryptionType=1时,有值必须加密;(注:【新版账号密码登录】此字段保存个人登录账号) |
orgTaxLogin.gdsdlmm | String | 是 | 登录密码,当encryptionType=1时,有值必须加密 |
orgTaxLogin.grdlfs | String | 条件必传 | 个人登录方式(1用户名密码),北京地区账号需要传以下二次身份验证需要的个人账号信息 |
orgTaxLogin.sflx | String | 条件填写 | 身份类型(FDDBR法定代表人、CWFZR财务负责人、BSY办税员、LPY领票人、QTRY其他人员、FBSR附办税人、PTGLY普通管理员、GPY购票员、SMBS实名办税、FPLYR发票领用人、KPY开票员) |
orgTaxLogin.zrrsfzh | String | 是 | 证件号码 ,当encryptionType=1时,有值必须加密 |
orgTaxLogin.gryhm | String | 条件必传 | 个人用户名,当encryptionType=1时,有值必须加密; |
orgTaxLogin.gryhmm | String | 是 | 个人用户密码 ,当encryptionType=1时,有值必须加密 |
orgTaxLogin.sjhm | String | 是 | 办税小号,当encryptionType=1时,有值必须加密 |
orgTaxLogin.bssjhm | String | 是 | 办税手机号码 ,当encryptionType=1时,有值必须加密 |
加密工具示例
JSONObject jsonObject=new JSONObject(); jsonObject.put("aggOrgId",441151611156544L); jsonObject.put("zgswjgmc","111"); jsonObject.put("encryptionType",1); JSONObject orgTaxLogin=new JSONObject(); orgTaxLogin.put("gdsdlzh",RSAClientUtil.encrypt("yyyyy222!!@@")); jsonObject.put("orgTaxLogin",orgTaxLogin);
公钥:
MIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQC+vuYMGtTU+42wwbaFX+PkCuSeoREKe5V4EJMi553Gc03ficUdpLHIFdEjAMHAxepwm3RAGLwyxYFK/S93k8GYMuV35L2Nj/cVeHS8scsdqXzqLUKaI4wj438OI6HDh7rWsw1M5EgMsoZvQqja53+SgD3mgIy3XyILbmA5jUp2IwIDAQAB
加密方法样例
public static String encrypt(String data) throws Exception { byte[] bytes = Base64.decode(publicKey);//publicKey 公钥 X509EncodedKeySpec spec = new X509EncodedKeySpec(bytes); KeyFactory factory = KeyFactory.getInstance("RSA"); PublicKey publicKey = factory.generatePublic(spec); Cipher cipher = Cipher.getInstance("RSA"); cipher.init(Cipher.ENCRYPT_MODE, publicKey); int inputLen = data.getBytes().length; ByteArrayOutputStream out = new ByteArrayOutputStream(); int offset = 0; byte[] cache; int i = 0; while (inputLen - offset > 0) { if (inputLen - offset > 117) { cache = cipher.doFinal(data.getBytes(), offset, 117); } else { cache = cipher.doFinal(data.getBytes(), offset, inputLen - offset); } out.write(cache, 0, cache.length); i++; offset = i * 117; } byte[] encryptedData = out.toByteArray(); out.close(); return Base64.encode(encryptedData); }
示例参数 (需按照如下各地区示例对应字段为必传。)
【新版账号密码登录】orgTaxLogin.gdsdlfs=9
- 已支持地区:全国36个地区。
系统字段 | 必须 | 类型 | 长度 | 说明 | 对应税局字段 | 字段名称 |
---|---|---|---|---|---|---|
纳税人识别号 | 是 | 数字+大写字母 | 15、17、18、20 | 统一社会信用代码/纳税人识别号 | nsrsbh | |
企业名称 | 是 | 字符 | 100 | —— | aggOrgName | |
地区 | 是 | 字符 | 4 | 参考字典表 | —— | dq |
登录方式 | 是 | 字符 | 1 | 新版账号密码登录方式=9 | —— | gdsdlfs |
个人登录账号 | 是 | 字符 | 100 | 居民身份证/手机号/用户名 | gdsdlzh | |
个人登录密码 | 是 | 字符 | 50 | 个人用户密码 | gryhmm | |
办税人身份 | 否 | 字符 | 参考字典表 | sflx | ||
办税小号 | 条件必填 | 数字 | 11 | 有小号填写(天津、广东、浙江、湖北地区非必填);四川和厦门【个人登录账号】取值办税小号 | 居民身份证/手机号/用户名 | sjhm |
办税手机号码 | 条件必填 | 数字 | 11 | 没买小号填写(天津、广东、浙江地区非必填) | 居民身份证/手机号/用户名 | bssjhm |
示例:
{ "nsrsbh": "税号", "aggOrgName": "企业名称", "orgTaxLogin": { "dq": "41",//查询字典表确定地区具体值 "gdsdlfs": "9", "gdsdlzh": "个人登录账号", //根据每个地区个人账号不同,传居民身份证/手机号/用户名 "gryhmm": "个人登录密码", "sflx": "办税人身份",//当登录人员为多身份时,上传此字段 "sjhm": "办税小号", "bssjhm": "办税手机号码" } }
【远程登录】orgTaxLogin.gdsdlfs=14
- 已支持地区:全国36个地区。
系统字段 | 必须 | 类型 | 长度 | 说明 | 对应税局字段 | 字段名称 |
---|---|---|---|---|---|---|
纳税人识别号 | 是 | 数字+大写字母 | 15、17、18、20 | 统一社会信用代码/纳税人识别号 | nsrsbh | |
企业名称 | 是 | 字符 | 100 | —— | aggOrgName | |
地区 | 是 | 字符 | 4 | 参考字典表 | —— | dq |
登录方式 | 是 | 字符 | 1 | 新版账号密码登录方式=14 | —— | gdsdlfs |
个人登录账号 | 是 | 字符 | 100 | 居民身份证/手机号/用户名 | gryhm | |
个人登录密码 | 是 | 字符 | 50 | 个人用户密码 | gryhmm | |
办税人身份 | 否 | 字符 | 参考字典表 | sflx | ||
手机号码 | 条件必填 | 数字 | 11 | 手机号 | sjhm |
示例:
{ "nsrsbh": "税号", "aggOrgName": "企业名称", "orgTaxLogin": { "dq": "41",//查询字典表确定地区具体值 "gdsdlfs": "14", "gryhm": "个人登录账号", //根据每个地区个人账号不同,传居民身份证/手机号/用户名 "gryhmm": "个人登录密码", "sflx": "办税人身份",//当登录人员为多身份时,上传此字段 "sjhm": "办税小号" } }
新版税务数字证书登录:orgTaxLogin.gdsdlfs=11,对应税局企业业务-数字证书登录-税务数字证书模块
系统字段 | 必须 | 类型 | 长度 | 说明 |
---|---|---|---|---|
纳税人识别号 | 是 | 数字+大写字母 | 15、17、18、20 | |
企业名称 | 是 | 字符 | 100 | |
地区 | 是 | 字符 | 4 | 参考字典表 |
登录方式 | 是 | 字符 | 2 | 11 新版税务数字证书登录 字段:gdsdlfs |
用户名 | 是 | 字符 | 100 | 居民身份证/手机号 字段:gryhm |
手机号 | 否 | 字符 | 11 | 字段:bssjhm |
个人登录密码 | 是 | 字符 | 50 | 字段:gryhmm |
办税人身份 | 否 | 字符 | 参考字典表 字段:sflx |
示例:
{
"nsrsbh": "税号",
"aggOrgName": "企业名称",
"orgTaxLogin": {
"dq": "41",//查询字典表确定地区具体值
"gdsdlfs": "11",
"gryhm": "个人登录账号",
"gryhmm": "个人登录密码",
"sflx": "办税人身份",//当登录人员为多身份时,上传此字段
"bssjhm": "办税手机号码"
}
}
旧版登录接口:支持除四川、内蒙古、厦门外的33个地区。 <!--
北京市【用户名密码登录方式(电子税务局登录) + 用户名密码方式(个人账号)】示例:
{ "nsrsbh": "税号", "aggOrgName": "企业名称", "orgTaxLogin": { "dq": "11", "gdsdlfs": "2",//登录方式 "gdsdlzh": "账号", "gdsdlmm": "密码", "grdlfs": "1",//个人登录方式,1=用户名密码 "sflx": "身份类型",//FDDBR,CWFZR,BSY,LPY,QTRY,FBSR,PTGLY "gryhm": "个人用户名", "gryhmm": "个人密码", "zrrsfzh": "个人证件号码" } }
-->
4、返回结果
- 返回结果
返回结果为JSON格式。
/v1/AGG/org/create
示例返回结果:
{
"result": {
"req_id": "50bf37d7dc854825ad2b75881466f82b",
"success": true,
"time": 35,
"timestamp": 1698984002394
},
"value": {
"dpptUser": 0,
"nsrsbh": "9***********1X",
"flag": 0,
"aggOrgName": "上***************公司123",
"createTime": "2023-01-30 01:24:36",
"appKey": 10001995,
"aggOrgId": 447**********6592
}
}
/v1/AGG/org/createInfo
示例返回结果:
{
"result":{
"req_id":"fa76fb2ccc36434ba2b03ef648041e85",
"success":true,
"time":1414,
"timestamp":1637026491057
},
"value":{
"code":"SUCCESS",
"data":{
"aggOrgId":369161****80320,
"taskId":"3692787****9200"
},
"success":true,
"message":""
}
}
错误返回报文:
{
"result":{
"req_id":"cb27af5eb1b24bb284cfb85040c21ca2",
"success":true,
"time":21,
"timestamp":1637026632989
},
"value":{
"code":"PARAMETER_ERROR",
"success":false,
"message":"纳税人识别号只能为15位、17位、18位或20位!"
}
}
- 字段说明
字段名 | 说明 |
---|---|
aggOrgId | 企业 id,当调用其他业务接口时,可以传入此 id 或者纳税人识别号 |
5、错误码
错误代码 | 错误信息 | 说明 |
---|---|---|
PARAMETER_ERROR | 纳税人识别号(nsrsbh)不能为空! | |
PARAMETER_ERROR | 企业名称(aggOrgName)不能为空! | |
PARAMETER_ERROR | 登录账号(gdsdlzh)或登录密码(gdsdlmm)不能为空! | |
PARAMETER_ERROR | 登录方式(gdsdlfs)不能为空! |
修改企业
1、接口描述
若企业信息有变更,可调用此接口更新企业信息
2、接口地址
调用方式 | 功能模块 | 接口地址 | 协议 |
---|---|---|---|
POST | 发票云认证 | /v1/AGG/org/updateInfoForCj | HTTP/1.1 |
POST | 税局登录归集 | /v1/AGG/org/updateInfoForCj | HTTP/1.1 |
POST | 企业税申报 | /v1/AGG/org/updateInfo | HTTP/1.1 |
3、请求参数
- 参数说明
请求参数为JSON格式。
参数名称 | 参数类型 | 是否必填 | 说明 |
---|---|---|---|
aggOrgId | Long | 是 | 企业id |
aggOrgName | String | 否 | 企业名称 |
encryptionType | Integer | 否 | 加密类型:1表示加密,默认0不加密 |
isCollection | Boolean | 否 | 【企业税申报专用】是否同时发起采集税务信息任务,非必传,默认及空为true,true代表同时发起采集税务信息任务,false表示不同时发起采集税务信息任务 |
isFprz | Boolean | 条件必传 | 【发票云认证】是否用于发票认证:true是,false否;默认为true。 |
gryhm | String | 否 | 个人用户名 ,当encryptionType=1时,有值必须加密;【登录方式:2代表用户名密码登录或5代表手机号验证码登录】使用字段此字段保存个人用户名 |
gryhmm | String | 否 | 个人用户密码,当encryptionType=1时,有值必须加密 |
gdsdlfs | String | 否 | 登录方式 |
dq | String | 否 | 省市地区代码 |
sjhm | String | 否 | 办税小号,当encryptionType=1时,有值必须加密 |
bssjhm | String | 否 | 办税手机号码,当encryptionType=1时,有值必须加密 |
gdsdlzh | String | 否 | 登录账号,当encryptionType=1时,有值必须加密;登录方式是【新版账号密码登录9】此字段保存个人登录账号(四川和厦门【个人登录账号】取值办税小号sjhm字段) |
gdsdlmm | String | 否 | 登录密码,当encryptionType=1时,有值必须加密 |
zrrsfzh | String | 否 | 证件号码,当encryptionType=1时,有值必须加密 |
sflx | String | 否 | 身份类型 |
加密工具示例
JSONObject jsonObject=new JSONObject(); jsonObject.put("aggOrgId",441151611156544L); jsonObject.put("zgswjgmc","111"); jsonObject.put("encryptionType",1); jsonObject.put("gdsdlzh",RSAClientUtil.encrypt("yyyyy222!!@@"));
公钥:
MIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQC+vuYMGtTU+42wwbaFX+PkCuSeoREKe5V4EJMi553Gc03ficUdpLHIFdEjAMHAxepwm3RAGLwyxYFK/S93k8GYMuV35L2Nj/cVeHS8scsdqXzqLUKaI4wj438OI6HDh7rWsw1M5EgMsoZvQqja53+SgD3mgIy3XyILbmA5jUp2IwIDAQAB
- 加密方法样例
public static String encrypt(String data) throws Exception { byte[] bytes = Base64.decode(publicKey);//publicKey 公钥 X509EncodedKeySpec spec = new X509EncodedKeySpec(bytes); KeyFactory factory = KeyFactory.getInstance("RSA"); PublicKey publicKey = factory.generatePublic(spec); Cipher cipher = Cipher.getInstance("RSA"); cipher.init(Cipher.ENCRYPT_MODE, publicKey); int inputLen = data.getBytes().length; ByteArrayOutputStream out = new ByteArrayOutputStream(); int offset = 0; byte[] cache; int i = 0; while (inputLen - offset > 0) { if (inputLen - offset > 117) { cache = cipher.doFinal(data.getBytes(), offset, 117); } else { cache = cipher.doFinal(data.getBytes(), offset, inputLen - offset); } out.write(cache, 0, cache.length); i++; offset = i * 117; } byte[] encryptedData = out.toByteArray(); out.close(); return Base64.encode(encryptedData); }
- 【新版账号密码登录】更新企业示例参数
{
"aggOrgId":企业id,
"aggOrgName":"企业名称",
"dq":省市地区代码,
"gdsdlfs":9,
"gdsdlzh":个人登录用户名, //根据每个地区个人账号不同,传居民身份证/手机号/用户名
"gryhmm":个人用户密码,
"sflx":身份类型,
"sjhm":手机号码,
"bssjhm":办税手机号码
}
- 【旧版登录接口】示例参数,各地区所需要登录信息字段参考创建企业接口。
{
"aggOrgId":企业id,
"aggOrgName":"企业名称",
"dq":省市地区代码,
"gdsdlfs":登录方式,
"gdsdlzh":登录账号,
"gdsdlmm":登录密码,
"sflx":身份类型,
"gryhm":个人用户名,
"gryhmm":个人用户密码,
"sjhm":手机号码,
"bssjhm":办税手机号码,
"zrrsfzh":证件号码
}
4、返回结果
- 返回结果
返回结果为JSON格式。
/v1/AGG/org/updateInfoForCj
示例返回结果:
{
"result": {
"req_id": "0dde1ef64bc84e77be3ab9487729dc60",
"success": true,
"time": 313,
"timestamp": 1698983891334
},
"value": {
"code": "SUCCESS",
"data": {
"ss": "11",
"nsrsbh": "9************51X",
"dlfs": 2,
"openSjState": true,
"aggOrgId": "44***********592",
"qymc": "博***********公司123"
},
"success": true,
"message": ""
}
}
/v1/AGG/org/updateInfo
示例返回结果:
{
"result":{
"req_id":"4abbf817c672441f80aa996caf501f53",
"success":true,
"time":405,
"timestamp":1637029077941
},
"value":{
"code":"SUCCESS",
"data":{
"aggOrgId": "3312*****991168",
"openSjState": true,
"dlfs": 2,
"qymc": "北京*****有限责任公司",
"taskId": "37304******9088",
"ss":"11",
"nsrsbh":"12345678901234568"
},
"success":true,
"message":""
}
}
错误返回报文:
{
"result":{
"req_id":"8f5a79e7b8924f7b9d9cd281588c9bb6",
"success":true,
"time":29,
"timestamp":1637029160854
},
"value":{
"code":"PARAMETER_ERROR",
"success":false,
"message":"请传入需要修改的企业信息!"
}
}
- 字段说明
字段名 | 说明 |
---|---|
aggOrgId | 企业 id |
nsrsbh | 纳税人识别号 |
qymc | 企业名称 |
ss | 省市地区代码 |
dlfs | 登录方式 |
openSjState | 读取税局登录信息状态 |
taskId | 发起采集税务任务ID |
5、错误码
错误代码 | 错误信息 | 说明 |
---|---|---|
PARAMETER_ERROR | 企业Id(aggOrgId)不能为空! | |
PARAMETER_ERROR | 请传入需要修改的企业信息参数! |
删除企业
1、接口描述
删除企业信息
1)当与服务的企业客户解除合作关系(不再使用本平台接口)时,请调用删除接口,删除该企业。否则如该企业已使用预采集功能,平台每月初会自动进行历史月份发票采集,因历史月份发票每月仅可采集一次,将造成该企业自身无法采集到历史月份发票数据。
2)企业删除以后,不可操作;如果再次创建,会创建新的企业,并做统计
2、接口地址
POST /v1/AGG/org/delete
3、请求参数
- 参数说明
请求参数为JSON格式。
参数名称 | 参数类型 | 是否必填 | 说明 |
---|---|---|---|
aggOrgId | Long | 是 | 企业aggOrgId |
- 示例参数
{
"aggOrgId":369161****80320
}
4、返回结果
- 返回结果
返回结果为JSON格式。
示例返回结果:
{
"result":{
"req_id":"9575a7319e264d578347c7c1884a39de",
"success":true,
"time":129,
"timestamp":1637034763969
},
"value":{
"code":"SUCCESS",
"data":true/false,
"success":true,
"message":""
}
}
错误返回报文
{
"result":{
"req_id":"bf351a022b99477f96bf4d35d2408906",
"success":true,
"time":18,
"timestamp":1637034716388
},
"value":{
"code":"PARAMETER_ERROR",
"success":false,
"message":"企业ID(aggOrgId)不能为空"
}
}
- 字段说明
字段名 | 说明 |
---|---|
无 | 无 |
5、错误码
错误代码 | 错误信息 | 说明 |
---|---|---|
PARAMETER_ERROR | 企业Id(aggOrgId)不能为空! |
校验企业登录参数是否能登录电子税局
1、接口描述
校验企业登录参数是否能登录电子税局
2、接口地址
POST /v1/AGG/org/checkLoginInfoIsCorrect
3、请求参数
- 参数说明
请求参数为JSON格式。
参数名称 | 参数类型 | 是否必填 | 说明 |
---|---|---|---|
aggOrgId | Long | 是 | 企业aggOrgId |
- 示例参数
{
"aggOrgId":369161****80320
}
4、返回结果
- 返回结果
返回结果为JSON格式。
示例返回结果:
{
"result":{
"req_id":"afc6b0b7a77d4d22807c205f950953be",
"success":true,
"time":11362,
"timestamp":1651117611051
},
"value":{
"code":"2000",
"success":true,
"message":"登录成功"
}
}
错误返回报文
{
"result":{
"req_id":"9b2a43f3f36e41cd935a138e278f4957",
"success":true,
"time":1862,
"timestamp":1651117553574
},
"value":{
"code":"4100",
"data":{},
"success":false,
"message":"[80480541]用户名与密码不匹配!还有9次机会,该帐户将被锁住5分钟"
}
}
- 字段说明
字段名 | 说明 |
---|---|
无 | 无 |
5、错误码
错误代码 | 错误信息 | 说明 |
---|---|---|
PARAMETER_ERROR | 企业Id(aggOrgId)不能为空! |