Scenarios
If the API request is successful, a URL will be returned (InvoiceHtml). Place this URL into the address bar of a browser, and the e-invoice will be displayed, which could be printed or to be saved in image or in PDF file.
API URLs:
- Stage: https://einvoice-stage.ecpay.com.tw/B2BInvoice/InvoicePrint
- Production: https://einvoice.ecpay.com.tw/B2BInvoice/InvoicePrint
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.
MerchantID String(10)
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
MerchantID String(10)
Required
- 0: Sales invoice (check the invoice details issued by the shop to the counterparty) – (default)
- 1: Incoming invoice (check the details of invoices issued by the counterparty to the shop)
InvoiceNo String(10)
Required
The e-invoice numbers
- The data includes 2 letter track alphabets (i.e. InvoiceHeader) and 8 digits.
InvoiceDate String(20)
Required
Date of e-invoice created
- Format: yyyy-MM-dd
PrintStyle Int
The formatting of e-invoice (i.e. how you want the e-invoice to be printed.)
- Values including:
- 1: A4 printing (default)
- 2: A5 printing
Example
{
"MerchantID": "2000132",
"InvoiceNo": "UV11100016",
"InvoiceDate": "2018-10-28"
}
Response format
- Content Type :application/json
- HTTP Method :POST
Response by ECPay (Json format)
PlatformID String(10)
MerchantID String(10)
Required
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.
- Possible values:
- 1: API is successfully executed.
- Others: failed.
RtnMsg String(200)
Return messages to indicate whether the API is successfully executed or not.
InvoiceHtml String(500)
The URL is valid for 1 hour from the time of calling this print API
Example
{
"RtnCode": 1,
"RtnMsg": "成功",
"InvoiceHtml": "https://aa.aa.aa"
}