发票查验/发票验证接口

1、前言

通过发票代码、发票号码、开票日期等查验发票是否真实,支持所有种类的发票。

2、请求参数

名称类型必须说明
appIdString用户唯一标识,获取appId
timestampLong当前时间戳
signString签名,详见签名算法说明
fpdmString发票代码 非全电发票必填
fphmString发票号码
kprqString开票日期 格式YYYYMMDD
jymString校验码后 6 位, 增值税普通发票、增值税电子普通发票、增值税普通发票(卷式)、增值税电子普通发票(通行费)必填
jeString增值税专用发票、增值税电子专用发票、机动车销售统一发票输入不含税金额;二手车销售统一发票输入车价合计;全电发票输入价税合计

3、签名算法说明

sign = sha256(appId + appSecret + timestamp)

用 appId、 appSecret,当前时间时间戳 timestamp,按上述顺序拼接成字符串,再进行 sha256 哈希得到。如下:

String appId = "xyzxy2121zxyz"String timestamp = "1555378976238"String appSecret = "efcefcef1121cefcefc1212121"String str = appId  + appSecret + timestamp;
String sign = sha256(str)

4、请求示例代码(java)

import com.anq.core.utils.HttpUtil;
import com.anq.core.utils.JsonUtil;
import lombok.extern.slf4j.Slf4j;
import org.apache.commons.codec.digest.DigestUtils;
import org.junit.Test;

import java.util.HashMap;
import java.util.Map;

@Slf4j
public class Examples {
    String appId = "聚美智数分配的appId";
    String appSecret = "聚美智数分配的appSecret";
    String apiUrl = "https://api.jumdata.com/invoice/validate/v2";

    @Test
    public void examples() {
        long timestamp = System.currentTimeMillis();
        String sign = DigestUtils.sha256Hex(appId + appSecret + timestamp); // 生成sign

        Map<String, Object> params = new HashMap<String, Object>();

        params.put("appId", appId);  // 聚美智数分配的appId
        params.put("timestamp", timestamp);
        params.put("sign", sign);
        params.put("productCode", "invoice_validate_v2");// 固定值
        params.put("fpdm", ""); // 发票代码 ,发票代码  非全电发票必填
        params.put("fphm", ""); // 发票号码 
        params.put("kprq", ""); // 开票日期 ,格式YYYYMMDD
        params.put("jym", ""); // 校验码后6位 ,增值税普通发票、增值税电子普通发票、增值税普通发票(卷式)、增值税电子普通发票(通行费)必填
        params.put("je", ""); // 金额 ,增值税专用发票、增值税电子专用发票、机动车销售统一发票输入**不含税金额**; 二手车销售统一发票输入**车价合计**; 全电发票输入**价税合计**

        // HttpUtil可从这里下载 https://file.jumdata.com/support/HttpUtil.java
        String resultJson = HttpUtil.postForm(apiUrl, null, params);
        log.info(resultJson);

        // JumeiOpenApiResponse 可从这里下载 https://file.jumdata.com/support/JumeiOpenApiResponse.java
        // JsonUtil可从这里下载 https://file.jumdata.com/support/JsonUtil.java
        JumeiOpenApiResponse jumeiOpenApiResponse = JsonUtil.toObject(resultJson, JumeiOpenApiResponse.class)
        if(jumeiOpenApiResponse.getCode() == 200){
           //TODO
        }else{
           //TODO
        }
    }
}

5、响应示例

以增值税专用发票为例

{
  "code": 200, // 返回码,详见code返回码说明
  "msg": "成功", //code对应的描述
  "taskNo": "12552230716560623515",  // 本次唯一请求号
  "charge": true, // 计费标志
  "data": {
    "fplx": "01", // 发票类型,详见发票类型说明
    "times": 4, // 查验次数(第几次)
    "xfsbh":"1522***********K01451",    //销方识别号
    "gfmc":"东方****有限公司",            //购方名称
    "gmfyhzh":"工行杭州景江苑支行 12******************36",    //购买方银行账号
    "xhqdBz":"N",                        //清单标志:发票明细中是否有清单行(Y清单 N非清单)
    "dkXsfmc":"马*弟<",                    //代开销售方名称
    "dq":"内蒙古自治区",                    //地区
    "tspzDm": "",                         // 特殊票种代码,02农产品收购发票 08成品油发票
    "xsfdzdh":"乌兰浩特市 1584****535",    //销售方地址电话
    "se":240,                            //税额
    "kprq":"2022-01-04 00:00:00",        //开票日期
    "bz":"代开企业税号:15222*****71610 代开企业名称:马*弟<br/>房屋坐落地址:乌兰浩特市爱国小区*号楼",    //备注
    "kjlx":"2",                            //开具类型
    "fpztDm":"0",                        //发票状态代码
    "sbbh":"661816407119",                //设备编号
    "gfsbh":"91330********66XE",        //购方识别号
    "fpdm":"150*****60",                //发票代码
    "fphm":"00****89",                    //发票号码
    "jym":"69591030500952264929",     //校验码
    "dkXsfsbh":"152**************610",    //代开销售方识别号
    "gmfdzdh":"杭州市滨江区****66号 0571-8*****34",    //购买方地址电话
    "xsfyhzh":"31522***********07111",    //销售方银行账号
    "jshj":16800,                        //价税合计
    "jshjcn":"壹万陆仟捌佰元整",            //价税合计(中文大写)
    "je":16560,                            //金额
    "xfmc":"国家税务总局乌兰浩特市税务局第一税务分局",    //销方名称
    "txfbz":"Y",//如果是通行费,则有该字段,Y表示该通行费可抵扣,N表示不可以抵扣    //通行费标识
    "tspzDm": "86",//特殊票种,02-农产品收购;03-稀土矿产品发票;04-稀土产成品发票;05-石脑油;06-通行费可抵扣;07-通行费(不可抵扣);08-成品油发票;12-机动车; 76-报废产品收购;77-报废产品收购; 83-建筑服务; 84-货物运输服务; 85-不动产销售; 86-不动产经营租赁服务; 89-旅客运输服务; 92-自产农产品销售; 93-拖拉机按减征税; 96-农产品收购;其它为空;
    "hwxx":[                            //货物信息
      {
        "ggxh":"",                    //规格型号
        "jldw":"套",                    //计量单位
        "dj":"16560.00",            //单价
        "mxxh":1,                    //明细序号
        "se":240,                    //税额
        "ysse":"240",                //原始税额
        "mc":"房屋租赁(20220101-20221231)",    //名称
        "sl":"1",                    //数量
        "je":16560,                    //金额
        "slv":0.015,                //税率
        "ysslv":"1.5%",                //原始税率
        "spbm":""                    //商品编码
      }
    ]
  }
}
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值