当前位置: API文档

vip_invoice_info_query.php查询开票数据

¥增值 

1.接口说明

1.1 接口描述:获取税控等开发票系统需要的开票数据
1.2 适用版本:客户端 V2.4.5.0及以上版本
1.3 增量获取:按照旺店通ERP中发票的最后修改时间增量获取数据,请求时输入start_time和end_time作为时间跨度的筛选条件。
1.4 时间跨度:start_time和end_time最大跨度为30天,开始时间和结束时间取值范围为闭区间取值,例如2018-11-01 00:00:00至2018-11-30 23:59:59,建议根据获取数据量的多少适当减小时间跨度。
1.5 注意事项:淘系平台开票数据无法从本接口获,如需获取淘系平台发票信息,需走奇门线上ERP-线下ERP进行处理如需开票请联系旺店通销售开通“阿里电子发票”增值功能进行发票的开具。

2.调用场景

2.1 开票系统(金壬、航天金税等)接入ERP

3.请求参数说明

   3.1 请求地址

环境HTTP地址
测试环境https://sandbox.wangdian.cn/openapi2/vip_invoice_info_query.php
正式环境https://api.wangdian.cn/openapi2/vip_invoice_info_query.php


   3.2 公共请求参数

名称字段类型长度
必须描述
卖家账号sidString
购买ERP时由旺店通分配给ERP购买方,请从ERP购买方获取。
接口账号appkeyString
本开放平台“自助对接”功能模块内自助申请,获取方式点击这里
时间戳timestampint
北京时间1970-01-01 08:00:00起至现在的总秒数,10位int值,旺店通企业版API服务端允许请求最大时间误差为5min,date.timezone = Asia/Shanghai。
签名signString
API输入参数签名结果,签名算法介绍单击这里

   3.3 业务请求参数

名称字段类型长度
必须描述
开始时间start_timedatetime

按最后修改时间增量获取数据,start_time作为开始时间,时间格式:yyyy-MM-dd HH:mm:ss
结束时间end_timedatetime

按最后修改时间增量获取数据,end_time作为结束时间,时间格式:yyyy-MM-dd HH:mm:ss
分页大小page_sizeint

每页返回的数据条数,默认30,最大100条单击这里
页号page_noint

不传值默认从0页开始
发票状态statusint4

输入可选值:0  已取消  60 待开票  80 开票成功

开票服务商子类别category_orderint11
可选值:1 金壬 (纸质票)200 阿里电子发票(注:阿里电子发票信息仅限查询80开票成功的发票信息,其他发票状态不返回)399其他(电子票,除阿里电子发票之外的服务商使用) 400 百望云(数电票)   401 航信(数电票) 
店铺编号shop_novarchar40按照店铺维度进行数据请求,V2.4.5.0及以上版本可使用此参数请求
订单编号trade_novarchar40
发票对应的erp系统内生成的销售订单编号
原始订单号src_tidvarchar255发票对应的平台的销售订单编号,ERP系统手工新建订单
发票编号invoice_novarchar20发票编号,ERP系统内部自动生成,在ERP发票管理为唯一编号

4.响应参数

   4.1 公共响应参数

名称字段类型长度
必须描述
错误码codeint11状态码:0表示成功,其他表示失败
错误描述messagevarchar255错误描述
数据条数total_countint11只有page_no = 0 时才返回的符合条件的数据总条数,用来分页
发票列表节点infodata[ ]

响应参数的1级数据节点,包含当前页的xxxx的数据节点,节点下数据字段详见下述“xxx”节点和"xxx"节点

   4.2 业务响应参数

       info

名称字段类型长度
必须描述
发票idinvoice_idint11

发票主键
发票编号invoice_novarchar20系统内部自动生成的发票编号,ERP发票管理唯一
订单IDtrade_idint11
ERP内系统订单id,系统订单主键
订单编号trade_novarchar40ERP内订单编号
店铺编号shop_novarchar20店铺编号
店铺名称shop_namevarchar128店铺名称
下载地址file_pathvarchar1024
下载地址
发票状态statustinyint
4

发票状态值:0  已取消 60 待开票 80 开票成功

发票红蓝字typetinyint
4 1 蓝字发票; 2 红字发票
抬头类型
payer_typetinyint
4发票抬头类型 1 商家对个人开具 2 商家对企业开具
发票抬头payer_namevarchar64订单付款方的名称
税务登记证号payer_register_novarchar40付款方税务登记证号,如果对企业开具,必填
付款方联系电话payer_phonevarchar20付款方联系电话,如果为增值税专用发票的话,必填
付款方emailpayer_emailvarchar64付款方email
地址payer_addressvarchar255付款方地址
银行名称payer_bankvarchar255付款方银行名称
银行账户
payer_accountvarchar30付款方银行账户
买家税号payer_register_novarchar40付款方税号
开票人payee_operatorvarchar20开票人
收款人payee_receivervarchar20收款人
复核人payee_checkervarchar20复核人
收件人receiver_namevarchar20收件人
收件人联系方式receiver_phonevarchar20收件人联系电话
收件人地址receiver_addressvarchar255收件人详细地址
总金额invoice_amountdecimal(19,4)开票总金额(实际合计金额+实际合计税额)
合计金额goods_amountdecimal(19,4)货品合计金额(未扣除折扣)等于明细中sum_price的总和
合计税额goods_taxdecimal(19,4)货品合计税额(未扣除折扣)等于明细中tax的总和
税前折扣金额 discountdecimal(19,4)税前折扣金额 等于明细中discount的总和
折扣税额discount_taxdecimal(19,4)折扣税额等于明细中discount_tax的总和
实际合计金额sum_pricedecimal(19,4)实际合计金额(货品合计金额-税前折扣金额) goods_amount减去discount等于sum_price
实际合计税额sum_taxdecimal(19,4)实际合计税额(货品合计税额-折扣税额)goods_tax减去discount_tax等于sum_tax
发票备注invoice_remarkvarchar255发票备注
发票类型device_noint4发票类型:1普通发票 2增值税普通发票3增值专用税发票
冲红原因
extra_1int4冲红原因 1:销货退回    2:开票错误    3:服务中止     4:销售折让
发票种类invoice_categorytinyint4发票种类:0纸质发票 1电子发票 2数电票
备注remarkvarchar255备注
原始单号src_tidsvarchar255原始单号
出库单号stockout_novarchar40出库单号
收款方公司idpayee_idint11收款方公司id
收款方公司名称payee_namevarchar64收款方公司名称
收款方地址payee_addressvarchar255收款方地址
收款方联系电话payee_telnovarchar20收款方联系电话
收款方银行payee_bank_namevarchar64收款方银行
收款方银行账户payee_bank_accountvarchar64收款方银行账户
收款方备注payee_remarkvarchar255收款方备注
开票服务商idinvoice_provider_idint11开票服务商id
开票服务商名称invoice_provider_namevarchar40开票服务商名称
发票创建时间createddatetime
发票创建时间,时间格式:yyyy-MM-dd HH:mm:ss
开票时间
invoice_timedatetime
开票时间,时间格式:yyyy-MM-dd HH:mm:ss
最后修改时间modifieddatetime
发票最后修改时间,时间格式:yyyy-MM-dd HH:mm:ss
发票号码invoice_no_outvarchar20发票号码
发票代码invoice_codevarchar20发票代码
关联发票号码relation_invoice_no_outvarchar20红字发票对应蓝票的发票号码
关联发票代码relation_invoice_codevarchar20红字发票对应蓝票的发票代码
红字发票申请单号red_invoice_apply_novarchar40增值税专票红字冲销时的红字发票通知单号(待新增,V2.4.3.0及以上版本可响应此参数请求)
发票明细节点
detailsdata[ ]
响应参数的2级数据节点,包含系统发票明细所有属性信息的数据节点,节点下数据字段详见下述"details"
货品明细节点goods_listdata[ ]
响应参数的2级数据节点,包含系统发票明细货品信息的数据节点,节点下数据字段详见下述"goods_list"

details

名称字段类型长度
必须描述
原始单号src_tidvarchar255原始单号
原始子单号src_oidvarchar40原始子订单号
发票项目名称item_namevarchar255发票项目名称,即商品名称
发票项目编码item_novarchar100发票项目编码,即规格名称
单位unitvarchar20单位
数量numdecimal(19,4)数量
税务编码tax_codevarchar40税务编码
税率tax_ratedecimal(19,4)税率
税前单价pricedecimal(19,6)税前单价(未扣除折扣)
税前总价sum_pricedecimal(19,4)税前总价(未扣除折扣)
税额taxdecimal(19,4)税额(未扣除折扣)
总价sum_amountdecimal(19,4)总价(未扣除折扣),税额+税前总价
税前折扣金额discountdecimal(19,4)税前折扣金额
折扣税额discount_taxdecimal(19,4)折扣税额
折扣总价discount_amountdecimal(19,4)折扣总价(折扣税额+税前折扣金额)
是否折扣discount_flagtinyint
4是否有折扣: 0 无  1 有
备注remarkvarchar255备注

goods_list

名称字段类型长度
必须描述
原始订单号src_tidvarchar40原始订单号
原始子单号src_oidvarchar40原始子单号
是否是赠品gift_typetinyint1是否是赠品 0非赠品 1自动赠送 2手工赠送
退款状态refund_statustinyint1退款状态: 0无退款,1取消退款,2已申请退款,3等待退货,4等待收货,5退款成功
下单数量numdecimal19,4货品数量
标价pricedecimal(19,4)销售单价,手工新建时使用货品属性中的“零售价”
实发数量actual_numdecimal19,4实发数量,此数量为发货数量
成交价order_pricedecimal(19,4)成交价,原始单折扣及分摊之后的价格
分摊后价格share_pricedecimal(19,4)分摊后价格
分摊邮费share_postdecimal(19,4)分摊邮费
已付金额paiddecimal(19,4)已支付金额
货品名称goods_namevarchar255货品名称
货品编号goods_novarchar40代表货品(spu)所有属性的编号,SPU概念介绍,单击这里
规格名称spec_namevarchar100规格名称
商家编码spec_novarchar40代表单品(sku)所有属性的编码,SKU概念介绍,单击这里
规格码spec_codevarchar40规格码
组合装编码suite_novarchar40组合装编码
组合装名称suite_namevarchar255组合装名称
组合装数量suite_numdecimal(19,4)组合装数量
平台货品名称api_goods_namevarchar255平台货品名称
平台规格名称api_spec_namevarchar100平台规格名称

5.请求示例

PHP
<?php
    require_once("../WdtClient.php");
    $c = new WdtClient;
    $c->sid = '';
    $c->appkey = '';
    $c->appsecret = '';
    $c->gatewayUrl = 'https://api.wangdian.cn/openapi2/vip_invoice_info_query.php';
    
    $c->putApiParam('start_time', '2021-06-20 00:00:00');
    $c->putApiParam('end_time', '2021-06-30 23:59:59');
    $c->putApiParam('page_no', '0');
    $c->putApiParam('status', '0');
    $c->putApiParam('category_order', '1');
    $c->putApiParam('shop_no', '');
    $c->putApiParam('trade_no', '0');
    $c->putApiParam('src_tid', '');
    $c->putApiParam('invoice_no', '');
    $c->putApiParam('page_size', '40');
    $json = $c->wdtOpenApi();
    var_dump($json);
?>
JAVA
package com.wangdian.api.trade;

import java.io.IOException;
import java.util.HashMap;
import java.util.Map;

import com.wangdian.api.WdtClient;

public class VipInvoiceInfoQuery {

    public static void main(String[] args) {
        // TODO Auto-generated method stub
        WdtClient client = new WdtClient("传入sid", "传入appkey", "传入appsecret", "传入url");
        //测试环境sid、appkey、密钥请到旺店通开放平台-自助对接-申请测试环境内查看,测试环境url=https://sandbox.wangdian.cn/openapi2/
        //调用正式环境时请将sid、appkey、appsecret切换为实际参数,参数在旺店通开放平台-自助对接-应用管理内应用状态为已上线的应用中查看,调用正式环境注意切换正式环境url=https://api.wangdian.cn/openapi2/
        
        Map<String, String> params = new HashMap<String, String>();
        params.put("start_time","2022-03-15 11:33:02");
        params.put("end_time","2022-03-15 11:33:04");
        params.put("page_no","0");
        params.put("status","80");
        params.put("category_order","399");
        //params.put("shop_no","");
        //params.put("trade_no","");
        //params.put("src_tid","");
        params.put("invoice_no","DZ202203090001");
        params.put("page_size","40");

        try {
            String response = client.execute("vip_invoice_info_query.php", params);
            System.out.println(response);
        } catch (IOException e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
        }
    }

}
C#
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using WdtSdk;
namespace VipInvoiceInfoQuery
{
    class VipInvoiceInfoQuery
    {
        static void Main(string[] args)
        {
            WdtClient client = new WdtClient();
            client.sid = "";
            client.appkey = "";
            client.appsecret = "";
            client.gatewayUrl = "https://sandbox.wangdian.cn/openapi2/vip_invoice_info_query.php";
            client.putParams("start_time", "2019-02-01 00:00:00");
            client.putParams("end_time", "2019-02-30 00:00:00");
            client.putParams("page_no", "0");
            client.putParams("page_size", "10");
            //client.putParams("trade_no", "JY201902130019");
            client.putParams("category_order", "1");
            client.putParams("status", "60");
            client.putParams("type", "1");
            string result = client.wdtOpenapi();
            Console.WriteLine(result);
            Console.ReadKey();
        }
    }
}
python
import WdtClient

t = WdtClient.WdtClient('appkey', 'appsecret', 'sid', 'http://sandbox.wangdian.cn/openapi2/')
params = {}
params.update({"start_time": '2021-01-01 00:00:00'})
params.update({"end_time": '2021-01-01 00:59:59'})
params.update({"page_size": '100'})
params.update({"page_no": '0'})
params.update({"status": '60'})
params.update({"category_order": '399'})

response = t.execute("vip_invoice_info_query.php", params)
print(response)

6.响应示例

   6.1 正常响应示例 

JSON
{
	"code": 0,
	"message": "OK",
	"info": [{
		"invoice_id": "2330",
		"invoice_no": "DZ202212080001",
		"trade_id": "1351739",
		"src_tid": "2022120818020001",
		"trade_no": "JY202212080059",
		"status": "60",
		"type": "1",
		"payer_type": "2",
		"payer_name": "测试发票抬头",
		"payer_register_no": "123455",
		"payer_phone": "",
		"payer_email": "",
		"payer_address": "",
		"payer_bank": "",
		"payer_account": "",
		"payee_operator": "",
		"payee_receiver": "",
		"payee_checker": "",
		"receiver_name": "1",
		"receiver_phone": "1",
		"receiver_address": "1111",
		"invoice_category": "0",
		"invoice_amount": "0.0100",
		"goods_amount": "0.0100",
		"goods_tax": "0.0000",
		"discount": "0.0000",
		"discount_tax": "0.0000",
		"sum_price": "0.0100",
		"sum_tax": "0.0000",
		"invoice_remark": "",
		"device_no": "2",
		"remark": "",
		"invoice_no_out": "",
		"invoice_code": "",
		"relation_invoice_no_out": "",
		"relation_invoice_code": "",
		"payee_id": "1",
		"payee_name": "测试收款方公司",
		"payee_address": "北京",
		"payee_telno": "400",
		"payee_bank_name": "测试收款方银行",
		"payee_bank_account": "测试收款方银行账户",
		"payee_register_no": "10000",
		"payee_remark": "测试收款方",
		"invoice_provider_id": "1",
		"invoice_provider_name": "测试纸质发票",
		"created": "2022-12-08 18:08:07",
		"modified": "2022-12-08 18:08:41",
		"shop_no": "qdls2-test",
		"shop_name": "qdls2-test",
		"file_path": "",
		"src_tids": "2022120818020001",
		"stockout_no": "CK2212080105",
		"extra_1": "0",
		"red_invoice_apply_no": "",
		"details": [{
			"item_name": "【小】脉动橘子味600ml*15瓶/箱",
			"item_no": "【小】脉动橘子味600ml*15瓶/箱",
			"unit": "支",
			"num": "1.0000",
			"tax_code": "1010101020000000000",
			"tax_rate": "0.1300",
			"price": "0.010000",
			"sum_price": "0.0100",
			"tax": "0.0000",
			"sum_amount": "0.0100",
			"discount": "0.0000",
			"discount_tax": "0.0000",
			"discount_amount": "0.0000",
			"discount_flag": "0",
			"remark": ""
		}],
		"goods_list": [{
			"src_oid": "104215",
			"src_tid": "2022120818020001",
			"gift_type": "0",
			"refund_status": "0",
			"num": "1.0000",
			"price": "1.0100",
			"actual_num": "1.0000",
			"order_price": "0.0100",
			"share_price": "0.0100",
			"share_post": "0.0000",
			"paid": "0.0100",
			"goods_name": "【小】脉动橘子味600ml*15瓶/箱",
			"goods_no": "370",
			"spec_name": "【小】脉动橘子味600ml*15瓶/箱",
			"spec_no": "370",
			"spec_code": "",
			"suite_no": "",
			"suite_name": "",
			"suite_num": "0.0000",
			"api_goods_name": "测试商品请勿拍",
			"api_spec_name": "测试商品请勿拍"
		}]
	}],
	"total": "1"
}

   6.2 异常响应示例

JSON
{
    "code": 1060,
    "message": "充值余额为0或应用已欠费,请联系商务充值 "
}



常用工具