用 Odoo 開發票或報價單時,有時會遇到這種狀況:每一行明細的稅額看起來都對,加總起來卻跟用總金額算出來的營業稅差了 1 元,客戶或會計一對帳就發現對不上。
這不是 Odoo 算錯,而是稅金捨入方式的設定問題。台灣的營業稅一般是用總額計算,Odoo 預設卻可能是逐行計算後再加總,這篇說明該怎麼調整。

兩種稅金捨入方式
Odoo 的「稅務計算捨入方式」(Tax Calculation Rounding Method)有兩個選項:
| 選項 | 計算方式 |
|---|---|
| 每一明細捨入(Round per Line) | 每一行明細先算出稅額並四捨五入,再把各行的稅額加總 |
| 總和捨入(Round Globally) | 每一行明細的稅額先不捨入,全部加總後,最後只對總稅額做一次四捨五入 |
1 元誤差是怎麼來的
用一個簡單的例子說明,營業稅 5%,三行明細各為未稅 110 元:
| 項目 | 每一明細捨入 | 總和捨入 |
|---|---|---|
| 第 1 行稅額 | 5.5 → 6 | 5.5 |
| 第 2 行稅額 | 5.5 → 6 | 5.5 |
| 第 3 行稅額 | 5.5 → 6 | 5.5 |
| 稅額合計 | 18 | 16.5 → 17 |
未稅總額 330 元乘以 5% 是 16.5 元,四捨五入是 17 元。「每一明細捨入」因為每一行都先進位,加總後變成 18 元,就多了 1 元。明細越多,誤差可能越大。
設定方式
路徑:會計(或發票)→ 設定 → 設定值,在「稅金」區塊找到「稅務計算捨入方式」,從「每一明細捨入」改成「總和捨入」後儲存。
注意:不同 Odoo 版本的選單名稱略有差異,舊版是在「會計 → 設定 → 設定值 → 會計與財務」。找不到的話,在設定頁上方的搜尋框輸入「捨入」即可。
改成總和捨入之後,系統會先加總所有明細的未稅金額與未捨入的稅額,最後才對總稅額四捨五入,符合台灣營業稅以總額計算的做法。
注意事項
- 只影響之後建立的單據:已經開立的發票不會自動重算,需要的話要另外處理
- 含稅價格的情況:如果產品價格是設定為含稅價,Odoo 官方的說明建議用「每一明細捨入」,這樣各行的含稅小計加總才會等於含稅總額。請依公司的計價方式選擇
- 不要跟「現金捨入」搞混:Odoo 另外有一個「現金捨入」(Cash Rounding)功能,是把應付總額湊整到指定的單位,跟稅金捨入是不同的設定
結論
發票的稅額差 1 元,看起來是小事,但牽涉到對帳與報稅,一定要處理。台灣以未稅價格開立發票的公司,把稅務計算捨入方式改成「總和捨入」,就能讓 Odoo 的計算方式跟營業稅的算法一致。



