發票作業/開立發票 / 觸發開立發票

使用流程說明

營業人(特店)可使用此功能先將開立發票參數傳送至綠界,由綠界暫存發票資料,等待確認要開立時,再由營業人(特店)進行觸發開立,觸發先前暫存在綠界的發票資料,再依據先前所設定的延遲開立天數,待延遲開立時間到,系統會自動開立上傳財政部,並通知消費者(買家)電子發票已開立。(若未設定延遲開立天數,觸發後立即開立發票)

應用場景

I. 觸發開立發票:
待消費者付款完成後會呼叫此API,觸發先前暫存在綠界的參數開立發票。

II. 觸發後延遲開立發票:
待消費者付款完成後會呼叫此API,觸發先前暫存在綠界的參數開立發票,再依據先前所設定的延遲開立天數,待預約開立時間到,系統自動開立。

❗ 注意事項:

使用此API需先呼叫暫存開立發票API暫存發票資料,且延遲註記欄位為2(觸發開立)。

API介接網址

  • 測試環境:https://einvoice-stage.ecpay.com.tw/B2CInvoice/TriggerIssue
  • 正式環境:https://einvoice.ecpay.com.tw/B2CInvoice/TriggerIssue

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)
特店編號 必填

Tsr String(30)
交易單號 必填

  • 用來呼叫付款完成觸發或延遲開立發票的依據。
  • 均為唯一值不可重覆使用

PayType String(1)
交易類別 必填

請固定帶 ‘2’

Data參數範例

				
					{
    "MerchantID":"2000132",
    "Tsr": "201909170001",
    "PayType": "2"
}

				
			

綠界回傳參數格式

  • 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. 當DelayDay設為大於0時
    RtnCode回傳結果為4000003是代表延後開立成功。
  2. 當DelayDay等於0時
    RtnCode回傳結果為4000004是代表開立發票成功。
  3. 當RtnCode非上述結果,則為失敗。

RtnMsg String(200)
回應訊息

Tsr String(20)
交易單號

若開立成功,則會回傳交易單號
若開立失敗,則會回傳空值。

Data參數範例

				
					{
    "RtnCode": 4000003,
    "RtnMsg": "延後開立成功",
    "Tsr": "201909170001"
}
				
			

YAML

提供的 YAML 文件用於定義 API 的配置、結構、操作和基礎設施管理等資訊,方便開發人員理解和使用 API。

				
					openapi: 3.1.0
info:
  title: ECPay Trigger Issue Invoice API
  version: 1.0.0
servers:
  - url: https://einvoice-stage.ecpay.com.tw
  - url: https://einvoice.ecpay.com.tw
paths:
  /B2CInvoice/TriggerIssue:
    post:
      summary: Trigger Issue Invoice
      description: This API triggers the issuance of previously stored invoices after payment completion.
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: object
              required:
                - MerchantID
                - RqHeader
                - Data
              properties:
                MerchantID:
                  type: string
                  maxLength: 10
                  description: Merchant ID
                RqHeader:
                  type: object
                  required:
                    - Timestamp
                  properties:
                    Timestamp:
                      type: integer
                      description: Unix timestamp in GMT+8
                Data:
                  type: string
                  description: Encrypted data
      responses:
        '200':
          description: Successful operation
          content:
            application/json:
              schema:
                type: object
                properties:
                  MerchantID:
                    type: string
                    description: Merchant ID
                  RpHeader:
                    type: object
                    properties:
                      Timestamp:
                        type: integer
                        description: Unix timestamp in GMT+8
                  TransCode:
                    type: integer
                    description: Transmission code indicating success or failure
                  TransMsg:
                    type: string
                    maxLength: 200
                    description: Transmission message
                  Data:
                    type: string
                    description: Encrypted response data
components:
  schemas:
    requestBody.Data:
      type: object
      properties:
        MerchantID:
          type: string
          maxLength: 10
          description: Merchant ID
        Tsr:
          type: string
          maxLength: 30
          description: Transaction serial number
        PayType:
          type: string
          maxLength: 1
          description: Transaction type, should be '2'
    responses.Data:
      type: object
      properties:
        RtnCode:
          type: integer
          description: Response code indicating success or failure
        RtnMsg:
          type: string
          maxLength: 200
          description: Response message
        Tsr:
          type: string
          maxLength: 20
          description: Transaction serial number

				
			

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

綠界官方網站