應用場景
特店開立發票後,需將發票上傳至綠界並由綠界代為上傳至財政部電子發票平台。
注意事項:
- 依據財政部之規定,請於開立發票48小時內上傳發票。
- 發票資料內容主要由廠商傳送,請確認發票資料的正確性之後再進行上傳。
API介接網址
- 正式環境:https://einvoice.ecpay.com.tw/B2CInvoice/OfflineIssue
- 測試環境:https://einvoice-stage.ecpay.com.tw/B2CInvoice/OfflineIssue
HTTPS 傳輸協定
- Content Type :application/json
- HTTP Method :POST
特店傳入參數(Json格式)
PlatformID String(10)
特約合作平台商代號
- PlatformID為與綠界有合作專案的特約平台商身分使用。一般特店或賣家身分(Merchant),或平台商本身,此參數請帶放空值。
- 若隸屬於特約平台商的一般特店,此參數請帶放平台商的MerchantID。
RqHeader Object
傳入資料 必填
Timestamp String(10)
傳入時間
請將傳輸時間轉換為時間戳(GMT+8),綠界會利用此參數將當下的時間轉為Unix TimeStamp來驗證此次介接的時間區間。
注意事項:
- 驗證時間區間為 10 分鐘內有效,若超過此驗證時間則此次API request將無法建立,參考資料:http://www.epochconverter.com/。
- 特店需進行主機「時間校正」,避免主機產生時差,造成API request失敗。
Data String
加密資料 必填
特店傳入參數範例(Json格式)
{
"MerchantID": "2000132",
"RqHeader": {
"Timestamp": "1525168923",
"Revision": "1.0.0"
},
"Data": "加密資料"
}
Data參數說明(Json格式)
MerchantID String(10)
特店編號 必填
MachineID String(10)
發票機台ID 必填
InvoiceNo String(10)
發票號碼 必填
InvoiceDate String(20)
發票開立日期 必填
RelateNumber String(50)
特店自訂編號 必填
TaxType String(1)
課稅類別 必填
- 1:應稅
- 2:零稅率
- 3:免稅
- 4:應稅(特種稅率)
- 9:混合應稅與免稅或零稅率時(限收銀機發票無法分辨時使用,且需通過申請核可)。
ZeroTaxRateReason String(2)
零稅率原因
- 自115年1月1日起,當課稅類別[TaxType]為2(零稅率) 或9(混合應稅與零稅率)時,此欄位必填或廠商後台必須設定以便程式抓取,否則將會開立失敗,其值如下
71:第一款 外銷貨物
72:第二款 與外銷有關之勞務,或在國內提供而在國外使用之勞務
73:第三款 依法設立之免稅商店銷售與過境或出境旅客之貨物
74:第四款 銷售與保稅區營業人供營運之貨物或勞務
75:第五款 國際間之運輸。但外國運輸事業在中華民國境內經營國際運輸業務者,應以各該國對中華民國國際運輸事業予以相等待遇或免徵類似稅捐者為限
76:第六款 國際運輸用之船舶、航空器及遠洋漁船
77:第七款 銷售與國際運輸用之船舶、航空器及遠洋漁船所使用之貨物或修繕勞務78:第八款 保稅區營業人銷售與課稅區營業人未輸往課稅區而直接出口之貨物
79:第九款 保稅區營業人銷售與課稅區營業人存入自由港區事業或海關管理之保稅倉庫、物流中心以供外銷之貨物 - 自115年1月1日起,當零稅率原因[ZeroTaxRateReason]值為74、75、76、77、78、79時,統一編號[CustomerIdentifier]為必填
SalesAmount Int
發票總金額(含稅) 必填
InvType String(2)
字軌類別 必填
- 07:一般稅額發票
- 08:特種稅額發票
RandomNumber String(4)
隨機碼 必填
注意事項:
- 隨機碼只限使用數字,不可使用流水號。
- 請上傳實際開立發票的隨機碼,取得發票字軌號碼API提供的隨機碼僅供參考使用。
Items Array[Object]
商品
ItemSeq Int
商品序號
ItemName Stinrg(500)
商品名稱 必填
ItemCount Number
商品數量 必填
支援整數8位,小數7位
ItemWord String(6)
商品單位 必填
ItemPrice Number
商品單價 必填
ItemTaxType String(1)
商品課稅別
當課稅類別[TaxType] = 9時,此欄位不可為空。
- 1:應稅
- 2:零稅率
- 3:免稅
注意事項
當課稅類別 TaxType = 9時,免稅和零稅率發票不能同時開立。商品課稅類別只能為以下:
- 應稅+免稅
- 應稅+零稅率
ItemAmount Number
商品合計
ItemRemark String(120)
商品備註
CustomerIdentifier String(8)
統一編號
CustomerID String(20)
客戶編號
CustomerAddr String(100)
客戶地址
CustomerPhone String(20)
客戶手機號碼
CustomerEmail String(80)
客戶信箱
ClearanceMark String(1)
通關方式
當課稅類別[TaxType]=2(零稅率)時,為必填
- 1:非經海關出口
- 2:經海關出口
SpecialTaxType String(1)
特種稅額類別
- 當課稅類別[TaxType]為 1/2/9 時,請帶入【0】。
- 當課稅類別[TaxType]為 3 時,則該參數必填,請填入數字【8】。
- 當課稅類別[TaxType]為 4 時,則該參數必填,可填入數字【1-8】, 並分別代表以下類別與稅率:
1:代表酒家及有陪侍服務之茶室、咖啡廳、酒吧之營業稅稅率,稅率為25%。
2:代表夜總會、有娛樂節目之餐飲店之營業稅稅率,稅率為15%。
3:代表銀行業、保險業、信託投資業、證券業、期貨業、票券業及典當業之專屬本業收入(不含銀行業、保險業經營銀行、保險本業收入)之營業稅稅率,稅率為2%。
4:代表保險業之再保費收入之營業稅稅率,稅率為 1%。
5:代表銀行業、保險業、信託投資業、證券業、期貨業、票券業及典當業之非專屬本業收入之營業稅稅率,稅率為 5%。
6:代表銀行業、保險業經營銀行、保險本業收入之營業稅稅率(適用於民國103年07月以後銷售額),稅率為5%。
7:代表銀行業、保險業經營銀行、保險本業收入之營業稅稅率(適用於民國103年06月以前銷售額),稅率為5%。
8:代表空白為免稅或非銷項特種稅額之資料。
vat String(1)
商品單價是否含稅
InvoiceRemark String(200)
發票備註
CustomerName String(60)
客戶名稱
Print String(1)
列印註記 必填
- 0:不列印
捐贈註記[Donation]=1(捐贈)時
載具類別[CarrierType]有值時 - 1:要列印
統一編號[CustomerIdentifier]有值時
Donation String(1)
捐贈註記 必填
- 0:不捐贈 統一編號[CustomerIdentifier]有值時 載具類別[CarrierType] 有值時
- 1:要捐贈
LoveCode String(7)
捐贈碼
CarrierType String(1)
載具類別
- 空字串:
無載具
列印註記[Print] =1(列印發票) 時
統一編號[CustomerIdentifier]有值時 - 1:綠界電子發票載具
- 2:自然人憑證號碼
- 3:手機條碼載具
CarrierNum String(64)
載具編號
Data參數範例(Json格式)
{
"MerchantID": "2000132",
"MachineID": "12345678",
"InvoiceNo": "KK12345678",
"InvoiceDate": "2021-01-01 11:12:35",
"RelateNumber": "20181028000000001",
"CustomerID": "",
"CustomerIdentifier": "",
"CustomerName": "綠界科技股份有限公司",
"CustomerAddr": "106台北市南港區發票一街1號1樓",
"CustomerPhone": "",
"CustomerEmail": "test@ecpay.com.tw",
"ClearanceMark": "1",
"Print": "1",
"Donation": "0",
"LoveCode": "",
"CarrierType": "",
"CarrierNum": "",
"TaxType": "1",
"SalesAmount": 100,
"InvoiceRemark": "發票備註",
"InvType": "07",
"vat": "1",
"Items": [
{
"ItemSeq": 1,
"ItemName": "item01",
"ItemCount": 1,
"ItemWord": "件",
"ItemPrice": 50,
"ItemTaxType": "1",
"ItemAmount": 50,
"ItemRemark": "item01_desc"
},
{
"ItemSeq": 2,
"ItemName": "item02",
"ItemCount": 1,
"ItemWord": "個",
"ItemPrice": 20,
"ItemTaxType": "1",
"ItemAmount": 20,
"ItemRemark": "item02_desc"
},
{
"ItemSeq": 3,
"ItemName": "item03",
"ItemCount": 3,
"ItemWord": "粒",
"ItemPrice": 10,
"ItemTaxType": "1",
"ItemAmount": 30,
"ItemRemark": "item03_desc"
}
]
}
綠界回傳參數(Json格式)
PlatformID String(10)
特約合作平台商代號
MerchantID String(10)
特店編號
RpHeader Object
傳入資料
Timestamp String(10)
傳入時間
請將傳輸時間轉換為時間戳(GMT+8),綠界會利用此參數將當下的時間轉為Unix TimeStamp來驗證此次介接的時間區間。
TransCode Int
回傳代碼
1 代表 API 傳輸資料(MerchantID, RqHeader, Data)接收成功,實際的 API 執行結果狀態請參考 RtnCode。
TransMsg String(200)
回傳訊息
Data String
加密資料
綠界回傳參數範例
{
"MerchantID": "2000132",
"RpHeader": {
"Timestamp": "1525169058"
},
"TransCode": 1,
"TransMsg": "",
"Data": "加密資料"
}
Data參數(Json格式)
RtnCode Int
回應代碼
1 代表 API 執行成功,其餘代碼均為失敗,失敗代碼請參考交易訊息代碼表。
RtnMsg String(200)
回應訊息
InvoiceNo String(10)
發票號碼
RelateNumber String(30)
特店自訂編號
回傳Data參數範例
{
"RtnCode": 1,
"RtnMsg": "成功",
"InvoiceNo": "KK12345678",
"RelateNumber": "1234567890"
}