應用場景
當營業人(特店)取得財政部的配號結果後,可建立當年度(含當月)或下個年度的字軌。在開立發票之前,必須先設定字軌區間,並且可設定多組。
注意事項:
- 電子發票號碼為 50 個一組
若您並非將所有配得的字軌號碼都新增到綠界科技系統,請務必特別留意,電子發票號碼為 50 個一組,
分配時請以 50 個號碼為一個單位,且起始號碼尾數一定為 00 或 50,結尾號碼尾數一定為 49 或 99。
範例:
甲公司本次配得共 1000 個號碼(AB10000050~AB10001049),要分配給 A、B 兩間發票加值中心,因為在 B
加值中心開立的發票不多,故甲公司只想設定最低數量在 B 加值中心,其餘都分給 A 加值中心。
甲公司可分配如下:
A 加值中心:950 號 (AB10000050~AB10000999)
B 加值中心:50 號 (AB10001000~AB10001049)
※ 因一組為 50 號,B 加值中心至少必須設定 50 個號碼。 - 請勿於多個發票系統設定相同字軌號碼
若您同時有使用其他 POS 系統、加值中心或發票平台服務,請特別注意不可於多個發票系統設定到相同區間的字軌!以免發票號碼重覆開立。
注意事項:
- 新增字軌前,須自行檢核字軌正確性。
- 新增字軌後,字軌狀態預設為已審核通過但未啟用,請使用設定字軌號碼狀態進行啟用。
API介接網址
- 測試環境:https://einvoice-stage.ecpay.com.tw/B2CInvoice/AddInvoiceWordSetting
- 正式環境:https://einvoice.ecpay.com.tw/B2CInvoice/AddInvoiceWordSetting
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格式) : 請先將Json字串進行urlencode後再進行AES加密
{
"MerchantID": "2000132",
"RqHeader": {
"Timestamp": 1525168923
},
"Data": "加密資料"
}
Data參數說明(Json格式)
MerchantID String(10)
特店編號 必填
InvoiceTerm Int
發票期別 必填
1: 1-2月
2: 3-4月
3: 5-6月
4: 7-8月
5: 9-10月
6: 11-12月
注意事項:
不可帶入小於當年的期別
InvoiceYear String(3)
發票年度 必填
僅可設定當年與明年 ex:109
InvType String(2)
字軌類別 必填
07:一般稅額發票
08:特種稅額發票
InvoiceCategory String(1)
發票種類 必填
1:B2C,請固定填寫為1
ProductServiceId String(10)
產品服務別代號
- 該參數必須由英文字母(A-Z, a-z)和數字(0-9)組成,其長度必須在1到10個字符之間。
- 此參數只有在【B2C系統多組字軌】開關為【啟用】時,帶入值才會進行處理,否則會忽略此參數。如需啟用請洽所屬業務。
InvoiceHeader String(2)
發票字軌 必填
InvoiceStart String(8)
起始發票編號 必填
請輸入8碼發票號碼,尾數需為00或50。(例:10000000)
InvoiceEnd String(8)
結束發票編號 必填
請輸入8碼發票號碼,尾數需為49或99。(例:10000049)
Data參數範例(Json格式)
{
"MerchantID": "2000132",
"InvoiceTerm": "1",
"InvoiceYear": "109",
"InvType": "07",
"InvoiceCategory": "1",
"InvoiceHeader": "TW",
"InvoiceStart": "10000000",
"InvoiceEnd": "10000049"
}
綠界回傳參數格式
- 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)
回應訊息
TrackID String(10)
字軌號碼ID
需留存TrackID作為設定字軌號碼啟用狀態用
Data參數範例
{
"RtnCode": 1,
"RtnMsg": "成功",
"TrackID": "1234567890"
}
YAML
提供的 YAML 文件用於定義 API 的配置、結構、操作和基礎設施管理等資訊,方便開發人員理解和使用 API。
openapi: 3.1.0
info:
title: ECPay Track and Allocate Invoice Numbers Setting API
version: 1.0.0
servers:
- url: https://einvoice.ecpay.com.tw
description: Production Environment
- url: https://einvoice-stage.ecpay.com.tw
description: Testing Environment
paths:
/B2CInvoice/AddInvoiceWordSetting:
post:
summary: Track and Allocate Invoice Numbers Setting
description: Set the track and allocate invoice numbers for the specified period.
requestBody:
required: true
content:
application/json:
schema:
type: object
required:
- MerchantID
- RqHeader
- Data
properties:
PlatformID:
type: string
description: Platform identifier (optional)
MerchantID:
type: string
description: Merchant identifier
RqHeader:
type: object
properties:
Timestamp:
type: number
description: Timestamp of the request
Data:
type: string
description: Encrypted data in JSON format
responses:
'200':
description: Success
content:
application/json:
schema:
type: object
properties:
PlatformID:
type: string
description: Platform identifier
MerchantID:
type: string
description: Merchant identifier
RpHeader:
type: object
properties:
Timestamp:
type: number
description: Timestamp of the response
TransCode:
type: integer
description: Transmission code
TransMsg:
type: string
description: Transmission message
Data:
type: string
description: Encrypted data in JSON format
'400':
description: Invalid request
'500':
description: Server error
components:
schemas:
requestBody.Data:
type: object
properties:
MerchantID:
type: string
description: Merchant identifier
InvoiceTerm:
type: integer
description: Invoice term
enum:
- 1
- 2
- 3
- 4
- 5
- 6
InvoiceYear:
type: string
description: Invoice year (in ROC year format)
InvType:
type: string
description: Invoice type
enum:
- '07'
- '08'
InvoiceCategory:
type: string
description: Invoice category
enum:
- '1'
InvoiceHeader:
type: string
description: Invoice track
InvoiceStart:
type: string
description: Starting invoice number
InvoiceEnd:
type: string
description: Ending invoice number
responses.Data:
type: object
properties:
RtnCode:
type: integer
description: Response code
RtnMsg:
type: string
description: Response message
TrackID:
type: string
description: Track number ID