有鑑於購物車的電商系統一直是前端工程師最常見的SideProject之一。
但是許多人對於訂單成立後的結帳付款,卻不了解後續要做哪些事以及付款完成後,要如何開立發票等。
因此寫了一系列的介紹文,帶各位一窺全貌,了解電商平台在結帳時如何進行發票開立的。
在開始之前,有一個觀念需要先釐清:結帳付款與發票開立是兩個獨立的事件,並不影響彼此。
只是一般在電商平台結帳並付款完成後,會需要進行發票開立的作業。
發票開立的流程主要是跟財政部申請字軌發票號碼,會是一個區間:前兩碼為英文(稱之為字軌),後面則是數字。
申請發票號碼時,例如申請 XB-46558200 ~ XB-46558299。
就代表申請了一百組的發票號碼,而這一百組的發票號碼就是給該單位做使用,其他人不能跟你搶這區間的發票號碼。
如下圖所示,發票號碼233,就是在XB-46558200 ~ XB-46558299之間的其中一組發票號碼。
這邊要注意的是,開出去的發票是不能取消的。若開錯品項,就需要將該發票進行作廢,並在開立一張新的發票號碼。
若仍想沿用原來舊的發票號碼,那麼就要同時進行作廢與註銷的動作。
其中,發票若跨期的話,則要改以折讓單進行開立。
簡單幫大家整理一下:
- 取消發票(當期)=>作廢發票
- 取消發票(非當期)=>開立折讓單
- 重開發票(沿用原號碼) => 作廢+註銷發票
以上是發票在開立後可能會遇到的情況,對應的作法相關的發票文件會提供,這裡就不攢述了。
而在電商所開立的發票並不是像上圖一樣開立二聯式的紙本發票,而是改用雲端電子發票。
也由於消費者無法拿到實體的紙本發票,因此必須要有一個地方存放消費者過去消費的發票紀錄,並將開立的發票自動上傳到財政部,這個我們稱之為載具。
載具又有細分為:會員載具,手機條碼載具,信用卡及悠遊卡載具,自然人憑證等。
但不管是哪一種載具,都只是一個儲存的空間而已,去紀錄消費者過去的發票紀錄。
因此整個電子發票開立的步驟,需要執行以下幾步驟:
可以至財政部官網查看完整流程介紹,這邊簡單介紹每一步要做哪些事。
第一步的準備憑證指的是營業人憑證,也就是該營業機構必須要在財政部有資料登入,才知道是由哪個單位開立出來的發票
第二部則是透過財政部給的TurnKey(API),或是找其他委外的電子發票加值服務中心進行發票開立作業。
Turnkey的申請流程複雜繁瑣且需要透過他們的軟體進行上傳。因此也可以委外的電子發票加值服務中心來進行申請。
目前有在財政部登記的電子發票加值中心有以下廠商:
但若是串接電子發票加值服務中心的話,就不需要再串接財政部的API。
只需要跟加值中心串接即可。發票開立後,會自動在48小時內上傳至財政部。
兩種方法中,會建議直接串接電子發票加值服務中心會比較快,原因是加值中心可以提供會員載具功能
同時也會幫我們去做字軌的管理,讓我們不需要知道目前發票號碼開立到哪,下一張的發票號碼為何。
至於如何使用程式碼進行發票的開立,在串接加值中心時,合作的加值中心廠商都會提供API文件給予串接,
因此在這邊就不做細部的發票開立作業的介紹。
也由於牽涉到一些公司機密,所以細節的部分的操作以及程式碼的部分沒辦法講得太仔細。
僅列出大方向的運作流程,只是提供一個初步的介紹,並搭配由電子發票加值服務中心的文件,快速了解整的脈絡。
若有讀者在實作中有問題,也歡迎來信詢問詳談,可以私下做詳細的教學。
以上文章敘述如有錯誤及觀念不正確,請不吝嗇指教:)
有任何家教、案子 或技術相關問題 請都歡迎聯繫我