Ticketing Operations / Ticket Redemption

Scenario

This API provides the functionality of ticket redemption or cancellation of redemption.

API URLs

  • Stage: https://ecticket-stage.ecpay.com.tw/api/Ticket/WriteOff
  • Production: https://ecticket.ecpay.com.tw/api/Ticket/WriteOff

Message format

  • Accept:text/html
  • Content Type:application/json
  • HTTP Method:POST

Request (JSON format)

PlatformID String(10)

Platform ID

  • This is used by platform merchants and will be provided by ECPay.
  • For platform merchants, please populate with [MerchantID].
  • For general merchants, please set as null.

MerchantID String(10)
Required

Merchant ID (provided by ECPay)

RqHeader Object
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 and verify the time interval of this API call.

❗ Special Note

  • ECPay will verify the timestamp.If ECPay receives the request is more 10 minutes late than the timestamp, the transaction will be failed.
  • Merchants are suggested to synchronize the time of a computer on client- or server-side to another server or nearest reference time source.
  • For more details can be seen here; another online tool can be found here.

Data Object
Required

Payload of JSON that has been encrypted.

CheckMacValue String
Required

Checksum

Request Example (JSON format)

				
					{
    "PlatformID": "3002599",
    "MerchantID": "2000132",
    "RqHeader": {
        "Timestamp": 1525168923
    },
    "Data": "…",
    "CheckMacValue": "…"
}

				
			

Message payload of Data (JSON format)

❗ Special note: Please urlencode the JSON string firstly and then do AES encryption.

MerchantID String(10)
Required

Merchant ID (provided by ECPay)

WriteOffNo String(18)
Required

Each ticket will have a unique redemption code that can be obtained by scanning the barcode of the ticket presented by the consumer.

Action String(1)
Required

Action type

  • 1: Redemption
  • 2: Cancel redemption

❗ Special Note

  • The gift voucher cannot be canceled once redeemed.

CancelReason String(50)

Reason for cancellation of redemption.

When the action is to cancel redemption, the reason for cancellation can be provided.

StoreID String(20)

This is the branch responsible for ticket redeem or cancellation. When this parameter is provided, the system will check if the branch exists and is in an active state. It will also determine if the branch has the authority to perform ticket redeem or cancellation. If no authorization control is required, please do not fill in this field.

❗ Special Note

  • Please create the branch information in the 【ECPay Vendor’s Management System】 first and then provide us with the branch number.
    ※How to create branch data? Please refer to the Ticket Issuance Management Platform Operation Manual. (Page.35~Page.43)
  • Limited to English letters and numbers only, and full-width characters are not allowed.
  • The length is restricted to 2 to 20 characters.
  • When the field is empty, it indicates that this record is issued by the main branch.

Operator String(10)
Required 

Execution personnel for ticket redemption or cancellation, this field is for historical record only.

❗ Special Note

  • The value of this parameter is a combination of upper and lower case alphanumeric characters,and do not use full-width fonts.

Data Example (JSON format)

				
					{
    "MerchantID": "2000132",
    "WriteOffNo":"LEU4loiSZ9TDTWAtxL",
    "Action":"1",
    "CancelReason":"",
    "Operator":"LeoWang"
}

				
			

Response (JSON format)

PlatformID String(10)

Platform ID

MerchantID String(10)

Merchant ID

RpHeader Object

Response header

Timestamp Number

Unix timestamp

TransCode Int

Response codes to indicate whether the payload is successfully accepted.

  • 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

Payload of JSON that has been encrypted.

CheckMacValue String

Checksum

Response Example (JSON format)

				
					{
    "PlatformID": "3002599",
    "MerchantID": "2000132",
    "RpHeader": {
        "Timestamp": 1525169058
    },
    "TransCode": 1,
    "TransMsg": "",
    "Data": "…",
    "CheckMacValue": "…"  
}

				
			

Message payload of Data (JSON format)

RtnCode Int

Response codes to indicate whether the API is successfully executed or not.

  • 1: API is successfully executed.
  • Others: failed.
  • For more details please see error codes.

RtnMsg String(200)

Response messages.

Data Example(JSON format)

				
					{
    "RtnCode": 1,
    "RtnMsg": "Success"
}

				
			

❗ Special Note:

  1. The redemption process of ECPay is scheduled to be processed at 00:00 every day. Once the redemption is completed, it cannot be cancelled after 00:00 the next day.
  2. To match the operation of the bank’s system, the data of the daily ticket redemption will be updated to the fund custody system on the next day.

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

Green World