選單

稅號校驗要做到哪一層?格式通過為何不等於真實

稅號校驗分成格式、校驗位與官方查詢三個層次,每一層能回答的問題都不一樣。本文說明為什麼格式通過不等於企業真實存在、查詢失敗該怎麼處理,以及流程為什麼必須留下可解釋的紀錄。

發佈於

  • 稅號
  • 校驗分層

稅號校驗是企業資料流程裡最容易做過頭、也最容易做不足的一環。有些稅號含校驗位,可以用演算法先擋掉明顯打錯的輸入;有些只是登記機關分配的號碼,沒有任何演算法能判斷真偽。讀完這篇,你會知道每一層檢查各自能回答什麼問題,以及為什麼不能把校驗失敗當成企業不存在的證據。

稅號在校驗上分成哪幾種?

實務上可以粗分為兩類。第一類含校驗位,號碼本身的最後一位或多位是由其餘部分依規則算出來的,因此可以先用演算法過濾明顯打錯的輸入。第二類不含校驗位,整串號碼就是登記機關分配的流水號,本地沒有任何辦法判斷它是否對應到真實主體。

要注意的是,同一個國家對不同主體類型可能採用不同規則,而且規則可能調整。因此不要把某一國的具體演算法寫死在意見裡,也不要斷言某個國家一定屬於哪一類;正確的做法是把「是否可校驗」當成一份需要維護的設定,而不是常識。

檢查層次 能回答的問題 不能回答的問題
格式層 字元與長度是否符合規則 這組號碼是否真的被發出
校驗位層 號碼是否為隨機亂打的 這家企業是否存在
官方查詢層 這個號碼是否登記在冊 這家企業是否適合往來

格式通過為什麼不等於真實?

因為格式是一組規則,而不是一份名單。任何知道規則的人都能造出一串符合規則的號碼,包括測試資料產生器、表單驗證工具與隨手亂打的人。格式檢查的價值在於即時回饋使用者、降低明顯錯誤,而不是證明真實性。

校驗位能再往前一步,把隨機亂打的號碼擋掉大部分,但它的上限也就到這裡。一組通過校驗位的號碼仍然可能是偽造的,因為偽造者同樣能算出校驗位。校驗位不是防偽機制,它只是打字錯誤的偵測器。

真正能回答「是否登記在冊」的,只有官方登記處或官方查詢服務。這也是為什麼成熟的流程會把本地檢查與官方查詢分成兩件事,並在介面上用不同的措辭呈現結果。

查詢失敗時該怎麼處理?

第一步是區分失敗的種類。輸入有誤、服務暫時不可用、被限流、回傳狀態不在預期之內,這些都屬於可以重試或可以修正的問題,與這家企業是否存在無關。

第二步是給流程第三種結果。除了通過與不通過,還要有一個待確認狀態,讓技術性失敗不會被誤判成業務結論。待確認應該可重試、可被記錄、可交給人工接手,並且在介面上說明原因是暫時無法確認,而不是這組號碼有問題。

第三步是設定重試上限與逾時。無上限重試會讓整批作業卡住,也會對外部服務造成不必要的壓力。快取可以減少重複查詢,但存活時間要短到能接受登記狀態的變化,並要能依需求強制重查。

本站產生的虛構號碼適合測什麼

在本站的公司資訊產生器裡,指定國家或地區後會產生一條完整主體,包含該國的登記號與增值稅號。產生的號碼只在格式層面模仿當地慣例,不對應任何真實企業,也不在任何稅務機關登記在冊。

這正好讓你能乾淨地測三個層次。格式層可以用刻意越界的樣本測;校驗位層可以用刻意改動最後一位的樣本測;官方查詢層則應該用明確標示為測試的樣本,確認系統在查不到結果時進入待確認而不是退件。若你的流程也處理增值稅欄位,兩者的差異整理在各國 VAT 號格式;欄位本身的寬度設計可讀各國公司註冊號。

這些內容僅供測試、沙箱演練與表單示範使用,不得用於申請真實開戶、開立真實票據,也不得用來冒用他人企業身分。

給開發者:分層校驗與可解釋的錯誤

第一層只做清理與基本檢查,包含去除前後空白、統一內部空白、確認字元集與長度落在合理範圍。這一層的回饋要即時,訊息要具體,例如指出長度不足,而不是只說格式錯誤。清理的動作必須發生在任何比對之前,否則一個多打的空白就會讓後面的檢查全部失敗。

還有一類輸入需要特別對待:使用者在貼上時常會連同標籤文字一起帶入,或在數字之間夾入非標準的間隔符號。寬鬆地接受這些寫法,並在清理階段收斂成統一形式,比直接退回更符合實際使用情境。真正的風險不在這些可清理的差異,而在於把它們誤判成無效號碼。

第二層依管轄區套用規則,並把「這一國能不能做校驗位檢查」寫成設定。規則要集中管理、標明來源與更新時間,沒有規則的國家走兜底路徑並標記為未驗證。自己實作各國規則是維護成本很高的選擇,除非你能保證持續更新。

第三層是官方查詢,這一層的錯誤處理決定了流程的品質。每一種失敗都要有對應的狀態與訊息,並寫進可追蹤的紀錄。紀錄裡應該包含查詢時間、使用的規則版本與結果,這樣日後才有辦法解釋某筆資料當時為什麼被放行或被攔下。

最後要避免一個常見的措辭錯誤:不要在訊息裡寫「這家公司不存在」。系統能確認的只是這組號碼在該次查詢中沒有得到在冊的回應,這兩件事的差距很大,而使用者會完全照著訊息的字面意思行動。

下一步

先確認你的流程有沒有把校驗位檢查當成真實性判斷,有的話改成分層,並在訊息裡說清楚每一層的結論。接著用一批刻意改動最後一位的虛構樣本跑一次,看看錯誤訊息是否具體到使用者能自行修正。

如果你正在設計企業准入流程,這些校驗結果會是其中一項輸入,完整的檢查順序整理在企業准入測試檢查清單。本系列文章僅供軟體測試與示範使用,所有號碼與主體均為演算法合成的虛構內容,不存在於任何官方登記體系,也不得作為企業真實性或合規狀態的證明。

繼續閱讀

公司資訊產生器相關文章