日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 运维知识 > windows >内容正文

windows

线上开票系统设计实践

發(fā)布時間:2025/3/8 windows 19 豆豆
生活随笔 收集整理的這篇文章主要介紹了 线上开票系统设计实践 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.

導讀:為響應國家號召,提升業(yè)務效率,更好的服務企業(yè)用戶,云信于9月末上線了線上開票功能。本文主要介紹了發(fā)票相關的基本知識,以及如何實現(xiàn)線上開票功能,遇到的問題和解決方案。

?

文|璐西 夜雨

?

2020年9月29日,稅務總局等十三部門聯(lián)合發(fā)布《關于推進納稅繳費便利化改革優(yōu)化稅收營商環(huán)境若干措施的通知》,指出要穩(wěn)步推進發(fā)票電子化改革,促進辦稅提速增效降負,2020年底前基本實現(xiàn)新辦納稅人增值稅專用發(fā)票電子化。

為了提升業(yè)務效率,更好的服務于企業(yè)客戶,同時響應政策號召,網(wǎng)易云信2020年9月起支持線上開具電子發(fā)票,增值稅普通電子發(fā)票將可以脫離線下人工開票流程,直接在線上完成自動開票。小小的一張發(fā)票背后,是一套集用戶后臺、業(yè)務后臺、第三方平臺于一體的線上開票系統(tǒng)。線上開票場景適用于各類行業(yè),只要發(fā)生線上交易,無論toB 還是 toC,均會涉及。

本文主要從財稅知識科普、產(chǎn)品設計、技術(shù)設計多個維度分享線上增值稅開票系統(tǒng)的實踐,希望能對大家有所幫助。

?

一、財務知識科普

在進行線上開票系統(tǒng)的設計之前,需要深入了解相關背景知識,這樣才能理解整個業(yè)務流程。相關說明主要基于內(nèi)部設計展開,僅供參考。

?

?1.傳統(tǒng)開票方式?

一家新企業(yè)需要先到稅局申請發(fā)票,再向稅控服務公司購買稅控設備。稅控設備安裝好后,再攜帶稅盤(金稅盤或稅控盤)到主管稅務機關初始發(fā)行,發(fā)行后到柜臺領用發(fā)票。之后企業(yè)稅務人員就可以安裝開票軟件,進行企業(yè)內(nèi)部的線下開票了(紙質(zhì)或電子)。

金稅盤、稅控盤:俗稱白盤,黑盤,分屬于兩個不同的協(xié)稅公司,金稅盤屬于航天信息,稅控盤屬于百旺。

?

?2.發(fā)票信息?

以電子普通發(fā)票為例,一張發(fā)票主要涉及以下幾個重點信息,了解了這些信息對后續(xù)第三方平臺的對接會有很大幫助。

購買方信息:

  • 名稱:若購買方為B端企業(yè)/組織,則此處應填寫增值稅納稅人的名稱,納稅人識別號,地址、電話,開戶銀行及賬號,并確保單位名稱和納稅人登記號的相應關系準確無誤。若購買方為個人,則需要填寫個人身份證姓名。

訂單信息:

  • 服務名稱:由商品名稱+商品服務類型組成。一般格式為*商品名稱*商品服務類型

商品服務類型,和稅收分類編碼對應,第三方開票平臺會根據(jù)稅收分類編碼自動生成商品服務類型,如*信息技術(shù)服務*技術(shù)服務費。

  • 單價:這里指不含稅單價,計算公式為不含稅單價=round(不含稅金額/數(shù)量, 8),保留8位小數(shù),舍入模式為四舍五入。
  • 金額:這里指不含稅商品金額,每個企業(yè)都會有對應的發(fā)票限額,需提前與稅務確認限額,單張發(fā)票的總金額不能超過限額,超過后需要系統(tǒng)自動拆分為多張。
  • 稅率:不同的稅收分類編碼對應不同的稅率。
  • 稅額:國家收取的稅收金額,計算公式為?稅額=round((數(shù)量×含稅單價)×稅率)÷(1+稅率),2),保留2位小數(shù),舍入模式是四舍五入。
  • 價稅合計:即單張發(fā)票的含稅總金額。

若供應兩種不同稅率的應稅項目,且合并開具發(fā)票的,其商品或勞務的名稱、計量單位、數(shù)量、單價、金額,必須按不同稅率分別填寫。對供應的貨物既有應稅貨物,又有免稅貨物的,供應的免稅貨物應單獨開具普通發(fā)票,不得和應稅貨物合并開具增值稅專用發(fā)票。

?

銷售方信息:

  • 名稱等:銷售方企業(yè)名稱和后續(xù)雙方合同的乙方名稱需保持一致。且名稱、證件號需合法有效。
  • 收款人:一般為銷售方財務人員,可與公司財稅人員確認。
  • 復核:一般為銷售方財務人員,可與公司財稅人員確認。
  • 開票人:一般為銷售方稅務人員,可與公司財稅人員確認。

?

銷貨清單

當發(fā)票上的訂單信息超過貨物或應稅勞務、服務名稱一欄展示范圍時,會生成用于記錄完整訂單信息的銷售貨物或者提供應稅勞務、服務清單,發(fā)票貨物或應稅勞務、服務名稱一欄內(nèi)容為(詳見銷貨清單)。

?

?3.發(fā)票類型?

發(fā)票主要分為以下幾類,線上開票僅涉及增值稅普通發(fā)票(以下簡稱普票)及增值稅專用發(fā)票(以下簡稱專票),除電子發(fā)票可線上自動開票外,紙質(zhì)發(fā)票的業(yè)務邏輯也需要一并兼容。

?

4.常見術(shù)語?

藍票、紅票:正常開具發(fā)票為“藍票”,出現(xiàn)退貨或開具的發(fā)票有錯誤,需要作廢發(fā)票或開具“紅票”(也叫負票)用以沖減當期開票方的銷售收入(也叫紅沖)。

如果是增值稅專用發(fā)票,在同一個月開票退貨且發(fā)票未認證的,可直接作廢發(fā)票;跨月退票的,需要紅沖,開具負(紅字)發(fā)票,沖減當期銷售;如已通過同認證的,需購貨方稅務局出具《開具紅字發(fā)票通知單》,銷貨方憑此《通知單》才能開具紅字(負數(shù))發(fā)票。此流程一般需要線下處理。

?

二、產(chǎn)品設計

熟悉了基本知識,在正式進入線上開票系統(tǒng)的產(chǎn)品設計之前,需要進行第三方開票平臺的選型。確定選型后結(jié)合第三方平臺的接口,梳理業(yè)務流程及相關功能點。

?第三方開票平臺?

中國電子發(fā)票產(chǎn)業(yè)鏈的核心環(huán)節(jié)包括稅控設備商和第三方電子發(fā)票服務平臺

?

稅控設備商是國有控股的愛信諾、百旺雙寡頭格局。第三方電子發(fā)票服務平臺主要分為三大陣營,包括百望股份、高燈科技為代表的新興企業(yè);由稅控設備商、傳統(tǒng)紙質(zhì)發(fā)票印刷商組成的老牌發(fā)票服務商;以用友、金蝶為代表的老牌軟件服務商。可以根據(jù)企業(yè)情況,選擇第三方開票平臺。

企業(yè)可通過第三方平臺接口完成于自有系統(tǒng)對接,可選擇自行同步發(fā)票,也可選擇掃碼開票。后者在線下門店開票中較為常見。

?

?業(yè)務流程?

根據(jù)業(yè)務特點進行需求分析,設計適合自己業(yè)務的開票流程。此過程建議與財稅同學保持密切溝通,避免設計出來的開票流程不符合財稅要求。

訂單支付完成后,以電子發(fā)票線上開票及退票為例,主要業(yè)務流程(含狀態(tài)流轉(zhuǎn))參考如下:

說明:

  • 為了降低發(fā)票的退票率及虛開發(fā)票的風險,設計中加入了實名認證的環(huán)節(jié),確保發(fā)票抬頭和證件號真實有效,且一一對應。
  • 部分歷史數(shù)據(jù)(歷史已經(jīng)線下開過票的訂單),可考慮通過下單或支付時間進行限制,規(guī)避重復開票的風險。
  • 財務審核環(huán)節(jié)可根據(jù)公司財稅要求確定是否需要保留,但紙質(zhì)發(fā)票流程一般都會涉及到后臺審核。

?

?功能?

線上開票系統(tǒng)主要涉及用戶和業(yè)務后臺,核心功能點參考下圖:

?

說明:

?

解決了上述問題后,就輪到我們的開票系統(tǒng)獨有的內(nèi)部業(yè)務問題了:

?

?

理順了內(nèi)部業(yè)務邏輯,最后就該思考如何對外提供服務,并盡量提升服務體驗,也就是要解決以下問題:

?

?

?

?系統(tǒng)使用者?

通常對于一個集團公司來說,業(yè)務結(jié)構(gòu)是呈現(xiàn)金字塔形狀的,即集團公司下有不同的子公司,子公司下有不同的產(chǎn)品線,但也偶爾有一些產(chǎn)品線是由不同的子公司甚至外部公司組成。

?

?

因此我們應該把終端產(chǎn)品線作為租戶

?

?終端隔離?

明確了系統(tǒng)使用者,接下來就需要考慮租戶應該隔離哪些數(shù)據(jù)。

目前市面上的開票供應商提供的都是銷方賬戶隔離,有兩點限制

?

?

在實際的線下開票中,我們還會碰到以下場景

?

?

因此,我們的租戶對應的數(shù)據(jù)映射關系如下

?

?

?

?邏輯架構(gòu)?

發(fā)票的生成需要以下必要元素

?

?

按微服務來說,就是我們要依賴4個外部服務

?

?

于是,我們的邏輯架構(gòu)圖應該如下圖:

?

?金額計算?

發(fā)票里的各項屬性的含義可以參考上文,通過各項金額的定義,我們可以得到以下計算公式

?

?

?

?發(fā)票拆分?

各個產(chǎn)品線在申請開票時都是希望訂單和發(fā)票會一一對應,但實際情況是,受限于企業(yè)資質(zhì),銷方開出的每張發(fā)票是有不含稅金額上限的,超出上限就不能開具發(fā)票。

底層的開票供應商通常都具有自動拆票功能,即一筆訂單的不含稅金額超過上限,就會自動拆分成多張發(fā)票。但開票供應商通常會建議我們自己封裝一套拆票邏輯,這是因為供應商的拆票是面向單筆訂單的,如果業(yè)務上是多筆訂單合并開票,供應商拆票后就會出現(xiàn)某幾張發(fā)票的金額遠小于上限,造成發(fā)票份數(shù)的浪費。

稅務每月能從稅務局領取的發(fā)票份數(shù)是有限的。

1. 藍票拆分

首先,我們把藍票開票流程中涉及的對象實體進行抽象

(1)把產(chǎn)品線提交的一次藍票開票請求抽象為一個主流程,一個藍票主流程包含一筆或多筆訂單;

(2)把拆分后的單張藍票抽象為一個子流程,所以一個藍票主流程有一個到多個藍票子流程;

(3)每張藍票有一行或多行發(fā)票明細項目,所以一個藍票子流程有一條到多條發(fā)票明細項目;

(4)單張發(fā)票的不含稅金額上限作為拆分時的不含稅金額閾值;

然后我們來進行拆分規(guī)則的制定;

(1)商品的不含稅單價不得大于不含稅金額閾值,如果有超過閾值的會被拆分成一組到2組商品:一組商品的單價等于不含稅金額閾值,數(shù)量為原商品不含稅金額/拆分不含稅金額閾值;如果還有剩余不含稅金額,則拆分成一個單價為剩余不含稅金額,數(shù)量為1的商品,訂單編號、商品名稱、稅收分類編碼不變;

a.?例如訂單1/商品A/稅收分類編碼TC1/數(shù)量2件/單價18萬會被拆分成訂單1/商品A/稅收分類編碼TC1/數(shù)量3件/單價10萬和訂單1/商品A/稅收分類編碼TC1/數(shù)量1件/單價6萬;

b.?例如訂單1/商品A/稅收分類編碼TC1/數(shù)量2件/單價15萬會被拆分成訂單1/商品A/稅收分類編碼TC1/數(shù)量3件/單價10萬;

(2) 將(訂單+商品名稱+稅收分類編碼+不含稅單價)作為拆分維度的最小單位,商品數(shù)量最小為1,如果當前發(fā)票含稅金額的剩余額度小于商品單價則自動開具下一張發(fā)票,如果當前發(fā)票含稅金額的剩余額度大于商品單價,則當前發(fā)票最多可放置當前商品的數(shù)量=min((剩余額度/商品單價), 商品數(shù)量),如果全部商品數(shù)量都可以放下則切換到下一個商品,否則將剩余商品數(shù)量放到下一張發(fā)票里;

上述的規(guī)則說明中是以技術(shù)服務類這種沒有規(guī)格的商品作為說明的,如果是實體類商品則需把商品規(guī)格也加入到拆分維度中。

?

  • 對于后臺操作人員來說,批量處理可以很大程度上提升工作效率。
  • 不同的發(fā)票狀態(tài)對應不同的操作類型。
  • 銷售后臺需考慮紙質(zhì)發(fā)票的作廢流程。
  • 紙質(zhì)發(fā)票的快遞狀態(tài)跟蹤也可考慮作為低優(yōu)先級功能逐步優(yōu)化。

    ?其他業(yè)務場景?

    實際業(yè)務中,還會涉及一些特殊場景,如提前開票、退款退票等。

    ?

    提前開票,即客戶先開發(fā)票再進行支付。很多大企業(yè)內(nèi)部報銷審核嚴格,需要銷售方先開具發(fā)票,然后根據(jù)發(fā)票報銷打款。

    退款退票,即客戶購買后,由于各種原因進行了退款操作,包含全部退款或部分退款。如果已經(jīng)開具發(fā)票,則需要同步完成退票流程。針對全部退款的情況,只需要走正常退票流程即可。但針對部分退款的情況,原來已經(jīng)開具發(fā)票的需要整體退票之后,再開具剩余未退款金額的發(fā)票。

    這些特殊場景也需要完成線上化,通過系統(tǒng)閉環(huán)所有開票流程,其優(yōu)先級可根據(jù)自身業(yè)務需求制定。

    ?

    三、技術(shù)設計

  • 對于技術(shù)人員來說,在設計任何一個系統(tǒng)時首先都會遇到以下個問題:

  • 系統(tǒng)面向的使用者是誰?
  • 租戶隔離要隔離什么數(shù)據(jù)?
  • 系統(tǒng)的外部依賴有哪些,邏輯架構(gòu)應該怎樣設計?
  • 發(fā)票上的各項金額分別代表什么含義,如何計算?
  • 多訂單合并開票或大額訂單開票時,發(fā)票應該如何拆分?
  • 接口時序是怎樣的,哪些步驟應該異步化?
  • 同一銷方賬戶內(nèi)訂單號必須唯一;
  • 銷方賬戶每張發(fā)票的不含稅金額有上限;
  • 相同的稅收分類編碼在不同產(chǎn)品線中有不同的商品名稱;
  • 相同的商品在不同產(chǎn)品線或者同一產(chǎn)品線中有不同的商品規(guī)格、商品單價;
  • 租戶和銷方賬戶是1對1的關系;
  • 租戶和單張發(fā)票不含稅金額上限是1對1的關系;
  • 租戶和訂單編號是1對N的關系;
  • 租戶和允許開票的商品SKU(即允許的名稱/稅收分類編碼/規(guī)格/單價組合)是1對N的關系;
  • 發(fā)票主體;
  • 訂單信息;
  • 商品信息;
  • 實際開票能力;
  • 用戶中心負責提供經(jīng)過實名認證的發(fā)票主體信息;
  • 訂單中心負責提供訂單編號以及包含的商品SKU購買數(shù)量數(shù)據(jù);
  • 商品中心負責提供商品SKU的名稱、稅收分類編碼、商品規(guī)格、含稅單價數(shù)據(jù);
  • 開票供應商負責提供實際的電子開票能力;
  • 稅額=round((數(shù)量×含稅單價)×稅率)÷(1+稅率),2),保留2位小數(shù),舍入模式是四舍五入。
  • 稅額=round((數(shù)量×不含稅單價×稅率), 2) ,保留2位小數(shù),舍入模式是四舍五入。
  • 不含稅單價=round(含稅單價/(1+稅率), 8),保留8位小數(shù),舍入模式是四舍五入。

詳細拆分步驟見流程圖:

?

拆分示例:

假設銷方單張發(fā)票的不含稅金額上限為10萬,產(chǎn)品線提交的原始開票訂單以及商品列表如下:

?

我們期望不含稅單價溢出商品拆分后,單價溢出的商品8被拆分成兩組商品:

?

我們期望最終的拆分結(jié)果為7張發(fā)票:

2. 紅票拆分

紅票是根據(jù)對應藍票來開具的,紅票和藍票有以下映射關系

  • 紅票發(fā)票明細和藍票發(fā)票明細一一對應,除了商品數(shù)量、不含稅金額、稅額、含稅金額是對應藍票發(fā)票明細的負數(shù)外,其他各項屬性都是相同的;
  • 紅票的發(fā)票備注中需要以"對應正數(shù)發(fā)票代碼:xxxxxxxxxxxx號碼:xxxxxxxx"的形式填充上對應藍票的發(fā)票代碼和發(fā)票號碼;
  • ?

    所以只需要根據(jù)藍票的拆分結(jié)果就能完成紅票拆分。

    參照藍票拆分中的實體定義,對紅票開票流程中涉及的對象實體進行抽象:

  • 把產(chǎn)品線提交的一次紅票開票請求抽象為一個主流程,一個紅票主流程必須關聯(lián)且只關聯(lián)一個藍票主流程;
  • 把拆分后的單張紅票抽象為一個子流程,一個紅票主流程有一個到多個紅票子流程,每個紅票子流程和藍票主流程關聯(lián)的藍票子流程一一對應,紅票子流程的發(fā)票備注以"對應正數(shù)發(fā)票代碼:xxxxxxxxxxxx號碼:xxxxxxxx"的形式填充上對應藍票子流程的發(fā)票代碼和發(fā)票號碼;
  • 每張紅票有一行或多行發(fā)票明細項目,每個紅票發(fā)票明細和藍票子流程關聯(lián)的藍票發(fā)票明細一一對應,紅票發(fā)票明細的商品數(shù)量、不含稅金額、稅額、含稅金額是對應藍票發(fā)票明細的負數(shù),其他各項屬性相同;
  • ?

    ?接口時序和異步化?

    邏輯架構(gòu)中的訂單中心、用戶中心、商品中心都是提供只讀服務,因此可以采用同步調(diào)用快速失敗的方式進行熔斷。但是對于大額訂單開票來說,藍票拆分邏輯較為復雜耗時,且和開票供應商交互生成發(fā)票的過程不可控,因此我們可以將這兩個步驟異步化,并且在異步化流程中加入錯誤重試機制。

    開具藍票的接口時序:

    ?

    開具紅票的接口時序:

    ?

    異步流程:

    在異步流程中,我們需要實現(xiàn)以下兩個功能:

    1. 藍票/紅票拆分成藍票/紅票子流程,拆分出的子流程有4種狀態(tài):

    a. 供應商待申請 -尚未提交給開票供應商;

    b. 供應商開票成功;

    c. 供應商開票失敗;

    d. 供應商開票中 - 既不是開票成功,也不是開票失敗的其他狀態(tài)都屬于開票中;

    2. 藍票/紅票子流程提交給開票供應商生成電子發(fā)票,包括開票結(jié)果的查詢以及開票異常的重試;

    詳細步驟見流程圖:

    以上就是網(wǎng)易云信線上開票系統(tǒng)設計的實踐,目前該功能已經(jīng)上線,歡迎大家體驗!

    ?

    想要探討更多技術(shù)干貨,歡迎關注“網(wǎng)易智企技術(shù)+”公眾號。

    ?

    *各渠道文章轉(zhuǎn)載需注明來源及作者

    ?

    總結(jié)

    以上是生活随笔為你收集整理的线上开票系统设计实践的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

    如果覺得生活随笔網(wǎng)站內(nèi)容還不錯,歡迎將生活随笔推薦給好友。