Appearance
税务的一些知识点
- ✅ 一般纳税人
- ✅ 小规模纳税人
我会按 “能直接配置”的结构来给你(Tax + 科目 + 逻辑)。
一、整体设计思路(先理解这一点)
在 Odoo 中我们这样建模:
👉 增值税 → 负债科目(不进利润) 👉 附加税 → 费用科目(进利润表:税金及附加)
二、会计科目(Chart of Accounts)
建议先建这些科目(关键)
1️⃣ 负债类(应交税费)
text
222101 应交税费-应交增值税(销项税额)
222102 应交税费-应交增值税(进项税额)
222103 应交税费-未交增值税2️⃣ 费用类(税金及附加)
text
640301 税金及附加-城市维护建设税
640302 税金及附加-教育费附加
640303 税金及附加-地方教育附加
640304 税金及附加-印花税👉 也可以合并为一个:
text
640300 税金及附加三、一般纳税人配置(重点)
1️⃣ 增值税(VAT)
✔ 销项税(销售)
text
Name: VAT 13% (Sales)
Tax Type: Percentage
Amount: 13%
Scope: Sales会计映射:
- Tax Received Account → 222101(销项税额)
✔ 进项税(采购)
text
Name: VAT 13% (Purchase)
Amount: 13%
Scope: Purchases会计映射:
- Tax Paid Account → 222102(进项税额)
2️⃣ 附加税(核心)
👉 这些是“营业税替代物” = 税金及附加
✔ 城建税
text
Name: Urban Maintenance Tax 7%
Tax Type: Percentage of Tax
Amount: 7%
Base Tax: VAT
Scope: Sales会计:
- Expense Account → 640301
✔ 教育费附加
text
Name: Education Surcharge 3%
Amount: 3%
Base: VAT会计:
- Expense → 640302
✔ 地方教育附加
text
Name: Local Education Surcharge 2%
Amount: 2%
Base: VAT会计:
- Expense → 640303
🔥 关键设置(必须)
在 Odoo Tax 中:
- ✅ 勾选:Affect base of subsequent taxes
- 或使用:Tax Computation = Based on other taxes
👉 让附加税 = 基于增值税计算
3️⃣ 组合税(推荐做法)
创建一个 Group Tax:
text
Name: CN VAT 13% + Surcharges
Includes:
- VAT 13%
- Urban Tax 7%
- Education 3%
- Local Education 2%👉 销售时直接选一个税就行
四、小规模纳税人配置
1️⃣ 增值税(简化版)
text
Name: VAT 3% (Small-scale)
Amount: 3%
Scope: Sales👉 特点:
- 不分进项/销项
- 直接计入应交税费
2️⃣ 附加税(同样适用)
还是:
- 城建税:7%
- 教育附加:3%
- 地方附加:2%
👉 但注意:
👉 基数变了 = 3% VAT
3️⃣ 示例
销售 1000:
- VAT:30
- 城建税:2.1
- 教育附加:0.9
- 地方附加:0.6
五、Odoo中利润表表现
一般纳税人:
| 项目 | 是否进利润 |
|---|---|
| 收入 | ✅ |
| VAT | ❌ |
| 附加税 | ✅ |
小规模:
👉 技术上 VAT 也走负债 但很多企业会:
👉 把 VAT 视为成本(简化核算)
👉 可以配置两种方式:
✔ 严格模式(推荐)
- VAT → 负债
- 附加税 → 费用
✔ 简化模式
- VAT → 直接进费用科目
六、一个完整配置结构(你可以照抄)
text
TAX GROUP: CN SALES TAX (GENERAL)
- VAT 13%
→ 222101
- Urban Maintenance 7% (on VAT)
→ 640301
- Education 3% (on VAT)
→ 640302
- Local Education 2% (on VAT)
→ 640303七、常见坑(非常重要)
❗坑1:附加税没绑定VAT
👉 会变成按收入算(错误)
❗坑2:VAT进了费用
👉 利润直接错
❗坑3:没有做 Tax Group
👉 用户操作复杂、容易选错
❗坑4:中国本地化缺失
建议:
- 使用 Odoo China Localization(l10n_cn)
- 或自建税表 + 报表
好,这一块我给你直接做成 Odoo 17 可落地的“财务实操方案”,不是概念,是你可以照着配置/做自动化的。
分三部分:
一、自动结转“未交增值税”(核心难点)
📌 中国逻辑先说清
月末要做这一步:
text
借:应交税费-应交增值税(销项税额)
贷:应交税费-应交增值税(进项税额)
贷/借:应交税费-未交增值税👉 本质:
👉 销项 - 进项 = 应交(或留抵)
✅ 在 Odoo 17 的实现方式(推荐)
Odoo 没有“中国自动结转”,要自己做:
方法一(推荐):自动 Journal Entry(调度任务)
1️⃣ 建一个专用日记账
text
Name: VAT Settlement
Type: Miscellaneous2️⃣ 核心逻辑(你可以让开发或用Studio实现)
每月执行:
Step 1:取余额
- 222101(销项税额)
- 222102(进项税额)
Step 2:计算
text
VAT Payable = Output VAT - Input VATStep 3:生成分录
✔ 情况1:应交税
text
Dr 222101(销项税额)
Cr 222102(进项税额)
Cr 222103(未交增值税)✔ 情况2:留抵税额
text
Dr 222101
Cr 222102
Dr 222103(留抵)🧠 Odoo实现方式(技术)
你可以用:
✔ 方式A:Server Action(无代码)
逻辑:
- Python Code(Odoo Studio):
python
output = sum(env['account.move.line'].search([
('account_id.code', '=', '222101'),
('date', '<=', context.get('date_end'))
]).mapped('balance'))
input_vat = sum(env['account.move.line'].search([
('account_id.code', '=', '222102'),
('date', '<=', context.get('date_end'))
]).mapped('balance'))
vat_payable = output - input_vat然后生成 move
✔ 方式B:定时任务(推荐)
- 每月1号自动跑
- 或关账前手动触发
❗关键点
- 必须按期间过滤(本月)
- 不要用累计数(否则错)
二、Odoo 月末结账流程(中国版)
我给你一个标准闭账流程(适用于Odoo 17)
🧾 Step 1:发票完整性检查
- 所有销售已开票
- 所有采购已入账
- 发票状态 = Posted
🧾 Step 2:税检查
- VAT 报表核对
- 附加税是否生成
🧾 Step 3:计提附加税(如果没自动)
👉 有些公司月底才计提:
text
借:税金及附加
贷:应交税费(如果你已经用 Tax 自动算,这一步可以跳)
🧾 Step 4:增值税结转(重点)
👉 执行你上面的自动脚本
🧾 Step 5:成本结转(库存类企业)
- Odoo自动(AVCO/FIFO)
🧾 Step 6:折旧/摊销
- 固定资产模块(或手动)
🧾 Step 7:损益结转
text
借:收入类
贷:本年利润
借:本年利润
贷:费用类👉 Odoo中:
- 用 Closing Entry(期末结转)
🧾 Step 8:锁账(重要)
Odoo路径:
Accounting → Settings → Lock Dates设置:
- Lock Date(普通用户)
- Tax Lock Date(税务锁定)
三、金税系统对接逻辑(发票)
这个是很多人最关心的,我给你讲真实企业做法
📌 核心原则
👉 Odoo ≠ 金税系统 👉 必须对接(或人工同步)
方案一(最常见):中间层对接
架构:
text
Odoo → API → 中间服务 → 金税系统1️⃣ 销项发票流程
Odoo:
- 创建 Invoice(客户发票)
- 状态 = Posted
触发:
👉 调用 API:
json
{
"buyer": "...",
"amount": 1000,
"tax": 130,
"items": [...]
}金税系统:
- 开票
- 返回:
json
{
"invoice_code": "xxx",
"invoice_number": "xxx",
"pdf_url": "..."
}回写 Odoo:
字段:
text
invoice_number
invoice_code
pdf附件2️⃣ 进项发票(采购)
👉 两种方式:
✔ 手动录入(常见)
- 会计拿发票
- 在 Odoo 建 Vendor Bill
✔ OCR / 电子发票导入(高级)
- 读取 PDF / XML
- 自动生成 Bill
四、Odoo中要加的字段(很关键)
建议你在 invoice 上加:
text
金税发票号
发票代码
开票日期
发票PDF
是否已开票(boolean)五、税控系统对接方式(现实选择)
常见厂商:
- 百望云
- 航信(税控盘)
- 电子发票平台(全电发票)
接入方式:
| 方式 | 说明 |
|---|---|
| API | 最推荐 |
| RPA | 模拟开票(低端) |
| 插件 | 第三方 |
六、你可以直接用的整体架构
text
Odoo 17
↓
Tax Engine(VAT + 附加税)
↓
Auto VAT Settlement(自动结转)
↓
P&L(税金及附加)
↓
API Integration
↓
金税系统(开票)下面给你一份可直接保存的 “中国会计常见税种计算表”。我按企业实务里最常见的口径整理,默认是现行通用规则;其中房产税、城镇土地使用税还要结合地方具体标准。相关税率和计税依据均来自现行税法/条例及财政税务公告。(国家税务总局政策法规库)
中国会计常见税种计算表
| 税种 | 计税依据 | 基本公式 | 常用税率/标准 | 会计常见科目归类 | 备注 |
|---|---|---|---|---|---|
| 城市维护建设税 | 依法实际缴纳的增值税、消费税税额 | 应纳税额 = 计税依据 × 税率 | 市区 7%;县城、镇 5%;其他地区 1% | 税金及附加 | 不是按收入或发票金额直接算;进口货物及部分跨境情形不征。(国家税务总局政策法规库) |
| 教育费附加 | 实际缴纳的增值税、消费税税额 | 应纳费额 = 计征依据 × 3% | 3% | 税金及附加 | 与增值税、消费税同时缴纳。(政府网站) |
| 地方教育附加 | 实际缴纳的增值税、消费税税额 | 应纳费额 = 计征依据 × 2% | 2% | 税金及附加 | 全国统一征收标准为 2%。(国家税务总局政策法规库) |
| 印花税 | 按应税凭证类型确定:合同金额、产权转移金额、营业账簿金额、证券成交金额等 | 应纳税额 = 计税依据 × 适用税率 | 按税目分别适用税率 | 税金及附加 | 合同/产权转移书据一般按不含单独列明增值税的金额计税;证券交易只对出让方征。(广东省税务局) |
| 房产税 | 1)房产余值;2)租金收入 | 从价:房产原值 ×(1−扣除比例)× 1.2%;从租:租金收入 × 12% | 从价 1.2%;从租 12%;扣除比例由地方定,一般 10%–30% | 税金及附加 | 出租与自用算法不同;地方对特殊住房/出租住房可能有优惠。(国家税务总局政策法规库) |
| 城镇土地使用税 | 实际占用土地面积 | 应纳税额 = 实际占地面积 × 适用单位税额 | 每平方米年税额:大城市 1.5–30元;中等城市 1.2–24元;小城市 0.9–18元;县城/建制镇/工矿区 0.6–12元 | 税金及附加 | 具体适用单价由各地政府在法定幅度内确定。(国家税务总局政策法规库) |
印花税可直接记的几个常见口径
因为印花税不是一个统一税率,我把企业最常碰到的两个补在这里:
| 常见税目 | 计税依据 | 常见税率 |
|---|---|---|
| 买卖合同 | 合同所列金额(不含单独列明增值税) | 万分之三 |
| 营业账簿 | 实收资本(股本)+资本公积 | 万分之二点五 |
这些都属于印花税法附表税目税率体系的一部分。(广东省税务局)
两个速算例子
例 1:城建税 + 教育附加 + 地方教育附加 某企业本月实际缴纳增值税 10万元,无消费税,位于市区: 城建税 = 100,000 × 7% = 7,000 教育费附加 = 100,000 × 3% = 3,000 地方教育附加 = 100,000 × 2% = 2,000。(国家税务总局政策法规库)
例 2:房产税(从价计征) 房产原值 500万元,当地规定扣除 30%: 房产税 = 5,000,000 × (1−30%) × 1.2% = 42,000元/年。(国家税务总局政策法规库)
现在很实用的一条优惠提醒
截至 2027年12月31日,对增值税小规模纳税人、小型微利企业和个体工商户,城建税、房产税、城镇土地使用税、印花税(不含证券交易印花税)、教育费附加、地方教育附加等实行减半征收。(政府网站)
你要的话,我可以下一条把这张表改成 Excel风格版本,再加一列“申报频率/纳税义务时间”。
