verify_e_invoice
1.接口描述
该 API 用于对输入的图片进行电子票的验真,并返回验真后的结构化数据
- 图片要求:
- 格式为 JPG(JPEG),PNG
- 宽和高大于 128px,小于等于 6000px
请求方式
POST
http://cloudapi.deepfinch.com/ocr/medical/verify_e_invoice
2.请求参数
2.1 请求头域
字段 |
类型 |
必需 |
描述 |
X-DF-API-ID |
string |
是 |
API调用凭证信息,详细信息请参考API调用 |
X-DF-API-SECRET |
string |
是 |
API调用凭证信息,详细信息请参考API调用 |
2.2 请求体
字段 |
类型 |
必需 |
描述 |
file |
file |
见下方注释 |
需上传的图片文件,上传本地图片进行检测时选取此参数 |
auto_rotate |
boolean |
否 |
是否开启图片自动旋转, 默认:false |
请求参数 file
与 url
二选一。
url 中若含有特殊字符,则需要对这些字符进行转义,所有中文和特殊字符必需以UTF-8编码转义。
目前支持 http/https 协议的网络地址。下载限时 5s,超时后仍未下载完成则属于失败。
参数 file
需把图片文件以 multipart/form-data 的形式放到 POST 消息体中。
3.返回参数
字段 |
类型 |
说明 |
request_id |
string |
本次请求的id |
status |
string |
状态,正常为 OK |
data |
object |
票据信息验真结果 |
error_code |
int |
验真错误码,仅当status 为VERIFY_FAILED 时返回 |
reason |
string |
错误原因 |
qrcode_scan_result |
int |
二维码扫描结果: 0-扫描失败, 1-扫描成功 |
3.1 data 字段的参数:
字段 |
类型 |
说明 |
invoice_standard_result |
object |
本次请求票据基础信息 |
invoice_additional_result |
object |
本次请求票据额外信息 |
3.2 invoice_standard_result 字段的参数:
字段 |
类型 |
说明 |
province |
string |
票据省份 |
note_title |
string |
票据标题 |
type |
int |
票据类型: 0-未知, 1-门诊票据, 2-住院票据 |
note_no |
string |
票据号码 |
patient_name |
string |
患者姓名 |
patient_gender |
int |
性别: 0-未知, 1-男, 2-女 |
billing_date |
string |
开票日期 |
checksum |
object |
票据内校验结果: -1 不校验,0 未通过校验,1 通过校验 |
cost_categories |
array |
大类项目 |
cost_detail_list |
array |
细类项目 |
hospital_name |
string |
医院名称 |
start_hospital_date |
string |
入院日期 |
end_hospital_date |
string |
出院日期 |
hospital_days |
float |
住院天数 |
total_cost |
float |
发票总金额 |
medical_insurance_type |
string |
医保类型 |
medical_organization_type |
string |
医疗机构类型 |
service_serial_no |
string |
业务流水号 |
social_security_card_no |
string |
社会保障号码 |
payments_info |
array |
支付信息项 |
charging_units |
string |
收款单位 |
hospital_no |
string |
住院号/门诊号 |
payee |
string |
收款人 |
reviewer |
string |
复核人 |
hospital_departments |
string |
住院科别 |
work_unit |
string |
工作单位 |
payment_channel |
string |
支付渠道 |
medical_insurance_no |
string |
医保编号 |
medical_card_no |
string |
就诊卡号 |
check_code |
string |
校验码 |
note_code |
string |
票据代码 |
medical_record_no |
string |
病历号 |
unified_social_credit_code |
string |
交款人社会统一信用代码 |
treatment_date |
string |
就诊日期 |
invoice_party_code |
string |
开票单位代码 |
remark |
string |
备注 |
3.2.1 cost_categories 字段的参数:
字段 |
类型 |
说明 |
name |
string |
大类单项名称 |
cost |
float |
大类单项金额 |
3.2.2 `checksum` 字段的参数:
字段 |
类型 |
说明 |
cost_categories |
int |
大类金额,大类金额之和是否等于总金额 |
cost_detail_list |
int |
细目金额,细目金额之和是否等于总金额 |
3.2.2 cost_detail_list 字段的参数:
字段 |
类型 |
说明 |
ocr_name |
string |
细目名称,基于票面名称拆解后细目名称,暂不输出 |
cost |
float |
细目金额 |
amount |
float |
细目数量 |
unit_price |
float |
细目单价 |
spec |
string |
规格 |
unit |
string |
单位 |
medical_level |
string |
医保等级 |
selfpay |
float |
自付金额 |
medical_type |
int |
项目类型: 0-未知, 1-西药, 2-中药, 3-诊疗项目 |
class |
string |
细目所属大类 |
item_coding |
string |
项目编码 |
origin_ocr_name |
string |
票面上原始打印的细目名称 |
name |
string |
通过细目名称匹配的医保库名称 |
3.2.3 payments_info 的字段:
字段 |
类型 |
说明 |
name |
string |
名称 |
cost |
float |
金额(部分字段非数字,见以下字段提示) |
以下字段不同地区会有自定义字段,例如分类自负、个人自理、师职补助等字段,具体情况按票面内容输出,以下表格仅列出各省通用字段
以下字段如票面中不包含或未提取到,不做输出
字段 |
说明 |
预缴金额 |
|
补缴金额 |
|
退费金额 |
|
医保统筹基金支付 |
|
其他支付 |
|
个人账户支付 |
|
个人现金支付 |
|
个人自付 |
|
个人自费 |
|
分类自负 |
仅上海输出 |
个人自负 |
仅上海输出 |
附加基金支付 |
仅上海输出 |
医保当年账户余额 |
仅上海输出 |
医保历年账户余额 |
仅上海输出 |
政策性减免 |
仅广东输出 |
医院承担 |
仅贵州输出 |
道路救助基金垫付 |
仅浙江输出 |
道路救助基金垫付信息 |
仅浙江输出,输出的为明细信息,包含非数字信息 |
个人自理 |
仅浙江输出 |
个人现金支付明细 |
仅浙江输出,输出的为明细信息,包含非数字信息 |
医保统筹基金支付明细 |
仅浙江输出,输出的为明细信息,包含非数字信息 |
其他支付明细 |
仅浙江输出,输出的为明细信息,包含非数字信息 |
大病保险支付 |
仅江苏输出 |
其他保险支付 |
仅江苏输出 |
医疗救助支付 |
仅江苏输出 |
个人账户余额 |
仅江苏输出 |
长期累计 |
仅甘肃输出 |
乙类自付 |
仅河南、浙江输出 |
按比例自付 |
仅河南输出 |
公务员补助 |
仅河南输出 |
师职补助 |
仅河南输出 |
医疗救助 |
仅河南输出 |
产前检查 |
仅河南输出 |
3.3 invoice_additional_result 字段的参数:
字段 |
类型 |
说明 |
note_code |
string |
票据代码 |
note_no |
string |
票据号码 |
query_last_date |
string |
最近电子票请求时间,部分发票有 |
query_num |
int |
电子票查询的次数,部分发票有 |
billing_date |
string |
开票日期 |
total_cost |
float |
发票总金额 |
check_code |
string |
校验码 |
img_status |
array |
已开红票、已打印、已作废、已入账状态 |
reim_agency_list |
array |
报销机构列表 |
3.3.1 img_status 的字段:
字段 |
类型 |
说明 |
yidayin |
string |
已打印 |
yikaihongpiao |
string |
已开红票 |
yizuofei |
string |
已作废 |
yiruzhang |
string |
已入账 |
3.3.2 reim_agency_list 的字段:
字段 |
类型 |
说明 |
amt |
string |
报销金额 |
note_code |
string |
票据代码 |
note_no |
string |
票据号码 |
reimAgency |
string |
报销单位 |
writeDate |
string |
报销时间 |
备注: 仅当河北省时会输出reim_agency_list
字段
返回结果示例
{
"data": {
"invoice_additional_result": {
"billing_date": "2021-10-17",
"check_code": "XXXXX",
"note_code": "XXXXX"",
"note_no": "XXXXX"",
"query_last_date": null,
"query_num": null,
"total_cost": 207,
"img_status": []
},
"invoice_standard_result": {
"billing_date": "2021-10-17",
"charging_units": "河南省XXXXX医院",
"check_code": "XXXXX",
"checksum": {
"cost_categories": 1,
"cost_detail_list": -1
},
"cost_categories": [{
"cost": 191,
"name": "检查费"
},
{
"cost": 16,
"name": "治疗费"
}
],
"cost_detail_list": [],
"end_hospital_date": null,
"hospital_days": null,
"hospital_departments": "东XXXXX外科",
"hospital_name": "河南省XXXXXX医院",
"hospital_no": "2002530933",
"img_status": [],
"invoice_party_code": null,
"medical_card_no": null,
"medical_insurance_no": null,
"medical_insurance_type": "普通病人",
"medical_organization_type": null,
"medical_record_no": "30010017553",
"note_code": "41060121",
"note_no": "1031XXXX7250",
"note_title": "河南省医疗门诊收费票据(电子)",
"patient_gender": 1,
"patient_name": "XXX",
"payee": "2007",
"payment_channel": null,
"payments_info": [{
"cost": 0,
"name": "预缴金额"
},
{
"cost": 0,
"name": "个人自费"
},
{
"cost": 0,
"name": "其他支付"
},
{
"cost": 0,
"name": "退费金额"
},
{
"cost": 0,
"name": "医保统筹基金支付"
},
{
"cost": 207,
"name": "个人现金支付"
},
{
"cost": 0,
"name": "个人账户支付"
},
{
"cost": 0,
"name": "补缴金额"
},
{
"cost": 0,
"name": "起付标准"
},
{
"cost": 0,
"name": "乙类自付"
},
{
"cost": 0,
"name": "按比例自付"
},
{
"cost": 0,
"name": "公务员补助"
},
{
"cost": 0,
"name": "师职补助"
},
{
"cost": 0,
"name": "大额(病)保险报销"
},
{
"cost": 0,
"name": "大病补充保险报销"
},
{
"cost": 0,
"name": "医疗救助"
},
{
"cost": 0,
"name": "产前检查"
}
],
"remark": null,
"reviewer": "2007",
"service_serial_no": "889be62c355f4ab78418b9aad0ac587d",
"social_security_card_no": null,
"start_hospital_date": null,
"total_cost": 207,
"treatment_date": "2021-10-17",
"type": 1,
"unified_social_credit_code": "4108XXXXXXXXXX2005X",
"work_unit": null
}
},
"qrcode_scan_result": 1,
"request_id": "87dea9e29de511ecbfaa0242ac110006",
"status": "OK"
}
4.错误码
4.1 服务错误码
HTTP状态码 |
status 字段 |
说明 |
400 |
INVALID_ARGUMENT |
请求参数错误 |
400 |
DETETION_FAILED |
图片检测失败 |
400 |
DOWNLOAD_ERROR |
网络地址图片获取失败 |
401 |
UNAUTHORIZED |
未授权或授权失败 |
401 |
KEY_EXPIRED |
账号过期 |
403 |
NO_PERMISSION |
无调用权限 |
403 |
OUT_OF_QUOTA |
调用次数超出限额 |
403 |
RATE_LIMIT_EXCEEDED |
调用频率超出限额 |
404 |
NOT_FOUND |
请求路径错误 |
500 |
INTERNAL_ERROR |
服务器内部错误 |
备注: 以上40X系列错误描述请参考reason
字段
4.2 验真错误码
当验真失败时(status
=VERIFY_FAILED
),我们通过返回的error_code
字段可以区分不同的错误原因:
error_code 字段 |
reason 字段 |
说明 |
100 |
network error |
请求网络错误 |
198 |
result parse failed |
解析结果失败 |
300 |
invoice not exist |
发票查询不到 |
301 |
note_no is required |
发票号码缺少 |
302 |
check_code is required |
校验码缺少 |
303 |
note_code is required |
票据代码缺少 |
304 |
billing_date is required |
日期缺少 |
305 |
total_cost is required |
总金额缺少 |
306 |
billing_date error |
日期错误 |
307 |
total_cost error |
总金额错误 |
308 |
check_code error |
校验码错误 |
309 |
note_code error |
票据代码错误 |
310 |
note_no error |
票据号码错误 |
311 |
bill query exception |
查询地方票据异常 |
312 |
e-invoice verify request params format error |
请求格式错误 |
313 |
e-invoice verify rate limit count |
超过该张票据当天核验次数 |
314 |
financial system error |
财政内部异常 |
315 |
e-invoice no circulation |
该电子票据禁止流通 |
316 |
province system maintain |
该省份系统维护中 |
317 |
access data source time out |
数据源访问超时 |
318 |
auth failed |
身份验证失败 |
319 |
area not support |
不支持该地区查询 |
320 |
invalid bill |
无效的电子票 |
321 |
unknown error |
未知错误 |
325 |
billing_date format error |
日期格式错误 |
输出样例
{
"error_code": 303,
"status": "VERIFY_FAILED",
"reason": "note_code is required",
"request_id": "TID8bf47ab6eda64476973cc5f5b6ebf57e",
"qrcode_scan_result": 1
}
5.输入示例