Skip to content

AppantasyArthurLai/ezpay-einvoice-skill

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

5 Commits
 
 
 
 
 
 
 
 
 
 

Repository files navigation

ezPay 電子發票 — Claude Code Skill

License: MIT Claude Code Skill Taiwan e-invoice

A Claude Code Agent Skill for integrating, building, and debugging Taiwan ezPay(簡單行動支付)e-invoice APIs in any language or framework.

English summary — This repository packages production-verified knowledge for integrating Taiwan's ezPay (簡單行動支付 / 藍新 NewebPay group) electronic invoice (e-invoice, 電子發票) API into any project, in any language. It covers invoice issue (B2C/B2B), void, allowance (credit note), query, mobile-barcode & donation-code carrier verification, and invoice-number-track (字軌) management — plus the AES-256-CBC encryption, CheckValue/CheckCode signing, the store-vs-member dual-key model, every endpoint's parameters, common error codes (e.g. KEY10002), and a self-contained Python verifier. Drop it into .claude/skills/ and Claude auto-loads it whenever you work on ezPay invoices.

把「ezPay 電子發票串接」這件事——加解密、簽章、商店/會員雙金鑰、各端點參數、錯誤碼除錯、實機驗證—— 濃縮成一個可被 Claude 自動觸發的 skill。只要你在專案裡跟 Claude 聊到 ezPay 發票,它就會載入這些知識, 不必再從頭啃手冊、也不必重蹈那些「踩過才知道」的坑。

這個 skill 幫你什麼

  • 涵蓋全部 API:開立發票(B2C/B2B)、觸發開立、作廢發票、開立折讓、觸發確認/取消折讓、作廢折讓、查詢發票、 手機條碼/捐贈碼驗證、字軌管理。
  • 語言無關:規格寫到「任何語言都能照著實作」,附 Python 參考實作,可照翻成 Laravel/PHP、Node、Go…。
  • 濃縮踩雷點:商店 vs 會員雙金鑰、CheckValue(Key-first) 與 CheckCode(IV-first) 方向相反allowanceInvalid camelCase、折讓參數 InvoiceNo、字軌「每期只能一組啟用」的副作用、KEY10002 除錯心法…
  • 可實機驗證:自包含的 ezpay_verify.py,先離線用公開向量驗加密,再用你的金鑰跑端到端 smoke test。

運作流程

一次講一件事,一張圖一個重點。

① 一次 API 呼叫長怎樣

不論開立、作廢、折讓還是查詢,每支 API 都是同一件事:你的系統送出一個加密請求、ezPay 回你一個結果

一次 API 呼叫:送出加密請求、收回結果

② 請求裡的 PostData_ 怎麼來的

把要傳的欄位組成明文字串,用 AES-256-CBC 加密、轉成 hex,就是 PostData_

PostData_ 加密:明文欄位 → AES-256-CBC → hex

③ 兩把金鑰別搞混

ezPay 分「商店」與「會員」兩套金鑰。發票與驗證類用商店金鑰,字軌類用會員金鑰,兩把不同

雙金鑰:發票用商店金鑰、字軌用會員金鑰

④ 兩個簽章,順序剛好相反

CheckValue(送出)把 HashKey 放前面CheckCode(驗回應)把 HashIV 放前面 —— 位置對調,最常踩雷。

CheckValue 與 CheckCode 的 Key/IV 順序相反

⑤ 一張發票的生命週期

開立後可查詢、作廢,或開立折讓(折讓需先確認,之後還能作廢折讓)。

發票生命週期:開立 → 已開立 → 作廢/折讓 → 作廢折讓

安裝

ezpay-einvoice/ 整個資料夾複製到你的 Claude Code skills 目錄:

# 專案層級(只在這個專案生效)
cp -r ezpay-einvoice <your-project>/.claude/skills/

# 或個人層級(所有專案都可觸發)
cp -r ezpay-einvoice ~/.claude/skills/

重開 Claude Code session 後,跟它聊 ezPay 發票相關需求即會自動觸發。

用法

直接用自然語言交辦,例如:

  • 「幫我在 Laravel 串接 ezPay 開立 B2C 發票」
  • 「ezPay 開立一直回 KEY10002 解密錯誤,但查詢正常,怎麼回事?」
  • 「寫支腳本確認我手上這組 ezPay 測試金鑰通不通」

內含的驗證工具(需 pip install requests pycryptodome):

cd ezpay-einvoice/scripts
python ezpay_verify.py selftest                 # 離線:公開向量驗證加密(免金鑰)
cp .env.example .env                            # 填入你自己的金鑰(勿提交)
python ezpay_verify.py smoke --env .env         # 連線:開立→查詢,端到端
python ezpay_verify.py -h                       # 全部子指令

版本與時效性 ⚠️

ezPay 會不定期改版手冊。本 skill 依據以下版本整理(驗證日 2026-06-03):

範圍 文件版號
開立/作廢/折讓/查詢 EZP_INVI_1.2.2
字軌管理 EZP_Track_1.0.0
條碼/捐贈碼驗證 EZP_BDV_1.0.0

使用前請到官方下載頁確認是否有新版,版本不同切勿照舊規格開發:

免責聲明

  • 本專案為非官方社群整理,與 ezPay/簡單行動支付股份有限公司/藍新 NewebPay 無任何隸屬或背書關係
  • 規格整理自 ezPay 公開技術手冊,僅供開發參考,請一律以官方最新文件為準;發票資料涉及稅務,上線前請與財會人員確認。
  • 本專案不含、也不轉散布 ezPay 的 PDF 手冊(著作權屬 ezPay);請自官方下載頁取得。
  • 程式與文件以「現狀(as-is)」提供,不負任何擔保責任
  • 所有金鑰/商店代號一律由使用者自行填入 .env,本 repo 不含任何真實憑證;文中出現的金鑰皆為官方手冊之公開範例。
  • 「ezPay」「簡單行動支付」「NewebPay」「藍新」等商標屬各自所有人。

授權

MIT © 2026 Arthur Lai


Keywords / 關鍵字: ezPay, 簡單行動支付, NewebPay, 藍新金流, Taiwan e-invoice, 電子發票, 電子發票 API, 發票串接, einvoice, electronic invoice, fapiao, invoice API, invoice_issue, allowance, 折讓, 作廢, 字軌, 載具, 手機條碼, B2B/B2C 發票, CheckValue, CheckCode, Hash Key/IV, Claude Code, Claude Code skill, Claude agent skill, Anthropic, Laravel, PHP, Python, Node.js, Go.

About

Claude Code skill for Taiwan ezPay(簡單行動支付)e-invoice 電子發票 API — issue/void/allowance/query, 字軌, dual-key crypto + verifier|任何語言皆適用

Topics

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors

Languages