• 标准查验API文档V3版
  • 标准查验API文档
  • 二维码查验API文档
  • PDF查验API文档
  • OFD查验API文档
  • 图片查验API文档
  • 区块链查验API文档
  • 通用(电子)发票查验API文档
  • 图片OCR(仅识别)API文档
  • pdf OCR(仅识别)API文档
  • ofd OCR(仅识别)API文档
  • 余额查询API文档

调用说明

价格说明表

1元=100票点,申请试用,请联系客服。

查询方式 计价方式 价格(票点/次) 备注
接口新查 按次 15(0.15元) 验证成功收费,“不一致”当日只收第一次查询费,其余失败不收费,调用量大请咨询客服
发票库 按次 0 不收费,缓存7天

接口描述

此接口是标准校验接口的升级简单版,传入发票基本信息:发票代码、发票号码、开票日期、校验码后6位(增值税普票必传)、不含税金额(增值税专票、机动车票必传)、票查查应用authCode进行查验.

请求说明

请求示例

HTTP 方法:GET/POST

请求URL:https://api.piaocc.com/rest/v_3/common_check.html?authCode=鉴权码&invoiceCode=发票代码&invoiceNo=发票号码&invoiceDate=开票日期&invoiceAmt=发票金额&checkCode=校验码后6位&useCache=是否需要缓存(发票库)

url请求参数说明如下:

请求参数

参数 是否必选 类型 说明
authCode string 票查查应用鉴权码,个人中心 -> 应用管理 -> 新建应用 -> 获得应用鉴权码
invoiceCode string 发票代码(全电发票不需要填写)
invoiceNo string 发票号码
invoiceDate string 开票日期,格式:yyyyMMdd,如:19990101
invoiceAmt string 增值税专票、机动车统一销售票传不含税金额,二手车销售发票、全电发票传价税合计金额
checkCode string 校验码后6位(增值税普票必传)
useCache string 是否需要缓存(查询发票放入发票库),N-不需要,Y-需要,默认Y

请求代码示例

提示一:使用示例代码前,请记得替换相应的参数值。

提示二:部分语言依赖的类或库,请在代码注释中查看下载地址。

  • curl
  • Python
  • JAVA
  • PHP
  • C#
curl -i -X GET 'https://api.piaocc.com/rest/v_3/common_check.html?authCode=&invoiceCode=&invoiceNo=&invoiceDate=&invoiceAmt=&checkCode='
#请先安装requests模块
url = 'https://api.piaocc.com/rest/v_3/common_check.html?authCode=&invoiceCode=&invoiceNo=
&invoiceDate=&invoiceAmt=&checkCode='
r=requests.get(url)
print r.text
											
//请先导入httpclient相应的包
HttpClient httpclient = HttpClients.createDefault();
HttpGet get = new HttpGet("https://api.piaocc.com/rest/v_3/common_check.html?authCode=&invoiceCode=
&invoiceNo=&invoiceDate=&invoiceAmt=&checkCode=");
HttpResponse response = httpclient.execute(get);
System.out.println(EntityUtils.toString(response.getEntity()));										
										
<?php
    $host = "https://api.piaocc.com";
    $path = "/v_3/common_check.html?authCode=&invoiceCode=&invoiceNo=&invoiceDate=&invoiceAmt=&checkCode=";
    $method = "GET";
    $url = $host . $path;

    $curl = curl_init();
    curl_setopt($curl, CURLOPT_CUSTOMREQUEST, $method);
    curl_setopt($curl, CURLOPT_URL, $url);
    curl_setopt($curl, CURLOPT_FAILONERROR, false);
    curl_setopt($curl, CURLOPT_RETURNTRANSFER, true);
    curl_setopt($curl, CURLOPT_HEADER, false);
    if (1 == strpos("$".$host, "https://"))
    {
        curl_setopt($curl, CURLOPT_SSL_VERIFYPEER, false);
        curl_setopt($curl, CURLOPT_SSL_VERIFYHOST, false);
    }
    curl_setopt($curl, CURLOPT_POSTFIELDS, $bodys);
    echo curl_exec($curl);
?>

using System.IO;
using System.Text;
using System.Net;
using System.Net.Security;
using System.Security.Cryptography.X509Certificates;

private const String host = "https://api.piaocc.com";
private const String path = "/rest/v_3/common_check.html?authCode=&invoiceCode=&invoiceNo=&invoiceDate=
&invoiceAmt=&checkCode=";
private const String method = "POST";

static void Main(string[] args)
{
    String querys = "";
    String url = host + path;
    HttpWebRequest httpRequest = null;
    HttpWebResponse httpResponse = null;

    if (0 < querys.Length)
    {
        url = url + "?" + querys;
    }

    if (host.Contains("https://"))
    {
        ServicePointManager.ServerCertificateValidationCallback = new RemoteCertificateValidationCallback
        (CheckValidationResult);
        httpRequest = (HttpWebRequest)WebRequest.CreateDefault(new Uri(url));
    }
    else
    {
        httpRequest = (HttpWebRequest)WebRequest.Create(url);
    }
    httpRequest.Method = method;
    try
    {
        httpResponse = (HttpWebResponse)httpRequest.GetResponse();
    }
    catch (WebException ex)
    {
        httpResponse = (HttpWebResponse)ex.Response;
    }

    Console.WriteLine(httpResponse.StatusCode);
    Console.WriteLine(httpResponse.Method);
    Console.WriteLine(httpResponse.Headers);
    Stream st = httpResponse.GetResponseStream();
    StreamReader reader = new StreamReader(st, Encoding.GetEncoding("utf-8"));
    Console.WriteLine(reader.ReadToEnd());
    Console.WriteLine("\n");

}

public static bool CheckValidationResult(object sender, X509Certificate certificate, X509Chain chain, 
SslPolicyErrors errors)
{
    return true;
}

返回说明

响应码说明

响应码 说明
200 成功
400 参数错误
403 无余额
405 访问受限(白名单限制)
500 错误(详情参考message)

返回结果示例

//----------------------------------标准发票--------------------------------------------

{
    "code":200,//响应码,200-成功,请参考响应码说明
    "respTime": "2000-01-10 15:48:18",//响应时间
    "message": "发票查验成功",//响应信息
    "deduct": 15,//本次调用所消费票点数
    "inArea":"重庆",//发票区域
    "checkCount":"1",//历史查验次数(不包括本次)
    "inDate":"20100417",//开票日期
    "inCode":"50****2130",//发票代码
    "checkTime":"2000-12-31 15:35:44",//查验时间
    "inTotalAmtCn":"叁万贰仟捌佰肆拾玖圆叁角零分整",//开票总金额大写
    "salerInfo":{//销售方信息
        "addressPhone":"重庆市**街道131****3456",//销售方地址、联系电话
        "name":"重庆市****有限公司",//销售方名称
        "taxNo":"925**********29",//销售方税号
        "account":"重庆******分理处030*****0007716"//销售方银行账号、开户行信息
    },
    "inTaxAmt":"325.23",//总税费
    "inTotalAmt":"32849.3",//开票总金额
    "buyerInfo":{//购买方信息
        "addressPhone":"重庆市**广场 023-89****20",//购买方地址、联系电话
        "name":"重庆***有限公司",//购买方名称
        "taxNo":"915********0265",//购买方税号
        "account":"中国建设银行**支行营业部50****521"//购买方银行账号、开户行信息
    },
    "tradeInfos":[//商品明细
        {
            "tradeAmt":"1922.28",//商品总金额
            "unitPrice":"17.475247524752475",//商品单价
            "taxRate":"0.01",//商品税率
            "number":"110",//商品数量
            "tradeName":"*非金属矿物制品*砼预制过梁",//商品名称
            "unit":"根",	//商品单位
            "typeNo":"1000*100*60",//商品规格
            "taxAmt":"19.22",//商品税费
            "taxTypeNo":"31000******"//税收分类编码
        }
    ],
    "inNo":"0*****76",//发票号码
    "inCheckCode":"069**********813",//校验码
    "inAmt":"32524.07",//不计税金额
    "inMachineNo":"499******25",//机器编号
    "inType":"增值税专用发票",//发票类型
    "remarks":"",//备注
    "delFlag":"0"//作废红冲标致,0-正常,2-作废,3-红冲,7-部分红冲,8-全部红冲
}


//----------------------------------机动车销售统一发票----------------------------------
{
    "code":200,//响应码,200-成功,请参考响应码说明
    "respTime": "2000-01-10 15:48:18",//响应时间
    "message": "发票查验成功",//响应信息
    "deduct": 15,//本次调用所消费票点数
    "takeOrgName":"",//主管税务机关
    "inDate":"",//开票日期
    "inArea":"",//发票区域 
    "checkCount":"1",//历史查验次数(不包括本次)
    "checkTime":"2000-12-31 15:35:44",//查验时间
    "tradeInfos":[//交易详情
        {
            "factoryTypeNo":"",//厂牌型号
            "taxRate":"",//增值税税率或征收率
            "motorNo":"",//发动机号码
            "taxProveNo":"",//完税凭证号码
            "carType":"",//车辆类型
            "productArea":"",//产地
            "tradeCheckNo":"",//商检单号
            "qualifyPaper":"",//合格证号
            "carIdNo":"",//车辆识别代号/车架号码
            "tonnage":"",//吨位
            "passengerLimit":"",//限乘人数
            "importProveNo":""//进口证明书号
        }
    ],
    "inCode":"",//发票代码
    "inTotalAmtCn":"",//价税合计金额大写
    "salerInfo":{//销货单位信息
        "telPhone":"",//电话
        "bank":"",//开户银行
        "address":"",//地址
        "name":"",//销货单位名称
        "taxNo":"",//销货单位纳税人识别号
        "account":""//账号
    },
    "inTaxAmt":"",//增值税税额
    "delFlag":"0",//作废红冲标致,0-正常,2-作废,3-红冲,7-部分红冲,8-全部红冲
    "takeOrgId":"",//主管税务机关代码
    "inTotalAmt":"",//价税合计
    "buyerInfo":{ //购买方信息
        "name":"", //购买方名称
        "taxNo":"", //购买方组织机构代码
        "idNo":""  //购买方纳税人识别号
    },
    "inNo":"", //发票号码
    "inAmt":"",	//不含税价
    "inMachineNo":"", //机器编码
    "inType":"机动车销售统一发票" //发票类型
}



//---------------------------二手车销售统一发票------------------------
{
    "code":200,//响应码,200-成功,请参考响应码说明
    "respTime": "2000-01-10 15:48:18",//响应时间
    "message": "发票查验成功",//响应信息
    "deduct": 15,//本次调用所消费票点数
    "inDate":"",//开票日期
    "inArea":"",//发票区域 
    "checkCount":"1",//历史查验次数(不包括本次)
    "inCode":"",//发票代码
    "inTotalAmtCn":"",//价税合计金额大写
    "checkTime":"2000-12-31 15:35:44",  //查验时间
    "salerInfo":{//卖方单位/个人信息
        "telPhone":"",//电话
        "address":"",//卖方单位/个人住址
        "name":"",//卖方单位/个人
        "idNo":""//单位代码/身份证号码
    },
    "delFlag":"0",//作废红冲标致,0-正常,2-作废,3-红冲,7-部分红冲,8-全部红冲
    "inTotalAmt":"", //价税合计
    "buyerInfo":{//买方单位/个人信息
        "telPhone":"",//电话
        "address":"",//买方单位/个人住址
        "name":"",//买方单位/个人
        "idNo":""//单位代码/身份证号码
    },
    "auctionInfo":{//经营、拍卖单位信息
        "bank":"",//开户银行、账号
        "telPhone":"",//电话
        "address":"",//经营、拍卖单位地址
        "name":"",//经营、拍卖单位
        "taxNo":""//纳税人识别号
    },
    "marketInfo":{//二手车市场信息
        "bank":"",//开户银行、账号
        "telPhone":"",//电话
        "address":"",//地址
        "name":"",//二手车市场
        "taxNo":""//纳税人识别号
    },
    "tradeInfos":[//车辆信息
        {
            "factoryTypeNo":"",//厂牌型号
            "regNo":"",//登记证号
            "carType":"",//车辆类型
            "carNo":"",//车牌号
            "transArea":"",//转入地、车管所名称
            "carIdNo":""//车辆识别代号/车架号码
        }
    ],
    "inNo":""//发票号码
    "inMachineNo":"",//机器编码
    "remarks":"",//备注
    "inType":"二手车销售统一发票"//发票类型
}		




//---------------------------电子发票(航空运输电子客票行程单)------------------------
{
    "code":200,//响应码,200-成功,请参考响应码说明
    "respTime": "2000-01-10 15:48:18",//响应时间
    "message": "发票查验成功",//响应信息
    "deduct": 15,//本次调用所消费票点数
    "inDate":"",//开票日期
    "inArea":"",发票区域
    "checkCount":"1",//历史查验次数(不包括本次)
    "inCode":"",//发票代码
    "inTotalAmtCn":"",//价税合计金额大写
    "GPNo":"",//GP单号
    "voyageInfo":[//航程信息列表
	    {
		    "flightSegment":"",//航段
		    "carrier":"",//承运人
		    "flightNo":"",//航班号
		    "ticketLevel":"",//客票级别/客票类型
		    "carrierDate":"",//承运日期
		    "destination":"",//目的站
		    "takeoffTime":"",//起飞时间
		    "departure":"",//始发站
		    "seatLevel":""//座位等级
	    }
    ],
    "inTaxAmt":"",//增值税税额
    "delFlag":"0",//作废红冲标致,0-正常,2-作废,3-红冲,7-部分红冲,8-全部红冲
    "inTotalAmt":"",//价税合计
    "buyerInfo":{//购买方信息
	    "name":"",//购买方名称
	    "taxNo":""//购买方税号/纳税人识别号
    },
    "areaFlag":"",//国内国际标识
    "checkTime":"2000-12-31 15:35:44",  //查验时间
    "ticketNo":"",//电子客票号码
    "passenger":{//乘客信息
	    "name":"",//乘客名称
	    "IdNo":""//乘客证件号码
    },
    "inNo":"",//发票号码
    "inType":"电子发票(航空运输电子客票行程单)"//发票类型
}



//---------------------------电子发票(铁路电子客票)------------------------
{
    "code":200,//响应码,200-成功,请参考响应码说明
    "respTime": "2000-01-10 15:48:18",//响应时间
    "message": "发票查验成功",//响应信息
    "deduct": 15,//本次调用所消费票点数
    "departureTime":"",//出发时间
    "carriage":"",//车厢
    "inArea":"",//发票区域
    "trainNo":"",//车次
    "inTotalAmtCn":"",//价税合计金额大写(票价大写)
    "inTaxAmt":"",//总税费
    "delFlag":"0",//作废红冲标致,0-正常,2-作废,3-红冲,7-部分红冲,8-全部红冲
    "arrivalStation":"",//到达站
    "inTotalAmt":"",//价税合计金额(票价)
    "ticketNo":"",//电子客票号
    "seatClass":"",//座位级别(席别)
    "inAmt":"",//不含税金额
    "departureStation":"",//出发站
    "seatNo":"",//座位号(席位)
    "inType":"电子发票(铁路电子客票)",//发票类型
    "inDate":"",//开票日期
    "checkCount":"",//历史查验次数(不包括本次)
    "inCode":"",//发票代码
    "taxRate":"",//税率
    "businessType":"0",//业务类型:0-售,非0-退
    "buyerInfo":{//买方信息
	    "name":"", //买方名称
	    "taxNo":"" //买方税号
    },
    "checkTime":"2000-01-01 15:43:39",//查验时间
    "passenger":{//乘客信息
	    "name":"",//乘客姓名
	    "IdNo":"" //乘客证件号
    },
    "airConFeatures":"",//空调特征
    "trainDate":"", //乘车日期
    "inNo":"" //发票号码
}									

调用说明

价格说明表

1元=100票点,申请试用,请联系客服。

查询方式 计价方式 价格(票点/次) 备注
接口新查 按次 15(0.15元) 验证成功收费,“不一致”当日只收第一次查询费,其余失败不收费,调用量大请咨询客服
发票库 按次 0 不收费,缓存7天

接口描述

输入发票基本信息:发票代码、发票号码、开票日期、校验码后6位(增值税普票必传)、不含税金额(增值税专票、机动车票必传)、票查查应用authCode进行查验.

请求说明

请求示例

HTTP 方法:POST

请求URL:https://api.piaocc.com/rest/v_1/common_check.html

Header如下:

参数
content-type application/json
authCode 应用鉴权码

Body中放置请求参数,参数格式为JSON,参数详情如下:

请求参数

参数 是否必选 类型 说明
invoiceCode string 发票代码(全电发票不需要填写)
invoiceNo string 发票号码
invoiceDate string 开票日期,格式:yyyyMMdd,如:19990101
invoiceAmt string 增值税专票、机动车统一销售票传不含税金额,二手车销售发票、全电发票传价税合计金额
checkCode string 校验码后6位(增值税普票必传)
useCache string 是否需要缓存(查询发票放入发票库),N-不需要,Y-需要,默认Y

请求代码示例

提示一:使用示例代码前,请记得替换相应的参数值。

提示二:部分语言依赖的类或库,请在代码注释中查看下载地址。

  • curl
  • Python
  • JAVA
  • PHP
  • C#
curl -i -X POST 'https://api.piaocc.com/rest/v_1/common_check.html' -H 'authCode:应用的authCode' -H 'content-type:application/json' --data '{"invoiceCode":"5001208932","invoiceNo":"48720238","invoiceDate":"19900101","invoiceAmt":"9999.99"}'
#请先安装requests模块
url = ''
header={
'content-type':'application/json',
'authCode':''
}
data={
'invoiceCode':'',
'invoiceNo':'',
'invoiceDate':'',
'invoiceAmt':'',
'checkCode':''
}
r=requests.post(url,json = data,headers = header)
print r.text
											
//请先导入httpclient相应的包
HttpClient httpclient = HttpClients.createDefault();
HttpPost post = new HttpPost(url);
post.setHeader("content-type", "application/json");
post.addHeader("authCode", authCode);
post.setEntity(new StringEntity("{\"invoiceCode\":\"5001208932\",\"invoiceNo\":\"48720238\",
\"invoiceDate\":\"19900101\",\"invoiceAmt\":\"9999.99\"}"));
HttpResponse response = httpclient.execute(post);
System.out.println(EntityUtils.toString(response.getEntity()));										
										
<?php
    $host = "https://api.piaocc.com";
    $path = "/rest/v_1/common_check.html";
    $method = "POST";
    $authCode = "应用的authCode";
    $headers = array();
    array_push($headers, "content-type:application/json");
    array_push($headers, "authCode:" . $authCode);
    $querys = "";
    $bodys = "{\"invoiceCode\":\"5001208932\",\"invoiceNo\":\"48720238\",\"invoiceDate\":\"199001
01\",\"invoiceAmt\":\"9999.99\"}";
    $url = $host . $path;

    $curl = curl_init();
    curl_setopt($curl, CURLOPT_CUSTOMREQUEST, $method);
    curl_setopt($curl, CURLOPT_URL, $url);
    curl_setopt($curl, CURLOPT_HTTPHEADER, $headers);
    curl_setopt($curl, CURLOPT_FAILONERROR, false);
    curl_setopt($curl, CURLOPT_RETURNTRANSFER, true);
    curl_setopt($curl, CURLOPT_HEADER, false);
    if (1 == strpos("$".$host, "https://"))
    {
        curl_setopt($curl, CURLOPT_SSL_VERIFYPEER, false);
        curl_setopt($curl, CURLOPT_SSL_VERIFYHOST, false);
    }
    curl_setopt($curl, CURLOPT_POSTFIELDS, $bodys);
    echo curl_exec($curl);
?>

using System.IO;
using System.Text;
using System.Net;
using System.Net.Security;
using System.Security.Cryptography.X509Certificates;

private const String host = "https://api.piaocc.com";
private const String path = "/rest/v_1/common_check.html";
private const String method = "POST";
private const String authCode = "应用authCode";

static void Main(string[] args)
{
    String querys = "";
    String bodys = "{\"invoiceCode\":\"5001208932\",\"invoiceNo\":\"48720238\",\"invoiceDate\":\"199001
01\",\"invoiceAmt\":\"9999.99\"}";
    String url = host + path;
    HttpWebRequest httpRequest = null;
    HttpWebResponse httpResponse = null;

    if (0 < querys.Length)
    {
        url = url + "?" + querys;
    }

    if (host.Contains("https://"))
    {
        ServicePointManager.ServerCertificateValidationCallback = new RemoteCertificateValidationCallback
        (CheckValidationResult);
        httpRequest = (HttpWebRequest)WebRequest.CreateDefault(new Uri(url));
    }
    else
    {
        httpRequest = (HttpWebRequest)WebRequest.Create(url);
    }
    httpRequest.Method = method;
    httpRequest.Headers.Add("content-type","application/json");
    httpRequest.Headers.Add("authCode",authCode);
    if (0 < bodys.Length)
    {
        byte[] data = Encoding.UTF8.GetBytes(bodys);
        using (Stream stream = httpRequest.GetRequestStream())
        {
            stream.Write(data, 0, data.Length);
        }
    }
    try
    {
        httpResponse = (HttpWebResponse)httpRequest.GetResponse();
    }
    catch (WebException ex)
    {
        httpResponse = (HttpWebResponse)ex.Response;
    }

    Console.WriteLine(httpResponse.StatusCode);
    Console.WriteLine(httpResponse.Method);
    Console.WriteLine(httpResponse.Headers);
    Stream st = httpResponse.GetResponseStream();
    StreamReader reader = new StreamReader(st, Encoding.GetEncoding("utf-8"));
    Console.WriteLine(reader.ReadToEnd());
    Console.WriteLine("\n");

}

public static bool CheckValidationResult(object sender, X509Certificate certificate, X509Chain chain, 
SslPolicyErrors errors)
{
    return true;
}

返回说明

响应码说明

响应码 说明
200 成功
400 参数错误
403 无余额
405 访问受限(白名单限制)
500 错误(详情参考message)

返回结果示例

//----------------------------------标准发票--------------------------------------------

{
    "code":200,//响应码,200-成功,请参考响应码说明
    "respTime": "2000-01-10 15:48:18",//响应时间
    "message": "发票查验成功",//响应信息
    "deduct": 15,//本次调用所消费票点数
    "inArea":"重庆", //发票区域
    "checkCount":"1", //历史查验次数(不包括本次)
    "inDate":"20100417",//开票日期
    "inCode":"50****2130",//发票代码
    "checkTime":"2000-12-31 15:35:44",//查验时间
    "inTotalAmtCn":"叁万贰仟捌佰肆拾玖圆叁角零分整", //开票总金额大写
    "salerInfo":{//销售方信息
        "addressPhone":"重庆市**街道131****3456",//销售方地址、联系电话
        "name":"重庆市****有限公司",	//销售方名称
        "taxNo":"925**********29",	//销售方税号
        "account":"重庆******分理处030*****0007716"//销售方银行账号、开户行信息
    },
    "inTaxAmt":"325.23",//总税费
    "inTotalAmt":"32849.3",//开票总金额
    "buyerInfo":{//购买方信息
        "addressPhone":"重庆市**广场 023-89****20",//购买方地址、联系电话
        "name":"重庆***有限公司",//购买方名称
        "taxNo":"915********0265",//购买方税号
        "account":"中国建设银行**支行营业部50****521"//购买方银行账号、开户行信息
    },
    "tradeInfos":[//商品明细
        {
            "tradeAmt":"1922.28",//商品总金额
            "unitPrice":"17.475247524752475",//商品单价
            "taxRate":"0.01",//商品税率
            "number":"110",//商品数量
            "tradeName":"*非金属矿物制品*砼预制过梁",//商品名称
            "unit":"根",	//商品单位
            "typeNo":"1000*100*60",//商品规格
            "taxAmt":"19.22",//商品税费
            "taxTypeNo":"31000******"//税收分类编码
        }
    ],
    "inNo":"0*****76",//发票号码
    "inCheckCode":"069**********813",//校验码
    "inAmt":"32524.07",//不计税金额
    "inMachineNo":"499******25",//机器编号
    "inType":"增值税专用发票",//发票类型
    "remarks":"",//备注
    "delFlag":"0"//作废红冲标致,0-正常,2-作废,3-红冲,7-部分红冲,8-全部红冲
}


//----------------------------------机动车销售统一发票----------------------------------
{
    "code":200,//响应码,200-成功,请参考响应码说明
    "respTime": "2000-01-10 15:48:18",//响应时间
    "message": "发票查验成功",//响应信息
    "deduct": 15,//本次调用所消费票点数
    "takeOrgName":"",//主管税务机关
    "inDate":"",//开票日期
    "inArea":"",//发票区域 
    "checkCount":"1",//历史查验次数(不包括本次)
    "checkTime":"2000-12-31 15:35:44",//查验时间
    "tradeInfos":[//交易详情
        {
            "factoryTypeNo":"",//厂牌型号
            "taxRate":"",//增值税税率或征收率
            "motorNo":"",//发动机号码
            "taxProveNo":"",//完税凭证号码
            "carType":"",//车辆类型
            "productArea":"",//产地
            "tradeCheckNo":"",//商检单号
            "qualifyPaper":"",//合格证号
            "carIdNo":"",//车辆识别代号/车架号码
            "tonnage":"",//吨位
            "passengerLimit":"",//限乘人数
            "importProveNo":""//进口证明书号
        }
    ],
    "inCode":"",//发票代码
    "inTotalAmtCn":"",//价税合计金额大写
    "salerInfo":{//销货单位信息
        "telPhone":"",//电话
        "bank":"",//开户银行
        "address":"",//地址
        "name":"",//销货单位名称
        "taxNo":"",//销货单位纳税人识别号
        "account":""//账号
    },
    "inTaxAmt":"",//增值税税额
    "delFlag":"0",//作废红冲标致,0-正常,2-作废,3-红冲,7-部分红冲,8-全部红冲
    "takeOrgId":"",//主管税务机关代码
    "inTotalAmt":"",//价税合计
    "buyerInfo":{ //购买方信息
        "name":"", //购买方名称
        "taxNo":"", //购买方组织机构代码
        "idNo":""  //购买方纳税人识别号
    },
    "inNo":"", //发票号码
    "inAmt":"",	//不含税价
    "inMachineNo":"", //机器编码
    "inType":"机动车销售统一发票" //发票类型
}



//---------------------------二手车销售统一发票------------------------
{
    "code":200,//响应码,200-成功,请参考响应码说明
    "respTime": "2000-01-10 15:48:18",//响应时间
    "message": "发票查验成功",//响应信息
    "deduct": 15,//本次调用所消费票点数
    "inDate":"",//开票日期
    "inArea":"",//发票区域
    "checkCount":"1",//历史查验次数(不包括本次)
    "inCode":"",//发票代码
    "inTotalAmtCn":"",//价税合计金额大写
    "checkTime":"2000-12-31 15:35:44",  //查验时间
    "salerInfo":{//卖方单位/个人信息
        "telPhone":"",//电话
        "address":"",//卖方单位/个人住址
        "name":"",//卖方单位/个人
        "idNo":""//单位代码/身份证号码
    },
    "delFlag":"0",//作废红冲标致,0-正常,2-作废,3-红冲,7-部分红冲,8-全部红冲
    "inTotalAmt":"", //价税合计
    "buyerInfo":{//买方单位/个人信息
        "telPhone":"",//电话
        "address":"",//买方单位/个人住址
        "name":"",//买方单位/个人
        "idNo":""//单位代码/身份证号码
    },
    "auctionInfo":{//经营、拍卖单位信息
        "bank":"",//开户银行、账号
        "telPhone":"",//电话
        "address":"",//经营、拍卖单位地址
        "name":"",//经营、拍卖单位
        "taxNo":""//纳税人识别号
    },
    "marketInfo":{//二手车市场信息
        "bank":"",//开户银行、账号
        "telPhone":"",//电话
        "address":"",//地址
        "name":"",//二手车市场
        "taxNo":""//纳税人识别号
    },
    "tradeInfos":[//车辆信息
        {
            "factoryTypeNo":"",//厂牌型号
            "regNo":"",//登记证号
            "carType":"",//车辆类型
            "carNo":"",//车牌号
            "transArea":"",//转入地、车管所名称
            "carIdNo":""//车辆识别代号/车架号码
        }
    ],
    "inNo":""//发票号码
    "inMachineNo":"",//机器编码
    "remarks":"",//备注
    "inType":"二手车销售统一发票"//发票类型
}


//---------------------------电子发票(航空运输电子客票行程单)------------------------
{
    "code":200,//响应码,200-成功,请参考响应码说明
    "respTime": "2000-01-10 15:48:18",//响应时间
    "message": "发票查验成功",//响应信息
    "deduct": 15,//本次调用所消费票点数
    "inDate":"",//开票日期
    "inArea":"",发票区域
    "checkCount":"1",//历史查验次数(不包括本次)
    "inCode":"",//发票代码
    "inTotalAmtCn":"",//价税合计金额大写
    "GPNo":"",//GP单号
    "voyageInfo":[//航程信息列表
	    {
		    "flightSegment":"",//航段
		    "carrier":"",//承运人
		    "flightNo":"",//航班号
		    "ticketLevel":"",//客票级别/客票类型
		    "carrierDate":"",//承运日期
		    "destination":"",//目的站
		    "takeoffTime":"",//起飞时间
		    "departure":"",//始发站
		    "seatLevel":""//座位等级
	    }
    ],
    "inTaxAmt":"",//增值税税额
    "delFlag":"0",//作废红冲标致,0-正常,2-作废,3-红冲,7-部分红冲,8-全部红冲
    "inTotalAmt":"",//价税合计
    "buyerInfo":{//购买方信息
	    "name":"",//购买方名称
	    "taxNo":""//购买方税号/纳税人识别号
    },
    "areaFlag":"",//国内国际标识
    "checkTime":"2000-12-31 15:35:44",  //查验时间
    "ticketNo":"",//电子客票号码
    "passenger":{//乘客信息
	    "name":"",//乘客名称
	    "IdNo":""//乘客证件号码
    },
    "inNo":"",//发票号码
    "inType":"电子发票(航空运输电子客票行程单)"//发票类型
}


//---------------------------电子发票(铁路电子客票)------------------------
{
    "code":200,//响应码,200-成功,请参考响应码说明
    "respTime": "2000-01-10 15:48:18",//响应时间
    "message": "发票查验成功",//响应信息
    "deduct": 15,//本次调用所消费票点数
    "departureTime":"",//出发时间
    "carriage":"",//车厢
    "inArea":"",//发票区域
    "trainNo":"",//车次
    "inTotalAmtCn":"",//价税合计金额大写(票价大写)
    "inTaxAmt":"",//总税费
    "delFlag":"0",//作废红冲标致,0-正常,2-作废,3-红冲,7-部分红冲,8-全部红冲
    "arrivalStation":"",//到达站
    "inTotalAmt":"",//价税合计金额(票价)
    "ticketNo":"",//电子客票号
    "seatClass":"",//座位级别(席别)
    "inAmt":"",//不含税金额
    "departureStation":"",//出发站
    "seatNo":"",//座位号(席位)
    "inType":"电子发票(铁路电子客票)",//发票类型
    "inDate":"",//开票日期
    "checkCount":"",//历史查验次数(不包括本次)
    "inCode":"",//发票代码
    "taxRate":"",//税率
    "businessType":"0",//业务类型:0-售,非0-退
    "buyerInfo":{//买方信息
	    "name":"", //买方名称
	    "taxNo":"" //买方税号
    },
    "checkTime":"2000-01-01 15:43:39",//查验时间
    "passenger":{//乘客信息
	    "name":"",//乘客姓名
	    "IdNo":"" //乘客证件号
    },
    "airConFeatures":"",//空调特征
    "trainDate":"", //乘车日期
    "inNo":"" //发票号码
}
												

调用说明

价格说明表

1元=100票点,申请试用,请联系客服。

查询方式 计价方式 价格(票点/次) 备注
接口新查 按次 15(0.15元) 验证成功收费,“不一致”当日只收第一次查询费,其余失败不收费,调用量大请咨询客服
发票库 按次 0 不收费,缓存7天

接口描述

输入增值税发票二维码解析后的字符串(卷票不适用)、票查查应用authCode进行查验.

请求说明

请求示例

HTTP 方法:POST

请求URL:https://api.piaocc.com/rest/v_1/code_check.html

Header如下:

参数
content-type application/json
authCode 应用鉴权码

Body中放置请求参数,参数格式为JSON,参数详情如下:

请求参数

参数 是否必选 类型 说明
vCode string 增值税发票二维码解析后的字符串(卷票不适用)
useCache string 是否需要缓存(查询发票放入发票库),N-不需要,Y-需要,默认Y

请求代码示例

提示一:使用示例代码前,请记得替换相应的参数值。

提示二:部分语言依赖的类或库,请在代码注释中查看下载地址。

  • curl
  • Python
  • JAVA
  • PHP
  • C#
curl -i -X POST 'https://api.piaocc.com/rest/v_1/code_check.html' -H 'authCode:应用的authCode' -H 'content-type:application/json' --data '{"vCode":"01,04,1100174320,50632350,172.41,20180610,59199637391911280965,9EB6"}'
#请先安装requests模块
url = ''
header={
'content-type':'application/json',
'authCode':''
}
data={
'vCode':''
}
r=requests.post(url,json = data,headers = header)
print r.text
											
//请先导入httpclient相应的包
HttpClient httpclient = HttpClients.createDefault();
HttpPost post = new HttpPost(url);
post.addHeader("content-type", "application/json");
post.addHeader("authCode", authCode);
post.setEntity(new StringEntity("{\"vCode\":\"01,04,1100174320,50632350,172.41,20180610,
59199637391911280965,9EB6\"}"));
HttpResponse response = httpclient.execute(post);
System.out.println(EntityUtils.toString(response.getEntity()));										
										
<?php
    $host = "https://api.piaocc.com";
    $path = "/rest/v_1/code_check.html";
    $method = "POST";
    $authCode = "应用的authCode";
    $headers = array();
    array_push($headers, "content-type:application/json");
    array_push($headers, "authCode:" . $authCode);
    $querys = "";
    $bodys = "{\"vCode\":\"01,04,1100174320,50632350,172.41,20180610,59199637391911280965,9EB6\"}";
    $url = $host . $path;

    $curl = curl_init();
    curl_setopt($curl, CURLOPT_CUSTOMREQUEST, $method);
    curl_setopt($curl, CURLOPT_URL, $url);
    curl_setopt($curl, CURLOPT_HTTPHEADER, $headers);
    curl_setopt($curl, CURLOPT_FAILONERROR, false);
    curl_setopt($curl, CURLOPT_RETURNTRANSFER, true);
    curl_setopt($curl, CURLOPT_HEADER, false);
    if (1 == strpos("$".$host, "https://"))
    {
        curl_setopt($curl, CURLOPT_SSL_VERIFYPEER, false);
        curl_setopt($curl, CURLOPT_SSL_VERIFYHOST, false);
    }
    curl_setopt($curl, CURLOPT_POSTFIELDS, $bodys);
    echo curl_exec($curl);
?>

using System.IO;
using System.Text;
using System.Net;
using System.Net.Security;
using System.Security.Cryptography.X509Certificates;

private const String host = "https://api.piaocc.com";
private const String path = "/rest/v_1/code_check.html";
private const String method = "POST";
private const String authCode = "应用authCode";

static void Main(string[] args)
{
    String querys = "";
    String bodys = "{\"vCode\":\"01,04,1100174320,50632350,172.41,20180610,59199637391911280965,9EB6\"}";
    String url = host + path;
    HttpWebRequest httpRequest = null;
    HttpWebResponse httpResponse = null;

    if (0 < querys.Length)
    {
        url = url + "?" + querys;
    }

    if (host.Contains("https://"))
    {
        ServicePointManager.ServerCertificateValidationCallback = new RemoteCertificateValidationCallback
        (CheckValidationResult);
        httpRequest = (HttpWebRequest)WebRequest.CreateDefault(new Uri(url));
    }
    else
    {
        httpRequest = (HttpWebRequest)WebRequest.Create(url);
    }
    httpRequest.Method = method;
    httpRequest.Headers.Add("content-type",application/json);
    httpRequest.Headers.Add("authCode",authCode);
    if (0 < bodys.Length)
    {
        byte[] data = Encoding.UTF8.GetBytes(bodys);
        using (Stream stream = httpRequest.GetRequestStream())
        {
            stream.Write(data, 0, data.Length);
        }
    }
    try
    {
        httpResponse = (HttpWebResponse)httpRequest.GetResponse();
    }
    catch (WebException ex)
    {
        httpResponse = (HttpWebResponse)ex.Response;
    }

    Console.WriteLine(httpResponse.StatusCode);
    Console.WriteLine(httpResponse.Method);
    Console.WriteLine(httpResponse.Headers);
    Stream st = httpResponse.GetResponseStream();
    StreamReader reader = new StreamReader(st, Encoding.GetEncoding("utf-8"));
    Console.WriteLine(reader.ReadToEnd());
    Console.WriteLine("\n");

}

public static bool CheckValidationResult(object sender, X509Certificate certificate, X509Chain chain, 
SslPolicyErrors errors)
{
    return true;
}

返回说明

响应码说明

响应码 说明
200 成功
400 参数错误
403 无余额
405 访问受限(白名单限制)
500 错误(详情参考message)

返回结果示例

//----------------------------------标准发票--------------------------------------------

{
    "code":200,//响应码,200-成功,请参考响应码说明
    "respTime": "2000-01-10 15:48:18",//响应时间
    "message": "发票查验成功",//响应信息
    "deduct": 15,//本次调用所消费票点数
    "inArea":"重庆",//发票区域
    "checkCount":"1",//历史查验次数(不包括本次)
    "inDate":"20100417",//开票日期
    "inCode":"50****2130",//发票代码
    "inTotalAmtCn":"叁万贰仟捌佰肆拾玖圆叁角零分整",//开票总金额大写
    "checkTime":"2000-12-31 15:35:44",//查验时间
    "salerInfo":{//销售方信息
        "addressPhone":"重庆市**街道131****3456",//销售方地址、联系电话
        "name":"重庆市****有限公司",//销售方名称
        "taxNo":"925**********29",//销售方税号
        "account":"重庆******分理处030*****0007716"	//销售方银行账号、开户行信息
    },
    "inTaxAmt":"325.23",//总税费
    "inTotalAmt":"32849.3",//开票总金额
    "buyerInfo":{//购买方信息
        "addressPhone":"重庆市**广场 023-89****20",//购买方地址、联系电话
        "name":"重庆***有限公司",//购买方名称
        "taxNo":"915********0265",//购买方税号
        "account":"中国建设银行**支行营业部50****521"//购买方银行账号、开户行信息
    },
    "tradeInfos":[//商品明细
        {
            "tradeAmt":"1922.28",//商品总金额
            "unitPrice":"17.475247524752475",//商品单价
            "taxRate":"0.01",//商品税率
            "number":"110",//商品数量
            "tradeName":"*非金属矿物制品*砼预制过梁",//商品名称
            "unit":"根",	//商品单位
            "typeNo":"1000*100*60",//商品规格
            "taxAmt":"19.22",//商品税费
            "taxTypeNo":"31000******"//税收分类编码
        }
    ],
    "inNo":"0*****76",//发票号码
    "inCheckCode":"069**********813",//校验码
    "inAmt":"32524.07",//不计税金额
    "inMachineNo":"499******25",//机器编号
    "inType":"增值税专用发票",//发票类型
    "remarks":"",//备注
    "delFlag":"0"//作废红冲标致,0-正常,2-作废,3-红冲,7-部分红冲,8-全部红冲
}


//----------------------------------机动车销售统一发票----------------------------------
{
    "code":200,//响应码,200-成功,请参考响应码说明
    "respTime": "2000-01-10 15:48:18",//响应时间
    "message": "发票查验成功",//响应信息
    "deduct": 15,//本次调用所消费票点数
    "takeOrgName":"",//主管税务机关
    "inDate":"",//开票日期
    "inArea":"",//发票区域
    "checkCount":"1",//历史查验次数(不包括本次)
    "checkTime":"2000-12-31 15:35:44",//查验时间
    "tradeInfos":[//交易详情
        {
            "factoryTypeNo":"",//厂牌型号
            "taxRate":"",//增值税税率或征收率
            "motorNo":"",//发动机号码
            "taxProveNo":"",//完税凭证号码
            "carType":"",//车辆类型
            "productArea":"",//产地
            "tradeCheckNo":"",//商检单号
            "qualifyPaper":"",//合格证号
            "carIdNo":"",//车辆识别代号/车架号码
            "tonnage":"",//吨位
            "passengerLimit":"",//限乘人数
            "importProveNo":""//进口证明书号
        }
    ],
    "inCode":"",//发票代码
    "inTotalAmtCn":"",//价税合计金额大写
    "salerInfo":{//销货单位信息
        "telPhone":"",//电话
        "bank":"",//开户银行
        "address":"",//地址
        "name":"",//销货单位名称
        "taxNo":"",//销货单位纳税人识别号
        "account":""//账号
    },
    "inTaxAmt":"",//增值税税额
    "delFlag":"0",//作废红冲标致,0-正常,2-作废,3-红冲,7-部分红冲,8-全部红冲
    "takeOrgId":"",//主管税务机关代码
    "inTotalAmt":"",//价税合计
    "buyerInfo":{ //购买方信息
        "name":"", //购买方名称
        "taxNo":"", //购买方组织机构代码
        "idNo":""  //购买方纳税人识别号
    },
    "inNo":"", //发票号码
    "inAmt":"",	//不含税价
    "inMachineNo":"", //机器编码
    "inType":"机动车销售统一发票" //发票类型
}



//---------------------------二手车销售统一发票------------------------
{
    "code":200,//响应码,200-成功,请参考响应码说明
    "respTime": "2000-01-10 15:48:18",//响应时间
    "message": "发票查验成功",//响应信息
    "deduct": 15,//本次调用所消费票点数
    "inDate":"",//开票日期
    "inArea":"",//发票区域
    "checkCount":"1",//历史查验次数(不包括本次)
    "inCode":"",//发票代码
    "inTotalAmtCn":"",//价税合计金额大写
    "checkTime":"2000-12-31 15:35:44",  //查验时间
    "salerInfo":{//卖方单位/个人信息
        "telPhone":"",//电话
        "address":"",//卖方单位/个人住址
        "name":"",//卖方单位/个人
        "idNo":""//单位代码/身份证号码
    },
    "delFlag":"0",//作废红冲标致,0-正常,2-作废,3-红冲,7-部分红冲,8-全部红冲
    "inTotalAmt":"", //价税合计
    "buyerInfo":{//买方单位/个人信息
        "telPhone":"",//电话
        "address":"",//买方单位/个人住址
        "name":"",//买方单位/个人
        "idNo":""//单位代码/身份证号码
    },
    "auctionInfo":{//经营、拍卖单位信息
        "bank":"",//开户银行、账号
        "telPhone":"",//电话
        "address":"",//经营、拍卖单位地址
        "name":"",//经营、拍卖单位
        "taxNo":""//纳税人识别号
    },
    "marketInfo":{//二手车市场信息
        "bank":"",//开户银行、账号
        "telPhone":"",//电话
        "address":"",//地址
        "name":"",//二手车市场
        "taxNo":""//纳税人识别号
    },
    "tradeInfos":[//车辆信息
        {
            "factoryTypeNo":"",//厂牌型号
            "regNo":"",//登记证号
            "carType":"",//车辆类型
            "carNo":"",//车牌号
            "transArea":"",//转入地、车管所名称
            "carIdNo":""//车辆识别代号/车架号码
        }
    ],
    "inNo":""//发票号码
    "inMachineNo":"",//机器编码
    "remarks":"",//备注
    "inType":"二手车销售统一发票"//发票类型
}


//---------------------------电子发票(航空运输电子客票行程单)------------------------
{
    "code":200,//响应码,200-成功,请参考响应码说明
    "respTime": "2000-01-10 15:48:18",//响应时间
    "message": "发票查验成功",//响应信息
    "deduct": 15,//本次调用所消费票点数
    "inDate":"",//开票日期
    "inArea":"",发票区域
    "checkCount":"1",//历史查验次数(不包括本次)
    "inCode":"",//发票代码
    "inTotalAmtCn":"",//价税合计金额大写
    "GPNo":"",//GP单号
    "voyageInfo":[//航程信息列表
	    {
		    "flightSegment":"",//航段
		    "carrier":"",//承运人
		    "flightNo":"",//航班号
		    "ticketLevel":"",//客票级别/客票类型
		    "carrierDate":"",//承运日期
		    "destination":"",//目的站
		    "takeoffTime":"",//起飞时间
		    "departure":"",//始发站
		    "seatLevel":""//座位等级
	    }
    ],
    "inTaxAmt":"",//增值税税额
    "delFlag":"0",//作废红冲标致,0-正常,2-作废,3-红冲,7-部分红冲,8-全部红冲
    "inTotalAmt":"",//价税合计
    "buyerInfo":{//购买方信息
	    "name":"",//购买方名称
	    "taxNo":""//购买方税号/纳税人识别号
    },
    "areaFlag":"",//国内国际标识
    "checkTime":"2000-12-31 15:35:44",  //查验时间
    "ticketNo":"",//电子客票号码
    "passenger":{//乘客信息
	    "name":"",//乘客名称
	    "IdNo":""//乘客证件号码
    },
    "inNo":"",//发票号码
    "inType":"电子发票(航空运输电子客票行程单)"//发票类型
}
												

调用说明

价格说明表

1元=100票点,申请试用,请联系客服。

查询方式 计价方式 价格(票点/次)
接口新查 按次 25(0.25元)
PDF识别成功 按次 0.1(0.1元)

接口描述

输入增值税发票(不支持通行费、机动车、二手车、卷式发票)PDF的base64编码字符串或者下载url、票查查应用authCode进行查验。
注:目前只支持pdf中只有一张发票的情况。

请求说明

请求示例

HTTP 方法:POST

请求URL:https://api.piaocc.com/rest/v_1/pdf_check.html

Header如下:

参数
content-type application/json
authCode 应用鉴权码

Body中放置请求参数,参数格式为JSON,参数详情如下:

请求参数

参数 是否必选 类型 说明
base64Str string 增值税发票PDF的base64编码字符串,与url参数二选一,二者都传优先使用url
url string 增值税发票PDF的url下载地址,长度不超过1024字节,与base64Str参数二选一,二者都传优先使用url

请求代码示例

提示一:使用示例代码前,请记得替换相应的参数值。

提示二:部分语言依赖的类或库,请在代码注释中查看下载地址。

  • curl
  • Python
  • JAVA
  • PHP
  • C#
curl -i -X POST 'https://api.piaocc.com/rest/v_1/pdf_check.html' -H 'content-type:application/json' -H 'authCode:应用的authCode' --data '{"base64Str":"/91....."}'
#请先安装requests模块
url = ''
header={
'content-type':'application/json',
'authCode':''
}
data={
'base64Str':'发票pdf base64编码后的字符串'
}
r=requests.post(url,json = data,headers = header)
print r.text
											
//请先导入httpclient相应的包
HttpClient httpclient = HttpClients.createDefault();
HttpPost post = new HttpPost(url);
post.setHeader("content-type", "application/json");
post.addHeader("authCode", authCode);
post.setEntity(new StringEntity("{\"base64Str\":\"发票PDF base64编码后的字符串\"}"));
HttpResponse response = httpclient.execute(post);
System.out.println(EntityUtils.toString(response.getEntity()));										
										
<?php
    $host = "https://api.piaocc.com";
    $path = "/rest/v_1/pdf_check.html";
    $method = "POST";
    $authCode = "应用的authCode";
    $headers = array();
    array_push($headers, "content-type:application/json");
    array_push($headers, "authCode:" . $authCode);
    $querys = "";
    $bodys = "{\"base64Str\":\"发票pdf base64编码后的字符串\"}";
    $url = $host . $path;

    $curl = curl_init();
    curl_setopt($curl, CURLOPT_CUSTOMREQUEST, $method);
    curl_setopt($curl, CURLOPT_URL, $url);
    curl_setopt($curl, CURLOPT_HTTPHEADER, $headers);
    curl_setopt($curl, CURLOPT_FAILONERROR, false);
    curl_setopt($curl, CURLOPT_RETURNTRANSFER, true);
    curl_setopt($curl, CURLOPT_HEADER, false);
    if (1 == strpos("$".$host, "https://"))
    {
        curl_setopt($curl, CURLOPT_SSL_VERIFYPEER, false);
        curl_setopt($curl, CURLOPT_SSL_VERIFYHOST, false);
    }
    curl_setopt($curl, CURLOPT_POSTFIELDS, $bodys);
    echo curl_exec($curl);
?>

using System.IO;
using System.Text;
using System.Net;
using System.Net.Security;
using System.Security.Cryptography.X509Certificates;

private const String host = "https://api.piaocc.com";
private const String path = "/rest/v_1/pdf_check.html";
private const String method = "POST";
private const String authCode = "应用authCode";

static void Main(string[] args)
{
    String querys = "";
    String bodys = "{\"base64Str\":\"发票pdf base64编码后的字符串\"}";
    String url = host + path;
    HttpWebRequest httpRequest = null;
    HttpWebResponse httpResponse = null;

    if (0 < querys.Length)
    {
        url = url + "?" + querys;
    }

    if (host.Contains("https://"))
    {
        ServicePointManager.ServerCertificateValidationCallback = new RemoteCertificateValidationCallback
        (CheckValidationResult);
        httpRequest = (HttpWebRequest)WebRequest.CreateDefault(new Uri(url));
    }
    else
    {
        httpRequest = (HttpWebRequest)WebRequest.Create(url);
    }
    httpRequest.Method = method;
    httpRequest.Headers.Add("content-type","application/json");
    httpRequest.Headers.Add("authCode",authCode);
    if (0 < bodys.Length)
    {
        byte[] data = Encoding.UTF8.GetBytes(bodys);
        using (Stream stream = httpRequest.GetRequestStream())
        {
            stream.Write(data, 0, data.Length);
        }
    }
    try
    {
        httpResponse = (HttpWebResponse)httpRequest.GetResponse();
    }
    catch (WebException ex)
    {
        httpResponse = (HttpWebResponse)ex.Response;
    }

    Console.WriteLine(httpResponse.StatusCode);
    Console.WriteLine(httpResponse.Method);
    Console.WriteLine(httpResponse.Headers);
    Stream st = httpResponse.GetResponseStream();
    StreamReader reader = new StreamReader(st, Encoding.GetEncoding("utf-8"));
    Console.WriteLine(reader.ReadToEnd());
    Console.WriteLine("\n");

}

public static bool CheckValidationResult(object sender, X509Certificate certificate, X509Chain chain, 
SslPolicyErrors errors)
{
    return true;
}

返回说明

响应码说明

响应码 说明
200 成功
400 参数错误
403 无余额
405 访问受限(白名单限制)
500 错误(详情参考message)

返回结果示例

//----------------------------------标准发票--------------------------------------------

{
    "code":200,//响应码,200-成功,请参考响应码说明
    "respTime": "2000-01-10 15:48:18",//响应时间
    "message": "发票查验成功",//响应信息
    "deduct": 25,//本次调用所消费票点数
    "ocrResult":{//ocr识别结果
        "invoiceType":"增值税专用发票",//发票类型
        "invoiceCode":"50****2130",//发票代码
        "invoiceNo":"0*****76",	//发票号码
        "invoiceDate":"2010年04月17日",//开票日期
        "invoiceAmt":"238.58",//不计税金额或者计税金额
        "invoiceTotalAmt":"300.00",//发票总金额
        "sellerIdNo":"xxxxxxx",//销售方识别号
        "sellerName":"xxxx公司",//销售方名称
        "purchaserIdNo":"xxxxxxxx",//购买方识别号
        "purchaserName":"xxxx公司",//购买方名称
        "checkCode":"069**********813"//校验码
    },
    "inArea":"重庆",//发票区域
    "checkCount":"1",//历史查验次数(不包括本次)
    "inDate":"20100417",//开票日期
    "inCode":"50****2130",//发票代码
    "inTotalAmtCn":"叁万贰仟捌佰肆拾玖圆叁角零分整",//开票总金额大写
    "checkTime":"2000-12-31 15:35:44",//查验时间
    "salerInfo":{//销售方信息
        "addressPhone":"重庆市**街道131****3456",//销售方地址、联系电话
        "name":"重庆市****有限公司",	//销售方名称
        "taxNo":"925**********29",//销售方税号
        "account":"重庆******分理处030*****0007716"	//销售方银行账号、开户行信息
    },
    "inTaxAmt":"325.23",//总税费
    "inTotalAmt":"32849.3",//开票总金额
    "buyerInfo":{//购买方信息
        "addressPhone":"重庆市**广场 023-89****20",//购买方地址、联系电话
        "name":"重庆***有限公司",//购买方名称
        "taxNo":"915********0265",//购买方税号
        "account":"中国建设银行**支行营业部50****521"//购买方银行账号、开户行信息
    },
    "tradeInfos":[//商品明细
        {
            "tradeAmt":"1922.28",//商品总金额
            "unitPrice":"17.475247524752475",//商品单价
            "taxRate":"0.01",//商品税率
            "number":"110",//商品数量
            "tradeName":"*非金属矿物制品*砼预制过梁",//商品名称
            "unit":"根",	//商品单位
            "typeNo":"1000*100*60",//商品规格
            "taxAmt":"19.22",//商品税费
            "taxTypeNo":"31000******"//税收分类编码
        }
    ],
    "inNo":"0*****76",//发票号码
    "inCheckCode":"069**********813",//校验码
    "inAmt":"32524.07",//不计税金额
    "inMachineNo":"499******25",//机器编号
    "inType":"增值税专用发票",//发票类型
    "remarks":"",//备注
    "delFlag":"0"//作废红冲标致,0-正常,2-作废,3-红冲,7-部分红冲,8-全部红冲
}


//---------------------------电子发票(铁路电子客票)------------------------
{
    "code":200,//响应码,200-成功,请参考响应码说明
    "respTime": "2000-01-10 15:48:18",//响应时间
    "message": "发票查验成功",//响应信息
    "ocrResult":{//ocr识别结果
        "invoiceType":"电子发票(铁路电子客票)",//发票类型
        "invoiceNo":"",	//发票号码
        "invoiceDate":"",//开票日期
        "invoiceTotalAmt":""//发票总金额
    },
    "deduct": 15,//本次调用所消费票点数
    "departureTime":"",//出发时间
    "carriage":"",//车厢
    "inArea":"",//发票区域
    "trainNo":"",//车次
    "inTotalAmtCn":"",//价税合计金额大写(票价大写)
    "inTaxAmt":"",//总税费
    "delFlag":"0",//作废红冲标致,0-正常,2-作废,3-红冲,7-部分红冲,8-全部红冲
    "arrivalStation":"",//到达站
    "inTotalAmt":"",//价税合计金额(票价)
    "ticketNo":"",//电子客票号
    "seatClass":"",//座位级别(席别)
    "inAmt":"",//不含税金额
    "departureStation":"",//出发站
    "seatNo":"",//座位号(席位)
    "inType":"电子发票(铁路电子客票)",//发票类型
    "inDate":"",//开票日期
    "checkCount":"",//历史查验次数(不包括本次)
    "inCode":"",//发票代码
    "taxRate":"",//税率
    "businessType":"0",//业务类型:0-售,非0-退
    "buyerInfo":{//买方信息
	    "name":"", //买方名称
	    "taxNo":"" //买方税号
    },
    "checkTime":"2000-01-01 15:43:39",//查验时间
    "passenger":{//乘客信息
	    "name":"",//乘客姓名
	    "IdNo":"" //乘客证件号
    },
    "airConFeatures":"",//空调特征
    "trainDate":"", //乘车日期
    "inNo":"" //发票号码
}
												

调用说明

价格说明表

1元=100票点,申请试用,请联系客服。

查询方式 计价方式 价格(票点/次)
接口新查 按次 25(0.25元)
OFD识别成功 按次 0.1(0.1元)

接口描述

输入增值税发票(不支持通行费、机动车、二手车、卷式发票)OFD的base64编码字符串或者下载url、票查查应用authCode进行查验。
注:目前只支持ofd中只有一张发票的情况。

请求说明

请求示例

HTTP 方法:POST

请求URL:https://api.piaocc.com/rest/v_1/ofd_check.html

Header如下:

参数
content-type application/json
authCode 应用鉴权码

Body中放置请求参数,参数格式为JSON,参数详情如下:

请求参数

参数 是否必选 类型 说明
base64Str string 增值税发票OFD的base64编码字符串,与url参数二选一,二者都传优先使用url
url string 增值税发票OFD的url下载地址,长度不超过1024字节,与base64Str参数二选一,二者都传优先使用url

请求代码示例

提示一:使用示例代码前,请记得替换相应的参数值。

提示二:部分语言依赖的类或库,请在代码注释中查看下载地址。

  • curl
  • Python
  • JAVA
  • PHP
  • C#
curl -i -X POST 'https://api.piaocc.com/rest/v_1/ofd_check.html' -H 'content-type:application/json' -H 'authCode:应用的authCode' --data '{"base64Str":"/91....."}'
#请先安装requests模块
url = ''
header={
'content-type':'application/json',
'authCode':''
}
data={
'base64Str':'发票ofd base64编码后的字符串'
}
r=requests.post(url,json = data,headers = header)
print r.text
											
//请先导入httpclient相应的包
HttpClient httpclient = HttpClients.createDefault();
HttpPost post = new HttpPost(url);
post.setHeader("content-type", "application/json");
post.addHeader("authCode", authCode);
post.setEntity(new StringEntity("{\"base64Str\":\"发票ofd base64编码后的字符串\"}"));
HttpResponse response = httpclient.execute(post);
System.out.println(EntityUtils.toString(response.getEntity()));										
										
<?php
    $host = "https://api.piaocc.com";
    $path = "/rest/v_1/ofd_check.html";
    $method = "POST";
    $authCode = "应用的authCode";
    $headers = array();
    array_push($headers, "content-type:application/json");
    array_push($headers, "authCode:" . $authCode);
    $querys = "";
    $bodys = "{\"base64Str\":\"发票ofd base64编码后的字符串\"}";
    $url = $host . $path;

    $curl = curl_init();
    curl_setopt($curl, CURLOPT_CUSTOMREQUEST, $method);
    curl_setopt($curl, CURLOPT_URL, $url);
    curl_setopt($curl, CURLOPT_HTTPHEADER, $headers);
    curl_setopt($curl, CURLOPT_FAILONERROR, false);
    curl_setopt($curl, CURLOPT_RETURNTRANSFER, true);
    curl_setopt($curl, CURLOPT_HEADER, false);
    if (1 == strpos("$".$host, "https://"))
    {
        curl_setopt($curl, CURLOPT_SSL_VERIFYPEER, false);
        curl_setopt($curl, CURLOPT_SSL_VERIFYHOST, false);
    }
    curl_setopt($curl, CURLOPT_POSTFIELDS, $bodys);
    echo curl_exec($curl);
?>

using System.IO;
using System.Text;
using System.Net;
using System.Net.Security;
using System.Security.Cryptography.X509Certificates;

private const String host = "https://api.piaocc.com";
private const String path = "/rest/v_1/pdf_check.html";
private const String method = "POST";
private const String authCode = "应用authCode";

static void Main(string[] args)
{
    String querys = "";
    String bodys = "{\"base64Str\":\"发票pdf base64编码后的字符串\"}";
    String url = host + path;
    HttpWebRequest httpRequest = null;
    HttpWebResponse httpResponse = null;

    if (0 < querys.Length)
    {
        url = url + "?" + querys;
    }

    if (host.Contains("https://"))
    {
        ServicePointManager.ServerCertificateValidationCallback = new RemoteCertificateValidationCallback
        (CheckValidationResult);
        httpRequest = (HttpWebRequest)WebRequest.CreateDefault(new Uri(url));
    }
    else
    {
        httpRequest = (HttpWebRequest)WebRequest.Create(url);
    }
    httpRequest.Method = method;
    httpRequest.Headers.Add("content-type","application/json");
    httpRequest.Headers.Add("authCode",authCode);
    if (0 < bodys.Length)
    {
        byte[] data = Encoding.UTF8.GetBytes(bodys);
        using (Stream stream = httpRequest.GetRequestStream())
        {
            stream.Write(data, 0, data.Length);
        }
    }
    try
    {
        httpResponse = (HttpWebResponse)httpRequest.GetResponse();
    }
    catch (WebException ex)
    {
        httpResponse = (HttpWebResponse)ex.Response;
    }

    Console.WriteLine(httpResponse.StatusCode);
    Console.WriteLine(httpResponse.Method);
    Console.WriteLine(httpResponse.Headers);
    Stream st = httpResponse.GetResponseStream();
    StreamReader reader = new StreamReader(st, Encoding.GetEncoding("utf-8"));
    Console.WriteLine(reader.ReadToEnd());
    Console.WriteLine("\n");

}

public static bool CheckValidationResult(object sender, X509Certificate certificate, X509Chain chain, 
SslPolicyErrors errors)
{
    return true;
}

返回说明

响应码说明

响应码 说明
200 成功
400 参数错误
403 无余额
405 访问受限(白名单限制)
500 错误(详情参考message)

返回结果示例

//----------------------------------标准发票--------------------------------------------

{
    "code":200,//响应码,200-成功,请参考响应码说明
    "respTime": "2000-01-10 15:48:18",//响应时间
    "message": "发票查验成功",//响应信息
    "deduct": 25,//本次调用所消费票点数
    "ocrResult":{//ocr识别结果
        "invoiceType":"增值税专用发票",//发票类型
        "invoiceCode":"50****2130",//发票代码
        "invoiceNo":"0*****76",	//发票号码
        "invoiceDate":"2010年04月17日",//开票日期
        "invoiceAmt":"238.58",//不计税金额或者计税金额
        "invoiceTotalAmt":"300.00",//发票总金额
        "sellerIdNo":"xxxxxxx",//销售方识别号
        "sellerName":"xxxx公司",//销售方名称
        "purchaserIdNo":"xxxxxxxx",//购买方识别号
        "purchaserName":"xxxx公司",//购买方名称
        "checkCode":"069**********813"//校验码
    },
    "inArea":"重庆",//发票区域
    "checkCount":"1",//历史查验次数(不包括本次)
    "inDate":"20100417",//开票日期
    "inCode":"50****2130",//发票代码
    "inTotalAmtCn":"叁万贰仟捌佰肆拾玖圆叁角零分整",//开票总金额大写
    "checkTime":"2000-12-31 15:35:44",//查验时间
    "salerInfo":{//销售方信息
        "addressPhone":"重庆市**街道131****3456",//销售方地址、联系电话
        "name":"重庆市****有限公司",	//销售方名称
        "taxNo":"925**********29",//销售方税号
        "account":"重庆******分理处030*****0007716"	//销售方银行账号、开户行信息
    },
    "inTaxAmt":"325.23",//总税费
    "inTotalAmt":"32849.3",//开票总金额
    "buyerInfo":{//购买方信息
        "addressPhone":"重庆市**广场 023-89****20",//购买方地址、联系电话
        "name":"重庆***有限公司",//购买方名称
        "taxNo":"915********0265",//购买方税号
        "account":"中国建设银行**支行营业部50****521"//购买方银行账号、开户行信息
    },
    "tradeInfos":[//商品明细
        {
            "tradeAmt":"1922.28",//商品总金额
            "unitPrice":"17.475247524752475",//商品单价
            "taxRate":"0.01",//商品税率
            "number":"110",//商品数量
            "tradeName":"*非金属矿物制品*砼预制过梁",//商品名称
            "unit":"根",	//商品单位
            "typeNo":"1000*100*60",//商品规格
            "taxAmt":"19.22",//商品税费
            "taxTypeNo":"31000******"//税收分类编码
        }
    ],
    "inNo":"0*****76",//发票号码
    "inCheckCode":"069**********813",//校验码
    "inAmt":"32524.07",//不计税金额
    "inMachineNo":"499******25",//机器编号
    "inType":"增值税专用发票",//发票类型
    "remarks":"",//备注
    "delFlag":"0"//作废红冲标致,0-正常,2-作废,3-红冲,7-部分红冲,8-全部红冲
}
												

调用说明

价格说明表

1元=100票点,申请试用,请联系客服。

查询方式 计价方式 价格(票点/次)
接口新查 按次 20(0.2元)
图片识别成功 按次 5(0.05元)

接口描述

输入增值税发票(不支持通行费、机动车、二手车、卷式发票)图片base64编码字符串、票查查应用authCode进行查验。

请求说明

请求示例

HTTP 方法:POST

请求URL:https://api.piaocc.com/rest/v_1/image_check.html

Header如下:

参数
content-type application/json
authCode 应用鉴权码

Body中放置请求参数,参数格式为JSON,参数详情如下:

请求参数

参数 是否必选 类型 说明
base64Str string 增值税发票图片base64编码字符串,与url参数二选一,二者都传优先使用url
url string 增值税发票图片url,长度不超过1024字节,与base64Str参数二选一,二者都传优先使用url

请求代码示例

提示一:使用示例代码前,请记得替换相应的参数值。

提示二:部分语言依赖的类或库,请在代码注释中查看下载地址。

  • curl
  • Python
  • JAVA
  • PHP
  • C#
curl -i -X POST 'https://api.piaocc.com/rest/v_1/image_check.html' -H 'content-type:application/json' -H 'authCode:应用的authCode' --data '{"base64Str":"/91....."}'
#请先安装requests模块
url = ''
header={
'content-type':'application/json',
'authCode':''
}
data={
'base64Str':'发票图片base64编码后的字符串'
}
r=requests.post(url,json = data,headers = header)
print r.text
											
//请先导入httpclient相应的包
HttpClient httpclient = HttpClients.createDefault();
HttpPost post = new HttpPost(url);
post.setHeader("content-type", "application/json");
post.addHeader("authCode", authCode);
post.setEntity(new StringEntity("{\"base64Str\":\"发票图片base64编码后的字符串\"}"));
HttpResponse response = httpclient.execute(post);
System.out.println(EntityUtils.toString(response.getEntity()));										
										
<?php
    $host = "https://api.piaocc.com";
    $path = "/rest/v_1/image_check.html";
    $method = "POST";
    $authCode = "应用的authCode";
    $headers = array();
    array_push($headers, "content-type:application/json");
    array_push($headers, "authCode:" . $authCode);
    $querys = "";
    $bodys = "{\"base64Str\":\"发票图片base64编码后的字符串\"}";
    $url = $host . $path;

    $curl = curl_init();
    curl_setopt($curl, CURLOPT_CUSTOMREQUEST, $method);
    curl_setopt($curl, CURLOPT_URL, $url);
    curl_setopt($curl, CURLOPT_HTTPHEADER, $headers);
    curl_setopt($curl, CURLOPT_FAILONERROR, false);
    curl_setopt($curl, CURLOPT_RETURNTRANSFER, true);
    curl_setopt($curl, CURLOPT_HEADER, false);
    if (1 == strpos("$".$host, "https://"))
    {
        curl_setopt($curl, CURLOPT_SSL_VERIFYPEER, false);
        curl_setopt($curl, CURLOPT_SSL_VERIFYHOST, false);
    }
    curl_setopt($curl, CURLOPT_POSTFIELDS, $bodys);
    echo curl_exec($curl);
?>

using System.IO;
using System.Text;
using System.Net;
using System.Net.Security;
using System.Security.Cryptography.X509Certificates;

private const String host = "https://api.piaocc.com";
private const String path = "/rest/v_1/image_check.html";
private const String method = "POST";
private const String authCode = "应用authCode";

static void Main(string[] args)
{
    String querys = "";
    String bodys = "{\"base64Str\":\"发票图片base64编码后的字符串\"}";
    String url = host + path;
    HttpWebRequest httpRequest = null;
    HttpWebResponse httpResponse = null;

    if (0 < querys.Length)
    {
        url = url + "?" + querys;
    }

    if (host.Contains("https://"))
    {
        ServicePointManager.ServerCertificateValidationCallback = new RemoteCertificateValidationCallback
        (CheckValidationResult);
        httpRequest = (HttpWebRequest)WebRequest.CreateDefault(new Uri(url));
    }
    else
    {
        httpRequest = (HttpWebRequest)WebRequest.Create(url);
    }
    httpRequest.Method = method;
    httpRequest.Headers.Add("content-type","application/json");
    httpRequest.Headers.Add("authCode",authCode);
    if (0 < bodys.Length)
    {
        byte[] data = Encoding.UTF8.GetBytes(bodys);
        using (Stream stream = httpRequest.GetRequestStream())
        {
            stream.Write(data, 0, data.Length);
        }
    }
    try
    {
        httpResponse = (HttpWebResponse)httpRequest.GetResponse();
    }
    catch (WebException ex)
    {
        httpResponse = (HttpWebResponse)ex.Response;
    }

    Console.WriteLine(httpResponse.StatusCode);
    Console.WriteLine(httpResponse.Method);
    Console.WriteLine(httpResponse.Headers);
    Stream st = httpResponse.GetResponseStream();
    StreamReader reader = new StreamReader(st, Encoding.GetEncoding("utf-8"));
    Console.WriteLine(reader.ReadToEnd());
    Console.WriteLine("\n");

}

public static bool CheckValidationResult(object sender, X509Certificate certificate, X509Chain chain, 
SslPolicyErrors errors)
{
    return true;
}

返回说明

响应码说明

响应码 说明
200 成功
400 参数错误
403 无余额
405 访问受限(白名单限制)
500 错误(详情参考message)

返回结果示例

//----------------------------------标准发票--------------------------------------------

{
    "code":200,//响应码,200-成功,请参考响应码说明
    "respTime": "2000-01-10 15:48:18",//响应时间
    "message": "发票查验成功",//响应信息
    "deduct": 20,//本次调用所消费票点数
    "ocrResult":{//ocr识别结果
        "invoiceType":"增值税专用发票",//发票类型
        "invoiceCode":"50****2130",//发票代码
        "invoiceNo":"0*****76",	//发票号码
        "invoiceDate":"2010年04月17日",//开票日期
        "invoiceAmt":"238.58",//不计税金额或者计税金额
        "invoiceTotalAmt":"300.00",//发票总金额
        "sellerIdNo":"xxxxxxx",//销售方识别号
        "sellerName":"xxxx公司",//销售方名称
        "purchaserIdNo":"xxxxxxxx",//购买方识别号
        "purchaserName":"xxxx公司",//购买方名称
        "checkCode":"069**********813"//校验码
    },
    "inArea":"重庆",//发票区域
    "checkCount":"1",//历史查验次数(不包括本次)
    "inDate":"20100417",//开票日期
    "inCode":"50****2130",//发票代码
    "inTotalAmtCn":"叁万贰仟捌佰肆拾玖圆叁角零分整",//开票总金额大写
    "checkTime":"2000-12-31 15:35:44",//查验时间
    "salerInfo":{//销售方信息
        "addressPhone":"重庆市**街道131****3456",//销售方地址、联系电话
        "name":"重庆市****有限公司",//销售方名称
        "taxNo":"925**********29",//销售方税号
        "account":"重庆******分理处030*****0007716"//销售方银行账号、开户行信息
    },
    "inTaxAmt":"325.23",//总税费
    "inTotalAmt":"32849.3",//开票总金额
    "buyerInfo":{//购买方信息
        "addressPhone":"重庆市**广场 023-89****20",//购买方地址、联系电话
        "name":"重庆***有限公司",//购买方名称
        "taxNo":"915********0265",//购买方税号
        "account":"中国建设银行**支行营业部50****521"//购买方银行账号、开户行信息
    },
    "tradeInfos":[//商品明细
        {
            "tradeAmt":"1922.28",//商品总金额
            "unitPrice":"17.475247524752475",//商品单价
            "taxRate":"0.01",//商品税率
            "number":"110",//商品数量
            "tradeName":"*非金属矿物制品*砼预制过梁",//商品名称
            "unit":"根",	//商品单位
            "typeNo":"1000*100*60",//商品规格
            "taxAmt":"19.22",//商品税费
            "taxTypeNo":"31000******"//税收分类编码
        }
    ],
    "inNo":"0*****76",//发票号码
    "inCheckCode":"069**********813",//校验码
    "inAmt":"32524.07",//不计税金额
    "inMachineNo":"499******25",//机器编号
    "inType":"增值税专用发票",//发票类型
    "remarks":"",//备注
    "delFlag":"0"//作废红冲标致,0-正常,2-作废,3-红冲,7-部分红冲,8-全部红冲
}
												

调用说明

价格说明表

1元=100票点,申请试用,请联系客服。

查询方式 计价方式 价格(票点/次)
接口新查 按次 15(0.15元)

接口描述

区块链发票查验,目前仅支持(深圳、云南)区块链发票查验,输入区块链发票代码、发票号码、开票方识别号(税号或统一社会信用代码)、校验码、票查查应用authCode进行查验。

请求说明

请求示例

HTTP 方法:GET/POST

请求URL:https://api.piaocc.com/rest/blockChain/invoiceCheck.html?authCode=鉴权码&invoiceCode=发票代码&invoiceNo=发票号码&sellerIdNo=开票方识别号&checkCode=校验码

请求参数

参数 是否必选 类型 说明
authCode string 票查查应用鉴权码,个人中心 -> 应用管理 -> 新建应用 -> 获得应用鉴权码
invoiceCode string 发票代码
invoiceNo string 发票号码
sellerIdNo string 开票方识别号
checkCode string 校验码

请求代码示例

提示一:使用示例代码前,请记得替换相应的参数值。

提示二:部分语言依赖的类或库,请在代码注释中查看下载地址。

  • curl
  • Python
  • JAVA
  • PHP
  • C#
curl -i -X GET 'https://api.piaocc.com/rest/blockChain/invoiceCheck.html?authCode=&invoiceCode=&invoiceNo=&sellerIdNo=&checkCode='
#请先安装requests模块
url = 'https://api.piaocc.com/rest/blockChain/invoiceCheck.html?authCode=&invoiceCode=&invoiceNo=
&sellerIdNo=&checkCode='
r=requests.get(url)
print r.text
											
//请先导入httpclient相应的包
HttpClient httpclient = HttpClients.createDefault();
HttpGet get = new HttpGet("https://api.piaocc.com/rest/blockChain/invoiceCheck.html?authCode=
&invoiceCode=&invoiceNo=&sellerIdNo=&checkCode=");
HttpResponse response = httpclient.execute(get);
System.out.println(EntityUtils.toString(response.getEntity()));										
										
<?php
    $host = "https://api.piaocc.com";
    $path = "/rest/blockChain/invoiceCheck.html?authCode=
&invoiceCode=&invoiceNo=&sellerIdNo=&checkCode=";
    $method = "GET";
    $url = $host . $path;

    $curl = curl_init();
    curl_setopt($curl, CURLOPT_CUSTOMREQUEST, $method);
    curl_setopt($curl, CURLOPT_URL, $url);
    curl_setopt($curl, CURLOPT_FAILONERROR, false);
    curl_setopt($curl, CURLOPT_RETURNTRANSFER, true);
    curl_setopt($curl, CURLOPT_HEADER, false);
    if (1 == strpos("$".$host, "https://"))
    {
        curl_setopt($curl, CURLOPT_SSL_VERIFYPEER, false);
        curl_setopt($curl, CURLOPT_SSL_VERIFYHOST, false);
    }
    curl_setopt($curl, CURLOPT_POSTFIELDS, $bodys);
    echo curl_exec($curl);
?>

using System.IO;
using System.Text;
using System.Net;
using System.Net.Security;
using System.Security.Cryptography.X509Certificates;

private const String host = "https://api.piaocc.com";
private const String path = "/rest/blockChain/invoiceCheck.html?authCode=
&invoiceCode=&invoiceNo=&sellerIdNo=&checkCode=";
private const String method = "POST";
private const String authCode = "应用authCode";

static void Main(string[] args)
{
    String querys = "";
    String url = host + path;
    HttpWebRequest httpRequest = null;
    HttpWebResponse httpResponse = null;

    if (0 < querys.Length)
    {
        url = url + "?" + querys;
    }

    if (host.Contains("https://"))
    {
        ServicePointManager.ServerCertificateValidationCallback = new RemoteCertificateValidationCallback
        (CheckValidationResult);
        httpRequest = (HttpWebRequest)WebRequest.CreateDefault(new Uri(url));
    }
    else
    {
        httpRequest = (HttpWebRequest)WebRequest.Create(url);
    }
    httpRequest.Method = method;
    try
    {
        httpResponse = (HttpWebResponse)httpRequest.GetResponse();
    }
    catch (WebException ex)
    {
        httpResponse = (HttpWebResponse)ex.Response;
    }

    Console.WriteLine(httpResponse.StatusCode);
    Console.WriteLine(httpResponse.Method);
    Console.WriteLine(httpResponse.Headers);
    Stream st = httpResponse.GetResponseStream();
    StreamReader reader = new StreamReader(st, Encoding.GetEncoding("utf-8"));
    Console.WriteLine(reader.ReadToEnd());
    Console.WriteLine("\n");

}

public static bool CheckValidationResult(object sender, X509Certificate certificate, X509Chain chain, 
SslPolicyErrors errors)
{
    return true;
}

返回说明

响应码说明

响应码 说明
200 成功
400 参数错误
403 无余额
405 访问受限(白名单限制)
500 错误(详情参考message)

返回结果示例


{
    "code":200,//响应码,200-成功,请参考响应码说明
    "respTime": "2000-01-10 15:48:18",//响应时间
    "message": "发票查验成功",//响应信息
    "deduct": 15,//本次调用所消费票点数
    "invoiceData":{
        "checkTime":"2001-01-01 15:00:00",//查验时间
        "sellerName":"重庆****有限公司",//开票方名称
        "inDate":"2001-01-01",//开票日期
        "invoiceState":"已开票",//发票状态
        "sellerIdNo":"91***********0000E", //开票方识别号
        "invoiceNo":"10000000",//发票号码
        "buyerName":"深圳*****有限公司",//客户名称,买方名称
        "invoiceCode":"144031809110", //发票代码 
        "checkCode":"00000",//校验码
        "invoiceAmt":"1.00"//合计金额
    }
}
												

调用说明

价格说明表

1元=100票点,申请试用,请联系客服。

查询方式 计价方式 价格(票点/次)
接口新查 按次 15(0.15元)

接口描述

地方通用机打电子发票查验,目前仅支持浙江通用机打电子发票查验,输入发票代码、发票号码、开票方识别号(税号或统一社会信用代码)、开票日期、价税合计金额、票查查应用authCode进行查验。

请求说明

请求示例

HTTP 方法:GET/POST

请求URL:https://api.piaocc.com/rest/generalElec/invoiceCheck.html?authCode=鉴权码&invoiceCode=发票代码&invoiceNo=发票号码&sellerIdNo=开票方识别号&invoiceDate=开票日期&invoiceAmt=价税合计金额

请求参数

参数 是否必选 类型 说明
authCode string 票查查应用鉴权码,个人中心 -> 应用管理 -> 新建应用 -> 获得应用鉴权码
invoiceCode string 发票代码
invoiceNo string 发票号码
sellerIdNo string 开票方识别号
invoiceDate string 开票日期,格式:yyyyMMdd,如:19990101
invoiceAmt string 价税合计金额

请求代码示例

提示一:使用示例代码前,请记得替换相应的参数值。

提示二:部分语言依赖的类或库,请在代码注释中查看下载地址。

  • curl
  • Python
  • JAVA
  • PHP
  • C#
curl -i -X GET 'https://api.piaocc.com/rest/generalElec/invoiceCheck.html?authCode=&invoiceCode=&invoiceNo=&sellerIdNo=&invoiceDate=&invoiceAmt='
#请先安装requests模块
url = 'https://api.piaocc.com/rest/generalElec/invoiceCheck.html?authCode=&invoiceCode=&invoiceNo=
&sellerIdNo=&invoiceDate=&invoiceAmt='
r=requests.get(url)
print r.text
											
//请先导入httpclient相应的包
HttpClient httpclient = HttpClients.createDefault();
HttpGet get = new HttpGet("https://api.piaocc.com/rest/generalElec/invoiceCheck.html?authCode=
&invoiceCode=&invoiceNo=&sellerIdNo=&invoiceDate=&invoiceAmt=");
HttpResponse response = httpclient.execute(get);
System.out.println(EntityUtils.toString(response.getEntity()));										
										
<?php
    $host = "https://api.piaocc.com";
    $path = "/rest/blockChain/invoiceCheck.html?authCode=
&invoiceCode=&invoiceNo=&sellerIdNo=&invoiceDate=&invoiceAmt=";
    $method = "GET";
    $url = $host . $path;

    $curl = curl_init();
    curl_setopt($curl, CURLOPT_CUSTOMREQUEST, $method);
    curl_setopt($curl, CURLOPT_URL, $url);
    curl_setopt($curl, CURLOPT_FAILONERROR, false);
    curl_setopt($curl, CURLOPT_RETURNTRANSFER, true);
    curl_setopt($curl, CURLOPT_HEADER, false);
    if (1 == strpos("$".$host, "https://"))
    {
        curl_setopt($curl, CURLOPT_SSL_VERIFYPEER, false);
        curl_setopt($curl, CURLOPT_SSL_VERIFYHOST, false);
    }
    curl_setopt($curl, CURLOPT_POSTFIELDS, $bodys);
    echo curl_exec($curl);
?>

using System.IO;
using System.Text;
using System.Net;
using System.Net.Security;
using System.Security.Cryptography.X509Certificates;

private const String host = "https://api.piaocc.com";
private const String path = "/rest/blockChain/invoiceCheck.html?authCode=
&invoiceCode=&invoiceNo=&sellerIdNo=&invoiceDate=&invoiceAmt=";
private const String method = "POST";
private const String authCode = "应用authCode";

static void Main(string[] args)
{
    String querys = "";
    String url = host + path;
    HttpWebRequest httpRequest = null;
    HttpWebResponse httpResponse = null;

    if (0 < querys.Length)
    {
        url = url + "?" + querys;
    }

    if (host.Contains("https://"))
    {
        ServicePointManager.ServerCertificateValidationCallback = new RemoteCertificateValidationCallback
        (CheckValidationResult);
        httpRequest = (HttpWebRequest)WebRequest.CreateDefault(new Uri(url));
    }
    else
    {
        httpRequest = (HttpWebRequest)WebRequest.Create(url);
    }
    httpRequest.Method = method;
    try
    {
        httpResponse = (HttpWebResponse)httpRequest.GetResponse();
    }
    catch (WebException ex)
    {
        httpResponse = (HttpWebResponse)ex.Response;
    }

    Console.WriteLine(httpResponse.StatusCode);
    Console.WriteLine(httpResponse.Method);
    Console.WriteLine(httpResponse.Headers);
    Stream st = httpResponse.GetResponseStream();
    StreamReader reader = new StreamReader(st, Encoding.GetEncoding("utf-8"));
    Console.WriteLine(reader.ReadToEnd());
    Console.WriteLine("\n");

}

public static bool CheckValidationResult(object sender, X509Certificate certificate, X509Chain chain, 
SslPolicyErrors errors)
{
    return true;
}

返回说明

响应码说明

响应码 说明
200 成功
400 参数错误
403 无余额
405 访问受限(白名单限制)
500 错误(详情参考message)

返回结果示例


{
    "code":200,//响应码,200-成功,请参考响应码说明
    "respTime": "2000-01-10 15:48:18",//响应时间
    "message": "发票查验成功",//响应信息
    "deduct": 15,//本次调用所消费票点数
    "invoiceData":{
        "checkTime":"2001-01-01 15:00:00",//查验时间
        "inArea": "浙江",//发票区域
        "sellerName":"浙江****有限公司",//开票方名称
        "inDate":"2001-01-01",//开票日期
        "invoiceState":"正常",//发票状态-正常、作废、红冲
        "sellerIdNo":"91***********0000E", //开票方识别号
        "invoiceNo":"10000000",//发票号码
        "buyerName":"深圳*****有限公司",//客户名称,买方名称
        "inType": "通用(电子)发票",//发票类型
        "invoiceCode":"233002400111", //发票代码 
        "invoiceAmt":"1.00"//合计金额
    }
}
												

调用说明

价格说明表

1元=100票点,申请试用,请联系客服。

查询方式 计价方式 价格(票点/次)
接口新查 按次 5(0.05元)

接口描述

输入增值税发票(仅支持普通发票、专用发票、电子普通发票、电子专用发票、全电发票、区块链发票)图片base64编码字符串、票查查应用authCode进行OCR识别。

请求说明

请求示例

HTTP 方法:POST

请求URL:https://api.piaocc.com/rest/ocr/imageOcr.html

Header如下:

参数
content-type application/json
authCode 应用鉴权码

Body中放置请求参数,参数格式为JSON,参数详情如下:

请求参数

参数 是否必选 类型 说明
base64Str string 增值税发票图片base64编码字符串,与url参数二选一,二者都传优先使用url
url string 增值税发票图片url,长度不超过1024字节,与base64Str参数二选一,二者都传优先使用url

请求代码示例

提示一:使用示例代码前,请记得替换相应的参数值。

提示二:部分语言依赖的类或库,请在代码注释中查看下载地址。

  • curl
  • Python
  • JAVA
  • PHP
  • C#
curl -i -X POST 'https://api.piaocc.com/rest/ocr/imageOcr.html' -H 'content-type:application/json' -H 'authCode:应用的authCode' --data '{"base64Str":"/91....."}'
#请先安装requests模块
url = ''
header={
'content-type':'application/json',
'authCode':''
}
data={
'base64Str':'发票图片base64编码后的字符串'
}
r=requests.post(url,json = data,headers = header)
print r.text
											
//请先导入httpclient相应的包
HttpClient httpclient = HttpClients.createDefault();
HttpPost post = new HttpPost(url);
post.setHeader("content-type", "application/json");
post.addHeader("authCode", authCode);
post.setEntity(new StringEntity("{\"base64Str\":\"发票图片base64编码后的字符串\"}"));
HttpResponse response = httpclient.execute(post);
System.out.println(EntityUtils.toString(response.getEntity()));
										
<?php
    $host = "https://api.piaocc.com";
    $path = "/rest/orc/imageOcr.html";
    $method = "POST";
    $authCode = "应用的authCode";
    $headers = array();
    array_push($headers, "content-type:application/json");
    array_push($headers, "authCode:" . $authCode);
    $querys = "";
    $bodys = "{\"base64Str\":\"发票图片base64编码后的字符串\"}";
    $url = $host . $path;

    $curl = curl_init();
    curl_setopt($curl, CURLOPT_CUSTOMREQUEST, $method);
    curl_setopt($curl, CURLOPT_URL, $url);
    curl_setopt($curl, CURLOPT_HTTPHEADER, $headers);
    curl_setopt($curl, CURLOPT_FAILONERROR, false);
    curl_setopt($curl, CURLOPT_RETURNTRANSFER, true);
    curl_setopt($curl, CURLOPT_HEADER, false);
    if (1 == strpos("$".$host, "https://"))
    {
        curl_setopt($curl, CURLOPT_SSL_VERIFYPEER, false);
        curl_setopt($curl, CURLOPT_SSL_VERIFYHOST, false);
    }
    curl_setopt($curl, CURLOPT_POSTFIELDS, $bodys);
    echo curl_exec($curl);
?>

using System.IO;
using System.Text;
using System.Net;
using System.Net.Security;
using System.Security.Cryptography.X509Certificates;

private const String host = "https://api.piaocc.com";
private const String path = "/rest/ocr/imageOcr.html";
private const String method = "POST";
private const String authCode = "应用authCode";

static void Main(string[] args)
{
    String querys = "";
    String bodys = "{\"base64Str\":\"发票图片base64编码后的字符串\"}";
    String url = host + path;
    HttpWebRequest httpRequest = null;
    HttpWebResponse httpResponse = null;

    if (0 < querys.Length)
    {
        url = url + "?" + querys;
    }

    if (host.Contains("https://"))
    {
        ServicePointManager.ServerCertificateValidationCallback = new RemoteCertificateValidationCallback
        (CheckValidationResult);
        httpRequest = (HttpWebRequest)WebRequest.CreateDefault(new Uri(url));
    }
    else
    {
        httpRequest = (HttpWebRequest)WebRequest.Create(url);
    }
    httpRequest.Method = method;
    httpRequest.Headers.Add("content-type","application/json");
    httpRequest.Headers.Add("authCode",authCode);
    if (0 < bodys.Length)
    {
        byte[] data = Encoding.UTF8.GetBytes(bodys);
        using (Stream stream = httpRequest.GetRequestStream())
        {
            stream.Write(data, 0, data.Length);
        }
    }
    try
    {
        httpResponse = (HttpWebResponse)httpRequest.GetResponse();
    }
    catch (WebException ex)
    {
        httpResponse = (HttpWebResponse)ex.Response;
    }

    Console.WriteLine(httpResponse.StatusCode);
    Console.WriteLine(httpResponse.Method);
    Console.WriteLine(httpResponse.Headers);
    Stream st = httpResponse.GetResponseStream();
    StreamReader reader = new StreamReader(st, Encoding.GetEncoding("utf-8"));
    Console.WriteLine(reader.ReadToEnd());
    Console.WriteLine("\n");

}

public static bool CheckValidationResult(object sender, X509Certificate certificate, X509Chain chain,
SslPolicyErrors errors)
{
    return true;
}

返回说明

响应码说明

响应码 说明
200 成功
400 参数错误
403 无余额
405 访问受限(白名单限制)
500 错误(详情参考message)

返回结果示例


{
  "code": 200,//响应码,200-成功,请参考响应码说明
  "respTime": "2000-01-10 15:48:18",//响应时间
  "message": "OCR识别成功",//响应信息
  "deduct": 5,//本次调用所消费票点数
  "ocrResult": {//ocr识别结果
    "serviceType": "服务",//消费类型:餐饮、通讯、服务、其他等
    "sellerName": "重庆****有限公司",//销售方名称
    "invoiceTotalTax": "4.95",//合计税额
    "SellerIdNo": "915***********",//销售方识别号
    "SellerAddress": "",//销售方地址及电话
    "checker": null,//复核
    "passwordArea": "",//密码区
    "invoiceArea": "",//发票区域
    "purchaserAddress": "",//购买方地址及电话
    "payee": "",//收款人
    "invoiceTotalAmtCn": "伍佰圆整",//价税合计(大写)
    "tradeInfos": [//商品明细
      {
        "tradeAmt":"1922",//商品总金额
        "unitPrice":"17",//商品单价
        "taxRate":"1%",//商品税率
        "number":"110",//商品数量
        "tradeName":"*非金属矿物制品*砼预制过梁",//商品名称
        "unit":"根",//商品单位
        "taxAmt":"19.22"//商品税费
      }
    ],
    "invoiceTypeDetail": "电子发票(增值税专用发票)",//发票名称
    "invoiceNoElec": "",//纸质的全电发票在密码区的数电票号码
    "SellerBank": "",//销售方开户行及账号
    "invoiceType": "电子发票(专用发票)",//发票类型
    "invoiceTag": "其他",//发票左上角标志:代开、收购、其他等
    "invoiceNo": "24502**********02746",//发票号码
    "purchaserBank": "",//购买方开户行及账号
    "sheetNo": "",//联次信息
    "drawer": "",//开票人
    "invoiceDate": "2000年01月06日",//开票日期
    "isProxy": "否",//是否代开
    "invoiceCode": "",//发票代码
    "invoiceTotalAmt": "500.00",//价税合计金额
    "purchaserName": "******有限公司",//购买方名称
    "checkCode": "",//校验码
    "invoiceAmt": "495.05",//不含税金额
    "purchaserIdNo": "915*********",//购买方识别号
    "payFlag": "",//区块链发票电子支付标识
    "remarks": ""//备注
  }
}
												

调用说明

价格说明表

1元=100票点,申请试用,请联系客服。

查询方式 计价方式 价格(票点/次)
接口新查 按次 10(0.1元)

接口描述

输入增值税发票(仅支持普通发票、专用发票、电子普通发票、电子专用发票、全电发票、区块链发票)pdf base64编码字符串或pdf下载url、票查查应用authCode进行OCR识别。
注:目前只支持pdf中只有一张发票的情况。

请求说明

请求示例

HTTP 方法:POST

请求URL:https://api.piaocc.com/rest/ocr/pdfOcr.html

Header如下:

参数
content-type application/json
authCode 应用鉴权码

Body中放置请求参数,参数格式为JSON,参数详情如下:

请求参数

参数 是否必选 类型 说明
base64Str string 增值税发票pdf base64编码字符串,与url参数二选一,二者都传优先使用url
url string 增值税发票pdf url,长度不超过1024字节,与base64Str参数二选一,二者都传优先使用url

请求代码示例

提示一:使用示例代码前,请记得替换相应的参数值。

提示二:部分语言依赖的类或库,请在代码注释中查看下载地址。

  • curl
  • Python
  • JAVA
  • PHP
  • C#
curl -i -X POST 'https://api.piaocc.com/rest/ocr/pdfOcr.html' -H 'content-type:application/json' -H 'authCode:应用的authCode' --data '{"base64Str":"/91....."}'
#请先安装requests模块
url = ''
header={
'content-type':'application/json',
'authCode':''
}
data={
'base64Str':'发票pdf base64编码后的字符串'
}
r=requests.post(url,json = data,headers = header)
print r.text
											
//请先导入httpclient相应的包
HttpClient httpclient = HttpClients.createDefault();
HttpPost post = new HttpPost(url);
post.setHeader("content-type", "application/json");
post.addHeader("authCode", authCode);
post.setEntity(new StringEntity("{\"base64Str\":\"发票pdf base64编码后的字符串\"}"));
HttpResponse response = httpclient.execute(post);
System.out.println(EntityUtils.toString(response.getEntity()));
										
<?php
    $host = "https://api.piaocc.com";
    $path = "/rest/orc/pdfOcr.html";
    $method = "POST";
    $authCode = "应用的authCode";
    $headers = array();
    array_push($headers, "content-type:application/json");
    array_push($headers, "authCode:" . $authCode);
    $querys = "";
    $bodys = "{\"base64Str\":\"发票pdf base64编码后的字符串\"}";
    $url = $host . $path;

    $curl = curl_init();
    curl_setopt($curl, CURLOPT_CUSTOMREQUEST, $method);
    curl_setopt($curl, CURLOPT_URL, $url);
    curl_setopt($curl, CURLOPT_HTTPHEADER, $headers);
    curl_setopt($curl, CURLOPT_FAILONERROR, false);
    curl_setopt($curl, CURLOPT_RETURNTRANSFER, true);
    curl_setopt($curl, CURLOPT_HEADER, false);
    if (1 == strpos("$".$host, "https://"))
    {
        curl_setopt($curl, CURLOPT_SSL_VERIFYPEER, false);
        curl_setopt($curl, CURLOPT_SSL_VERIFYHOST, false);
    }
    curl_setopt($curl, CURLOPT_POSTFIELDS, $bodys);
    echo curl_exec($curl);
?>

using System.IO;
using System.Text;
using System.Net;
using System.Net.Security;
using System.Security.Cryptography.X509Certificates;

private const String host = "https://api.piaocc.com";
private const String path = "/rest/ocr/pdfOcr.html";
private const String method = "POST";
private const String authCode = "应用authCode";

static void Main(string[] args)
{
    String querys = "";
    String bodys = "{\"base64Str\":\"发票pdf base64编码后的字符串\"}";
    String url = host + path;
    HttpWebRequest httpRequest = null;
    HttpWebResponse httpResponse = null;

    if (0 < querys.Length)
    {
        url = url + "?" + querys;
    }

    if (host.Contains("https://"))
    {
        ServicePointManager.ServerCertificateValidationCallback = new RemoteCertificateValidationCallback
        (CheckValidationResult);
        httpRequest = (HttpWebRequest)WebRequest.CreateDefault(new Uri(url));
    }
    else
    {
        httpRequest = (HttpWebRequest)WebRequest.Create(url);
    }
    httpRequest.Method = method;
    httpRequest.Headers.Add("content-type","application/json");
    httpRequest.Headers.Add("authCode",authCode);
    if (0 < bodys.Length)
    {
        byte[] data = Encoding.UTF8.GetBytes(bodys);
        using (Stream stream = httpRequest.GetRequestStream())
        {
            stream.Write(data, 0, data.Length);
        }
    }
    try
    {
        httpResponse = (HttpWebResponse)httpRequest.GetResponse();
    }
    catch (WebException ex)
    {
        httpResponse = (HttpWebResponse)ex.Response;
    }

    Console.WriteLine(httpResponse.StatusCode);
    Console.WriteLine(httpResponse.Method);
    Console.WriteLine(httpResponse.Headers);
    Stream st = httpResponse.GetResponseStream();
    StreamReader reader = new StreamReader(st, Encoding.GetEncoding("utf-8"));
    Console.WriteLine(reader.ReadToEnd());
    Console.WriteLine("\n");

}

public static bool CheckValidationResult(object sender, X509Certificate certificate, X509Chain chain,
SslPolicyErrors errors)
{
    return true;
}

返回说明

响应码说明

响应码 说明
200 成功
400 参数错误
403 无余额
405 访问受限(白名单限制)
500 错误(详情参考message)

返回结果示例


{
  "code": 200,//响应码,200-成功,请参考响应码说明
  "respTime": "2000-01-10 15:48:18",//响应时间
  "message": "OCR识别成功",//响应信息
  "deduct": 5,//本次调用所消费票点数
  "ocrResult": {//ocr识别结果
    "serviceType": "服务",//消费类型:餐饮、通讯、服务、其他等
    "sellerName": "重庆****有限公司",//销售方名称
    "invoiceTotalTax": "4.95",//合计税额
    "SellerIdNo": "915***********",//销售方识别号
    "SellerAddress": "",//销售方地址及电话
    "checker": null,//复核
    "passwordArea": "",//密码区
    "invoiceArea": "",//发票区域
    "purchaserAddress": "",//购买方地址及电话
    "payee": "",//收款人
    "invoiceTotalAmtCn": "伍佰圆整",//价税合计(大写)
    "tradeInfos": [//商品明细
      {
        "tradeAmt":"1922",//商品总金额
        "unitPrice":"17",//商品单价
        "taxRate":"1%",//商品税率
        "number":"110",//商品数量
        "tradeName":"*非金属矿物制品*砼预制过梁",//商品名称
        "unit":"根",//商品单位
        "taxAmt":"19.22"//商品税费
      }
    ],
    "invoiceTypeDetail": "电子发票(增值税专用发票)",//发票名称
    "invoiceNoElec": "",//纸质的全电发票在密码区的数电票号码
    "SellerBank": "",//销售方开户行及账号
    "invoiceType": "电子发票(专用发票)",//发票类型
    "invoiceTag": "其他",//发票左上角标志:代开、收购、其他等
    "invoiceNo": "24502**********02746",//发票号码
    "purchaserBank": "",//购买方开户行及账号
    "sheetNo": "",//联次信息
    "drawer": "",//开票人
    "invoiceDate": "2000年01月06日",//开票日期
    "isProxy": "否",//是否代开
    "invoiceCode": "",//发票代码
    "invoiceTotalAmt": "500.00",//价税合计金额
    "purchaserName": "******有限公司",//购买方名称
    "checkCode": "",//校验码
    "invoiceAmt": "495.05",//不含税金额
    "purchaserIdNo": "915*********",//购买方识别号
    "payFlag": "",//区块链发票电子支付标识
    "remarks": ""//备注
  }
}
												

调用说明

价格说明表

1元=100票点,申请试用,请联系客服。

查询方式 计价方式 价格(票点/次)
接口新查 按次 10(0.1元)

接口描述

输入增值税发票(仅支持普通发票、专用发票、电子普通发票、电子专用发票、全电发票、区块链发票)ofd base64编码字符串或ofd下载url、票查查应用authCode进行OCR识别。
注:目前只支持ofd中只有一张发票的情况。

请求说明

请求示例

HTTP 方法:POST

请求URL:https://api.piaocc.com/rest/ocr/ofdOcr.html

Header如下:

参数
content-type application/json
authCode 应用鉴权码

Body中放置请求参数,参数格式为JSON,参数详情如下:

请求参数

参数 是否必选 类型 说明
base64Str string 增值税发票ofd base64编码字符串,与url参数二选一,二者都传优先使用url
url string 增值税发票ofd url,长度不超过1024字节,与base64Str参数二选一,二者都传优先使用url

请求代码示例

提示一:使用示例代码前,请记得替换相应的参数值。

提示二:部分语言依赖的类或库,请在代码注释中查看下载地址。

  • curl
  • Python
  • JAVA
  • PHP
  • C#
curl -i -X POST 'https://api.piaocc.com/rest/ocr/ofdOcr.html' -H 'content-type:application/json' -H 'authCode:应用的authCode' --data '{"base64Str":"/91....."}'
#请先安装requests模块
url = ''
header={
'content-type':'application/json',
'authCode':''
}
data={
'base64Str':'发票ofd base64编码后的字符串'
}
r=requests.post(url,json = data,headers = header)
print r.text
											
//请先导入httpclient相应的包
HttpClient httpclient = HttpClients.createDefault();
HttpPost post = new HttpPost(url);
post.setHeader("content-type", "application/json");
post.addHeader("authCode", authCode);
post.setEntity(new StringEntity("{\"base64Str\":\"发票ofd base64编码后的字符串\"}"));
HttpResponse response = httpclient.execute(post);
System.out.println(EntityUtils.toString(response.getEntity()));
										
<?php
    $host = "https://api.piaocc.com";
    $path = "/rest/orc/ofdOcr.html";
    $method = "POST";
    $authCode = "应用的authCode";
    $headers = array();
    array_push($headers, "content-type:application/json");
    array_push($headers, "authCode:" . $authCode);
    $querys = "";
    $bodys = "{\"base64Str\":\"发票ofd base64编码后的字符串\"}";
    $url = $host . $path;

    $curl = curl_init();
    curl_setopt($curl, CURLOPT_CUSTOMREQUEST, $method);
    curl_setopt($curl, CURLOPT_URL, $url);
    curl_setopt($curl, CURLOPT_HTTPHEADER, $headers);
    curl_setopt($curl, CURLOPT_FAILONERROR, false);
    curl_setopt($curl, CURLOPT_RETURNTRANSFER, true);
    curl_setopt($curl, CURLOPT_HEADER, false);
    if (1 == strpos("$".$host, "https://"))
    {
        curl_setopt($curl, CURLOPT_SSL_VERIFYPEER, false);
        curl_setopt($curl, CURLOPT_SSL_VERIFYHOST, false);
    }
    curl_setopt($curl, CURLOPT_POSTFIELDS, $bodys);
    echo curl_exec($curl);
?>

using System.IO;
using System.Text;
using System.Net;
using System.Net.Security;
using System.Security.Cryptography.X509Certificates;

private const String host = "https://api.piaocc.com";
private const String path = "/rest/ocr/ofdOcr.html";
private const String method = "POST";
private const String authCode = "应用authCode";

static void Main(string[] args)
{
    String querys = "";
    String bodys = "{\"base64Str\":\"发票ofd base64编码后的字符串\"}";
    String url = host + path;
    HttpWebRequest httpRequest = null;
    HttpWebResponse httpResponse = null;

    if (0 < querys.Length)
    {
        url = url + "?" + querys;
    }

    if (host.Contains("https://"))
    {
        ServicePointManager.ServerCertificateValidationCallback = new RemoteCertificateValidationCallback
        (CheckValidationResult);
        httpRequest = (HttpWebRequest)WebRequest.CreateDefault(new Uri(url));
    }
    else
    {
        httpRequest = (HttpWebRequest)WebRequest.Create(url);
    }
    httpRequest.Method = method;
    httpRequest.Headers.Add("content-type","application/json");
    httpRequest.Headers.Add("authCode",authCode);
    if (0 < bodys.Length)
    {
        byte[] data = Encoding.UTF8.GetBytes(bodys);
        using (Stream stream = httpRequest.GetRequestStream())
        {
            stream.Write(data, 0, data.Length);
        }
    }
    try
    {
        httpResponse = (HttpWebResponse)httpRequest.GetResponse();
    }
    catch (WebException ex)
    {
        httpResponse = (HttpWebResponse)ex.Response;
    }

    Console.WriteLine(httpResponse.StatusCode);
    Console.WriteLine(httpResponse.Method);
    Console.WriteLine(httpResponse.Headers);
    Stream st = httpResponse.GetResponseStream();
    StreamReader reader = new StreamReader(st, Encoding.GetEncoding("utf-8"));
    Console.WriteLine(reader.ReadToEnd());
    Console.WriteLine("\n");

}

public static bool CheckValidationResult(object sender, X509Certificate certificate, X509Chain chain,
SslPolicyErrors errors)
{
    return true;
}

返回说明

响应码说明

响应码 说明
200 成功
400 参数错误
403 无余额
405 访问受限(白名单限制)
500 错误(详情参考message)

返回结果示例


{
  "code": 200,//响应码,200-成功,请参考响应码说明
  "respTime": "2000-01-10 15:48:18",//响应时间
  "message": "OCR识别成功",//响应信息
  "deduct": 5,//本次调用所消费票点数
  "ocrResult": {//ocr识别结果
    "serviceType": "服务",//消费类型:餐饮、通讯、服务、其他等
    "sellerName": "重庆****有限公司",//销售方名称
    "invoiceTotalTax": "4.95",//合计税额
    "SellerIdNo": "915***********",//销售方识别号
    "SellerAddress": "",//销售方地址及电话
    "checker": null,//复核
    "passwordArea": "",//密码区
    "invoiceArea": "",//发票区域
    "purchaserAddress": "",//购买方地址及电话
    "payee": "",//收款人
    "invoiceTotalAmtCn": "伍佰圆整",//价税合计(大写)
    "tradeInfos": [//商品明细
      {
        "tradeAmt":"1922",//商品总金额
        "unitPrice":"17",//商品单价
        "taxRate":"1%",//商品税率
        "number":"110",//商品数量
        "tradeName":"*非金属矿物制品*砼预制过梁",//商品名称
        "unit":"根",//商品单位
        "taxAmt":"19.22"//商品税费
      }
    ],
    "invoiceTypeDetail": "电子发票(增值税专用发票)",//发票名称
    "invoiceNoElec": "",//纸质的全电发票在密码区的数电票号码
    "SellerBank": "",//销售方开户行及账号
    "invoiceType": "电子发票(专用发票)",//发票类型
    "invoiceTag": "其他",//发票左上角标志:代开、收购、其他等
    "invoiceNo": "24502**********02746",//发票号码
    "purchaserBank": "",//购买方开户行及账号
    "sheetNo": "",//联次信息
    "drawer": "",//开票人
    "invoiceDate": "2000年01月06日",//开票日期
    "isProxy": "否",//是否代开
    "invoiceCode": "",//发票代码
    "invoiceTotalAmt": "500.00",//价税合计金额
    "purchaserName": "******有限公司",//购买方名称
    "checkCode": "",//校验码
    "invoiceAmt": "495.05",//不含税金额
    "purchaserIdNo": "915*********",//购买方识别号
    "payFlag": "",//区块链发票电子支付标识
    "remarks": ""//备注
  }
}
												

调用说明

价格说明表

1元=100票点,申请试用,请联系客服。

查询方式 计价方式 价格(票点/次)
API接口方式 按次 免费

接口描述

通过。

请求说明

请求示例

HTTP 方法:GET

请求URL:https://api.piaocc.com/rest/queryBalance.html?authCode=票查查应用鉴权码

URL参数如下:

参数
authCode 应用鉴权码

请求代码示例

提示一:使用示例代码前,请记得替换相应的参数值。

提示二:部分语言依赖的类或库,请在代码注释中查看下载地址。

  • curl
  • Python
  • JAVA
  • PHP
  • C#
curl -i -X POST 'https://api.piaocc.com/rest/queryBalance.html?authCode=应用鉴权码'
#请先安装requests模块
url = 'https://api.piaocc.com/rest/queryBalance.html?authCode=应用鉴权码'
r=requests.get(url)
print r.text
											
//请先导入httpclient相应的包
HttpClient httpclient = HttpClients.createDefault();
HttpGet get = new HttpGet("https://api.piaocc.com/rest/queryBalance.html?authCode=应用鉴权码");
HttpResponse response = httpclient.execute(get);
System.out.println(EntityUtils.toString(response.getEntity()));										
										
<?php
    $host = "https://api.piaocc.com";
    $path = "/queryBalance.html?authCode=应用鉴权码";
    $method = "GET";
    $querys = "";
    $bodys = "{\"base64Str\":\"发票图片base64编码后的字符串\"}";
    $url = $host . $path;

    $curl = curl_init();
    curl_setopt($curl, CURLOPT_CUSTOMREQUEST, $method);
    curl_setopt($curl, CURLOPT_URL, $url);
    curl_setopt($curl, CURLOPT_FAILONERROR, false);
    curl_setopt($curl, CURLOPT_RETURNTRANSFER, true);
    curl_setopt($curl, CURLOPT_HEADER, false);
    if (1 == strpos("$".$host, "https://"))
    {
        curl_setopt($curl, CURLOPT_SSL_VERIFYPEER, false);
        curl_setopt($curl, CURLOPT_SSL_VERIFYHOST, false);
    }
    curl_setopt($curl, CURLOPT_POSTFIELDS, $bodys);
    echo curl_exec($curl);
?>

using System.IO;
using System.Text;
using System.Net;
using System.Net.Security;
using System.Security.Cryptography.X509Certificates;

private const String host = "https://api.piaocc.com";
private const String path = "/queryBalance.html?authCode=应用鉴权码";
private const String method = "GET";

static void Main(string[] args)
{
    String querys = "";
    String url = host + path;
    HttpWebRequest httpRequest = null;
    HttpWebResponse httpResponse = null;

    if (0 < querys.Length)
    {
        url = url + "?" + querys;
    }

    if (host.Contains("https://"))
    {
        ServicePointManager.ServerCertificateValidationCallback = new RemoteCertificateValidationCallback
        (CheckValidationResult);
        httpRequest = (HttpWebRequest)WebRequest.CreateDefault(new Uri(url));
    }
    else
    {
        httpRequest = (HttpWebRequest)WebRequest.Create(url);
    }
    httpRequest.Method = method;
    try
    {
        httpResponse = (HttpWebResponse)httpRequest.GetResponse();
    }
    catch (WebException ex)
    {
        httpResponse = (HttpWebResponse)ex.Response;
    }

    Console.WriteLine(httpResponse.StatusCode);
    Console.WriteLine(httpResponse.Method);
    Console.WriteLine(httpResponse.Headers);
    Stream st = httpResponse.GetResponseStream();
    StreamReader reader = new StreamReader(st, Encoding.GetEncoding("utf-8"));
    Console.WriteLine(reader.ReadToEnd());
    Console.WriteLine("\n");

}

public static bool CheckValidationResult(object sender, X509Certificate certificate, X509Chain chain, 
SslPolicyErrors errors)
{
    return true;
}

返回说明

响应码说明

响应码 说明
200 成功
400 参数错误
403 无余额
405 访问受限(白名单限制)
500 错误(详情参考message)

返回结果示例

{
    "code":200,//响应码,200-成功,请参考响应码说明
    "respTime": "2000-01-10 15:48:18",//响应时间
    "message": "查询成功",//响应信息
    "deduct": 0,//本次调用所消费票点数
    "authCode":"",//应用鉴权码
    "appName":"",//应用名称
    "phoneNo":"",//注册手机号
    "balanceCoin":""//剩余票点
}