PCE TW GUI MODULE — 操作手冊
目的:帳上已交付功能的欄位、選單與規則對照(第一次設定、日常步驟、CSV 範本下載)
從無到有的操作步驟:操作手冊(會計照這份做;本文件保留欄位與腳本對照)
HTML:HTML 版
帳上摘要:PCE GUI Portal → 說明 → 操作手冊(含範本直接下載)
English:User guide
相關 API 文件:AP Write 介接手冊 · 技術說明
1. 產品概覽
PCE TW GUI MODULE(Publisher:com.netsuite,Project ID:pceguitw)是一套以 SuiteCloud SDF 建置的 SuiteApp,用來支援台灣營業稅/進項憑證在 NetSuite 的登錄、檢核與介接。
目前已交付能力:
| 模組 | 做什麼 |
|---|---|
| 營業人基本資料 | 申報用營業人主檔(統編、地址、子公司、進項/銷項功能開關) |
| 課稅別 NS 稅碼對應 | 把課稅別 1/2/3 對到 NetSuite(NS) Tax Code(銷項開立前必設) |
| 進項憑證登錄 | 「PCE 進項資料」可掛 Vendor Bill(應付帳款發票)/Expense Report(費用報銷)/Vendor Credit(廠商折讓)/Vendor Prepayment(廠商預付),或獨立建立 |
| 進項 CSV | 上傳/貼上 CSV,單次最多 100 列;可先 只驗證不寫入 |
| 進項 API | IT/廠商介接 AP Write(§5.4) |
| 發票本管理 | 查詢/調整配號、手動建立、CSV 匯入(31/32/35) |
| 開立銷項發票/折讓單 | 單張/合併開立、開立折讓單、開立淨額發票;頁首按鈕或查詢頁 |
| 背景自動開立 | 多筆 Invoice 排入佇列、35-07 加值中心上傳;提交與進度同一頁分頁(§5.8) |
| 作廢銷項發票/折讓單 | Suitelet 查詢已開立主檔;作廢或作廢換開(§5.7) |
| 加值中心上傳錯誤清單 | 上傳失敗主檔;勾選改回待上傳並重新 enqueue(§5.9) |
| 營業稅申報檔 | 依營業人與雙月期別下載進銷項 TXT、零稅率 T02(§5.10) |
| 自訂商品明細 | Invoice(銷項發票)/Credit Memo(貸項通知單,CM)「PCE 銷項」分頁改寫開立用商品列;開立時相同品項+單價+課稅別+品名合併為一列(品名不同不合併) |
| 導覽選單 | 頂部 PCE GUI(Classic Center/BASIC) |
帳上操作手冊與範本下載:PCE GUI Portal → 說明 → 操作手冊。規格與分期見 銷項藍圖。
這本手冊怎麼用
- 新帳號先做完 §4 第一次設定(營業人 → 課稅別 → 統編 → 發票本)。
- CSV 匯入前先到 §1.1 範本下載 取檔,Excel 編輯後另存 CSV UTF-8。
- 日常進項見 §5.1~5.3;日常銷項見 §5.5~5.9。
- 帳上同一份手冊可直接下載範本,不必再到各功能頁找檔。
1.2 流程總覽
帳上 PCE GUI Portal → 說明 → 操作手冊 亦以相同結構呈現(CSS 流程圖,無需額外外掛)。
flowchart TB deploy[部署 SuiteApp] --> setup[第一次設定 §4] setup --> ap[進項日常 §5.1–5.3] setup --> ar[銷項日常 §5.0–5.8] setup --> book[發票本管理 §5.6] ar --> void[作廢 §5.7] ar --> bg[背景開立 §5.8] book --> ar
流程圖原文
1.3 術語與縮寫
本手冊與流程圖常用縮寫之完整名稱如下。帳上 PCE GUI Portal → 說明 → 操作手冊 中,§1.3 術語表本身為純文字對照;其餘章節帶虛線底線的縮寫游標停駐可見相同說明:
| 縮寫 | 完整名稱 | 說明 |
|---|---|---|
| SEUI | Sales Exempt from Uniform Invoices(銷項免用統一發票) | 格式 36 之系統號碼前綴;後接時間戳 10 碼,共 14 字(例 SEUI4567890123) |
| NS | NetSuite | 本 ERP 平台;如「課稅別 NS 稅碼對應」「是否透過 NS 傳至加值中心」 |
| AP | Accounts Payable/進項 | 進項憑證(應付/進項)模組 |
| AR | Accounts Receivable/銷項 | 銷項憑證;開立發票/折讓單 |
| VB | Vendor Bill(應付帳款發票) | 供應商應付帳款發票交易單 |
| ER | Expense Report(費用報銷) | 員工費用報銷單 |
| VC | Vendor Credit(廠商折讓) | 廠商貸項通知單 |
| VP | Vendor Prepayment(廠商預付) | 廠商預付款交易單 |
| CM | Credit Memo(貸項通知單) | 客戶貸項通知單;折讓單之來源交易 |
| CSV | Comma-Separated Values(逗號分隔值) | 試算表文字檔;Excel 請另存 CSV UTF-8 |
| invCatCode | Invoice Category Code(發票類別代號) | 代號 01~08;格式 21/25/31/32/35 常用 |
| OAuth | Open Authorization(開放授權) | AP Write API 介接授權(由 IT 設定) |
| M2M | Machine-to-Machine(機器對機器) | OAuth 用戶端憑證模式,無需使用者登入 |
畫面速覽

圖:頂部 PCE GUI 選單(說明/模組設定/進項/銷項)。
1.1 範本下載
請替換範例統編、字軌與金額。單次最多 100 列。建議先勾只驗證不寫入。
帳上:PCE GUI Portal → 說明 → 操作手冊 → 範本下載。各功能頁也提供同一批檔案。
| 用途 | 下載(帳上說明頁) | 專案樣本 | 使用頁 |
|---|---|---|---|
| 進項 CSV 範本 | ?action=template&kind=ap | ap-invoice-import-sample.csv | Portal → 進項 → 進項 CSV 匯入 |
| 進項欄位說明 | ?action=guide&kind=ap | ap-invoice-import-field-guide.csv | 同上 |
| 進項 invCatCode 對照 | ?action=invcatmap&kind=ap | ap-invCatCode-erp-mapping.csv | 同上 |
| 發票本 CSV 範本 | ?action=template&kind=arbook | ar-invoice-book-import-sample.csv | Portal → 模組設定 → 發票本管理 → CSV |
| 發票本欄位說明 | ?action=guide&kind=arbook | ar-invoice-book-import-field-guide.csv | 同上 |
| 發票本 invCatCode 對照 | ?action=invcatmap&kind=arbook | ar-invCatCode-mapping.csv | 同上 |
IT/介接另見 docs/postman/(AP Write Postman)與 介接手冊。
2. 前置條件
2.1 NetSuite 功能
manifest.xml 宣告:
| Feature | 必要性 |
|---|---|
| Custom Records | 必填 |
| Server SuiteScript | 必填 |
| Subsidiaries | 必填 |
| Accounting | 建議開啟(交易單相關流程) |
2.2 權限與角色
部署後腳本多設為 All Roles(僅涵蓋內部角色)。實務上請確認角色至少具備:
- Custom Record 權限:
PCE 營業人資料、PCE 進項資料(及代碼對照表如需維護) - 交易權限:Vendor Bill/Expense Report/Vendor Credit/Vendor Prepayment(視流程)
- Suitelet/RESTlet:CSV 匯入頁、AP Write(外部介接另需 Integration/Token)
2.3 部署方式(開發/顧問)
# 開發帳(已設定 suitecloud auth) npm run deploy:sdf # 客戶正式/UAT(LOCK 頂層物件、HIDE server 程式、帳號防呆) npm run deploy:sdf:customer
- Application ID:
com.netsuite.pceguitw - 部署完成後會執行安裝腳本,自動建立代碼對照表初始資料(同名略過,可重跑)
- 客戶帳從本機準備到驗收的步驟與流程圖見 客戶帳部署;部署後帳上設定接本手冊 §4
3. SuiteApp 內容清單
3.1 導覽(Center)
| Script ID | 類型 | 顯示名稱 |
|---|---|---|
custcentertab_pce_gui | Center Tab | PCE GUI(center=BASIC/Classic Center,allroles=T;總覽預設 Script Portlet) |
custpubdashboard_pce_gui | Published Dashboard | PCE GUI 總覽:顯示「SuiteApp 操作手冊」Portlet(套用至 Administrator/Full Access;既有使用者需在帳上 Publish/Personalize 一次) |
custcentercategory_pce_workbench | Category | 功能入口 → PCE GUI Portal(customscript_pce_sl_workbench;左側選單 + 右側 iframe) |
custcentercategory_pce_basic_data | Category | 模組設定(模組通用系統設定/營業人資料/發票本配號設定)。課稅別對應與發票本管理改在 PCE GUI Portal |
custcentercategory_pce_ap | Category | 進項(PCE 進項資料)。進項 CSV 匯入改在 PCE GUI Portal |
custcentercategory_pce_ar | Category | 銷項(PCE 銷項資料)。開立、背景開立、作廢改在 PCE GUI Portal → 銷項;上傳監控/錯誤在 PCE GUI Portal → 加值中心 |
PCE GUI → 功能入口 → PCE GUI Portal
- 頁首正中間顯示已對應的通用系統設定名稱、該列 NetSuite Account ID、使用者、角色,例如「測試區 (TD2905095) | 使用者: … | 角色: …」。沒有對應時,名稱顯示 —,也不加帳號。
- 進項 只在已對應的通用系統設定勾了 進項功能(
custrecord_pce_modsys_ap_feature)時出現。銷項 只在勾了 銷項功能(custrecord_pce_modsys_ar_feature)時出現。營業稅申報 → 進銷項與零稅率 只在勾了 產報稅檔功能(custrecord_pce_modsys_taxfile_feature)時出現。沒勾則該組不顯示。 - 單頁切換多數 PCE 工具(說明、模組設定、進項、銷項、加值中心等),右側 iframe 載入各 Suitelet。
- 左側 ☰ 可收合/展開選單:展開時顯示完整功能名稱;收合後僅保留 ☰(選單隱藏,要換功能須先按 ☰ 展開)。游標停駐按鈕可見「收合選單」或「展開選單」。
- 發票本管理、作廢、背景自動開立等頁面內的分頁,在 iframe 內切換,不需整頁重新載入。
- 查詢條件區塊(可收合)為多數銷項工具共用。背景自動開立與作廢銷項發票/折讓單採 workbench 單卡版面(分頁在 card 標題列、查詢條件嵌在卡內)。開立清單、發票本仍為傳統分頁+獨立查詢 card。技術說明見 PCE GUI Portal — 銷項內頁 UI(查詢條件/workbench)。
PCE GUI Portal → 說明 → 操作手冊
- Suitelet(可下載進項/發票本 CSV 範本;PCE GUI 總覽 Portlet 仍顯示摘要)

圖:Portal「說明 → 操作手冊」完整頁面。
PCE GUI → 模組設定
- 模組通用系統設定 →
customrecord_pce_module_sys_setting(正式區/測試區各一筆;以 NetSuite Account ID 對應環境) - PCE 營業人資料 →
customrecord_pce_business_info - 發票本配號設定 →
customrecord_pce_ar_book_profile - 課稅別 NS 稅碼對應、發票本管理 → PCE GUI Portal → 模組設定

圖:PCE GUI → 模組設定 → PCE 營業人資料。
PCE GUI → 進項
- PCE 進項資料 →
customrecord_pce_ap_invoice(中心標籤。PCE GUI Portal 不顯示這份清單) - 進項 CSV 匯入 → PCE GUI Portal → 進項(已勾 進項功能 時;Suitelet
customscript_pce_sl_ap_csv_import)

圖:PCE GUI → 進項(進項資料/CSV 匯入)。
PCE GUI → 銷項
- PCE 銷項資料 →
customrecord_pce_ar_invoice - 開立、背景自動開立、作廢 → PCE GUI Portal → 銷項
- 上傳監控、上傳錯誤 → PCE GUI Portal → 加值中心
3.2 Custom Records(業務)
| Script ID | 名稱 | 用途 |
|---|---|---|
customrecord_pce_module_sys_setting | 模組通用系統設定 | 正式區/測試區;Account ID 對應;模組級進項/銷項/報稅開關 |
customrecord_pce_business_info | PCE 營業人資料 | 營業稅營業人主檔 |
customrecord_pce_biz_sys_setting | (營業人下系統設定) | 進項/銷項/報稅:繼承/啟用/停用(customlist_pce_setting_override)覆寫模組預設 |
customrecord_pce_ap_invoice | PCE 進項資料 | 進項憑證明細(可關聯交易) |
customrecord_pce_ap_write_log | 進項匯入紀錄 | 每次 CSV/API 寫入的請求與結果(對帳用) |
customrecord_pce_ar_invoice | PCE 銷項資料 | 銷項憑證主檔(發票/折讓);狀態(customlist_pce_ar_status)與加值中心上傳狀態(customlist_pce_ar_upload_status)見 §3.2.1。表單:基本資訊含建立日期與最後修改;已折讓為已折讓未稅/稅額/總計與可折餘額;作廢/註銷含作廢換開 |
customrecord_pce_ar_invoice_line | PCE 銷項商品明細 | 開立後寫入的商品子明細 |
customrecord_pce_ar_custom_line | PCE 銷項自訂商品明細 | Invoice/CM 開立前可改寫的商品列(掛 PCE 銷項分頁) |
customrecord_pce_ar_invoice_line | (銷項商品明細) | 主檔下商品列 |
customrecord_pce_ar_invoice_book | 發票本 | 字軌/期別/配號/自定義發票本配號(無 Name 欄) |
customrecord_pce_ar_book_import_log | 發票本匯入紀錄 | CSV/手動匯入背景處理狀態與各區段結果 |
customrecord_pce_ar_book_profile | 發票本配號設定 | 自定義配號群組(Name/說明);發票本連結後以 profileName 對應 |
customrecord_pce_mof_track | 字軌 | 財政部字軌相關 |
3.2.1 PCE 銷項主檔:狀態與上傳(與交易表身不同)
PCE 銷項資料(customrecord_pce_ar_invoice)與 Invoice/Credit Memo 表身各有一套「狀態」欄位,用途不同,請勿混用。
| 層級 | 欄位 Script ID | 清單 | 用途 |
|---|---|---|---|
| 主檔 | custrecord_pce_ar_status | customlist_pce_ar_status(PCE 銷項狀態) | 憑證生命週期:草稿/已開立/已作廢/已註銷。Suitelet 開立成功後寫 已開立(不再以草稿表示已開立)。 |
| 主檔 | custrecord_pce_ar_upload_status | customlist_pce_ar_upload_status(PCE 銷項上傳狀態) | 加值中心上傳流程:待上傳/上傳中/上傳失敗/上傳成功/不上傳。開立時依確認頁 是否透過加值中心上傳:選 上傳(35/33 等)→ 待上傳;不上傳(紙本 31/32、35 不上傳、36 等)→ 不上傳,可直接符合作廢閘道。電子發票須待上傳 job(Phase 3)或人工改為 上傳成功 後才能作廢。 |
| 主檔 | custrecord_pce_ar_upload_error_msg | Long Text | 上傳失敗或介接錯誤訊息;開立成功時清空。 |
| 交易表身 | custbody_pce_ar_inv_status | customlist_pce_ar_inv_status(PCE 發票狀態) | 對應 NetSuite 來源 Invoice/CM 的發票上傳/開立狀態(開立:已開立等待上傳/已開立,不透過NS上傳/已開立上傳中/已開立但上傳失敗,請確認錯誤訊息/已開立且已成功上傳大平台;作廢:已作廢等待上傳/已作廢,不透過NS上傳/已作廢上傳中/已作廢但上傳失敗,請確認錯誤訊息/已作廢且已成功上傳大平台;上傳中/失敗/已上傳大平台由 Phase 3 上傳與 ACK 回寫)。開立:確認頁選上傳 → 已開立等待上傳;不上傳 → 已開立,不透過NS上傳。一般作廢:原主檔 不上傳 → 已作廢,不透過NS上傳;否則 已作廢等待上傳(作廢換開清空以便重開)。 |
| 交易表身 | custbody_pce_ar_error_msg | Long Text(唯讀) | 發票錯誤訊息(Invoice/Credit Memo/Customer Deposit,PCE 銷項分頁):背景自動開立失敗時寫入原因(前綴「背景自動開立失敗:」,僅 Invoice;此時發票狀態為空白,可修正後重開);Phase 3 起加值中心上傳失敗也寫在此欄,並搭配「…但上傳失敗,請確認錯誤訊息」狀態。開立成功、重新排入背景開立、Make Copy、作廢換開或改回待上傳重送時自動清空。 |
3.3 代碼/對照表 Custom Records
部署時由 customscript_pce_sl_install_lookup 灌入初始資料(已存在則略過):
| Script ID | 說明 | 初始資料 |
|---|---|---|
customrecord_pce_doc_format_code | 憑證格式代碼(進項 21~29 共 11 筆、銷項 31~36;21/25/31/32/35 各拆 2 筆;含進銷項別、發票類別代號) | 有 |
customrecord_pce_tax_type | 課稅別 | 有 |
customrecord_pce_deduction_code | 進項扣抵代號 | 有 |
customrecord_pce_summary_mark | 彙加/分攤註記 | 有 |
customrecord_pce_ar_book_status | 發票本狀態(0 未使用/1 使用中/2 使用完畢/9 停用) | 有 |
customrecord_pce_customs_mark | 通關註記 | 進項暫無預設列 |
customrecord_pce_export_decl_cat | 出口報單類別(G3、G5、D1、D5、B1、B2、B8、B9、F4、F5) | 有 |
customrecord_pce_zero_rate_mark | 適用零稅率註記 | 進項暫無預設列 |
customrecord_pce_city | 營業縣市 | 對照用 |
customrecord_pce_filing_type | 申報種類 | 對照用 |
customrecord_pce_filing_mark | 自行/委託申報註記 | 對照用 |
customrecord_pce_consol_code | 總繳代號 | 對照用 |
Name 格式多為「代碼-說明」(例如 21-三聯式統一發票、25-進項一般稅額計算之電子發票(…))。API/CSV 傳 docFormatCode: "21" 或 "25" 時須加 invCatCode(21:01/05;25:06/07)或 docFormatName。
3.4 Entity 自訂欄位(Vendor/Customer)
| Script ID | 標籤 | 適用 |
|---|---|---|
custentity_pce_vendor_tax_id | PCE 廠商統一編號 | Vendor |
custentity_pce_vendor_invoice_title | PCE 廠商發票抬頭 | Vendor |
custentity_pce_vendor_reg_addr | PCE 廠商登記地址 | Vendor |
custentity_pce_cust_tax_id | PCE 客戶統一編號 | Customer |
custentity_pce_cust_invoice_title | PCE 客戶發票抬頭 | Customer |
custentity_pce_cust_reg_addr | PCE 客戶登記地址 | Customer |
多顯示於 PCE 發票 Entity Subtab(custtab_pce_einvoice)。Vendor/Customer 統編由 Client Script/User Event 驗證(8 碼檢核碼;B2C 客戶可為 10 個 0)。
3.5 交易 Subtab
| Script ID | 標題 | 類型 |
|---|---|---|
custtab_pce_trx_einvoice | PCE 進項資料 | Transaction |
custtab_pce_trx_ar_einvoice | PCE 銷項 | Transaction |
進項 Subtab 用於 Vendor Bill 等;銷項 Subtab 用於 Invoice/Credit Memo 表身欄位與自訂商品明細子列表(見 §3.5.1)。
3.5.1 Invoice/Credit Memo 表身欄位(PCE 銷項)
| Script ID | 標籤 | 說明 |
|---|---|---|
custbody_pce_ar_issue_invoice | 是否開立發票/折讓單 | 見下方 銷項功能與此欄位 |
custbody_pce_ar_use_custom_lines | 使用自訂商品明細 | 勾選後開立改讀下方自訂商品明細子列表(非交易 item);首次勾選且子列表為空時會從 item 帶入 |
custbody_pce_ar_inv_status | 發票/折讓單狀態 | 清單 customlist_pce_ar_inv_status(PCE 發票狀態,綁交易)。與主檔 custrecord_pce_ar_upload_status(上傳狀態)不同,對照 §3.2.1 |
custbody_pce_ar_locked | 鎖定中 | 流程鎖定用 |
custbody_pce_ar_invoice_no | 發票號碼 | 僅 Invoice 顯示(Credit Memo 由 User Event 隱藏)。開立成功後回寫(一般為字軌 2 碼+流水 8 碼;格式 36 為 SEUI(Sales Exempt from Uniform Invoices)+時間戳 10 碼,共 14 字) |
custbody_pce_ar_allowance_no | 折讓單號碼 | 僅 Credit Memo 顯示。開立折讓單成功後回寫(最多 16 碼) |
custbody_pce_ar_orig_invoice_no | 折抵發票號碼 | 僅 Credit Memo 顯示。開立折讓單時填寫/回寫之原發票號碼(最多 10 碼) |
custbody_pce_ar_error_msg | 發票錯誤訊息 | Invoice/Credit Memo/Customer Deposit(唯讀);背景開立失敗或 Phase 3 上傳失敗原因;見 §3.2.1 |
custbody_pce_ar_main_remark | 總備註 | Invoice/Credit Memo/Customer Deposit 可填(最多 200 字);自交易頁進入確認開立內容時預填 發票備註,開立後寫入銷項主檔總備註 |
custbody_pce_ar_cd_line_description | 品名 | 僅 Customer Deposit;新建時預設帶入 PCE 營業人系統設定 → 顧客押金品名(有值),否則 模組通用系統設定;可於訂金上修改;確認開立頁單列明細品名讀取本欄 |
同一分頁另有子列表 PCE 銷項自訂商品明細(customrecord_pce_ar_custom_line),主要欄位如下:
| 欄位 | Script ID | 說明 |
|---|---|---|
| 品項 | custrecord_pce_ar_cstmline_item | 對應來源 item;勾選帶入時自動寫入 |
| 品名 | custrecord_pce_ar_cstmline_description | 開立用品名(可改寫) |
| 數量/單位/單價/金額 | …_qty/…_unit/…_unit_price/…_amount | 未稅金額;金額 0 的商品列仍會開立。說明、小計、群組等非商品且金額 0 則略過。單位帶入 Units 縮寫,最多 6 字 |
| 營業稅額 | custrecord_pce_ar_cstmline_tax_amount | 各列加總須等於單頭 taxtotal |
| 課稅別 | custrecord_pce_ar_cstmline_tax_type | 對應 customrecord_pce_tax_type(1/2/3 等) |
| 明細備註 | custrecord_pce_ar_cstmline_remark | 最多 120 字;可自 item 子列表帶入 |
已勾選但沒有商品列時,開立會被拒絕。金額 0 的商品列仍算有效列。未稅合計與營業稅合計必須與 NetSuite 單頭一致(容許 0.02)。儲存時若營業稅全空,系統會依課稅別(應稅 5%)推算並對齊單頭。
銷項功能與此欄位(依 模組通用系統設定 Account Mapping + PCE 營業人主檔 +營業人 effective 銷項開關):
| 情境 | 行為 |
|---|---|
| 本帳號 未 Mapping 至正式區/測試區 | 模組銷項全關;此欄 禁用、不勾選;交易頁 無 開立按鈕;開立/作廢/發票本 Suitelet 拒絕 |
| 該 subsidiary 沒有 對應的 PCE 營業人資料(未建主檔或未填 subsidiary) | 銷項一律關閉(即使模組通用已勾銷項) |
| 該 subsidiary 銷項 停用(營業人覆寫或子設定) | 同上 |
| 銷項 啟用 且已選 客戶 (entity) | 新建與複製時自動勾選。使用者自行取消後,畫面儲存與再次開啟編輯都不會再勾回。變更客戶或 subsidiary 時仍會依銷項功能重算 |
| 銷項 啟用 但 無客戶 | 不勾選 |
| 已開立(已有發票/折讓號碼或狀態) | 不顯示開立按鈕(與銷項開關無關) |
Suitelet(開立、作廢、發票本手動建立/查詢)在 POST 時會再次驗證銷項是否啟用。從交易頁按開立若遭拒,訊息會註明「此交易所屬營業人銷項功能未啟用」。
開立按鈕僅在 Invoice/Credit Memo「檢視」頁顯示(編輯頁不顯示,以免未存檔的自訂商品明細與表頭與開立資料不一致)。請先 儲存 再進檢視頁開立;或改用 PCE GUI Portal → 銷項 → 開立發票/折讓單 查詢已存檔交易。
3.5.2 Invoice/Credit Memo item 子列表欄位
| Script ID | 標籤 | 說明 |
|---|---|---|
custcol_pce_ar_line_remark | 明細備註 | 銷售 item 列備註(最多 120 字)。勾選「使用自訂商品明細」且子列表為空帶入時,會寫入自訂列 明細備註 |
custcol_pce_ar_line_remark 後,須至 Customization → Forms → Transaction Forms,在 Invoice/Credit Memo 的 Items 子列表加入 明細備註 欄,使用者才能在 item 列維護備註。3.6 Scripts
| Script ID | 類型 | 說明 | ||||
|---|---|---|---|---|---|---|
customscript_pce_ue_apinv_default | User Event | 進項資料儲存前驗證(非 UI 路徑補強) | ||||
customscript_pce_cs_ap_invoice | Client | 進項資料畫面欄位行為 | ||||
customscript_pce_cs_trans_ap_sublist | Client | 交易單上進項子列表聯動(VB/ER/VC/VP) | ||||
customscript_pce_rl_ap_write | RESTlet | 進項/交易寫入 API | ||||
customscript_pce_sl_ap_csv_import | Suitelet | 進項 CSV 匯入 UI | ||||
customscript_pce_sl_install_lookup | Suitelet(安裝) | 代碼表初始資料 | ||||
customscript_pce_sl_ap_write_smoke | Suitelet | AP Write 冒煙測試(開發/驗證用) | ||||
customscript_pce_sl_ap_write_smoke_inst | 安裝相關 | 冒煙測試安裝輔助 | ||||
customscript_pce_cs_ar_invoice | Client | PCE 銷項資料主檔欄位聯動/驗證 | ||||
customscript_pce_ue_arinv_default | User Event | 銷項資料 beforeSubmit 驗證 | ||||
customscript_pce_sl_user_guide | Suitelet | 操作手冊(`?lang=zh\ | en;範本 action=template\ | guide\ | invcatmap+kind=ap\ | arbook`) |
customscript_pce_sl_taxtype_mapping | Suitelet | 課稅別 NS 稅碼對應 | ||||
customscript_pce_sl_ar_issue | Suitelet | 開立銷項發票/折讓單(查詢 NS Invoice/Credit Memo) | ||||
customscript_pce_sl_ar_void | Suitelet | 作廢銷項發票/折讓單(查詢已開立 PCE 銷項主檔) | ||||
customscript_pce_sl_ar_invoice_book | Suitelet | 發票本清單入口 | ||||
customscript_pce_sl_ar_book_csv_import | Suitelet | 發票本管理 UI(CSV/手動/查詢/更新) | ||||
customscript_pce_mr_ar_book_import | Map/Reduce | 發票本建立背景 job | ||||
customscript_pce_mr_ar_book_alloc_update | Map/Reduce | 發票本配號批次更新背景 job | ||||
customscript_pce_ue_ar_book_default | User Event | 發票本新增預設狀態 0-未使用 | ||||
customscript_pce_cs_trans_ar_body | Client | Invoice/Credit Memo「是否開立發票/折讓單」預設、自訂商品明細帶入、開立按鈕 | ||||
customscript_pce_ue_trans_ar_body | User Event | 同上(非 UI 路徑補強) | ||||
customscript_pce_cs_vendor_taxid / customscript_pce_ue_vendor_taxid | Client/UE | Vendor 統編驗證 | ||||
customscript_pce_cs_customer_taxid / customscript_pce_ue_customer_taxid | Client/UE | Customer 統編驗證 |
3.7 File Cabinet(主要路徑)
SuiteApps/com.netsuite.pceguitw/ ├── ap/ │ ├── clientscripts/ # 進項/交易 Client Scripts │ ├── libraries/ # CSV、驗證、Payload、WriteLog 等 │ ├── restlets/ # AP Write RESTlet │ ├── suitelets/ # CSV Import、Smoke │ └── userevents/ # 進項 Default/驗證 ├── ar/ │ ├── clientscripts/ # 銷項主檔、交易表身 │ ├── libraries/ # 驗證、Lookup、開立邏輯、開立畫面 HTML │ ├── suitelets/ # 開立銷項發票、發票本管理、Smoke │ └── userevents/ # 銷項驗證、交易表身 └── common/ # 統編檢查、字軌資料等共用函式庫
4. 部署後設定步驟
建議依序完成:
flowchart TD
A[A 確認選單] --> B[B 營業人資料]
B --> B2[B2 課稅別 NS 稅碼對應]
B2 --> C[C Vendor/Customer 統編]
C --> D[D 匯入或建立發票本]
D --> E{需要 API 介接?}
E -->|是| F[F OAuth + AP Write]
E -->|否| done[可開始日常作業]
F --> done流程圖原文
步驟 A — 確認選單
- 重新整理 NetSuite(或切換角色/Center 後再回來)。
- 頂部應出現 PCE GUI。
- 點開確認:
- PCE GUI Portal → 說明 → 操作手冊(含範本下載)
- 模組設定 → 模組通用系統設定、PCE 營業人資料、發票本配號設定(中心標籤);課稅別稅碼對應、發票本管理在 PCE GUI Portal
- 進項 → PCE 進項資料(中心標籤)。Portal 不顯示進項資料。已勾 進項功能 時,Portal 顯示 進項 CSV 匯入
- 銷項 → PCE 銷項資料(中心標籤);開立、背景開立、作廢在 PCE GUI Portal → 銷項;上傳監控、上傳錯誤在 PCE GUI Portal → 加值中心
若看不到 Tab:確認角色為 Classic Center、以及 custcentertab_pce_gui 的 Audience(預設 all roles)。
步驟 A0 — 模組通用系統設定(必做)
- PCE GUI → 模組設定 → 模組通用系統設定。
- 確認已有 正式區、測試區 兩筆(安裝腳本會種子;功能預設關閉)。名稱與設定鍵在表單上不可修改。
- 在對應環境的那一筆 NetSuite Account ID(必填)填入本帳號 ID 一筆(Free-Form Text;不分大小寫,
-/_視為相同)。欄位 ID:custrecord_pce_modsys_ns_account。未填不能儲存。 - 依需求勾選 銷項(進項 Phase 尚未全面接線,可之後再開)。模組功能 → 申報檔強制背景下載(
custrecord_pce_modsys_vat_force_bg,預設不勾):勾選後,進銷項 TXT 與零稅率 T02 不論筆數都改在背景產生。未勾選時,單邊 2 萬筆以內直接下載,超過才改背景。模組功能 → suiteTax(custrecord_pce_modsys_suite_tax,預設不勾):只有帳號已啟用 NetSuite SuiteTax 才勾。勾選後,銷項改從交易 Tax Details 讀稅碼與稅額;進項建立交易與交易建立寫入 Vendor Bill 等單據時,稅碼與稅額改寫入 Tax Details,不寫tax1amt。未勾維持 Legacy。這張交易沒有 Tax Details 時仍依 Legacy 讀寫。課稅別對應維持既有稅碼清單,不另對 SuiteTax 稅碼。 - (Customer Deposit)可設定 顧客押金品名(新建訂金表頭「品名」預設;預設為「顧客押金」)。
- 銷項共用 → 開立品名來源(
custrecord_pce_modsys_desc_src,選填):開立 Invoice/Credit Memo 商品明細的品名要讀哪個搜尋欄位。空白則用商品列說明(填memo),該欄沒有值再用品項名稱。可填memo、item、custcol_開頭的商品列欄位,或item.欄位ID(例如item.salesdescription)。請用小寫。畫面上的 Description 在搜尋是memo,不可填description。格式不符無法儲存。自訂商品明細與顧客押金不使用本欄。 - 銷項共用 → 綁定部門/綁定類別(
custrecord_pce_modsys_bind_dept、custrecord_pce_modsys_bind_class,核取方塊,預設不勾):勾選後,開立確認頁會帶入來源交易的部門或類別,並依該值配發票本。可在確認頁改選其他值。未勾選時不自動帶入。開立所選的部門、類別、自定義配號須與發票本完全相同;留空只對到該欄也空白的發票本。 - 銷項共用 → 額外查詢欄位(
custrecord_pce_modsys_extra_flt,選填,長文字):開立清單(含提交背景開立)在原有條件下,再加 Invoice 表頭查詢欄位。一行一個,最多 8 行,請用小寫。格式為欄位ID|選項來源|畫面上的名稱,第四段可加說明(顯示在條件下方)。選項來源是下拉要讀的紀錄類型或清單 ID,例如location|location|地點、custbody_xxx|customlist_xxx|名稱。類別的紀錄類型是classification。沒填選項來源時,依欄位型別顯示文字、日期或是否。下拉留在「全部」不篩選。不可填商品列custcol_、join(例如item.xxx),也不可重複統編、買方、部門、類別、單號、日期。格式不符無法儲存。選項來源無法搜尋時該下拉沒有選項,不影響整頁查詢與營業人下拉。 - 銷項共用 → 稅差容許(
custrecord_pce_modsys_tax_diff,預設 1,只能填正整數):開立時單頭稅額與應稅未稅合計×稅率的容許差距(元)。大於此值會阻擋開立。 - 加值中心 sFTP(Phase 3 上傳用):安裝腳本會依 正式區/測試區 帶入汎宇主機與使用者名稱(正式
sftp.einvoice.com.tw、測試sftp-t.einvoice.com.tw、使用者53530703);HostKey 安裝後為空白,取得指紋後請手動填入。密碼不在 modsys 明文欄位:三支 MR 各一 NetSuite Credential(passwordGuid),請貼到 modsys 加值中心 sFTP GUID(開立/作廢/Ack) 三欄(TEST/PRODUCTION 各填);MR Script Parameter 僅作後備。勾選「加值中心 sFTP 啟用」時,三支 GUID 與 HostKey 為必填。目前帳上於 2026-10-07 已通過加值中心 sFTP 連線、三支 GUID、正式區路徑、MR 排程與開立上傳→ACK;新帳仍須自行填 HostKey 與 GUID。詳 ar-phase3.md §5.1.1。 - 未 Mapping 的帳號:所有模組功能視為關閉。
各 PCE 營業人資料 下 PCE 營業人系統設定 子記錄可再以 進項/銷項/報稅 的「繼承/啟用/停用」覆寫模組預設,並可填 顧客押金品名(Customer Deposit 表頭品名預設;空白則繼承模組通用)與 折讓單前綴(格式 33/34 自動號碼用;空白則不加前綴)。
步驟 B — 維護營業人資料
- PCE GUI → 模組設定 → PCE 營業人資料 → New
- 至少填寫:
- 營利事業統一編號(8 碼)
- 營業人名稱
- 其他申報相關欄位(稅籍編號、營業地址、聯絡人/申報人等,依實際申報需求)
- 若有多子公司,請依環境維護對應資料與「子公司」關聯。
- 於營業人記錄的系統設定確認進項功能與銷項功能開關。銷項開立前必須啟用銷項功能。
步驟 B2 — 課稅別 NS 稅碼對應
- PCE GUI Portal → 模組設定 → 課稅別稅碼對應
- 為課稅別 1(應稅)/2(零稅率)/3(免稅) 各選對應的 NetSuite Tax Code(可多選)。
- 儲存。Invoice/Credit Memo 自訂商品明細與開立讀稅時會用到這份對應;未對應會無法開立。

圖:PCE 營業人資料清單。

圖:營業人資料欄位範例(含子公司)。
步驟 C — 維護供應商/客戶主檔
- 開啟 Vendor/Customer。
- 到 PCE 發票 Subtab。
- 填入統編、發票抬頭、登記地址,供進項/銷項檢核與後續帶入。
步驟 D —(選用)外部 API 介接
若需系統對系統寫入:
- 建立/設定 OAuth 2.0 Integration(建議 Client Credentials M2M,Scope 含 RESTlets)。
- 取得 AP Write RESTlet External URL。
- 依 介接手冊 取得 Bearer Token 後呼叫。
- 可於 進項匯入紀錄 清單檢視每次匯入(進項 CSV 匯入頁導覽亦提供連結;NetSuite 清單顯示名稱可能仍為「PCE AP Write 呼叫紀錄」)。
步驟 E —(選用)限制腳本對象角色
正式環境建議將關鍵 Suitelet/RESTlet 的 Audience 從「全部角色」收斂為會計/介接專用角色。
5. 日常使用步驟
5.0 準備 Invoice/Credit Memo 自訂商品明細
當會計要改寫開立用的品名或金額(而非直接用交易 item):
- (選用)在 Items 子列表維護 明細備註(
custcol_pce_ar_line_remark;須已加入表單,見 §3.5.2)。 - 開啟 Invoice 或 Credit Memo → PCE 銷項。
- 勾選 使用自訂商品明細。若子列表為空,Client Script 會從 item 帶入(含金額 0 的商品;說明、小計、群組等非商品且金額 0 不帶入),含:品項、品名、數量、單價、金額、課稅別、營業稅額(依課稅別 5% 或 item 的
tax1amt)、明細備註。 - 可在 PCE 銷項自訂商品明細 再編輯各列;變更 金額 或 課稅別 時,營業稅額會自動重算(手改營業稅額則不覆寫)。
- 儲存。未稅合計須等於單頭
subtotal、營業稅合計須等於單頭taxtotal(容許 0.02)。不符時 Client Script 會擋儲存;若營業稅全空,User Event 會依課稅別補齊後再驗證。 - 開立時:確認頁與寫入 PCE 銷項主檔的商品列,會將 品項、單價、課稅別、品名皆相同 的多列合併為一列(加總數量、金額、營業稅額;明細備註以
;串接)。品名不同則不合併。Invoice 上的自訂子列表仍保留原始多列供對帳。外幣 Invoice/Credit Memo 的自訂明細維持交易幣別;開立時以外幣未稅依課稅別還原含稅,再乘該張匯率四捨五入成台幣,然後反推未稅與稅額。已存的自訂列不會改寫成台幣。 - 取消勾選 使用自訂商品明細 不會清空已維護的自訂列,只是開立改回讀 item。
5.1 在交易單上登錄進項(建議會計流程)
flowchart TD
start[進項登錄] --> path{選擇方式}
path -->|建議| trx[交易單 PCE 進項子列表]
path --> list[獨立 PCE 進項資料]
path --> csv[CSV 匯入]
trx --> save[儲存 → 建立 PCE 進項資料]
list --> save
csv --> validate{只驗證?}
validate -->|是| preview[試跑結果]
validate -->|否| save
preview --> csv流程圖原文
適用:Vendor Bill、Expense Report、Vendor Credit、Vendor Prepayment。
- 建立或開啟交易單,選擇 Vendor(若適用)。
- 切到 PCE 進項資料 Subtab/子列表。
- 新增一列進項明細,填寫例如:
- 憑證格式代碼(21~29)
- 憑證開立日期
- 資料所屬年月/申報期別(民國五碼
YYYMM) - 進項扣抵代號、課稅別
- 發票號碼/其他憑證號碼(依格式)
- 買受人/銷售人統編
- 銷售金額、稅額、總計
- 彙加註記等(依需求)
- 儲存交易單。系統會以 Client Script 協助欄位聯動與前端檢核;User Event 於進項記錄儲存前再驗證。交易單進項子列表會依 header 子公司 對應 PCE 營業人資料帶入買受人統編;獨立新增進項資料時需手動填入。逐條規則(格式、統編、稅額、字軌、期別)見 進項憑證檢核規則。畫面、CSV、API 用同一套。
一張交易可對應 多筆 進項資料(1:N)。

圖:Vendor Bill → PCE 進項資料 子列表(可新增進項列)。
5.2 直接維護「PCE 進項資料」清單
- PCE GUI → 進項 → PCE 進項資料
- New/Edit 記錄。
- 可選擇填 來源交易單據,掛回既有 Vendor Bill(應付帳款發票)、Expense Report(費用報銷)、Vendor Credit(廠商折讓) 或 Vendor Prepayment(廠商預付);也可先不掛交易、僅建立進項資料。

圖:PCE 進項資料清單。

圖:進項資料欄位範例(憑證格式、統編、金額等)。
5.3 進項 CSV 匯入
- PCE GUI Portal → 進項 → 進項 CSV 匯入
- (建議)先下載(說明頁或本頁皆可):
- 範本 CSV(
action=template) - 欄位說明 CSV(
action=guide) - 發票類別代號對照(
action=invcatmap)
- 範本 CSV(
- 以 Excel/試算表填寫後另存 CSV(建議「CSV UTF-8」,避免中文亂碼),或於頁面貼上 CSV 文字。
- (建議)先勾 只驗證不寫入(試跑,不建立資料),確認無誤後再取消勾選正式匯入。
- 按 匯入,系統建立 PCE 進項資料。
- 匯入完成後會自動導向結果頁(網址含
action=result與 進項匯入紀錄 id)。重新整理頁面不會再次送出 CSV,可安心按 F5 檢視結果。 - 檢視結果摘要:
- 成功/失敗筆數(失敗優先顯示)
- 可下載失敗列 CSV
- 成功列可連到進項記錄
- 可開啟 進項匯入紀錄 對帳(「進階資訊(IT/對帳用)」含 匯入批號、結果代碼)
- 限制:單次最多 100 列。

圖:進項 CSV 匯入(範本下載、上傳/貼上、只驗證不寫入)。
CSV 常用欄位(摘要)
| 欄位 | 必填 | 說明 |
|---|---|---|
docFormatCode | 必填 | 21~29;格式 21/25 須搭配 invCatCode |
invCatCode | 條件必填 | 發票類別代號;格式 21(01/05)、25(06/07)必填 |
docDate | 必填 | YYYY/MM/DD 或 YYYY-MM-DD |
docPeriod | 必填 | 民國五碼所屬年月 |
filingPeriod | 必填 | 民國五碼申報期別 |
deductionCode | 必填 | 1~4 |
invoiceNo | 條件 | 多數格式必填 |
buyerTaxId | 必填 | 8 碼 |
sellerTaxId | 條件 | 依格式 |
taxType | 必填 | 如 1/2/3/F/D |
salesAmount/taxAmount/totalAmount | 金額 | 銷售金額與稅額依 檢核規則;總計不檢核 |
fileBizTax | 選填 | 是否申報營業稅 |
filed | 選填 | 是否已申報。true/T 會勾起;既有進項整批更新請用 NetSuite CSV 匯入,欄位 ID custrecord_pce_ap_tax_filed |
clientRef | 選填 | 來源參考號 |
transaction | 選填 | 掛回既有 NetSuite 交易單據(須填 internal id;請向 IT 索取) |
完整說明與範例列見 docs/samples/ap-invoice-import-sample.csv、頁面欄位一覽。
5.4 透過 API 寫入(系統介接)
對會計使用者:通常由 IT/廠商執行。重點:
| action | 用途 |
|---|---|
apInvoiceOnly | 只建進項 |
transactionOnly | 只建/引用交易(最多 10 筆) |
transactionWithApInvoices | 交易+一至多筆進項(1:N) |
公版只有上表三種 action。API進項審核與請購單(custompurchase_dfo_purchase_req)不在這份套件。
- 僅支援 POST + OAuth 2.0 Bearer
- API 參數
options.validateOnly: true等同畫面上的 只驗證不寫入(試跑,不建立資料)
細節、範例與 Postman:介接手冊。
5.5 開立銷項發票/折讓單(Phase 1)
完整取號流程、篩選條件與錯誤代碼見 銷項開立取號流程與邏輯。
flowchart TD
prep[Invoice/CM 準備 §5.0] --> search[查詢或頁首按鈕]
search --> select[勾選來源單據]
select --> mode{開立模式}
mode -->|只發票| inv[單張/合併開立]
mode -->|只折讓| allow[開立折讓單 33/34]
mode -->|兩者| net[開立淨額發票]
inv --> form[確認格式/日期/配號]
allow --> form
net --> form
form --> num[取號]
num --> ok[建立 PCE 銷項 + 回寫 NS]流程圖原文
flowchart TD
start[確認格式與加值中心上傳] --> fmt{格式?}
fmt -->|36| gen["系統 SEUI 號碼<br/>Sales Exempt from Uniform Invoices"]
fmt -->|35 上傳| auto[發票本自動取號]
fmt -->|35 不上傳/31/32| manual[手填反查發票本]
fmt -->|33/34 折讓| allowNum[手填或留空自動 PCE 號]
auto --> ok[成功回寫]
manual --> ok
gen --> ok
allowNum --> ok流程圖原文
- PCE GUI Portal → 銷項 → 開立發票/折讓單(Bootstrap 全頁:查詢 → 確認開立)。也可從尚未開立的 Invoice 頁首按 開立銷項發票、Credit Memo 頁首按 開立折讓單、Customer Deposit 頁首按 開立銷項發票(轉開)。頁首按鈕會開啟同一個 Portal:右側是該單的確認開立頁,左側選單預設收合,可按 ☰ 展開。已開立(已有發票號碼/折讓單號碼或發票/折讓單狀態)則不顯示按鈕。
- 設定查詢條件(統一編號/買方公司/部門/分類/NetSuite 發票編號/NetSuite 折讓單編號/日期等)後按 查詢。下拉選單可輸入關鍵字過濾。
- 清單僅顯示同時符合下列條件的銷項發票或折讓單:
- 是否開立發票/折讓單=是
- 發票/折讓單狀態空白
- 鎖定中=否
- 發票號碼空白
- 折讓單號碼空白
- NetSuite 單據狀態不是 已作廢、也不是 已拒絕(Rejected)。這兩種不會出現在清單,檢視頁也不顯示開立按鈕;直接開立會被拒絕。未結、已付清單據仍可開立。
- 查詢結果的欄位標題可點選排序,再點一次改為相反方向(勾選欄不排序)。每一列的 課稅別 為 應稅、免稅、零稅率 或 混合稅(依將開立的明細;金額不是 0 且課稅別超過一種就是混合稅。有勾 使用自訂商品明細 時看自訂列,沒有自訂列才看交易品項稅碼)。在 銷項發票清單 或 折讓單清單 分頁勾選後開立:
- 只選發票:單張或合併開立
- 只選折讓單:開立折讓單(折抵已開立的發票)
- 同時勾選發票與折讓單:開立淨額發票
- 進入憑證開立表單後,確認 格式代號、是否透過加值中心上傳、發票號碼/折讓證明單號碼(依下表)。只選發票時格式不含 33/34;開立折讓單時格式只顯示 33/34;折讓證明單號碼可手填,或留空依 PCE 營業人系統設定 → 折讓單前綴(空白則不加前綴)加上時間戳 13 碼(不經發票本)。格式 33 可選擇透過加值中心上傳;折讓單不填載具/捐贈,但須填 折讓扣抵發票號碼(原發票號碼;成功後回寫 Credit Memo 的 折抵發票號碼)。課稅別為零稅率時,確認頁另須選擇 通關方式(1 非經海關出口、2 經海關出口)與 零稅率原因(71–79);折讓單不填。兩欄寫入銷項主檔,並在上傳 TXT 帶出。同一頁可再選 出口報單類別(例如 G5 國貨出口),並可填 出口報單號碼(14 碼英數)、輸出或結匯日期、證明文件名稱、證明文件號碼;沒填仍可開立,只存主檔,不進上傳 TXT。經海關出口選報單類別、填報單號碼;非經海關出口填證明文件名稱與號碼。開立發票時 發票部門/發票分類/自定義發票本配號 預設為 不指定(只對到該欄也空白的發票本)。模組通用勾了 綁定部門 或 綁定類別 時,確認頁會帶入這張發票的對應值,可改回不指定。自定義配號仍預設不指定。三欄須與發票本完全相同。查詢清單上的部門/分類只用來篩選,不會帶進配號。若來源交易已勾 使用自訂商品明細,確認頁商品明細來自該分頁自訂列(畫面會提示),且列數可能少於自訂子列表(相同品項+單價+課稅別+品名已合併)。合併開立且多張來源皆勾選自訂明細時,跨單相同條件亦會合併;淨額開立(發票+折讓)則不合併正負列。確認頁商品明細的品名可直接修改,最多 500 字;留白則沿用原品名,並寫入銷項明細。
- 系統建立 PCE 銷項資料主檔與商品明細。從 PCE GUI Portal 開立(含交易頁首按鈕)時,主檔在新分頁開啟,Portal 內留開立摘要(日期、格式、買方、金額)與 回查詢清單。主檔設 狀態=已開立;上傳狀態依確認頁 是否透過加值中心上傳 為 待上傳 或 不上傳(§3.2.1),並清空 上傳錯誤訊息。來源交易回寫 發票/折讓單狀態(上傳 → 已開立等待上傳;不上傳 → 已開立,不透過NS上傳)、發票號碼或折讓單號碼等。Invoice 另初始化 已折讓未稅/稅額/總計=0、可折餘額=總計。Credit Memo 回寫 折讓單號碼 與 折抵發票號碼(不寫入發票號碼欄)。折讓開立時依折抵發票的申報雙月期別(相對折讓憑證日期)控管: 明細過多時表單僅預覽部分筆數,其餘可至系統報表「PCE 銷項開立商品明細」依來源單號查詢。
- 當期且無銷項主檔 → 阻擋
- 有銷項主檔(當期或非當期)→ 可折餘額足夠才可開立,成功後累加已折讓並重算可折餘額
- 非當期且無銷項主檔 → 可開立,但不控管可折餘額;系統會寫入總備註提醒自行管控(並請填原發票日期以判斷期別)
自訂商品明細:詳見 §5.0。重點:item 列可填 明細備註(
custcol_pce_ar_line_remark)並帶入自訂列;帶入時含品項、課稅別、營業稅額;儲存須與單頭未稅/稅額一致(外幣單是交易幣別);開立時外幣自訂明細再換算成台幣,相同品項+單價+課稅別+品名合併為一列;品名不同不合併(Invoice 上自訂子列表仍保留原列數,也不改寫成台幣)。Customer Deposit 轉開發票(Phase 2)
Customer Deposit 在 NetSuite 無稅碼、無商品明細。自訂金檢視頁按 開立銷項發票 時:
- 以訂金 總額視為含稅金額,依預設 應稅(5%) 反推:未稅金額(含單價)四捨五入至整數元,稅額=訂金總額 − 未稅金額(表頭稅額同此反推值,不採 NS 訂金表頭 0 稅)。
- 確認開立頁商品明細預設 一列:品名來自訂金表頭 品名(空白時依 營業人系統設定 → 顧客押金品名(有值)→ 模組通用 → 顧客押金品名)、數量 1;開立前僅驗證 未稅+稅額=訂金含稅總額。
- 不可與 Invoice/Credit Memo 合併或淨額開立;僅能單筆訂金,且須自 Customer Deposit 檢視頁 按 開立銷項發票(不支援開立 Suitelet 多筆訂金合併)。
- 成功後回寫訂金 發票號碼 與 發票/折讓單狀態(與 Invoice 相同欄位)。
- 課稅別固定應稅 5% 反推(不另做可設定課稅別)。
發票號碼規則
| 格式與上傳 | 發票號碼 | 發票本 |
|---|---|---|
| 36(銷項免用統一發票) | 系統產生 SEUI(Sales Exempt from Uniform Invoices,免用統一發票號碼前綴)+時間戳後 10 碼(共 14 字),不可手填;Name 與發票號碼相同 | 不找本、不回寫 |
| 35 且加值中心=上傳 | 系統自動取號(字軌 2 碼+流水 8 碼) | 依賣方統編、格式、發票日期對應之雙月期別、配號條件找本;須已勾選 是否透過 NS傳至加值中心 |
| 35 且加值中心=不上傳,或紙本(31/32 等) | 必填手填(例 CA00000075) | 依號碼反查涵蓋該流水的發票本;只驗「號碼是否已用」 |
| 33/34(開立折讓單) | 可手填(最多 16 碼);留空則依營業人 折讓單前綴(空白則不加)+時間戳 13 碼並查重 | 不找本、不回寫 |
自動取號(35+上傳)
- 搜尋未停用、狀態 0-未使用/1-使用中、統編/期別/格式相符,且已勾選 是否透過 NS傳至加值中心 的發票本。
- 配號篩選:發票部門、發票分類、自定義配號須與發票本完全相同。不指定只對到該欄也空白的發票本。例如開立選部門 A、類別 B、配號不指定,只用部門 A、類別 B、配號也空白的發票本。
- 多本只取 internal id 最小者。該本最後驗證未過(發票日期早於最新取號日、已無下一號、回寫衝突等)會顯示錯誤(含發票本 id),不會改試其他本。
- 成功後回寫發票本
last_no、last_issue_dt;未使用改為使用中,用盡則改為使用完畢。 - 發票日期須 ≥ 該本最新取號日期(同日可接受;尚未取號則不限)。
手填號碼(紙本/35 不上傳)
- 號碼須為字軌 2 碼英文+流水(不足 8 碼會補零)。
- 系統以字軌+流水反查起訖範圍涵蓋該號的發票本;找不到或多本同時涵蓋都會失敗,請再確認統編/期別/格式。
- 若銷項主檔或 Invoice/Credit Memo 已使用同一號碼,會拒絕開立。
- 手填不檢查是否接續
last_no;成功後last_no取「既有最後取用」與本次號碼的較大值,並更新最新取號日期。
5.6 發票本管理
開立時如何取號/手填反查見 §5.5。本節說明如何建立與調整發票本。
- PCE GUI Portal → 模組設定 → 發票本管理(頁面分三個分頁:查詢/更新發票本、手動輸入、CSV 匯入;預設開啟查詢分頁)
- 查詢/更新發票本:先選 統一編號(必填)查詢該公司發票本;發票本期別、格式(不含 33/34/36)、NetSuite→加值中心 為選填,可縮小結果。格式若選定且不是「35-銷項一般稅額計算之電子發票」(35-07),NS→加值中心 篩選只能為 否(紙本/35-06 等皆不上傳)。結果表顯示 NS→加值中心 與 狀態。若要修改,可勾選多筆 批次調整配號(僅部門/類別/配號),或於單列 調整設定(另可改 是否透過 NS 傳至加值中心 與 狀態,但 NS 僅 未使用 且格式 35-07 可改;狀態 僅 未使用 或 停用 可改)。一次超過 25 本改背景處理,請稍後重新查詢確認;亦可按 ID 連結開啟單筆紀錄。
- 手動輸入:切換至「手動輸入」分頁,先選 統一編號(下拉選單,與查詢相同),再填 格式(不含 33/34/36;選定後發票類別自動帶入且不可修改)、期別、字軌、起訖號等(規則同 CSV)。格式 35-07 時須選 是否透過 NS 傳至加值中心(同 CSV 的
nsToPlatform;選「是」才供開立 35+上傳 自動取號)。可選 發票本部門、發票本類別、自定義發票本配號(選項與查詢/更新相同);狀態固定為未使用,無須填寫。可勾 只驗證不寫入 後按 建立發票本。 - CSV 匯入:下載 CSV 範本、欄位說明 與 發票類別代號對照(下載檔名含 invCatCode),以 Excel/試算表填寫統編、字軌、起訖號等,完成後另存 CSV(建議「CSV UTF-8」);上傳或貼上 CSV,建議先勾 只驗證不寫入(試跑,不建立資料)試跑。
- 匯入/手動建立完成後會自動導向結果頁(網址含
action=result與 發票本匯入紀錄 id)。重新整理頁面不會再次送出。 - 結果頁顯示「正在建立發票本…」(含載入動畫)→ 完成後顯示成功/失敗摘要;明細表會自動更新為發票本連結。
- 成功列可連至新增的 PCE 發票本;失敗列(含背景批次處理失敗的區段)可下載修正後再匯入。
- 限制:CSV 最多 100 列;不需 Name;狀態空白時預設 0-未使用。寫入由背景批次處理建立,並寫入 發票本匯入紀錄;背景工作編號等技術資訊在「進階資訊(IT 用)」。
- 起訖號尾數規則(8 碼正規化後看尾數 2 碼): 例:單本 50 張可填
50~99或0~49;三聯式 3 本可填0~149。- 起號:須為 50 的倍數(00 或 50)
- 訖號:須為 50 的倍數減 1(49 或 99)
- 自動切分:同一列可填跨多本的
beginNo/endNo,系統依invCatCode切分: 起訖號總張數須為每本張數的整數倍(例:01 類別填 0~149 → 自動建立 3 本)。- 手開式(01 三聯式、02 二聯式、05 電子計算機)與電子發票(07):50 張/本
- 收銀機(03 二聯式收銀機、06 三聯式收銀機):250 張/本
- 不可重複:切本後的每一本,若期別、字軌、起訖號已有發票本(含停用),只擋該本,同一列的其他本仍會建立。同一檔案裡重複的起訖號,只建立先出現的那本。
範例檔:docs/samples/ar-invoice-book-import-sample.csv 發票類別對照:docs/samples/ar-invCatCode-mapping.csv(格式 31/32/35 須填 invCatCode 辨識)
CSV 常用欄位(摘要)
| 欄位 | 必填 | 說明 |
|---|---|---|
taxId | 必填 | 8 碼統一編號;須已存在於 PCE 營業人資料 |
invCatCode | 必填 | 發票類別代號 01~08;格式 31 填 01/05;32 填 02/03;35 填 06/07 |
docFormatCode | 必填 | 銷項格式 31~36;31/32/35 須搭配 invCatCode 或 docFormatName |
period | 必填 | 民國五碼 YYYMM |
track | 必填 | 二碼英文大寫字軌 |
beginNo / endNo | 必填 | 8 碼數字;起號尾數 00/50、訖號尾數 49/99;可填多本區間(見 §5.6 切分規則) |
statusCode | 選填 | 0/1/2/9,預設 0 |
profileName | 選填 | 自定義發票本配號 Name 或 id |
nsToPlatform | 選填 | 僅 35-07 有效;其餘格式匯入時固定 false(CSV 值不採用) |
paperInvoice | 選填 | 匯入時自動設定:35-07 固定 false,其餘固定 true(CSV 值不採用) |
remark | 選填 | 備註 |
clientRef | 選填 | 對帳用參考鍵 |
5.7 作廢銷項發票/折讓單
- PCE GUI Portal → 銷項 → 作廢發票/折讓單(Suitelet
customscript_pce_sl_ar_void;Bootstrap 全頁:查詢 → 填寫作廢資料 → 確認)。 - 查詢條件可含子公司、客戶、發票號碼/折讓單號碼、憑證日期區間等。結果僅列出主檔狀態=已開立的 PCE 銷項發票或折讓單(不含草稿、已作廢),並依憑證日期由舊到新排列。
- 選定一筆後填 作廢日期(須落在本期申報期別)、作廢原因(必填,最多 20 字),並選擇方式:
- 作廢:PCE 主檔標記 已作廢,並依憑證種類更新 NetSuite 來源 Invoice 或 Credit Memo(清除或作廢對應表身狀態/號碼,詳帳上訊息)。來源是 Customer Deposit 時只更新訂金上的發票狀態,不把訂金本身作廢。
- 作廢換開:主檔同樣 已作廢(折讓單會回沖原發票之已折讓金額)。來源 Invoice 清空發票號碼、發票/折讓單狀態、錯誤訊息與鎖定;Credit Memo 清空折讓單號碼、折抵發票號碼、狀態、錯誤訊息與鎖定;Customer Deposit 清空發票號碼、狀態、錯誤訊息與鎖定。交易本身不作廢,以便再走一般開立。
- 作廢前閘道(主檔,見 §3.2.1):
- 狀態須為 已開立。
- 上傳狀態須為 上傳成功 或 不上傳。若仍為 待上傳/上傳中/上傳失敗,Suitelet 會拒絕並顯示目前上傳狀態。
- 其他限制(發票):可作廢本期憑證;單月 15 日(含)以前,上一期仍可作廢。例如 11/15 仍可作廢期別 11510(9–10 月)的發票與折讓單,11/16 起則不可。已有折讓入帳或未作廢折讓單時須先處理折讓。折讓單作廢的期別規則相同,並驗證來源交易存在。
- 作廢成功後:主檔 狀態=已作廢;上傳狀態若作廢前為 不上傳(紙本/35 不上傳等)則維持不上傳,否則重設為 待上傳。一般作廢與作廢換開只要作廢後是 待上傳,都會寫入作廢上傳佇列,來源交易有沒有作廢成功不影響排入(須在帳上設定 Credential 並排程或手動執行 Void 上傳 MR)。作廢換開的上傳中、ACK 成功、ACK 失敗與重送都只更新主檔,不回寫來源交易。上傳錯誤訊息清空,並寫入作廢日期/時間/原因。一般作廢時來源 Invoice/Credit Memo 的 發票/折讓單狀態 設 已作廢等待上傳 或 已作廢,不透過NS上傳(與作廢前主檔是否 不上傳 一致)後再 void 交易。來源是 Customer Deposit 時只更新同一狀態,不 void 訂金。
5.8 背景自動開立(提交與進度)
適用 多筆 Invoice 一次排入背景開立(固定 35-07、透過加值中心上傳)。詳細規格見 背景自動開立。
- PCE GUI Portal → 銷項 → 背景自動開立(一般「開立銷項發票/折讓單」確認頁不提供背景開立)。同一 Suitelet 以分頁切換:提交背景開立|進度與結果(舊書籤「進度」部署仍可用,提交分頁會導向主入口)。
- 提交背景開立分頁:查詢條件與可勾選清單邏輯同 §5.5(是否開立=是、狀態空白、未鎖定、無發票號碼等);僅 Invoice,單次最多 25 筆。
- 清單可填 指定開立日期(套用到已勾選發票)、發票部門/發票分類/自定義發票本配號(預設 不指定。三欄須與發票本完全相同;不指定只對到該欄也空白的發票本。若模組通用已勾選綁定部門或綁定類別,不指定時各張發票改用自己的部門/類別)。背景自動開立不提供通關方式、零稅率原因、出口報單或證明文件。零稅率發票請改走一般開立,在確認頁填寫。
- 勾選後按 下一步(背景開立) → 確認頁核對後 提交背景開立。系統立即鎖定來源 Invoice(發票/折讓單狀態=背景自動開立發票、鎖定中=是)並寫入佇列,由背景程序逐筆開立。
- 提交成功時自動切至 進度與結果分頁(依內部批次篩選,不向使用者顯示批次 ID 或背景工作編號);畫面顯示 已提交背景自動開立發票→立即查看進度與結果。若有部分筆數未排入佇列,會另提示「另有 N 筆未成功:…」。
- 進度與結果分頁:進入時不會自動查詢;請按 查詢。條件含 建立日期(起/迄)、NetSuite 發票編號、狀態(無批次 ID 輸入欄);日期未填時,查詢以 UTC+8 當日 為預設起迄。可看批次摘要與每筆 Invoice 狀態;成功列 發票號碼 可連 PCE 銷項主檔,發票日期 來自主檔憑證日期。仍有待處理或處理中時,頁面約 45 秒 自動重新整理。
- 開立失敗時,來源 Invoice 會解鎖、發票/折讓單狀態清為空白,並在 發票錯誤訊息欄顯示「背景自動開立失敗:…」。修正交易後可再開立(一般或背景),成功即自動清空該欄。
5.9 加值中心上傳錯誤清單(重送)
適用 主檔上傳狀態=上傳失敗 的 PCE 銷項資料(開立或作廢出站失敗)。規格見 Phase 3 — 加值中心上傳(TXT+sFTP)與進階控管。
- PCE GUI Portal → 加值中心 → 上傳錯誤(
customscript_pce_sl_ar_upload_err)。查詢條件:營業人統編、發票/折讓期別(民國五碼雙月)、憑證種類、訊息類別(開立/作廢)。清單最多 100 筆;欄位含憑證號碼、種類、日期、客戶、錯誤訊息、最後 upload_log 時間、主檔/來源交易連結。 - 變更條件後勿勾選列,按 查詢/改回待上傳(重送) 可重新查詢。勾選要重送的列再按同一按鈕:主檔改回 待上傳、清空 上傳錯誤訊息,並依 已開立/已作廢 重新 enqueue(Issue 或 Void)。
- 實際上傳的 TXT 與下載的 ACK 會存進檔案櫃資料夾 PCE 加值中心交換檔,並掛在 PCE 加值中心上傳紀錄 的 留存檔案。PCE GUI Portal → 加值中心 → 上傳監控 的最近紀錄也可直接開啟該檔核對。
- 重送後須手動或排程執行對應的 Issue 上傳 MR 或 Void 上傳 MR,並以 Ack MR 確認加值中心回覆;modsys sFTP 與三支 MR 的 Credential GUID 須先設定(手冊 §4、ar-phase3 §5.1.1)。
- 來源 Invoice/Credit Memo 的 發票/折讓單狀態 與 發票錯誤訊息 會一併還原為等待上傳/清空(詳帳上實作);若資料本身有誤,請先修正交易或主檔後再重送。
5.10 營業稅進銷項 TXT 與零稅率 T02
- PCE GUI Portal → 營業稅申報 → 進銷項與零稅率(
customscript_pce_sl_vat_filing)。已對應的通用系統設定須勾 產報稅檔功能;沒勾時 Portal 不顯示這一組。 - 選 營業人、民國年、申報期(1–2 月、3–4 月,以此類推)。民國年從 115 年起。開啟頁面時,單月 15 日(含)以前預設為上一期,例如 11 月 15 日為 9–10 月,16 日才改為 11–12 月。可取消「含空白未使用號碼」。勾「含已申報資料」才會把已勾 已申報 的進項放進 TXT;沒勾則不含。
- 預覽筆數 會列出進項、銷項、空白未使用、零稅率筆數,以及要再核對的訊息。
- 下載進銷項 TXT 產生
{統編}.TXT(每筆 81 碼)。下載零稅率 T02 產生{統編}.T02(每筆 83 碼)。進項只含已勾 申報營業稅 的資料;未勾「含已申報資料」時,已勾 已申報 的進項不會進 TXT。銷項含已開立、已作廢、已註銷。進項或銷項單邊在 2 萬筆以內直接下載;超過則改在背景產生。重新整理會留在同一個營業人,背景下載列表直接出現,不用再按預覽筆數。若通用系統設定勾了 申報檔強制背景下載,則不論筆數都改背景。單邊超過 10 萬筆不產生檔案。 - 營業人主檔請先填 9 碼稅籍編號 與 縣市。這兩支檔不是銷售額與稅額申報書,也不能列印空白發票。
6. 常見問題
| 現象 | 可能原因 | 處理 |
|---|---|---|
| 看不到 PCE GUI | 角色/Center、快取 | 重新整理、確認 Tab Audience、檢查是否在 More 選單 |
| Portal 收合後無法換功能 | 收合時選單刻意隱藏 | 按左側 ☰ 展開選單後再點目標功能 |
| 課稅別未對應、無法開立 | 尚未設定 NS Tax Code | PCE GUI Portal → 模組設定 → 課稅別稅碼對應 為 1/2/3 指定稅碼 |
| 零稅率開立被拒絕 | 未選通關方式或零稅率原因 | 課稅別為零稅率時,一般開立確認頁必填通關方式(1/2)與零稅率原因(71–79)。背景自動開立不收集這些欄位,請改走一般開立 |
| 自訂明細合計不符 | 自訂列未稅/營業稅與單頭不同 | 留在確認開立頁;回 PCE 銷項分頁調整金額/營業稅後再開 |
| Items 看不到明細備註 | 表單未加入欄位 | 至 Invoice/CM 表單 Items 子列表加入 custcol_pce_ar_line_remark |
| 開立列數比自訂子列表少 | 開立時合併相同品項+單價+課稅別+品名 | 正常;品名不同不合併;Invoice 自訂子列表仍保留原列 |
| 沒有開立按鈕 | 已開立、銷項未啟用、或部署 Audience 為空 | 確認尚未開立;模組通用系統設定 Account ID 與銷項開關;營業人系統設定;Deployment → Audience |
| 銷項 Suitelet 拒絕/下拉無營業人 | 未 Mapping 或該營業人銷項關閉 | 模組通用系統設定 補 Account ID 並啟用銷項;必要時在營業人覆寫為「啟用」 |
| CSV 全部失敗 | 表頭/日期/統編格式 | 下載欄位說明,對照錯誤訊息與失敗列 CSV |
| CSV 中文亂碼 | 非 UTF-8 編碼 | Excel 另存新檔 → 選「CSV UTF-8」 |
| 發票號碼被拒 | 字軌不符合公告 | 檢查 customrecord_pce_mof_track/期別字軌 |
| 自動取號失敗、找不到發票本 | 統編/雙月期別/格式/配號不符、未勾選透過 NS 傳至加值中心,或該本已用盡 | 至 發票本管理 確認字軌、期別、配號與「是否透過 NS傳至加值中心」;錯誤訊息會標示發票本 id |
| 作廢被拒:上傳狀態不符 | 主檔仍為待上傳/上傳中/上傳失敗 | 電子發票須先 上傳成功;若為 上傳失敗 可至 §5.9 重送;待上傳/上傳中則先跑 Issue MR+Ack 或修正主檔 |
| 發票本 id:日期不可早於最新取號日期 | 開立日期早於該本上次取號日 | 調整發票日期,或確認是否應使用其他配號條件 |
| 手填號碼已使用 | 銷項主檔或 NS 交易已有同一號碼 | 改填其他號碼 |
| 手填號碼對到多本 | 多本字軌與起訖範圍重疊 | 縮小統編/期別/格式,或至發票本管理檢查起訖號 |
| API 401 | Token 過期或 Integration 設定 | 重新取 token;確認 Scope=RESTlets |
| SuiteApp 部署衝突「script ID already exists」 | 帳上有同名但未綁定本 SuiteApp 的物件 | 先刪除帳上未綁定物件再部署 |
7. 相關文件索引
| 文件 | 說明 |
|---|---|
| User guide | 本文件英文版 |
| 進項憑證檢核規則 | 畫面、CSV、API 共用的逐條檢核 |
| AP Write 介接手冊 | AP Write 外部介接手冊 |
| 技術與測試文件 | AP Write 技術與測試 |
| 文件索引 | CSV 範本、欄位說明、invCatCode 對照(與帳上說明頁同一批) |
| 銷項開立取號流程與邏輯 | 銷項開立取號流程與邏輯 |
| 銷項藍圖 | 銷項(AR)規格與分期藍圖 |
| 背景自動開立 | 背景自動開立發票(Phase 7) |
| prototypes/einvoice-issue.html | 開立銷項發票 UX prototype |
專案根目錄 README.md | SDF 專案結構與命名慣例 |
8. 版本資訊
| 項目 | 值 |
|---|---|
| SuiteApp | com.netsuite.pceguitw |
| Project name | PCE TW GUI MODULE |
| Manifest version | 1.0.0 |
| 文件日期 | 2026-10-03 |