Issuing Operations / Seller Cancel Allowance E-invoices

Scenarios

  • After an invoice is issued, if a return of goods, exchange, or allowance is required, and the Merchant (Business Entity) has already issued an allowance invoice but later discovers errors in the invoice content, this function can be used to perform the voiding.
  • The Merchant sends the voided allowance invoice parameters to Green World, which stores the voiding information. Green World uploads the data to The E-Invoice Platform of the Ministry of Finance, and notifies the Counterparty (Business Entity) according to the Send E-invoices Status Notices settings that part of the allowance invoice has been voided (i.e., voiding only the allowance details, not the original invoice itself).

❗ Special Notes : 

  1. The voided allowance invoice becomes effective only after the Counterparty (Business Entity) confirms the exchange; otherwise, it will not be considered a valid certificate.
  2. According to the Ministry of Finance’s regulations, only the Merchant is allowed to upload voided allowance invoices. The buyer is not permitted to initiate the voiding request.

API URLs:

  • Stage: https://einvoice-stage.ecpay.com.tw/B2BInvoice/CancelAllowance
  • Production: https://einvoice.ecpay.com.tw/B2BInvoice/CancelAllowance

HTTPS format

  • Content Type :application/json
  • HTTP Method :POST

Request by Merchant (Json format)

PlatformID String(10)

  • Platform merchant ID
  • This parameter is provided by ECPAY to the platform vendor for project cooperation, please bring in the MerchantID bound with the platform vendor.
  • Please leave empty for general vendor.
  • When the platform vendor uses the MerchantID field, it can only bring in the MerchantID that has been bound as a sub-store, otherwise it will cause a failure.

RqHeader
Required

Request header

Timestamp  Number
Required

  • Please convert the transmission time to a timestamp (GMT+8).
  • ECPay will use this parameter to convert the current time to Unix TimeStamp to verify the time interval of this connection.

❗ Special Notes

  • If ECPay receives the API call is more 10 minutes late than the timestamp sent by merchants, this request will be failed. Reference information is as follows:http://www.epochconverter.com/
  • Merchants are suggested to frequently synchronize the time zone of server to another server of the nearest time zone.

Data String
Required

  • Message payload
  • This is the encrypted data in JSON format.
    AES Encryption Description

Example

				
					{
    "MerchantID": "2000132",
    "RqHeader": {
        "Timestamp": 1525168923
    },
    "Data": "..."
}

				
			

Message payload of Data(Json format) : please urlencode the JSON string firstly and then do AES encryption

AllowanceNo String(16)
Required

Green World Allowance Number

Reason String(20)
Required

Cancel Reason
Remark String(200)

Example

				
					{
    "MerchantID": "2000132",
    "AllowanceNo": "1909241702402030",
    "Reason": "Cancel_Allowance_Reason",
    "Remark": "Cancel_Allowance_Reamrk"
}


				
			

Response format

  • Content Type :application/json
  • HTTP Method :POST

Response by ECPay (Json format)

PlatformID String(10)

MerchantID String(10)

RpHeader

Response header

Timestamp Number

Unix timestamp(GMT+8)

TransCode Int

  • Response code to indicate whether the payload is successfully accepted
  • Possible values:
    • 1: Payload (i.e. MerchantID, RqHeader, and Data) is successfully accepted by ECPay.
    • Others: failed.

TransMsg String(200)

Response message to indicate whether the payload is successfully accepted

Data String

  • Message payload
  • Responde relevant data, this is the encrypted JSON format data。
    AES Encryption Description

Example

				
					{
    "MerchantID": "2000132",
    "RpHeader": {
        "Timestamp": 1525169058
    },
    "TransCode": 1,
    "TransMsg": "",
    "Data": "..."
}

				
			

Message payload of Data(Json format) : please do AES decryption to the Data firstly and then do urldecode.

RtnCode Int

  • Return codes to indicate whether the API is successfully executed or not.
  • 1 is success, others are failure.

RtnMsg String(200)

Return messages to indicate whether the API is successfully executed or not.

Example

				
					{
   "RtnCode": 1,
   "RtnMsg": "Success"
}
				
			
❗ Special Notes : 
  1. If the e-invoice has been allowanced, it cannot be canceled or invalidated directly. Please confirm that all of its allowance slips have been canceled before.

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

Green World