发票识别

# 发送识别请求(URL) ### 请求URL - `/openapi/identify/sendByImageUrl` ### 请求方式 - POST ### 请求参数说明 | 名称 | 类型 | 必填 | 说明 | | ------------ | ------- | ---- | ------------------------- | | imageUrl | String |是| 发票图片URL(目前只支持普票、专票、电票) | * 滴滴出行单仅支持PDF类型 ### 请求示例 ```json { "imageUrl":"http://s.yipiaoyun.com/enh" } ``` ### 返回参数说明 |参数名|类型|说明| |:----- |:-----|----- | |code|int|状态码| |message |string |错误信息,code!=0时有值| |data| String | 返回核查ID | ### 返回示例 - 成功示例 ```json { "code": 0, "data": "3c35fc8eb3b2466397c5d3abd580730c" } ``` - 失败示例 ```json { "code":-1, "message":"图片URL不能为空" } ``` # 发送识别请求(文件) ### 请求URL - `/openapi/identify/sendByImageFile` ### 请求方式 - POST - 签名认证参数及图片文件需要以form-data方式发送 - Content-Type:multipart/form-data ### 请求参数说明 | 名称 | 类型 | 必填 | 说明 | | ------------ | ------- | ---- | ------------------------- | | imageFile | File |是| 发票图片文件(目前只支持普票、专票、电票) | * 支持的图片类型: jpg, jpeg, png及pdf(pdf只支持识别第一页内容). 图片最大支持1M. * 建议分辨率过大的图片进行压缩 * 滴滴出行单仅支持PDF类型 ### 返回参数说明 |参数名|类型|说明| |:----- |:-----|----- | |code|int|状态码| |message |string |错误信息,code!=0时有值| |data| String | 返回核查ID | ### 返回示例 - 成功示例 ```json { "code": 0, "data": "3c35fc8eb3b2466397c5d3abd580730c" } ``` - 失败示例 ```json { "code":-1, "message":"图片文件类型不支持" } ``` # 获取识别结果 ### 请求URL - `/openapi/identify/result` ### 请求方式 - POST ### 请求参数说明 | 名称 | 类型 | 必填 | 说明 | | ------------ | ------- | ---- | ------------------------- | | identifyId | String |是| 请求唯一主键 | ### 请求示例 ```json { "identifyId": "3c35fc8eb3b2466397c5d3abd580730c" } ``` ### 返回参数说明 |参数名|类型|说明| |:----- |:-----|----- | |code|int|状态码| |message |string |错误信息,code!=0时有值| |data| IdentifyResultDto | 返回的发票识别结果 | ### 发票类型 |发票类型|描述| 发票类型|描述|发票类型|描述| |:----- |:-----|:----- |:-----|:----- |:-----| |1000|增值税专用发票|2000|定额发票 |5003|航空运输电子客票行程单 | |1001|增值税普通发票|2001|国际小票|5004|过路费发票| |1002|增值税电子普通发票 |4000|机打发票 |6000|可报销其他发票| |1003|增值税普通发票(卷票) |5000|出租车发票 |6001|完税证明| |1004|机动车销售统一发票 |5001|火车票 |0000|其他| |1005|二手车销售统一发票 |5002|客运汽车 ||| ### 电票、纸票、专票 |参数名|类型|说明| |:----- |:-----|----- | |invoiceType|String|发票类型| |invoiceCode|String|发票代码| |invoiceNo|String|发票号码| |date|String|开票日期| |amountWithoutTax|String|发票不含税金额| |taxAmount|String|发票总税额| |totalAmount|String|发票总金额| |checkCode|String|校验码| |purchaserTaxNo|String|购方税号| |purchaserName|String|购方名称| |sellerTaxNo|String|销方税号| |sellerName|String|销方名称| |companySeal|String|是否有公司印章(0:没有; 1: 有)| |formType|String|发票是第几联| |formName|String|发票联次| |ciphertext|String|密码区,四行密码,每行以逗号隔开| |payee|String|收款人|| |reviewer|String|复核人|| |ticketHolder|String|开票人|| | province |String|省| | city |String|市| |remark|String|备注| | itemNames |String|商品名称,每个以逗号隔开| - 成功示例 ```json { "code": 0, "data": { "invoiceType": "10102", "invoiceCode": "050003521107", "invoiceNo": "89050020", "date": "2019年07月06日", "amountWithoutTax": "2.91", "taxAmount": "0.09", "amountWithTax": "3.00", "checkCode": "07452879925677728392", "purchaserTaxNo": "9131010563178864XK", "purchaserName": "换了丑章", "sellerTaxNo": "11010120181016022", "sellerName": "测试22", "companySeal": "1", "formType": "", "ciphertext": "03>98/-7<1-7688*0053->1+6<-,7+1631485>+*88*+605472+4488*,184/75+*0-*<21-8/>7>22-55<>3,1919+-8>9001764<197845+1803+", "payee": "张果老", "reviewer": ":南极翁", "ticketHolder": "铁头娃", "province": "重庆市", "city": "", "remark": "", "itemNames": "*软饮料*可乐" } } ``` ### 出租车发票 |参数名|类型|说明| |:----- |:-----|----- | |invoiceType|String|发票类型| |invoiceCode|String|发票代码| |invoiceNo|String|发票号码| |date|String|乘车日期| |timeGetOn|String|上车时间| |timeGetOff|String|下车时间| | mileage |String|里程| |totalAmount|String|总金额| |place|String|发票所在地| |province|String|省| |city|String|市| - 成功示例 ```json { "code": 0, "data": { "invoiceType": "5000", "invoiceCode": "050003521107", "invoiceNo": "89050020", "date": "2019年07月06日", "timeGetOn": "11:23", "timeGetOff": "11:39", "mileage": "3.2", "totalAmount": "23.30", "place": "浙江省杭州市", "province": "浙江省", "city": "杭州市" } } ``` ### 火车票 |参数名|类型|说明| |:----- |:-----|----- |invoiceType|String|发票类型| |invoiceNo|String|火车票号码| |date|String|乘车日期| |time|String|乘车时间| |stationGetOn|String|上车站| |stationGetOff|String|下车站| |trainNumber |String|车次| |seat|String|二等座| |totalAmount|String|总金额| |serialNumber|String|序列号| |idNumber|String|身份证号| - 成功示例 ```json { "code": 0, "data": { "invoiceType": "5001", "invoiceNo": "80K015233", "date": "2019年05月10日", "totalAmount": "73.00", "time": "08:42", "stationGetOn": "上海虹桥", "stationGetOff": "杭州东", "trainNumber": "G1509", "seat": "二等座", "serialNumber": "66103212100511K013431", "idNumber": "3101061994****0492" } } ``` ### 机打发票 |参数名|类型|说明| |:----- |:-----|----- | |invoiceType|String|发票类型| |invoiceCode|String|发票代码| |invoiceNo|String|发票号码| |date|String|日期| |time|String|时间| |checkCode|String|校验码| |category|String|种类| |totalAmount|String|总金额| |purchaserTaxNo|String|购方税号| |purchaserName|String|购方名称| |sellerTaxNo|String|销方税号| |sellerName|String|销方名称| |province|String|省| |city|String|市| |companySeal|String|是否有公司印章(0:没有; 1: 有)| - 成功示例 ```json { "code": 0, "data": { "invoiceType": "6001", "invoiceCode": "050003521107", "invoiceNo": "89050020", "date": "2019年07月06日", "time": "11:23:45", "checkCode": "07452879925677728392", "category": "oil", "totalAmount": "23.34", "purchaserTaxNo": "9131010563178864XK", "purchaserName": "测试公司", "sellerTaxNo": "11010120181016022", "sellerName": "小白鼠", "province": "浙江省", "city": "杭州市", "companySeal": "1" } } ``` ### 增值税普通发票(卷票) |参数名|类型|说明| |:----- |:-----|----- | |invoiceType|String|发票类型| |invoiceCode|String|发票代码| |invoiceNo|String|发票号码| |date|String|开票日期| |checkCode|String|校验码| |purchaserTaxNo|String|购方税号| |purchaserName|String|购方名称| |sellerTaxNo|String|销方税号| |sellerName|String|销方名称| |category|String|种类| |totalAmount|String|发票总金额| |province|String|省| |city|String|市| |companySeal|String|是否有公司印章(0:没有; 1: 有)| |serviceName|String|服务类型| |itemNames |String|商品名称,每个以逗号隔开| - 成功示例 ```json { "code": 0, "data": { "invoiceType": "1003", "invoiceCode": "050003521107", "invoiceNo": "89050020", "date": "2019年07月06日", "checkCode": "07452879925677728392", "purchaserTaxNo": "9131010563178864XK", "purchaserName": "测试公司", "sellerTaxNo": "11010120181016022", "sellerName": "小白鼠", "category": "oil", "totalAmount": "300.00", "province": "浙江省", "city": "杭州市", "companySeal": "1", "serviceName": "汽油", "itemNames": "*95#汽油" } } ``` ### 定额发票 |参数名|类型|说明| |:----- |:-----|----- | |invoiceType|String|发票类型| |invoiceCode|String|发票代码| |totalAmount|String|发票总金额| |province|String|省| |city|String|市| |companySeal|String|是否有公司印章(0:没有; 1: 有)| - 成功示例 ```json { "code": 0, "data": { "invoiceType": "2000", "invoiceCode": "050003521107", "totalAmount": "300.00", "province": "浙江省", "city": "杭州市", "companySeal": "1" } } ``` ### 过路费发票 IdentifyResultDto |参数名|类型|说明| |:----- |:-----|----- | |invoiceType|String|发票类型| |invoiceCode|String|发票代码| |invoiceNo|String|发票号码| |date|String|日期| |time|String|时间| | entrance |String|入口| | exit |String|出口| |totalAmount|String|发票总金额| - 成功示例 ```json { "code": 0, "data": { "invoiceType": "5004", "invoiceCode": "131001860207", "invoiceNo": "20790117", "date": "", "totalAmount": "20.00", "time": "", "entrance": "康桥", "exit": "嘉闵高架" } } ``` ### 客运汽车 |参数名|类型|说明| |:----- |:-----|----- |invoiceType|String|发票类型| |invoiceCode|String|发票代码| |invoiceNo|String|发票号码| |date|String|乘车日期| |time|String|乘车时间| |stationGetOn|String|上车站| |stationGetOff|String|下车站| |totalAmount|String|总金额| |name|String|姓名| - 成功示例 ```json { "code": 0, "data": { "invoiceType": "5002", "invoiceCode": "39320323", "invoiceNo": "49302323", "date": "2019年05月10日", "totalAmount": "73.00", "time": "08:42", "stationGetOn": "杭州东", "stationGetOff": "上海虹桥", "name": "小白鼠" } } ``` ### 航空运输电子客票行程单 |参数名|类型|说明| |:----- |:-----|----- |invoiceType|String|发票类型| |invoiceNo|String|电子客票号码| |checkCode|String|校验码| |name|String|乘机人姓名| |idNumber|String|身份证号| |date|String|乘车日期| | agentCode |String|销售单位代号| | issueUnit|String|填开单位| | fareAmount|String|票价| |taxAmount|String|税费| |fuelSurcharge|String|燃油附加费| |caacDevelopmentFund|String|民航发展基金| |insuranceAmount|String|保险费| |totalAmount|String|总金额| |internationalFlag|String|国内国际标签| |flightInfos|`List<Object>`|航班信息| |flightInfos[#].startPoint|String|出发站| |flightInfos[#].endPoint|String|到达站| |flightInfos[#].flightNumber|String|航班号| |flightInfos[#].date|String|乘机日期| |flightInfos[#].time|String|乘机时间| |flightInfos[#].seat|String|座位等级| |flightInfos[#].carrier|String|承运人| - 成功示例 ```json { "code": 0, "data": { "invoiceType": "5003", "invoiceNo": "4792345930496", "date": "2019年03月04日", "taxAmount": "10.00", "totalAmount": "1420.00", "checkCode": "0034", "name": "小白鼠", "idNumber": "530492199402239932", "agentCode": "SZH888,08676032", "issueUnit": "上海华程西南国际旅行社有限公司", "fareAmount": "1370.00", "fuelSurcharge": "0.00", "caacDevelopmentFund": "50.00", "flightInfos": [ { "startPoint": "T3深圳", "endPoint": "杭州", "flightNumber": "ZH9883", "date": "2019年01月25日", "time": "18:05", "seat": "Y", "carrier": "深航" } ], "internationalFlag": "国内(D)" } } ``` ### 二手车销售统一发票 |参数名|类型|说明| |:----- |:-----|----- | |invoiceType|String|发票类型| |invoiceCode|String|发票代码| |invoiceNo|String|发票号码| |date|String|开票日期| |totalAmount|String|发票总金额| |sellerName|String|卖方单位/个人| |sellerNumber|String|卖方单位代码/个人身份证号| |purchaserName|String|买方单位/个人| |purchaserNumber|String|买方单位代码/个人身份证号| |companyName|String|二手车市场| |companyTaxNo|String|二手车市场纳税人识别号| |licensePlate|String|车牌号| |registrationNumber|String|登记证号| |carCode|String|车架号/车辆识别代码| |carModel |String|厂牌型号| | province |String|省| | city |String|市| - 成功示例 ```json { "code": 0, "data": { "invoiceType": "1005", "invoiceCode": "050003521107", "invoiceNo": "89050020", "date": "2019年07月06日", "totalAmount": "112300.00", "sellerName": "测试公司", "sellerNumber": "9131010563178864XK", "purchaserName": "小白鼠", "purchaserNumber": "11010120181016022", "companyName": "二手车交易管理有限公司", "companyTaxNo": "TEST34056KS43064XK", "licensePlate": "浙A123456", "registrationNumber": "32031231254", "carCode": "SLDOEOSJ8FG349582", "carModel": "大众牌LKS3232N4", "province": "浙江省", "city": "杭州市" } } ``` ### 机动车销售统一发票 |参数名|类型|说明| |:----- |:-----|----- | |invoiceType|String|发票类型| |invoiceCode|String|发票代码| |invoiceNo|String|发票号码| |machineCode|String|机打代码| |machineNo|String|机打号码| |date|String|开票日期| |amountWithoutTax|String|税前金额| |totalAmount|String|发票总金额| |sellerName|String|销售单位| |sellerNumber|String|销售单位纳税人识别号| |purchaserName|String|买方单位/个人| |purchaserNumber|String|买方单位代码/个人身份证号| |taxAuthoritiesName|String|主管税务机关| |taxAuthoritiesCode|String|主管税务机关代码| |carCode|String|车架号/车辆识别代码| |carEngineCode|String|发动机号码| |carModel |String|厂牌型号| |certificateNumber |String|合格证号| |taxAmount |String|税额| |taxRate |String|税率| | province |String|省| | city |String|市| - 成功示例 ```json { "code": 0, "data": { "invoiceType": "1004", "invoiceCode": "144001724660", "invoiceNo": "01005461", "date": "2018年04月18日", "taxAmount": "1278.63", "totalAmount": "8800.00", "sellerName": "测试公司", "sellerTaxNo": "9144152157012358X0", "purchaserName": "小白鼠", "purchaserNumber": "11010120181016022", "carCode": "ODKSLSZG5J8049341", "carModel": "索市牌ZS452ZH-7C", "machineCode": "231231723023", "machineNumber": "49229461", "taxAuthoritiesName": "国家税务局办税服务厅", "taxAuthoritiesCode": "144152302", "carEngineCode": "8J101041", "certificateNumber": "YK0708170645023", "taxRate": "17%", "province": "广东省", "city": "广州市" } } ``` ### 小票 |参数名|类型|说明| |:----- |:-----|----- | |invoiceType|String|发票类型| |date|String|开票日期| |time |String|时间| |amountWithoutTax|String|税前金额| |taxAmount |String|税额| |totalAmount|String|总金额| | storeName |String|店名| | discountAmount |String|折扣金额| | tipAmount |String|小费| | currencyCode |String|币种, 使用 ISO 4217 Currency Codes 标准| - 成功示例 ```json { "code": 0, "data": { "invoiceType": "2001", "date": "2014年01月13日", "amountWithoutTax": "1009.00", "taxAmount": "0.00", "totalAmount": "913.00", "time": "", "storeName": "测试酒店", "discountAmount": "96.00", "tipAmount": "0.00", "currencyCode": "CNY" } } ``` ### 完税证明 |参数名|类型|说明| |:----- |:-----|----- |invoiceType|String|发票类型| |invoiceNo|String|发票号码| |date|String|日期| |totalAmount|String|总金额| |purchaserTaxNo|String|购买方纳税人识别号| |purchaserName|String|购买方名称| - 成功示例 ```json { "code": 0, "data": { "invoiceType": "6001", "invoiceNo": "00427046", "date": "2019年04月23日", "totalAmount": "122.40", "purchaserTaxNo": "1101012018101602Y", "purchaserName": "小白鼠" } } ``` ### 滴滴出行行程单 |参数名|类型|说明| |:----- |:-----|----- |invoiceType|String|发票类型| |date|String|申请日期| | startDate |String|行程开始时间| | endDate|String|行程结束时间| | phone|String|行程人手机号| |totalAmount|String|总金额| |tripInfos|`List<Object>`|行程信息| |tripInfos[#].carType|String|车型| |tripInfos[#].timeGetOn|String|上车时间| |tripInfos[#].city|String|城市| |tripInfos[#].stationGetOn|String|起点| |tripInfos[#].stationGetOff|String|终点| |tripInfos[#].mileage|String|里程(公里)| |tripInfos[#].amount|String|金额| - 成功示例 ```json { "code": 0, "data": { "invoiceType": "2002", "date": "2018年07月10日", "totalAmount": "56.53", "startDate": "2018年01月19日", "endDate": "2018年07月10日", "phone": "13944433849", "tripInfos": [ { "carType": "专车", "timeGetOn": "01-19 08:32 周五", "city": "深圳市", "stationGetOn": "金地金谷公寓", "stationGetOff": "大冲国际中心", "mileage": "4.8", "amount": "33.63" }, { "carType": "快车", "timeGetOn": "04-13 08:38 周五", "city": "深圳市", "stationGetOn": "金地金谷公寓", "stationGetOff": "大冲国际中心", "mileage": "5.2", "amount": "22.90" } ] } } ``` ### 失败示例 ```json { "code":-1, "message":"未查询到对应识别请求" } ```