發票作業 / 上傳開立發票

應用場景

特店開立發票後,需將發票上傳至綠界並由綠界代為上傳至財政部電子發票平台。

❗ 注意事項

  • 依據財政部之規定,請於開立發票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

MerchantID String(10)
特店編號 必填

RqHeader Object
傳入資料 必填

Timestamp String(10)
傳入時間

請將傳輸時間轉換為時間戳(GMT+8),綠界會利用此參數將當下的時間轉為Unix TimeStamp來驗證此次介接的時間區間。

❗ 注意事項

  • 驗證時間區間為 10 分鐘內有效,若超過此驗證時間則此次API request將無法建立,參考資料:http://www.epochconverter.com/
  • 特店需進行主機「時間校正」,避免主機產生時差,造成API request失敗。

Data String
加密資料 必填

回傳相關資料,此為加密過JSON格式的資料。加密方法說明

特店傳入參數範例(Json格式)

				
					{
    "MerchantID": "2000132",
    "RqHeader": {
        "Timestamp": "1525168923",
        "Revision": "1.0.0"
    },
    "Data": "加密資料"
}

				
			

Data參數說明(Json格式)

MerchantID String(10)
特店編號 必填

MachineID String(10)
發票機台ID 必填

InvoiceNo String(10)
發票號碼 必填

2碼字軌+8碼數字

InvoiceDate String(20)
發票開立日期 必填

yyyy-MM-dd HH:mm:ss
❗ 注意事項:發票開立時間不可大於當下上傳發票的時間。

RelateNumber String(30)
特店自訂編號 必填

需為唯一值不可重覆使用,且不可使用特殊符號

TaxType String(1)
課稅類別 必填

  • 1:應稅
  • 2:零稅率
  • 3:免稅
  • 4:應稅(特種稅率)
  • 9:混合應稅與免稅或零稅率時(限收銀機發票無法分辨時使用,且需通過申請核可)。

SalesAmount Int
發票總金額(含稅) 必填

InvType String(2)
字軌類別 必填

  • 07:一般稅額發票
  • 08:特種稅額發票

RandomNumber String(4)
隨機碼 必填

隨機碼是作為資訊的防偽,特店可自行制定隨機碼產生規則。建議產生隨機碼的規則為:每開立一萬張發票不可重覆,開立下一萬張票的隨機碼出現的次序不可重覆。

❗ 注意事項

  1. 隨機碼只限使用數字,不可使用流水號。
  2. 請上傳實際開立發票的隨機碼,取得發票字軌號碼API提供的隨機碼僅供參考使用。

Items Array[Object]
商品

可多筆,商品最多支援200項

ItemSeq Int
商品序號

ItemName Stinrg(100)
商品名稱 必填

ItemCount Number
商品數量 必填

ItemWord String(6)
商品單位 必填

ItemPrice Number
商品單價 必填

ItemTaxType String(1)
商品課稅別

當課稅類別[TaxType] = 9時,此欄位不可為空。

  • 1:應稅
  • 2:零稅率
  • 3:免稅

❗ 注意事項

當課稅類別 TaxType = 9時,免稅和零稅率發票不能同時開立。商品課稅類別只能為以下:

  1. 應稅+免稅
  2. 應稅+零稅率

ItemAmount Number
商品合計

ItemRemark String(40)
商品備註

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)
捐贈碼

當捐贈註記=1 時,為必填。 格式為阿拉伯數字為限,最少三碼,最多七碼,首位可以為零。

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
加密資料 

回傳相關資料,此為加密過JSON格式的資料。加密方法說明

綠界回傳參數範例

				
					{
    "MerchantID": "2000132",
    "RpHeader": {
        "Timestamp": "1525169058"
    },
    "TransCode": 1,
    "TransMsg": "",
    "Data": "加密資料"
}

				
			

Data參數(Json格式)

RtnCode Int
回應代碼

1 代表 API 執行成功,其餘代碼均為失敗,失敗代碼請參考交易訊息代碼表

RtnMsg String(200)
回應訊息

InvoiceNo String(10)
發票號碼

2碼字軌+8碼數字

RelateNumber String(30)
特店自訂編號

回傳Data參數範例

				
					{
    "RtnCode": 1,
    "RtnMsg": "成功",
    "InvoiceNo": "KK12345678",
    "RelateNumber": "1234567890"
}


				
			

Copyright © Green World FinTech Service Co., Ltd. All rights reserved.

綠界官方網站