璦閣自研 Dolibarr 台灣電子發票模組使用指南|符合財政部 MIG 4.1 規範

日期:2026-05-01 | 作者:SoloMan / 璦閣 | 標籤: Dolibarr 電子發票 MIG4.1 台灣模組 自主開發

為什麼我們要自主開發這個模組?

市售 ERP 的電子發票模組有很多問題:

  • 昂貴:每年要額外付費 2-5 萬元
  • 封閉:無法客製調整,只能等原廠更新
  • 不符合台灣需求:國外 ERP 的電子發票功能在台灣根本不能用
  • 整合差:發票和 ERP 核心流程是割裂的

我們開發這個模組的初衷很簡單:讓台灣中小企業能夠用免費、開源、完全符合財政部規範的方式處理電子發票。

核心特色:

  • 完全自主開發:源碼公開,可自由修改
  • 符合 MIG 4.1 規範:100% 符合財政部最新規範
  • 整合 Dolibarr:發票資料直接從 ERP 訂單產生
  • 無額外費用:開源免費,沒有年費、張數費

模組功能概覽

功能 說明 MIG 格式
銷售發票開立 從訂單/出貨單自動產生電子發票 C0401
銷售發票作廢 發票開立錯誤時進行作廢 C0401 + C0501
折讓單開立 部分退貨或折讓時使用 D0401
批次匯出 ZIP 大量發票批次產生 XML 並壓縮 C0401/D0401/C0501
單張下載 XML 單一發票即時下載 依類型
發票狀態追蹤 開立、已上傳、作廢等狀態管理 內部狀態
發票查詢報表 依日期、客戶、狀態篩選查詢 -

安裝與設定

系統需求

  • Dolibarr V22 或以上版本
  • PHP 7.4 或以上
  • 啟用 PHP XML 擴展
  • 台灣公司統一編號(開立電子發票必要)

安裝步驟

步驟 1:下載並安裝模組

taiwaneinvoice 資料夾放置於:

[你的 Dolibarr 路徑]/custom/taiwaneinvoice/

步驟 2:啟用模組

  1. 登入 Dolibarr 管理員帳號
  2. 進入「首頁 → 設定 → 模組/應用程式」
  3. 找到「璦閣-臺灣電子發票模組」並啟用

步驟 3:基本設定

進入「電子發票設定」頁面(custom/taiwaneinvoice/setup.php):

設定項目 說明 範例
發票類型 預設開立的發票類型 一般稅額計算(02)
捐贈標記 是否為捐贈發票 否(0)
載具類型 預設載具(如手機條碼) 一般紙本(0)
公司統編 開立發票的公司統一編號 12345678

使用方法

情境一:從訂單開立電子發票

Step 1:建立標準發票

  1. 進入「帳務 → 客戶發票」
  2. 點擊「建立發票」
  3. 選擇客戶、填入商品明細
  4. 關鍵:在發票備註欄填入買方統一編號(如有)
  5. 確認無誤後「建立草稿」

Step 2:產生電子發票 XML

  1. 在發票卡片頁面,找到「電子發票」區塊
  2. 點擊「產生 C0401 XML」按鈕
  3. 系統會自動:
    • 檢查發票資料完整性
    • 驗證統編格式
    • 產生符合 MIG 4.1 的 XML 檔案

Step 3:下載並上傳

  1. 點擊「下載 XML」
  2. 登入財政部電子發票整合服務平台
  3. 上傳 XML 檔案
  4. 發票狀態自動更新為「已上傳」

情境二:批次處理大量發票

適合月底一次處理整月發票:

  1. 進入「電子發票管理」頁面(manage_invoice.php
  2. 選擇日期範圍(如 2026/04/01 ~ 2026/04/30)
  3. 系統列出該期間所有未產生電子發票的發票
  4. 勾選要處理的發票(或全選)
  5. 點擊「批次產生 ZIP」
  6. 下載 ZIP 檔,內含所有 C0401 XML

批次處理優勢:

  • 一次上傳到財政部平台,節省時間
  • ZIP 內檔案依發票號碼命名,容易對照
  • 自動跳過已作廢或已開立的發票

情境三:發票作廢

當發票開立錯誤需要作廢時:

  1. 進入原發票卡片
  2. 點擊「產生 C0501 作廢 XML」
  3. 系統會:
    • 檢查原發票是否已上傳財政部(未上傳可直接刪除)
    • 產生 C0501 作廢 XML
    • 標記原發票為「待作廢」狀態
  4. 上傳 C0501 XML 到財政部平台
  5. 確認作廢成功後,系統自動更新狀態

情境四:折讓單開立

當客戶部分退貨需要折讓時:

  1. 進入「電子折讓單管理」(manage_allowance.php
  2. 點擊「建立折讓單」
  3. 選擇原發票
  4. 填入折讓明細(品名、數量、金額)
  5. 產生 D0401 折讓單 XML
  6. 上傳財政部平台並通知客戶確認

MIG 4.1 規範完整支援

什麼是 MIG 4.1?

MIG(Message Implementation Guide)是財政部定義的電子發票資料交換標準。4.1 版是目前最新版本,規範了:

  • XML 檔案結構
  • 欄位格式與長度
  • 驗證規則
  • 傳輸協定

我們的實現方式

1. XML 產生核心(lib/taiwaneinvoice_xml.lib.php

// 範例:C0401 銷售發票 XML 結構
$xml = generateC0401XML($invoice_data);
// 自動處理:
// - 發票基本資料(發票號碼、日期、買賣方統編)
// - 商品明細(品名、數量、單價、金額、稅額)
// - 總計資訊(未稅金額、稅額、總計)
// - 驗證碼計算

2. 資料驗證機制

  • 統一編號格式檢查(8 碼數字,含檢查碼)
  • 發票號碼格式(2 碼英文 + 8 碼數字)
  • 金額計算驗證(未稅 × 稅率 = 稅額)
  • 必填欄位檢查

3. 完整 XML 範例結構

<?xml version="1.0" encoding="UTF-8"?>
<Invoice xmlns="urn:GEINV:eInvoiceMessage:C0401:3.2">
  <Main>
    <InvoiceNumber>AB-12345678</InvoiceNumber>
    <InvoiceDate>20260501</InvoiceDate>
    <InvoiceTime>143000</InvoiceTime>
    <Seller>
      <Identifier>12345678</Identifier>
      <Name>璦閣數位科技有限公司</Name>
    </Seller>
    <Buyer>
      <Identifier>87654321</Identifier>
      <Name>範例科技股份有限公司</Name>
    </Buyer>
    <InvoiceType>07</InvoiceType>
    <DonateMark>0</DonateMark>
    <PrintMark>Y</PrintMark>
  </Main>
  <Details>
    <ProductItem>
      <Description>ERP 軟體授權</Description>
      <Quantity>1</Quantity>
      <UnitPrice>50000</UnitPrice>
      <Amount>50000</Amount>
      <TaxType>1</TaxType>
    </ProductItem>
  </Details>
  <Amount>
    <SalesAmount>50000</SalesAmount>
    <TaxType>1</TaxType>
    <TaxRate>0.05</TaxRate>
    <TaxAmount>2500</TaxAmount>
    <TotalAmount>52500</TotalAmount>
  </Amount>
</Invoice>

技術架構說明

檔案結構

taiwaneinvoice/
├── core/
│   ├── modules/
│   │   └── modTaiwanEInvoice.class.php    # 模組定義
│   └── triggers/
│       └── interface_500_modTaiwanEInvoice_TaiwanEInvoiceTriggers.class.php
├── class/
│   └── actions_taiwaneinvoice.class.php    # 動作處理
├── lib/
│   └── taiwaneinvoice_xml.lib.php         # XML 產生核心
├── sql/
│   └── llx_taiwaneinvoice_data.sql        # 資料表結構
├── manage_invoice.php                      # 發票管理頁面
├── manage_allowance.php                    # 折讓單管理
├── setup.php                               # 設定頁面
└── README.md

資料庫結構

模組建立以下資料表:

-- 電子發票附加資料表
CREATE TABLE llx_taiwaneinvoice_data (
    rowid INT AUTO_INCREMENT PRIMARY KEY,
    fk_object INT NOT NULL,           -- 關聯發票 ID
    einvoice_type VARCHAR(10),        -- C0401, D0401, C0501
    status INT DEFAULT 0,             -- 0=待開立, 1=已開立, 2=作廢
    einvoice_number VARCHAR(20),      -- 電子發票號碼
    track_code VARCHAR(10),           -- 發票追蹤碼
    upload_date DATETIME,             -- 上傳日期
    xml_content TEXT                  -- XML 內容備份
);

觸發器機制(Triggers)

模組透過 Dolibarr 的觸發器系統,在以下事件自動執行:

  • INVOICE_CREATE:發票建立時,初始化電子發票記錄
  • INVOICE_MODIFY:發票修改時,檢查是否影響電子發票
  • INVOICE_DELETE:發票刪除時,清理相關電子發票資料
  • INVOICE_VALIDATE:發票確認時,允許產生電子發票

常見問題 FAQ

Q1:這個模組真的可以免費使用嗎?

是的。這是我們自主開發並以 GPL-3 授權公開的模組,任何人都可以:

  • 免費下載使用
  • 自由修改客製
  • 用於商業用途

但請注意:電子發票上傳財政部平台,財政部不會收取費用(不像第三方平台會收張數費)。

Q2:和第三方電子發票平台有什麼不同?

比較項目 第三方平台 我們的模組
費用 每月 500-3000 元(依張數) 免費
整合度 需手動匯入/匯出 與 Dolibarr 無縫整合
客製化 無法調整 開源碼可自由修改
資料安全 資料在第三方伺服器 資料在自己的伺服器
統編驗證 不一定有 即時驗證

Q3:發票 XML 上傳財政部失敗怎麼辦?

常見原因與解決:

  1. 統編格式錯誤

    • 檢查買方統編是否為 8 碼數字
    • 模組會自動驗證並提示
  2. 發票號碼重複

    • 檢查是否已開立過此發票
    • 查詢財政部平台確認
  3. XML 格式錯誤

    • 下載 XML 後用財政部驗證工具檢查
    • 聯絡我們協助除錯

Q4:可以產生 B2C 發票嗎?

可以。支援以下類型:

  • B2B 發票(買方有統編):一般稅額計算(07)
  • B2C 發票(買方無統編):特種稅額(08)
  • 零稅率發票:零稅率(01)
  • 免稅發票:免稅(02)

在發票設定或個別發票可選擇稅率類型。

Q5:發票開立後可以修改嗎?

電子發票一旦上傳財政部,不能修改內容(這是財政部規定)。

如果發現錯誤:

  • 未上傳前:可刪除重開
  • 已上傳後:必須作廢後重新開立

模組會在產生 XML 前再次確認資料,減少錯誤機會。


客製化與進階功能

API 介面

模組提供以下內部函數供客製開發:

// 產生 C0401 XML
$result = generateC0401XML($invoice_id, $options);

// 產生 C0501 作廢 XML
$result = generateC0501XML($original_invoice_id, $reason);

// 產生 D0401 折讓 XML
$result = generateD0401XML($allowance_data);

// 驗證統一編號
$isValid = validateGUINumber('12345678');

// 取得發票狀態
$status = getEInvoiceStatus($invoice_id);

工作流程自動化

可搭配 Dolibarr 的工作流程模組:

  1. 出貨自動開票:出貨單確認時自動產生發票草稿
  2. 付款自動上傳:收到款項後自動批次上傳發票
  3. 定期作廢檢查:每日檢查是否有待作廢發票需處理

下一步?

需要我們協助導入這個模組?

我們提供:

  • 模組安裝與設定
  • 財政部平台帳號申請指導
  • 員工教育訓練
  • 客製化調整(如特殊報表、API 整合)

完全免費諮詢,沒有推銷壓力。

預約 Dolibarr 電子發票諮詢


P.S. 這個模組是我們團隊自主開發的成果,完全符合台灣財政部規範。我們相信:台灣企業應該要有真正適合自己的工具,而不是被國外軟體或第三方平台綁架。

版本資訊: V1.0.1 | 開發公司: 璦閣數位科技 | 授權: GPL-3

如果想留言吐槽請👉聯絡我們
👉預約 20 分鐘免費 IT 架構健檢
我不會帶任何主機去你公司。我會帶:
一台筆電
一杯咖啡
一張紙
紙上畫的是你公司現在的真實 IT 架構。然後我會直接用紅筆圈出來告訴你:
👉 問題在哪、風險在哪、機會在哪。
不賣東西,只給對策。