應用場景
特店(營業人)在與交易相對人(營業人)達成合意後,特店(營業人)傳送開立發票參數給綠界,由綠界暫存相關資料。綠界會於隔日開立發票後上傳至財政部電子發票整合服務平台,並根據發送通知API設定,通知交易相對人(營業人)電子發票已開立。
注意事項:
- 請注意: 如果您開立對象是營業人,需要輸入買方的統編,可以串接B2C電子發票API技術文件即可,不需要特別串接B2B電子發票API技術文件。如想進一步了解可參考FAQ。
API介接網址
- 測試環境:https://einvoice-stage.ecpay.com.tw/B2BInvoice/Issue
- 正式環境:https://einvoice.ecpay.com.tw/B2BInvoice/Issue
特店Request參數說明 (Json格式)
PlatformID String(10)
特約合作平台商代號
- 提供特約合作平台商向綠界申請開通後使用,一般廠商介接請放空值。
- 平台商使用時,MerchantID(特店編號)欄位僅限帶入已綁定子廠商的特店編號,以免造成失敗。
MerchantID String(10)
特店編號 必填
RqHeader Object
傳輸資料 必填
Timestamp String(10)
傳入時間 必填
綠界會利用此參數將當下的時間轉為Unix TimeStamp來驗證此次介接的時間區間
注意事項:
- 驗證時間區間暫訂為10分鐘內有效,若超過此驗證時間則此次訂單將無法建立
參考資料:http://www.epochconverter.com/。 - 合作特店須進行主機「時間校正」,避免主機產生時差,延伸API無法正常運作。
Data String
加密資料 必填
回傳相關資料,此為加密過JSON格式的資料。加密方法說明
特店Request參數範例 (Json格式)
{
"MerchantID": "2000132",
"RqHeader": {
"Timestamp": 1234567890
},
"Data": "…"
}
Data參數說明(Json格式)
注意事項:請在加密前對參數值進行 URLEncode
MerchantID String(10)
特店編號 必填
RelateNumber String(20)
廠商自訂編號 必填
注意事項:
- 請勿使用特殊符號
- 大小寫英文視為相同 (e.g. 123abc456=123ABC456)
InvoiceTime String(20)
發票開立時間
格式為yyyy-mm-dd hh:mm:ss
- 參數有值時,僅接受過去6天內日期,並注意順時順號
- 建議不帶值,系統會自動開立當下日期
CustomerIdentifier String(8)
買方統編 必填
CustomerEmail String(80)
買方電子信箱
- 僅接受 Email 的標準格式。
- 多組Email請以半形分號區隔,未帶值時自動帶入交易對象維護API設定的資料
注意事項:
- 測試環境請勿帶入之真實電子信箱,避免個資外洩。
- 測試環境僅作API串接測試使用,僅以API回覆成功或失敗;批次匯入功能/API不提供發信測試,僅驗規則。
- 格式檢核正規表達式為:^((([A-Za-z]|\d|[!#\$%&’\*\+\-\/=\?\^_`{\|}~]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])+(\.([A-Za-z]|\d|[!#\$%&’\*\+\-\/=\?\^_`{\|}~]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])+)*)|((\x22)((((\x20|\x09)*(\x0d\x0a))?(\x20|\x09)+)?(([\x01-\x08\x0b\x0c\x0e-\x1f\x7f]|\x21|[\x23-\x5b]|[\x5d-\x7e]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])|(\\([\x01-\x09\x0b\x0c\x0d-\x7f]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF]))))*(((\x20|\x09)*(\x0d\x0a))?(\x20|\x09)+)?(\x22)))@((([A-Za-z]|\d|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])|(([A-Za-z]|\d|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])([A-Za-z]|\d|-|\.|_|~|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])*([A-Za-z]|\d|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])))\.)+(([A-Za-z]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])|(([A-Za-z]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])([A-Za-z]|\d|-|\.|_|~|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])*([A-Za-z]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])))\.?$
CustomerAddress String(100)
買方公司地址
CustomerTelephoneNumber String(30)
買方電話號碼
ClearanceMark String(1)
通關方式註記
當課稅類別[TaxType]為2(零稅率)時,則該參數請帶1(非經海關出口)或2(經海關出口)
InvType String(2)
字軌類別 必填
- 07:一般稅額計算之電子發票
- 08:特種稅額計算之電子發票
SpecialTaxType String(1)
特種稅額類別
當課稅別為3 (免稅)時,則該參數必填,請填入數字【8】
當課稅別為4 (特種應稅)時,則該參數必填,可填入數字【1-8】,分別代表以下類別與稅率:
- 【1】代表酒家及有陪侍服務之茶室、咖啡廳、酒吧之營業稅稅率,稅率為25%
- 【2】代表夜總會、有娛樂節目之餐飲店之營業稅稅率,稅率為15%
- 【3】代表銀行業、保險業、信託投資業、證券業、期貨業、票券業及典當業之專屬本業收入(不含銀行業、保險業經營銀行、保險本業收入)之營業稅稅率,稅率為2%
- 【4】代表保險業之再保費收入之營業稅稅率,稅率為1%
- 【5】代表銀行業、保險業、信託投資業、證券業、期貨業、票券業及典當業之非專屬本業收入之營業稅稅率,稅率為5%
- 【6】代表銀行業、保險業經營銀行、保險本業收入之營業稅稅率(適用於民國103年07月以後銷售額) ,稅率為5%
- 【7】代表銀行業、保險業經營銀行、保險本業收入之營業稅稅率(適用於民國103年06月以前銷售額) ,稅率為5%
- 【8】代表空白為免稅或非銷項特種稅額之資料
Items Array[Object]
傳入資料
ItemSeq Int
明細排列序號 必填
- 請帶1~999的整數值
- 商品排序不可重複
ItemName String(256)
商品名稱 必填
ItemCount Number
商品數量 必填
支援整數最多8位,小數2位
ItemWord String(6)
商品單位
商品單位最多是6碼
ItemPrice Number
商品價格 必填
支援整數最多10位,小數7位,請固定填入未稅價
ItemTax Number
商品稅額
- 請帶整數,最多11位。
- 若商品稅額[ItemTax]有值,定義【商品合計[ItemAmount]*
稅率[TaxRate]】=B,則商品稅額的值與B四捨五入後的值,差距不可大於1
注意事項:
- 財政部無提供此參數格式,此處提供營業人檢核營業稅額合計[TaxAmount]用,不會上傳。
- 特種稅額發票請直接帶0
ItemRemark String(40)
商品備註
SalesAmount Number
銷售額合計 必填
- 請帶整數,最多12位,不可為0元
- 需等於商品合計[ItemAmount]加總後四捨五入至整數的值
TaxAmount Number
稅額合計 必填
- 請帶整數,最多11位。
- 定義【銷售額合計[SalesAmount]乘以稅率[TaxRate]後再四捨五入至整數】為C,則稅額合計[TaxAmount]的值與C的差距不可大於2
注意事項:
1. 特種稅額發票請直接帶0
2. 當收到以下錯誤訊息”商品稅額加總與營業稅額誤差超過2元”,請將各商品之商品稅額[ItemTax]填入,並確認與調整各商品稅額[ItemTax],使得商品稅額[ItemTax]加總與稅額合計[TaxAmount]誤差少於2元
TotalAmount Number
發票金額 必填
- 請帶整數,最多12位,不可為0元
- 需等於銷售額合計[SalesAmount]與稅額合計[TaxAmount]相加
InvoiceRemark String(200)
發票備註
Data參數範例(Json格式)
{
"MerchantID": "2000132",
"RelateNumber": "20190922000000003",
"InvoiceTime": "2019/09/22 00:00:00",
"CustomerIdentifier": "23165448",
"CustomerEmail": "",
"ClearanceMark": "1",
"InvType": "07",
"TaxType": 1,
"TaxRate": 0.05,
"SalesAmount": 100,
"TaxAmount": 5,
"TotalAmount": 105,
"InvoiceRemark": "發票備註",
"Items": [
{
"ItemSeq": 1,
"ItemName": "item01",
"ItemCount": 1,
"ItemWord": "件",
"ItemPrice": 50,
"ItemAmount": 50,
"ItemTax": 2,
"ItemRemark": "item01_desc"
},
{
"ItemSeq": 2,
"ItemName": "item02",
"ItemCount": 1,
"ItemWord": "個",
"ItemPrice": 20,
"ItemAmount": 20,
"ItemTax": 1,
"ItemRemark": "item02_desc"
},
{
"ItemSeq": 3,
"ItemName": "item03",
"ItemCount": 3,
"ItemWord": "粒",
"ItemPrice": 10,
"ItemAmount": 30,
"ItemTax": 2,
"ItemRemark": "item03_desc"
}
]
}
綠界Response參數說明 (Json格式)
PlatformID String(10)
特約合作平台商代號
MerchantID String(10)
特店編號
RpHeader Object
回傳資料
Timestamp Number
回傳時間
時間戳 Unix timestamp
TransCode Int
回傳代碼
1 代表 API 傳輸資料(MerchantID, RqHeader, Data)接收成功,實際的 API 執行結果狀態請參考 RtnCode。
TransMsg String(200)
回傳訊息
Data String
加密資料
回傳相關資料,此為加密過JSON格式的資料。加密方法說明
綠界Response參數範例 (Json格式)
{
"MerchantID": "3002607",
"RpHeader": {
"Timestamp": 1234564848
},
"TransCode": 1,
"TransMsg": "Success",
"Data": "…"
}
Data參數說明(Json格式)
RtnCode Int
回應代碼
1 為成功,其餘為失敗
RtnMsg String(200)
回應訊息
InvoiceNumber String(10)
發票號碼
若開立成功,則會回傳一組發票號碼;若開立失敗,則會回傳空值。
RandomNumber String(4)
隨機碼
Data參數範例(Json格式)
{
"RtnCode": 1,
"RtnMsg": "新增成功",
"InvoiceNumber": "VG11000002",
"RandomNumber": "6686"
}