使用流程說明
特店系統可使用此API來查詢目前空白的未使用發票
應用場景
適用於查詢空白未使用發票
API介接網址
- 測試環境:https://einvoice-stage.ecpay.com.tw/B2CInvoice/QueryBlankInvoiceList
- 正式環境:https://einvoice.ecpay.com.tw/QueryBlankInvoiceList
HTTPS傳輸協定
- Content Type :application/json
- HTTP Method :POST
特店傳入參數(Json格式)
PlatformID String(10)
特約合作平台商代號
- 這個參數是專為與綠界簽約的指定平台商所設計,只有在申請開通後才能使用。
- 如果您是一般廠商,請在介接時將此參數欄位保留為空。
- 對於平台商,在使用時需要在MerchantID(特店編號)欄位中填入與您已經完成綁定子廠商的MerchantID(特定編號)。
請注意,只能使用已綁定的子廠商編號,以避免操作失敗。綁定作業請洽所屬業務。
MerchantID String(10)
特店編號 必填
RqHeader Object
傳入資料 必填
Timestamp Number
傳入時間 必填
請將傳輸時間轉換為時間戳(GMT+8),綠界會利用此參數將當下的時間轉為Unix TimeStamp來驗證此次介接的時間區間。
注意事項:
- 驗證時間區間暫訂為 10 分鐘內有效,若超過此驗證時間則此次訂單將無法建立,參考資料:http://www.epochconverter.com/。
- 合作特店須進行主機「時間校正」,避免主機產生時差,導致API無法正常運作。
Data String
加密資料 必填
此為加密過JSON格式的資料。加密方法說明
特店傳入參數範例(Json格式)
{
"MerchantID": "2000132",
"RqHeader": {
"Timestamp": 1525168923
},
"Data": "加密資料"
}
Data參數說明(Json格式): 請先將Json字串進行urlencode後再進行AES加密
MerchantID String(10)
特店編號 必填
InvoiceYear String(?)
發票年度 必填
發票年度,例如:112
※不可查當期,最多查詢1年
InvoiceTerm Int
發票期別 必填
發票期別
1: 1-2月
2: 3-4月
3: 5-6月
4: 7-8月
5: 9-10月
6: 11-12月
PageNo Int
當前頁碼 必填
PageSize Int
分頁筆數 必填
Data參數範例(Json格式)
{
"MerchantID": "2000132",
"InvoiceYear": "114",
"InvoiceTerm": 2,
"PageNo": 3,
"PageSize": 100
}
綠界回傳參數格式
- Content Type :application/json
- HTTP Method :POST
綠界回傳參數(Json格式)
PlatformID String(10)
特約合作平台商代號
MerchantID String(10)
特店編號
RpHeader Object
回傳資料
Timestamp Number
回傳時間
Unix timestamp(GMT+8)
TransCode Int
回傳代碼
1 代表 API 傳輸資料(MerchantID, RqHeader, Data)接收成功,實際的 API 執行結果狀態請參考 RtnCode。
TransMsg String(200)
回傳訊息
Data String
加密資料
回傳相關資料,此為加密過JSON格式的資料。加密方法說明
綠界回傳參數範例
{
"MerchantID": "2000132",
"RpHeader": {
"Timestamp": 1525169058
},
"TransCode": 1,
"TransMsg": "",
"Data": "加密資料"
}
Data參數說明(Json格式) : 請先將Data進行AES解密後再做urldecode
RtnCode Int
回應代碼
1 代表 API 執行成功,其餘代碼均為失敗。
RtnMsg String(200)
回應訊息
TotalCount Int
總筆數
IsAuth Int
是否授權綠界上傳空白未使用發票
是否於財政部授權綠界上傳空白未使用發票
0:否
1:是
BlankList Array[Object]
空白清單
BlankID Int
字軌空白發票識別碼(流水號)
InvoiceYear String(?)
發票年度
發票年度,例如:112
InvoiceTerm Int
發票期別
發票期別
1: 1-2月
2: 3-4月
3: 5-6月
4: 7-8月
5: 9-10月
6: 11-12月
InvoiceHeader String(?)
字軌名稱
InvoiceStart String(?)
起始發票編號
InvoiceEnd String(?)
結束發票編號
InvoiceCategory Int
發票類別
發票類別
1: 線上B2C
2: 線上B2B
3:離線
InvType Int
字軌類別
字軌類別
07: 一般稅額發票
08: 特種稅額發票
UploadStatus Int
上傳狀態
0:未上傳
1:已上傳
UploadDate String(?)
上傳日期
格式為: yyyy-mm-dd
IsAutoUpload Int
是否有設定自動上傳
0:否
1:是
ChangeStatus Int
是否可異動
0:否
1:是
Data參數範例
{
"RtnCode": 1,
"RtnMsg": "Success",
"TotalCount": 10,
"IsAuth": 1,
"BlankList": [
{
"BlankID": 123456789,
"InvoiceYear": "115",
"InvoiceTerm": 1,
"InvoiceHeader": "TW",
"InvoiceStart": "00000001",
"InvoiceEnd": "00000010",
"InvoiceCategory": 1,
"InvType": 07,
"UploadStatus": 0,
"UploadDate": "2025-01-01",
"IsAutoUpload": 1,
"ChangeStatus": 1
},
{
"BlankID": 123456789,
"InvoiceYear": "115",
"InvoiceTerm": 1,
"InvoiceHeader": "TW",
"InvoiceStart": "00000001",
"InvoiceEnd": "00000010",
"InvoiceCategory": 1,
"InvType": 07,
"UploadStatus": 0,
"UploadDate": "2025-01-01",
"IsAutoUpload": 1,
"ChangeStatus": 1
}
]
}
YAML
提供的 YAML 文件用於定義 API 的配置、結構、操作和基礎設施管理等資訊,方便開發人員理解和使用 API。
openapi: 3.1.0
info:
title: 發送通知/查詢空白未使用發票
version: 1.0.0
x-source-url: https://developers.ecpay.com.tw/64106/
servers:
- url: https://einvoice-stage.ecpay.com.tw
description: Testing Environment
- url: https://einvoice.ecpay.com.tw
description: Production Environment
paths:
/QueryBlankInvoiceList:
post:
summary: 發送通知/查詢空白未使用發票
requestBody:
required: true
content:
application/json:
schema:
type: object
required:
- MerchantID
- Timestamp
- Data
- MerchantID
- InvoiceTerm
- PageNo
- PageSize
properties:
PlatformID:
type: string
maxLength: 10
description: 特約合作平台商代號
MerchantID:
type: string
maxLength: 10
description: 特店編號
Timestamp:
type: number
description: 傳入時間
Data:
type: string
description: 加密資料
InvoiceTerm:
type: integer
description: 發票期別
PageNo:
type: integer
description: 當前頁碼
PageSize:
type: integer
description: 分頁筆數
RtnCode:
type: integer
description: 回應代碼
RtnMsg:
type: string
maxLength: 200
description: 回應訊息
TotalCount:
type: integer
description: 總筆數
IsAuth:
type: integer
description: 是否授權綠界上傳空白未使用發票
BlankID:
type: integer
description: 字軌空白發票識別碼(流水號)
InvoiceYear:
type: string
description: 發票年度
InvoiceHeader:
type: string
description: 字軌名稱
InvoiceStart:
type: string
description: 起始發票編號
InvoiceEnd:
type: string
description: 結束發票編號
InvoiceCategory:
type: integer
description: 發票類別
InvType:
type: integer
description: 字軌類別
UploadStatus:
type: integer
description: 上傳狀態
UploadDate:
type: string
description: 上傳日期
IsAutoUpload:
type: integer
description: 是否有設定自動上傳
ChangeStatus:
type: integer
description: 是否可異動
responses:
'200':
description: Successful response
content:
application/json:
schema:
type: object
properties:
PlatformID:
type: string
maxLength: 10
description: 特約合作平台商代號
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