雖然雲端發票(無實體電子發票)讓我們可以更容易存取發票的資訊,但這些發票資料始終不是存在自己手上,使得調閱很久以前的發票變得困難。電子發票整合服務平台(因為名字太長了所以下稱大平台)只能查詢最遠九個月前的發票,想要查詢更久以前的發票資料只能打電話問客服、索取申請書、填寫後寄過去來獲得發票資料,得到的資料也不好運用。
以前可以用電子發票 API 下載手機條碼內的發票,可惜因為電子發票應用程式介面使用規範在 2024 年 5 月的修正,讓個人無法使用電子發票 API,原本有電子發票 API 使用授權的個人也只能用到 2025 年 3 月底。
如果我無法開公司並符合規範要求以繼續使用電子發票 API,還有什麼其他方法可以讓我能獲得發票資料呢?
第一個方法是「消費發票彙整通知」。在大平台的「通知設定」設定寄送消費資訊後,它每個月或每期就會寄送消費發票彙整通知到電子信箱,電子郵件的附件就是消費發票彙整。
彙整的格式長這樣:
表頭=M|載具名稱|載具號碼|發票日期|商店統編|商店店名|發票號碼|總金額|發票狀態|明細=D|發票號碼|小計|品項名稱|這樣的資料還是無法達到電子發票 API 能得到的資料範圍。例如發票開立時間和明細內商品的數量都是彙整沒有的。
所以只能用第二個方法,也就是用爬蟲爬大平台。我們可以擷取大平台內部的 API 回傳結果來得到發票資料。
從 API 結果拼湊出的資料有比從彙整能得到的還要多,算是夠用了,但跟電子發票 API 還是有少一個欄位,就是期別(像「115 年 1-2 月」這樣)。雖然期別可以從發票開立日期推導出來,而且通常也是對的,不過在偶數月的最後一天到下個月的第一天之間,發票開立日期可能跟所屬期別不一致,所以推導的結果遇到這種情況需要到官方的統一發票兌獎 App 上確認期別是否正確。
爬蟲算是不得已的方法,如果財政部開放完整的匯出服務,或是開放個人申請只能存取自己手機條碼內資料的 API,就不需要用爬蟲了,但現在用爬蟲還是備份發票最好的方法。