医疗服务发票对接
数电发票 · 特定业务 · specificBusiness 参数说明
概述
电子税务局升级后,数电发票新增 医疗服务 特定业务类型。开票时在 开具发票 接口中传入 specificBusinessCode 和 specificBusiness 即可,specificBusiness 格式为 JSON 对象。
| specificBusinessCode | 业务类型 | 说明 |
|---|---|---|
11 |
医疗服务(门诊) | 门诊就诊发票 |
10 |
医疗服务(住院) | 住院结算发票 |
发票明细税收分类编码建议使用 3070202000000000000(医疗服务),商品名称格式如 *医疗服务*体检费。医疗费用明细 medicalCostDetails 通过 lineNumber 与发票明细 items 的行号对应,请在 items 中传入 lineNumber。
医疗服务(门诊,11)
specificBusinessCode=11,specificBusiness 内容为 JSON 对象:
{
"bizCode": "test_mz_002",
"patientName": "张三",
"patientIdType": "201",
"patientIdNumber": "430223197708014016",
"gender": "1",
"orgType": "A100",
"medicalInsuranceId": "",
"medicalInsuranceType": "",
"accountPayAmount": 0,
"fundPayAmount": 0,
"otherPayAmount": 0,
"ownPayAmount": 0,
"selfPaymentAmount": 10,
"selfPaymentCost": 10,
"clinicNo": "MZ001",
"clinicVisitTime": "2026-04-29 09:00:00",
"medicalCostDetails": [
{
"lineNumber": 1,
"medicalServiceCode": "",
"costDetail": "体检费",
"others": "其他01"
}
]
}
医疗服务(住院,10)
specificBusinessCode=10,specificBusiness 内容为 JSON 对象:
{
"bizCode": "123",
"patientName": "张三",
"patientIdType": "201",
"patientIdNumber": "330102199002097957",
"gender": "1",
"orgType": "A100",
"medicalInsuranceId": "11223344",
"medicalInsuranceType": "01",
"accountPayAmount": 1,
"fundPayAmount": 2,
"otherPayAmount": 1,
"ownPayAmount": 5,
"selfPaymentAmount": 1,
"selfPaymentCost": 5,
"caseNumber": "123456789012345",
"departmentName": "儿科",
"hospitalizationNumber": "123456789012345",
"inHospitalDate": "2025-09-09",
"outHospitalDate": "2025-09-19",
"prepayAmount": 1,
"rechargeAmount": 5,
"refundAmount": 0.1,
"medicalCostDetails": [
{
"lineNumber": 1,
"medicalServiceCode": "12345",
"costDetail": "医疗费",
"unit": "个",
"number": 1,
"taxRate": 0,
"price": 5,
"tax": 0,
"remark": "住院备注",
"taxInclusiveAmount": 5,
"subtotal": 6,
"total": 6
},
{
"lineNumber": 1,
"medicalServiceCode": "12345",
"costDetail": "医疗费",
"unit": "个",
"number": 1,
"taxRate": 0,
"price": 1,
"tax": 0,
"remark": "住院备注",
"taxInclusiveAmount": 1,
"subtotal": 6,
"total": 6
},
{
"lineNumber": 2,
"medicalServiceCode": "12345",
"costDetail": "医疗费",
"unit": "个",
"number": 1,
"taxRate": 0,
"price": 1,
"tax": 0,
"remark": "住院备注",
"taxInclusiveAmount": 1,
"subtotal": 7,
"total": 7
}
]
}
字段说明
门诊与住院共用以下字段,标注「仅门诊」「仅住院」的字段只在对应业务类型下传入。
| 字段名 | 类型 | 必填 | 说明 |
|---|---|---|---|
| bizCode | string | 选填 | 医疗业务流水号 |
| patientName | string | 必填 | 患者姓名,限 150 字符 |
| patientIdType | string | 必填 | 患者身份证件类型代码,见下方 证件类型表 |
| patientIdNumber | string | 必填 | 患者身份证件号码,限 30 字符 |
| gender | string | 必填 | 性别(传 patientName 时必填):1 男,2 女 |
| orgType | string | 选填 | 医疗机构类型代码 |
| medicalInsuranceId | string | 选填 | 医保编号(传值前检查电子税务局是否支持) |
| medicalInsuranceType | string | 选填 | 医保类型代码(传值前检查电子税务局是否支持),见下方 医保类型代码表 |
| accountPayAmount | number | 选填 | 个人账户支付金额 |
| fundPayAmount | number | 选填 | 医保基金支付金额 |
| otherPayAmount | number | 选填 | 其他支付金额 |
| ownPayAmount | number | 选填 | 个人自付金额 |
| selfPaymentAmount | number | 选填 | 个人自费金额 |
| selfPaymentCost | number | 选填 | 个人自费费用 |
| clinicNo | string | 必填 | 门诊号,仅门诊(11) |
| clinicVisitTime | string | 必填 | 就诊时间,仅门诊(11),示例 2026-04-29 09:00:00 |
| caseNumber | string | 必填 | 病例号,仅住院(10) |
| departmentName | string | 必填 | 住院科别,仅住院(10) |
| hospitalizationNumber | string | 必填 | 住院号,仅住院(10) |
| inHospitalDate | string | 必填 | 住院时间起,仅住院(10),格式 yyyy-MM-dd,示例 2025-09-09 |
| outHospitalDate | string | 必填 | 住院时间止,仅住院(10),格式 yyyy-MM-dd,示例 2025-09-19 |
| prepayAmount | number | 选填 | 预缴金额,仅住院(10) |
| rechargeAmount | number | 选填 | 补缴金额,仅住院(10) |
| refundAmount | number | 选填 | 退款金额,仅住院(10) |
| medicalCostDetails | array | 必填 | 医疗费用明细,见下方 明细字段说明 |
medicalCostDetails 费用明细
medicalCostDetails 为数组,每条明细对应一项费用记录。商品行号需与发票明细 lineNumber 对应。
门诊(11)明细字段
| 字段名 | 类型 | 必填 | 说明 |
|---|---|---|---|
| lineNumber | int | 必填 | 商品行号,与发票明细 lineNumber 对应,不能重复 |
| medicalServiceCode | string | 选填 | 医疗服务贯标码 |
| costDetail | string | 必填 | 费用明细,限 20 字符 |
| others | string | 选填 | 其他 |
住院(10)明细字段
| 字段名 | 类型 | 必填 | 说明 |
|---|---|---|---|
| lineNumber | int | 必填 | 商品行号,需与发票明细 lineNumber 对应,可以重复 |
| medicalServiceCode | string | 选填 | 医疗服务贯标码 |
| costDetail | string | 必填 | 费用明细,限 20 字符 |
| unit | string | 选填 | 单位 |
| number | number | 选填 | 数量 |
| taxRate | number | 选填 | 税率 |
| price | number | 选填 | 金额(总数) |
| tax | number | 选填 | 税额(总数) |
| remark | string | 选填 | 备注 |
| taxInclusiveAmount | number | 必填 | 含税金额 |
| subtotal | number | 必填 | 小计,按商品行号累加,见下方计算说明 |
| total | number | 必填 | 合计,按商品行号累加,与 subtotal 取值相同 |
住院小计 / 合计计算方式
按 商品行号(lineNumber) 累加发票明细金额,subtotal 与 total 取值相同。
示例: 发票共 3 行商品明细,每行金额 1000 元:
| 发票明细行号 | 金额 | medicalCostDetails 中 subtotal / total |
|---|---|---|
| 1 | 1000 | 1000 |
| 2 | 1000 | 2000(1000 + 1000) |
| 3 | 1000 | 3000(1000 + 1000 + 1000) |
住院多明细同一行号: 同一 lineNumber 下的多条费用明细,subtotal 和 total 均取该行号对应的累加值。例如住院示例中,行号 1 对应发票明细金额 6(5 + 1),两条明细的 subtotal / total 均为 6;行号 2 累加后为 7。
医保类型代码
字段 medicalInsuranceType 取值如下:
| 代码 | 医保类型 |
|---|---|
01 |
职工基本医疗保险 |
02 |
城乡居民基本医疗保险 |
03 |
离休 |
04 |
其他医疗保险 |
05 |
自费 |
患者身份证件类型代码
字段 patientIdType 取值如下(旅客运输 idType、购买方 purchaserIdType 使用同一套代码):
| 代码 | 证件类型 |
|---|---|
102 |
营业执照 |
201 |
身份证 |
202 |
军官证 |
203 |
武警警官证 |
204 |
士兵证 |
206 |
残疾人证 |
207 |
残疾军人证(1-8级) |
208 |
外国护照 |
210 |
港澳居民来往内地通行证 |
212 |
中华人民共和国往来港澳通行证 |
213 |
台湾居民来往大陆通行证 |
214 |
大陆居民往来台湾通行证 |
215 |
外国人居留证 |
220 |
台湾身份证 |
221 |
澳门特别行政区永久性居民身份证 |
222 |
外国人身份证件 |
223 |
高校毕业生自主创业证 |
224 |
就业失业登记证 |
225 |
退休证 |
226 |
离休证 |
227 |
中国护照 |
228 |
城镇退役士兵自谋职业证 |
229 |
随军家属身份证明 |
230 |
中国人民解放军军官转业证书 |
231 |
中国人民解放军义务兵退出现役证 |
232 |
中国人民解放军士官退出现役证 |
233 |
外国人永久居留身份证(外国人永久居留证) |
234 |
就业创业证 |
235 |
香港特别行政区护照 |
236 |
澳门特别行政区护照 |
237 |
中华人民共和国港澳居民居住证 |
238 |
中华人民共和国台湾居民居住证 |
239 |
《中华人民共和国外国人工作许可证》(A类) |
240 |
《中华人民共和国外国人工作许可证》(B类) |
241 |
《中华人民共和国外国人工作许可证》(C类) |
291 |
出生医学证明 |
299 |
其他个人证件 |
校验错误
| message | 说明 |
|---|---|
| 请填写医疗服务特定业务信息 | specificBusiness 为空 |
| 请输入患者姓名 / 请填写性别 / 请选择患者证件类型 / 请输入患者证件号码 | 患者基本信息缺失 |
| 门诊号不能为空! / 请选择就诊时间 | 门诊(11)必填项缺失 |
| 病例号不能为空! / 住院科别不能为空! / 住院号不能为空! / 请选择入院日期 / 请选择出院日期 | 住院(10)必填项缺失 |
| 入院日期格式不正确,请使用yyyy-MM-dd格式,不需要时分秒 | 住院日期格式错误(出院日期同理) |
| 请填写医疗费用明细 | medicalCostDetails 为空 |
| 医疗费用明细缺少费用明细 / 医疗费用明细缺少商品行号 | 明细缺少 costDetail 或 lineNumber |