應用場景
特店可使用此 API 修改收據資料。
API介接網址
- 測試環境:https://einvoice-stage.ecpay.com.tw/Receipt/UpdateIssue
- 正式環境:https://einvoice.ecpay.com.tw/Receipt/UpdateIssue
HTTPS傳輸協定
- Content Type :application/json
- HTTP Method :POST
- Crypto-Mode :AES-CBC \ AES-GCM (預設為 AES-CBC)
特店傳入參數(Json格式)
MerchantID String(10)
特店編號 必填
測試環境合作特店編號 & 正式環境金鑰取得請參考連結
RqHeader Object
傳入資料 必填
Timestamp Number
傳入時間 必填
請將傳輸時間轉換為時間戳(GMT+8),綠界會利用此參數將當下的時間轉為Unix TimeStamp來驗證此次介接的時間區間。
注意事項:
- 驗證時間區間暫訂為 10 分鐘內有效,若超過此驗證時間則此次訂單將無法建立,參考資料:http://www.epochconverter.com/。
- 合作特店須進行主機「時間校正」,避免主機產生時差,導致API無法正常運作。
特店傳入參數範例(Json格式)
{
"MerchantID": "2000132",
"RqHeader": {
"Timestamp": 1525168923
},
"Data": "加密資料"
}
Data參數說明(Json格式) : 請先將Json字串進行urlencode後再進行AES加密
MerchantID String(10)
特店編號 必填
ReceiptNo String(20)
綠界收據編號 必填
Reason String(200)
異動原因 必填
IssueModel Object
開立收據資料 必填
IssueModel
Amount Number
收據金額 必填
- 當 ReceiptType = 4 且 DonorType = 5 時,收據金額不可大於一萬
- 當 ReceiptType = 4 & PaymentMethod = 3,Amount 不可大於10萬
- 收據金額需與商品明細金額的加總相同,金額可為0
Name String(60)
收據抬頭 必填
Identifier String(50)
收據持有人證號/統一編號/人民團體/政黨登記字號
- 當 ReceiptType = 2 時,此欄位必填
- 當 ReceiptType = 4 & Amount > 30000 & DonorType = 1、2、3、4 時,此欄位必填
注意事項:
- DonorType = 1,帶入證號
- DonorType=2,帶入統編
- DonorType = 3,帶入人民團體登記字號
- DonorType= 4,帶入政黨登記字號
DonorType Int
持有人身份
當 ReceiptType = 2 、 4 時,此欄位必填
- 1:自然人
- 2:公司/法人
- 3:人民團體
- 4:政黨
- 5:匿名
注意事項:
- 當 ReceiptType = 2 時,DonorType 不可帶入3、4、5
- 當 ReceiptType = 1 時,系統將忽略此欄位之值
RetrievalMethod Int
索取方式 必填
- 1:紙本
- 2:電子
- 3:自行處理
Email String(200)
電子郵件
當 RetrievalMethod = 2 時,此欄位必填
Phone String(15)
連絡電話
當 ReceiptType = 2 & DonorType = 2 時,此欄位必填
CellPhone String(10)
手機號碼
當 ReceiptType = 2 & DonorType = 1 時,此欄位必填
CompanyAddress String(200)
營業登記地址
DeliveryAddress String(200)
收據寄送地址
當 RetrievalMethod = 1時,此欄位必填
Note String(200)
收據備註
Items Array<Object>
商品明細
- 當 ReceiptType = 2 時,僅可帶入一項商品
- 當 ReceiptType = 1、2 時,此欄位必填
ItemSeq Int
明細排列序號
請帶入1~999整數數字
ItemName String(100)
商品名稱
ItemCount Int
商品數量
ItemPrice Number
單價
可帶入0
ItemAmount Number
單項商品合計金額
ItemAmount = ItemCount * ItemPrice
ReceiptDate String(20)
開立收據日期 必填
格式為「yyyy-MM-dd HH:mm:ss」或「 yyyy/MM/dd HH:mm:ss」
PaymentMethod Int
收受款別
當 ReceiptType = 4 & PaymentMethod = 3,Amount 不可大於10萬
- 1: 匯款
- 2: 票據
- 3: 現金
注意事項:當 ReceiptType = 1 、 2 時,系統將忽略此欄位之值,收受款別皆為匯款
CheckInfo Object
票據資料
當 ReceiptType = 4 & PaymentMethod = 2,此欄位必填
CheckNumber String(20)
票據號碼
Drawer String(50)
發票人
IssueDate String(20)
發票日
格式為「yyyy-MM-dd」或「 yyyy/MM/dd」
DonationInfo Object
捐贈資料
當 ReceiptType = 4,此欄位必填
注意事項:當 ReceiptType = 1 、 2 時,系統將忽略此欄位之值
IsBequest Int
是否遺囑捐贈
預設為0
- 0: 否
- 1: 是
DonationDate String(20)
捐贈日
當 ReceiptType = 4,此欄位必填
DepositDate String(20)
存入專戶日期
- 自定義日期:若自行帶入此欄位,系統將以帶入的資料為準
- 系統自動補齊:若此欄位不帶入,系統另提供 DepositTradeNo 參數
- 系統將透過後台定期排程進行比對
- 待該筆訂單款項實際入帳後,系統會自動更新並補上正確的「存入專戶日期」。
注意事項:
- 若 DepositDate 與 DepositTradeNo 皆未帶入,則該筆資料將不會紀錄存入日期,亦不會觸發自動補齊機制。
- 請自行至綠界廠商後台,或透過收據修改 API 補齊存入專戶日期資料
- 缺少存入專戶日期資料,可能會導致無法上傳至監察院系統進行申報
DepositTradeNo String(20)
存入專戶訂單編號
傳入時:請帶入「綠界交易編號 (TradeNo)」。系統將透過定期排程,於訂單款項實際入帳後,自動補上該筆訂單之「存入專戶日期」。
不傳入時: 若欲自行指定存入日期,或該訂單非透過綠界金流收款,請將此欄位保持空白(或不傳入),切勿填寫非綠界之訂單編號。
RemittingBank String(100)
付款/匯款金融機構
- 若 DepositTradeNo 有帶入「綠界交易編號 ( TradeNo )」,此欄位將透過定期排程,於訂單款項實際入帳後,固定帶入「永豐商業銀行」
- 如自行帶入,會以自行帶入的為主。
注意事項:當 ReceiptType = 1 、 2 時,系統將忽略此欄位之值
Data參數範例(Json格式)
{
"ReceiptNo": "Sale00000001",
"Reason": "test",
"IssueModel": {
"ReceiptType": 1,
"RetrievalMethod": 1,
"Amount": 100,
"DonorType": 0,
"Identifier": "97025978",
"Name": "綠界科技",
"Phone": "26550557",
"CellPhone": "",
"Email": "aa@aa.aa",
"CompanyAddress": "115台北市南港區成功路一段58號3樓",
"DeliveryAddress": "115台北市南港區成功路一段58號3樓",
"Notes": "test",
"PaymentMethod": 1,
"Items": [
{
"ItemSeq": 1,
"ItemName": "item01",
"ItemCount": 2,
"ItemPrice": 50,
"ItemAmount": 100
}
],
"CheckInfo": {
"CheckNumber": "123456789",
"Drawer": "test",
"IssueDate": "2026/03/04"
},
"DonationInfo": {
"IsBequest": 0,
"DonationDate": "2026/03/04",
"DepositDate": "2026/03/04"
},
"RemittingBank": "",
"DepositTradeNo": ""
}
}
綠界回傳參數格式
- Content Type :application/json
- HTTP Method :POST
- Crypto-Mode :AES-CBC \ AES-GCM (預設為 AES-CBC)
綠界回傳參數範例
{
"MerchantID": "2000132",
"RpHeader": {
"Timestamp": 1525169058
},
"TransCode": 1,
"TransMsg": "",
"Data": "..."
}
Data參數說明(Json格式) : 請先將Data進行AES解密後再做urldecode
RtnCode Int
回應代碼
1 代表 API 執行成功,其餘代碼均為失敗。
RtnMsg String(200)
回應訊息
Data參數範例
{
"RtnCode": 1,
"RtnMsg": "Success"
}
YAML
提供的 YAML 文件用於定義 API 的配置、結構、操作和基礎設施管理等資訊,方便開發人員理解和使用 API。
openapi: 3.1.0
info:
title: 收據修改
version: 1.0.0
x-source-url: https://developers.ecpay.com.tw/64336/
servers:
- url: https://einvoice-stage.ecpay.com.tw
description: Testing Environment
- url: https://einvoice.ecpay.com.tw
description: Production Environment
paths:
/Receipt/UpdateIssue:
post:
summary: 收據修改
requestBody:
required: true
content:
application/json:
schema:
type: object
required:
- MerchantID
- Timestamp
- Data
- MerchantID
- ReceiptNo
- Reason
- IssueModel
properties:
MerchantID:
type: string
maxLength: 10
description: 特店編號
Timestamp:
type: number
description: 傳入時間
Data:
type: string
description: 加密資料
ReceiptNo:
type: string
maxLength: 20
description: 綠界收據編號
Reason:
type: string
maxLength: 200
description: 異動原因
IssueModel:
type: object
description: 開立收據資料
RtnCode:
type: integer
description: 回應代碼
RtnMsg:
type: string
maxLength: 200
description: 回應訊息
responses:
'200':
description: Successful response
content:
application/json:
schema:
type: object
properties:
MerchantID:
type: string
maxLength: 10
description: 特店編號
Timestamp:
type: number
description: 回傳時間
TransCode:
type: integer
description: 回傳代碼
TransMsg:
type: string
maxLength: 200
description: 回傳訊息
Data:
type: string
description: 加密資料
'400':
description: Invalid request
'500':
description: Server error