Reference
acquirer
What is it?
Your acquirer or payment processor for this particular merchant involved in the transaction.
When using Reconciliation API and would like to search by acquirer, please put the bank name with the following parameter name in the request body.
Bank | Name |
---|---|
Cathay United Bank | TW_CATHAY |
E.SUN BANK | TW_ESUN |
Taishin Bank | TW_TAISHIN |
CTBC BANK | TW_CTBC |
Bank SinoPac | TW_NEW_SINOPAC |
KGI BANK | TW_KAIGI |
TAIWAN COOPERATIVE BANK | TW_TCB |
First Bank | TW_FIRST |
National Credit Card Center of R.O.C. | TW_NCCC |
NewebPay | TW_SPGATEWAY |
Taipei Fubon Bank | TW_FUBON |
SUNNY BANK | TW_SUNNY |
BANK OF CHINA | HK_BOC |
UNION BANK OF TAIWAN | TW_UBOT |
RAZER PAY | MY_MOLPAY |
CHANG HWA Bank | TW_CHB |
globalpayments | US_GLOBAL_PAYMENTS |
LINE Pay | TW_LINE_PAY |
JKOPAY | TW_JKO_PAY |
Easy Wallet | TW_EASY_WALLET |
Atome | TW_ATOME |
Pi Wallet | TW_PI_WALLET |
Plus Pay | TW_PLUS_PAY |
Related topics
amount
What is it?
Total price for a particular transaction.
For refunds, a smaller than original amount is acceptable if partial refund is requested.
TWD:Lower limit of each transaction is NTD 1, upper limit of each transaction is NTD 20,000,000. Please fill in 1 when the transaction is TWD 1.
HKD:Lower limit of each transaction is HKD 0.01, upper limit of each transaction is HKD 252,500. Please fill in 101 when the transaction is HKD 1.01
MYR:Lower limit of each transaction is MYR 0.01, upper limit of each transaction is MYR 135,000. Please fill in 101 when the transaction is MYR 1.01
USD limit of each transaction is USD 0.01, upper limit of each transaction is USD 33,169. Please fill in 101 when the transaction is USD 1.01
Related topics
payByPrime
payByToken
Refund
trade_records
Partial Refund
amount(filter)
What is it?
A filter that allows you to obtain trade records within a specific price range.
Foreign currency amount include two decimal places (e.g 100 representative 1.00).
There are two parameters:
Name | Type(Max) | Usage |
---|---|---|
upper_limit | int | Upper bound for the price |
lower_limit | int | Lower bound for the price |
Related topics
appid
What is it?
An integer identifier for your application or website.
This is used to activate your application or website in order to start using our services.
You can find it via Portal > Developer > Application.
Related topics
TPDSetup.initInstance()
TPDirect.setupSDK()
appKey
serverType
TPDServerType
appKey
What is it?
An authenticator key for your application or website.
This is used to activate your application or website in order to start using our services.
You can find it via Portal > Developer > Application.
Related topics
TPDSetup.initInstance()
TPDirect.setupSDK()
appid
serverType
TPDServerType
appname
What is it?
Name for the application or website as defined on Portal.
Related topics
rec_trade_id
auth_code
merchant_id
merchant_name
time
amount
refund_amount
record_status
trade_records
attribute
What is it?
Criteria for sorting the records.
It may contain the following values:
Value | Usage |
---|---|
time | Sort by the transaction time |
amount | Sort by the transaction amount |
Related topics
order_by
is_descending
time
amount
auth_code
Proof of authorized transaction from the bank.
Related topics
payByPrime
payByToken
trade_records
bank_id
What is it?
Name | bank_id |
---|---|
CTBC Bank | 822 |
Taishin Bank | 812 |
E.SUN Bank | 808 |
Cathay Bank | 013 |
Mega Bank | 017 |
Standard Chartered | 052 |
KGI BANK | 809 |
UBOT | 803 |
JIHSUNBANK | 815 |
EnTie Bank | 816 |
Yuanta Bank | 806 |
THE SHANGHAI COMMERCIAL & SAVINGS BANK, LTD. | 011 |
Bank SinoPac | 807 |
THE SHANGHAI COMMERCIAL & SAVINGS BANK, LTD., LTD. | 103 |
Hwatai Bank | 102 |
Bank of Communications | 003 |
TAIWAN COOPERATIVE BANK | 006 |
Taiwan Business Bank | 050 |
King’s Town Bank | 054 |
HSBC | 081 |
Sunny Bank | 108 |
Cota Commercial Bank | 147 |
First Bank | 007 |
CHUNGHWA POST CO. | 700 |
The Chinese Bank | 804 |
Ta Chong Bank | 814 |
Bank of Taiwan | 004 |
HUA NAN BANK | 008 |
TAIPEI Taipei Fubon Bank CO. | 012 |
Agricultural Bank of Taiwan | 018 |
O-BANK CO. | 048 |
Far Eastern International Bank | 805 |
Wantai Bank | 809 |
Land Bank Of Taiwan | 005 |
Chang Hwa Bank | 009 |
Citibank | 021 |
Taichung Bank | 053 |
The Bank of East Asia Limited | 075 |
Bank of Panhsin | 118 |
DBS BANK (TAIWAN), LTD | 810 |
backend_notify_url
What is it?
The backend URL of the merchant server to receive the transaction result. Must start with https.
The following are the main reasons that cause the status of the transaction become “pending”: customer didn’t finish the verification, customer improper operation or abnormal connection between TapPay and acquirer. (In these situations, merchant will not receive backend notify from TapPay.)
Status Checking for Pending Transaction
10-20 minutes after the order is established, TapPay will check the status with the bank for pending payments, which will check utmost two times for each transaction.
While getting the status “Authorized SUCCESS” from the bank, TapPay will update the status on the portal and send Backend Notify to the merchant. Otherwise, we will stop checking with the bank and the status will remain pending on the portal.
Banks we have pending Status Checked |
---|
TAISHIN BANK E.SUN BANK CATHAY UNITED BANK NewebPay National Credit Card Center of R.O.C. TAIPEI FUBON BANK RAZER PAY BANK SinoPac CHANG HWA BANK |
Wallet we have pending Status Checked |
---|
JKOPAY EASY WALLET Pi Wallet Plus Pay |
bank_order_number
What is it?
The order number that banks or e-wallets send back while authorization.
Name of bank / e-wallet | Length |
---|---|
Easy Wallet | 30 |
Pi Wallet | 20 |
bank_refund_order_number
What is it?
The refund order number that banks or e-wallets send back while refund.
Name of bank / e-wallet | Length |
---|---|
Easy Wallet | 30 |
Atome | 30 |
Pi Wallet | 14 |
Plus Pay | 64 |
bank_transaction_id
What is it?
A self-defined unique identifier for the bank.
It should consist of numbers and uppercase letters only.
If it is not defined during payment, we will automatically generate one for you.
If you wish to define this parameter, please note that each bank may impose different restrictions on length:
Name | Maximum Length | Spec |
---|---|---|
E.SUN BANK | 20 | Not Support: _ |
Taishin Bank | 23 | |
CTBC BANK | 19 | Only Support: English alphabets, numbers and _ |
Bank SinoPac | 40 | |
Taipei Fubon Bank | 25 | |
LINE Pay | 40 | |
KGI BANK | 40 | |
UNION BANK OF TAIWAN | 40 | |
Cathay United Bank | 20 | Only Support: Capital letters and numbers |
TAIWAN COOPERATIVE BANK | 19 | |
First Bank | 19 | |
National Credit Card Center of R.O.C. | 40 | Not Support: Chinese |
NewebPay | 20 | |
SUNNY BANK | 19 | |
BANK OF CHINA | 40 | |
RAZER PAY | 32 | |
JKOPAY | 40 | |
Easy Wallet | 50 | |
CHANG HWA Bank | 19 | |
globalpayments | 40 | |
Atome | 40 | |
Pi Wallet | 30 | |
Plus Pay | 40 |
Related topics
payByPrime
payByToken
trade_records
rec_trade_id
bank_transaction_end_millis
What is it?
Time when the bank actually begins processing the transaction.
Related topics
bank_transaction_start_millis
What is it?
Time when the bank finishes processing the transaction.
Related topics
bank_transaction_time
What is it?
Time when the bank handles the transaction.
There are two parameters:
Name | Type | Usage |
---|---|---|
start_time_millis | String | Start time. |
end_time_millis | String | End time. |
Related topics
start_time_millis
end_time_millis
card_identifier(filter)
What is it?
Name | Type | Content |
---|---|---|
card_identifier | String | Use card_identifier filter transaction records. |
card
What is it?
The JSONObject returned by TPDirect.card.createToken().
It contains the prime token as well as the last four digits of the customer’s card.
Related topics
TPDirect.card.createToken()
status
client_ip
prime
last_four
cardholder
What is it?
Information of the owner of the card. It should contain the following keys:
Name(* = required) | Type(Max) | Usage |
---|---|---|
phone_number* | String(40) | Cellphone number, E. 164 format with the ’+’ sign(“+886923456789”) |
name* | String(40) | Name |
email* | String(40) | E-mail address |
zip_code | String(40) | Zip code number |
address | String(90) | Billing address |
national_id | String(40) | National ID |
Optional keys should still have the corresponding keys present, but you may have empty strings as their values.
i.e. zip_code: “”, address: “”, national_id: “”
The key value that must be verified of each supported bank.
Support Bank | Key Value | Note |
---|---|---|
NCCC | national_id | If this is a property and life insurance transaction , we strongly recommend you to do the identity verification (KYC). If using the merchant id only can do authentication except authorization, phone number can be verified |
Taishin Bank | national_id | If the issuer bank of the card is Taishin Bank, phone_number can be verified. (Please use the phone number with 09XX-XXX-XXX to avoid any error.) |
E.SUN Bank (only support on-us card) | national_id | |
TapPay | phone_number | The phone number must start with 09, otherwise it will cause KYC failed. Phone number identity authentication for card-on-file only support Visa, MasterCard and JCB cards that issued in Taiwan, other cards will authorization directly. |
Related topics
cardholder(filter)
What is it?
A filter that allows you to obtain trade records within a specific card holder.
There are three parameters:
Name | Type | Content |
---|---|---|
name | String | Name |
phone_number | String | Cellphone number |
String | E-mail address |
Related topics
card_info
What is it?
Information of the card being charged.
It should contain the following keys:
Name | Type(Max) | Content |
---|---|---|
bin_code | String(6) | First six digits of the card |
last_four | String(4) | Last four digits of the card |
issuer | String | Card issuer |
issuer_zh_tw | String | Issuer chinese name |
bank_id | String | Bank identifier |
funding | int | Card usage -1 = Unknown 0 = credit card 1 = debit card 2 = prepaid card |
type | int | Card type -1 = Unknown 1 = VISA 2 = MasterCard 3 = JCB 4 = Union Pay 5 = AMEX |
level | String | Card level |
country | String | Country of card issuer |
country_code | String | Country code of card issuer |
expiry_date | String | Card expired date, Format : YYYYMM, Only will return when remember = true ( Apple Pay / Google Pay / LINE Pay / Samsung Pay will not return this parameter ) |
Related topics
card_info
What is it?
Information of the card being charged.
It should contain the following keys:
Name | Type(Max) | Content |
---|---|---|
bin_code | String(6) | First six digits of the card |
last_four | String(4) | Last four digits of the card |
issuer | String | Card issuer |
funding | int | Card usage -1 = Unknown 0 = credit card 1 = debit card 2 = prepaid card |
type | int | Card type -1 = Unknown 1 = VISA 2 = MasterCard 3 = JCB 4 = Union Pay 5 = AMEX |
level | String | Card level |
country | String | Country of card issuer |
country_code | String | Country code of card issuer |
expiry_date | String | Card expired date, Format : YYYYMM, Only will return when remember = true ( Apple Pay / Google Pay / LINE Pay / Samsung Pay / Atome / Pi Wallet will not return this parameter ) |
token_status | String | Token Status: ACTIVE/ SUSPENDED/ DELETED |
Related topics
card_key
What is it?
A security key used to encrypt the card_token.
This is returned in the card_secret object of payByPrime API if and only if the remember parameter is set to true.
You may use the card key and token to pay using the payByToken API, and thus avoid getting a prime token and calling payByPrime entirely.
Related topics
payByPrime
payByToken
card_token
remember
cardNumber
What is it?
A 16 digits number of the credit card.
Related topics
TPDCard
TPDirect.card.createToken()
dueMonth
dueYear
CCV
Test Card
card_secret
What is it?
A JSONObject that contains the customer’s card_key and card_token.
Name | Type(Max) | Content |
---|---|---|
card_key | String(64) | A security key used to encrypt the card_token. |
card_token | String(67) | A permanent token that represents the customer’s card. |
This is returned in payByPrime API only if the remember parameter is set to true.
Next time, you may use the returned card_key and token to pay using the payByToken API, and thus avoid getting a prime token and calling payByPrime entirely.
Related topics
payByPrime
payByToken
card_key
card_token
remember
card_token
What is it?
A permanent token that represents the customer’s card.
This is returned in the card_secret array of payByPrime API if and only if the remember parameter is set to true.
You may use the card_key and token to pay using the payByToken API, and thus avoid getting a prime token and calling payByPrime entirely.
Related topics
payByPrime
payByToken
card_key
remember
CCV
What is it?
A 3 digits security code found on the back of the credit card.
It is also known as CVV, or Card Verification Value.
Related topics
TPDCard
TPDirect.card.createToken()
cardNumber
dueMonth
dueYear
Test Card
client_ip
What is it?
IP address of the client.
Related topics
TPDirect.card.createToken()
status
card
currency
What is it?
The letter abbreviation for currency, following ISO 4217.
For example, New Taiwan Dollars = “TWD”
Bank | Support currency |
---|---|
CTBC BANK | Taiwan New Dollar(TWD) |
E.SUN BANK | Taiwan New Dollar(TWD) |
Taishin Bank | Taiwan New Dollar(TWD) |
Cathay United Bank | Taiwan New Dollar(TWD) |
Bank SinoPac | Taiwan New Dollar(TWD) |
KGI BANK | Taiwan New Dollar(TWD) |
TAIWAN COOPERATIVE BANK | Taiwan New Dollar(TWD) |
First Bank | Taiwan New Dollar(TWD) |
NCCC | Taiwan New Dollar(TWD) |
NewebPay | Taiwan New Dollar(TWD) |
Taipei Fubon Bank | Taiwan New Dollar(TWD) |
SUNNY BANK | Taiwan New Dollar(TWD) |
UNION BANK OF TAIWAN | Taiwan New Dollar(TWD) |
BANK OF CHINA | Hong Kong Dollar(HKD) |
RAZER PAY | Malaysia Dollar(MYR) |
Global Payments | Taiwan New Dollar(TWD), US Dollar (USD) |
LINE Pay | Taiwan New Dollar(TWD) |
JKOPAY | Taiwan New Dollar(TWD) |
Easy Wallet | Taiwan New Dollar(TWD) |
Atome | Taiwan New Dollar(TWD) |
Pi Wallet | Taiwan New Dollar(TWD) |
Plus Pay | Taiwan New Dollar(TWD) |
Related topics
delay_capture_in_days
What is it?
The number of days between the time bank authorizes the payment and the time bank actually captures the payment.
You may wish to extend this period up to 7 days.
If you wish to capture the payment yourself, use -1 as the value to disable automatic capture.
When you call Cap Today API, TapPay will send the capture request to the banks on the same day. To confirm whether the captured is succeed, we suggest you check the transaction status on TapPay Portal or call Record API to double confirm the transaction status after 9 am on the next day.
Related topics
details
What is it?
List of product/service purchased in the transaction.
This field will appear in the bank system.
Banks | Contant | |||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
CTBC BANK | Limit 18 Character, the encoding method should be Big-5, or the unsupported characters will be deleted. | |||||||||||||||
Sunny Bank | Limit 18 Character. | |||||||||||||||
Taishin Bank | Limit 40 Character. | |||||||||||||||
NewebPay | Limit 50 Character. | |||||||||||||||
Cathay United Bank | Not support this field. | |||||||||||||||
E.SUN BANK | Not support this field. | |||||||||||||||
KGI BANK | Not support this field. | |||||||||||||||
Bank SinoPac | Not support this field. | |||||||||||||||
TAIWAN COOPERATIVE BANK | Not support this field. | |||||||||||||||
First Bank | Not support this field. | |||||||||||||||
NCCC | Not support this field. | |||||||||||||||
Atome | The limitation of the length is 500. Format Example: [{"item_id":"apple123","item_name":"apple","item_quantity":1,"item_price":10}] Note: Need to convert string format before put into details field, Example: {"details": "[{\"item_id\":\"apple123\",\"item_name\":\"apple\",\"item_quantity\":1,\"item_price\":10}]"}
|
|||||||||||||||
Pi Wallet | The limitation of the length is 500. Format Example: [{"item_name":"apple","item_quantity":1,"item_price":10}] Note: Need to convert string format before put into details field, Example: {"details": "[\"item_name\":\"apple\",\"item_quantity\":1,\"item_price\":10}]"}
|
Related topics
dueMonth
What is it?
A 2 digits number of expired month of the credit card.
It should be one of the following values:
Month | Value |
---|---|
January | 01 |
February | 02 |
March | 03 |
April | 04 |
May | 05 |
June | 06 |
July | 07 |
August | 08 |
September | 09 |
October | 10 |
November | 11 |
December | 12 |
Related topics
TPDCard
TPDirect.card.createToken()
cardNumber
dueYear
CCV
Test Card
dueYear
What is it?
A 2 digits number of expired year of the credit card.
It should be the last two digits of the expired year. i.e. “2019” -> “19”
Related topics
TPDCard
TPDirect.card.createToken()
cardNumber
dueMonth
CCV
Test Card
extra_info
What is it?
Installment extra information , each banks return different parameter please refer to the table.
Banks | Name | Type | Content |
---|---|---|---|
Taishin Bank | install_order_no | String | Instalment serial number |
install_period | String | Instalment period | |
install_pay_fee | String | Each period fee | |
install_pay | String | Each period amount | |
install_down_pay | String | First period amount | |
install_down_pay_fee | String | First period fee | |
National Credit Card Center of R.O.C. | installment | String | Instalment period |
installment_type | String | Instalment payment fee type | |
first_amt | String | First period amount | |
each_amt | String | Each period amount | |
fee | String | Instalment payment fee | |
NewebPay | inst | Integer | Instalment period |
inst_first | Integer | First period amount | |
inst_each | Integer | Each period amount | |
Cathay United Bank | period_number | String | Instalment period |
E.SUN BANK | ITA | String | Instalment total amount |
IP | String | Instalment period | |
IPA | String | Each period amount | |
IFPA | String | First period amount | |
UNION BANK OF TAIWAN | period | String | Instalment period |
rate | String | Instalment payment rate(fixed 0000) | |
downPaymentAmt | String | First period amount | |
eachPaymentAmt | String | Each period amount | |
interestAmt | String | Instalment payment fee(NTD) |
Error Handling
Backend API error code and error handling
status | msg | Error Handling |
---|---|---|
92 | The acquirer doesn’t support void auth date is different from the auth date. | The Acquiring Bank only supports execute voiding authorization on the same day as authorization. Please execute refund after capping |
filters
What is it?
Ways for you to filter the trade records.
All of the filters are optional.
There are several ways to filter:
Name | Type(Max) | Default | Rules |
---|---|---|---|
time | JSONObject | Time frame should be 90 days or less. | |
amount | JSONObject | {“upper_limit”: no limit, “lower_limit”: 0} | |
merchant_id | String array | ||
record_status | int | ||
rec_trade_id | String(20) | ||
tsp | String | ||
card_identifier | String |
Related topics
time(filter)
amount(filter)
merchantid(filter)
record_status
rec_trade_id
final_price
What is it?
Insurance price
The sum of all insurance price should equal to the number you set in the amount of Pay by Prime API.
Related topics
frontend_redirect_url
What is it?
The frontend website URL of the merchant where the customer will be brought to after finishing transaction process on LINE Pay, JKOPAY APP, Atome, Pi Wallet, Plus Pay or 3D verification. This URL must start with https.
geoLocation
What is it?
The location of the client in latitude and longitude.
The format should be “(Latitude, Longitude)” or “UNKNOWN”. i.e. (12.345678, -12.345678)
Related topics
instalment
What is it?
Number of intervals of payments for a particular transaction.
If you do not offer instalment service, default set this value as 0.
Related topics
insurance_type
What is it?
Insurance type
Code | Type |
---|---|
A01 | life insurance |
A02 | accident insurance |
A03 | medical insurance |
A04 | cancer insurance |
A05 | critical illness insurance |
A06 | disability insurance |
B01 | travel accident insurance |
B02 | fire insurance |
B03 | motorcycle insurance |
B04 | auto insurance |
B05 | marine insurance |
B06 | casualty Insurance |
B07 | engineering insurance |
B08 | accident & health insurance |
B09 | combination |
Related topics
insured
What is it?
National id of insured
Related topics
is_descending
What is it?
Criteria for sorting the records.
It may contain the following values:
Value | attribute Value | Usage |
---|---|---|
true | time | Sort from newest record to oldest record |
true | amount | Sort from most expensive record to least expensive record |
false | time | Sort from oldest record to newest record |
false | amount | Sort from least expensive record to most expensive record |
Related topics
order_by
is_descending
time
amount
last_four
What is it?
The last four digits of the customer’s card.
Related topics
merchant_id
What is it?
An identifier for each individual merchant.
It should consists of less than 50 alphanumeric characters.
You need to specify the merchants involved in the transaction during payment APIs.
Related topics
payByPrime
payByToken
Record
merchant_id(filter)
trade_records
merchant_id(filter)
What is it?
A filter that allows you to obtain trade records with specific merchant ID.
You may search with multiple merchant IDs at once by putting them in an array.
Related topics
merchant_name
What is it?
Name for each individual merchant as defined on Portal.
Related topics
rec_trade_id
auth_code
merchant_id
appname
time
amount
refund_amount
record_status
trade_records
millis
What is it?
Time of transaction measured in milliseconds.
Please see https://currentmillis.com for more detail.
Related topics
msg
What is it?
The error message that explains which error the status corresponds to.
Please refer to our error table.
Related topics
TPDCard.createToken()
payByPrime
payByToken
Refund
Record
onFailureCallBack
status
number_of_transactions
What is it?
Total number of transactions.
Related topics
onFailureCallBack()
What is it?
A callback method for the createToken() method in TPDCard.
It is invoked when the method fails and returns the status and error message.
Related topics
TPDCard.createToken()
onSuccessCallBack()
status
msg
onSuccessCallBack()
What is it?
A callback method for the createToken() method in TPDCard.
It is invoked when the method is successful and returns the prime token and the last four digits of the customer’s card number.
Related topics
TPDCard.createToken()
onFailureCallBack()
prime
lastfour
order_by
What is it?
Criteria for sorting the records.
It is a JSONObject with the following keys:
Name | Type | Default Values | Possible Values |
---|---|---|---|
attribute | String | time | time amount |
is_descending | boolean | true | true false |
Related topics
Record
partner_key
records_per_page
page
filters
attribute
is_descending
order_number
What is it?
A self-defined identifier for each transaction, for TapPay to identify transaction.
This parameter doesn’t allow null.
Related topics
payByPrime
payByToken
filters
trade_records
original_amount
What is it?
The original amount of the transaction.
This value will not change even if the transaction was refunded.
Related topics
page
What is it?
A parameter that determines which page of the total records you wish to see.
This parameter starts from 0 and the default value is also 0.
The number of records for each page is defined by the records_per_page parameter.
For example, if the total number of records is 400, and records_per_page is set to 200, then page 0 will display record 1~200, and 201~400 on page 1.
Had the parameter records_per_page been set to 50, then there would be 4 pages.
1~50 on page 0, 51~100 on page 1, 101~150 on page 2, and 151~200 on page 3.
Related topics
Partial Refund
What is it?
Partial refund could only be executed after captured successfully.
Payment process is as follows:
Transaction happens > Payment is captured based on delay_capture_in_days > Partial refund is available only after captured successfully
e.g. A transaction happened on October 9th.
If the delay_capture_in_days parameter is 0, then the transaction will be captured on the same day. However, Partial refund only could be executed after captured successfully.
e.g. A transaction happened on October 9th.
If the delay_capture_in_days parameter is 3, then the transaction will be captured on October 12th. Therefore, partial refund is available starting from October 13th if the transaction has been successfully captured.
*If it shows “capture successfully” from TapPay, but couldn’t do partial refund. Please try it again one day after due to the bank issue.
Related topics
partner_key
What is it?
An authentication key for each individual partner.
You must always put this in your header as the value of “x-api-key” when calling TapPay server API.
You can find it via Portal > Information
Related topics
payByPrime
payByToken
Refund
Record
x-api-key
payByPrime
What is it?
An API that allows you to pay using the prime token.
You would need to use this API to pay if the customer hasn’t registered his or her card before or does not wish to save his or her card.
Related topics
TPDCard.createToken()
payByToken
prime
partner_key
merchant_id
amount
currency
details
cardholder
instalment
remember
status
msg
rec_trade_id
auth_code
card_secret
card_info
acquirer
millis
x-api-key
payByToken
What is it?
An API that allows you to pay using the card_token and card_key.
You could use this API to pay if the customer allows you to save card information, so you can skip the creatToken step.
Related topics
payByPrime
card_key
card_token
partner_key
merchant_id
amount
currency
details
instalment
status
msg
rec_trade_id
auth_code
cardinfo
acquirer
millis
x-api-key
partial_card_number
What is it?
First six digits of the card and last four digits of the card
Related topics
payment_deadline
What is it?
Payment deadline
Related topics
payment_frequency
What is it?
Payment frequency
Value | Type |
---|---|
0 | Lump-sum payment |
1 | Monthly payment |
3 | Quarterly payment |
6 | Semi-annually payment |
12 | Annually payment |
Related topics
policy_id
What is it?
Policy id, self-defined
Related topics
prime
What is it?
A one-time token that represents a customer’s card.
It is a token returned by TPDirect.card.createToken() or the onSuccessCallBack() of TPDCard.createToken().
You would need this token to pay in the payByPrime API.
This token will expire after 90 seconds upon creation.
If using Apple Pay Deferred Payments, please keep prime by yourself.
The duration of each prime is set up for 30 days as default. It will be used by calling Pay By Prime API.
You can use this prime for test in sandbox environment.
Related topics
TPDirect.card.createToken()
TPDCard.createToken()
onSuccessCallBack()
card
last_four
payByPrime
proposer
What is it?
National id of proposer
Related topics
Production
What is it?
The official environment that charges customer’s cards for transactions.
You product should be in this environment when it officially launches and goes live.
You can specify the environment for your application during TPDSetup.initInstance().
You can specify the environment for your website during TPDirect.setupSDK().
Things to remember:
1. Register your merchants in the production environment on Portal and use the official bank’s acquirer account.
2. Register your IP in the production environment on Portal.
3. Use the production app key instead of the sandbox one.
4. When setting the Frontend environment, change the server type to production.
5. The Backend APIs should use the production domain instead of the sandbox one.(https://sandbox.tappaysdk.com/tpc/ -> https://prod.tappaysdk.com/tpc/)
Related topics
TPDSetup.initInstance()
TPDirect.setupSDK()
TPDServerType
serverType
Sandbox
product_image_url
What is it?
The picture of the store or the product on the pay page. The feature of this parameter is same as line_pay_product_image_url. However, if you set both product_image_url and line_pay_product_image_url in the request, we will use the url in product_image_url.
Name | Length | image size |
---|---|---|
LINE Pay | 500 | 84 x 84 |
Record
What is it?
An API that allows you to get previous trade records.
Related topics
partner_key
records_per_page
page
filters
order_by
status
msg
total_page_count
trade_records
x-api-key
number_of_transactions
records_per_page
What is it?
A parameter that determines how many records would be returned for calling the Record API.
The default amount is 50 and the maximum amount is 200.
For example, if the total number of records is 400, and records_per_page is set to 200, then there would be 2 pages total.
Page 0 will display record 1~200, and 201~400 for page 1.
Related topics
Redeem extra_info
What is it?
Redeem extra information , each banks return different parameter please refer to the table.
Banks | Name | Type | Content |
---|---|---|---|
National Credit Card Center of R.O.C. | redeem_used | String | Points be used |
credit_amt | String | Amount Due | |
redeem_balance | String | Points balance | |
redeem_type | String | 1 : Points be partial used 2 : Points be total used |
record_status
What is it?
Status of a particular transaction.
Here is a list of possible values:
Value | State | Status |
---|---|---|
-1 | ERROR | An error has occurred to the transaction. |
0 | AUTH | The bank has authorized the transaction, but yet to capture the payment. |
1 | OK | The transaction is complete. |
2 | PARTIALREFUNDED | The transaction is partially refunded. |
3 | REFUNDED | The transaction has been completely refunded. |
4 | PENDING | The transaction is pending. |
5 | CANCEL | The transaction is cancel. |
Related topics
rec_trade_id
What is it?
A unique identifier for each transaction generated by TapPay server.
You would need this identifier when you attempt to refund a particular transaction.
It is returned by our server after calling a successful payment API.
Related topics
payByPrime
payByToken
Refund
filters
trade_records
Refund
What is it?
An API that allows you to refund transaction, fully or partially.
Related topics
partner_key
rec_trade_id
amount
status
msg
refund_amount
x-api-key
Partial Refund
refunded_amount
What is it?
The actual amount refunded returned by our server.
Related topics
remember
What is it?
The boolean value that determines whether or not the card information should be saved or not.
If a customer allows you to save his or her card, you can set this value to true to receive the card_key and card_token, so you can use these two values to pay in the future instead of the prime token.
Related topics
Sandbox
What is it?
A type of environment that has all the functions of a production environment except no money will be charged for the transactions.
You should first test your application or website in this environment before you move on to the production environment.
You can specify the environment for your application during TPDSetup.initInstance().
You can specify the environment for your website during TPDirect.setupSDK().
Related topics
TPDSetup.initInstance()
TPDirect.setupSDK()
TPDServerType
serverType
Production
Web SDK compatibility
Safari | Direct pay | Apple pay | Google pay (Real Card) | Google Pay (Token Card) | PaymentRequestAPI | LINE Pay | Samsung Pay | JKOPAY |
---|---|---|---|---|---|---|---|---|
Mac Safari | O | O | O | X | X | O | X | O |
iOS Safari | O | O | O | X | X | O | X | O |
Chrome | Direct pay | Apple pay | Google pay (Real Card) | Google Pay (Token Card) | PaymentRequestAPI | LINE Pay | Samsung Pay | JKOPAY |
---|---|---|---|---|---|---|---|---|
Mac Chrome | O | X | O | X | O | O | O | O |
Windows Chrome | O | X | O | X | O | O | O | O |
iOS Chrome | O | X | O | X | X | O | O | O |
Android Chrome | O | X | O | O | O | O | O | O |
FireFox | Direct pay | Apple pay | Google pay (Real Card) | Google Pay (Token Card) | PaymentRequestAPI | LINE Pay | Samsung Pay | JKOPAY |
---|---|---|---|---|---|---|---|---|
Mac FireFox | O | X | O | X | X | O | O | O |
Windows FireFox | O | X | O | X | X | O | O | O |
iOS FireFox | O | X | X | X | X | X | O | O |
Android FireFox | O | X | O | X | X | O | O | O |
Opera | Direct pay | Apple pay | Google pay (Real Card) | Google Pay (Token Card) | PaymentRequestAPI | LINE Pay | Samsung Pay | JKOPAY |
---|---|---|---|---|---|---|---|---|
Mac Opera | O | X | O | X | O | O | O | O |
Windows Opera | O | X | O | X | O | O | O | O |
iOS Opera | O | X | X | X | X | O | X | O |
Android Opera | O | X | O | X | X | O | X | O |
Edge | Direct pay | Apple pay | Google pay (Real Card) | Google Pay (Token Card) | PaymentRequestAPI | LINE Pay | Samsung Pay | JKOPAY |
---|---|---|---|---|---|---|---|---|
Windows Edge | O | X | O | X | X | O | O | O |
IE11 | Direct pay | Apple pay | Google pay (Real Card) | Google Pay (Token Card) | PaymentRequestAPI | LINE Pay | Samsung Pay | JKOPAY |
---|---|---|---|---|---|---|---|---|
Windows IE11 | O | X | X | X | X | O | X | O |
Facebook Browser | Direct pay | Apple pay | Google pay (Real Card) | Google Pay (Token Card) | PaymentRequestAPI |
---|---|---|---|---|---|
iOS Facebook Browser | O | X | X | X | X |
Android Facebook Browser | O | X | X | X | X |
LINE Browser | Direct pay | Apple pay | Google pay (Real Card) | Google Pay (Token Card) | PaymentRequestAPI |
---|---|---|---|---|---|
iOS LINE Browser | O | X | X | X | X |
Android LINE Browser | O | X | X | X | X |
serverType
What is it?
A value that differentiates sandbox and production environment.
It should be one of the following values:
Value | Usage |
---|---|
sandbox | Sandbox environment |
production | Production environment |
Related topics
TPDSetup.initInstance()
TPDirect.setupSDK()
appid
appKey
TPDServerType
Sandbox
Production
status
What is it?
The response code.
Please refer to our error table.
Related topics
TPDirect.card.createToken()
TPDCard.createToken()
payByPrime
payByToken
Refund
Record
onFailureCallBack
msg
Status Code
What is it?
Status code returned by our JavaScript SDK that depicts the current situation of the card form the customer is filling out:
code | Usage |
---|---|
0 | OK |
1 | EMPTY |
2 | ERROR |
3 | TYPING |
TapPay Fields Styles
What it is?
TapPay Fields Supported CSS Style
color , font , font-family , font-size , font-size-adjust , font-stretch , font-style , font-variant , font-variant-alternates , font-variant-caps , font-variant-east-asian , font-variant-ligatures , font-variant-numeric , font-weight , line-height , outline , opacity , text-shadow , transition , -moz-osx-font-smoothing , -moz-transition , -webkit-font-smoothing , -webkit-transition
Test Card
What is it?
All the test cards below only support the test transaction in the test environment.
To test Token Pay, please use real card in the test environment. You will not be charged if you use real cards to test in the test environment of Token Pay.
Please contact TapPay Support to get the test information of all the wallet pay.
PS: Use a valid future date for card expired year and expired month
Card Number | CCV | Result |
---|---|---|
4242 4242 4242 4242 | 123 | 0 - Success ( type : Visa ) |
3543 9234 8838 2426 | 123 | 0 - Success ( type : JCB ) |
3454 5465 4604 563 | 1234 | 0 - Success ( type : AMEX ) |
5451 4178 2523 0575 | 123 | 0 - Success ( type : MASTERCARD ) Complete three-domain-secure transaction without OTP validation |
6234 5774 3859 4899 | 123 | 0 - Success ( type : UnionPay ) |
4716 3139 6829 4359 | 123 | 0 - Success ( type : Visa ) The bank_id and issuer_zh_tw will be blank, if you test with this test card |
4242 4202 3507 4242 | 123 | 915 - Unknown Error, please contact TapPay customer service |
4242 4216 0218 4242 | 123 | 10003 - Card Error |
4242 4222 0418 4242 | 123 | 10005 - Bank System Error |
4242 4240 1026 4242 | 123 | 10006 - Duplicate Transaction |
4242 4246 1228 4242 | 123 | 10008 - Bank Merchant Account Data Error |
4242 4264 1829 4242 | 123 | 10009 - Amount Error |
4242 4276 2229 4242 | 123 | 10013 - Order number duplicate |
4242 4288 2639 4242 | 123 | 10023 - Bank Error |
4242 4210 0008 4242 | 123 | 10015 = Redeem Failed |
If you would like to test Card Metadata API in the sandbox environment,
you have to use following test cards, which will produce the corresponding result.
Card Number | CCV | Result |
---|---|---|
5480 3543 1215 3777 | 123 | It will return real card face.(Mastercard) token_status=“ACTIVE”, card art status=“SUPPORT”, is_real_card_face=“TRUE” |
4622 9431 2741 6387 | 123 | It will return real card face.(Visa) token_status=“ACTIVE”, card art status=“SUPPORT”, is_real_card_face=“TRUE” |
4242 4217 4599 4242 | 123 | It will return fake card face. (Merchant call card metadata API by an unsupported credit card) token_status=“NOT_SUPPORT”, card art status=“NOT SUPPORT”, is_real_card_face=“FALSE” |
4242 4278 8927 4242 | 123 | It will return fake card face. token_status=“REQUEST_PROCESSING”, card art status=“REQUEST_PROCESSING”, is_real_card_face=“FALSE” |
4242 4230 1382 4242 | 123 | It will return fake card face. token_status=“ACTIVE”, card art status=“NOT_SUPPORT”, is_real_card_face=“FALSE” |
4242 4235 5081 4242 | 123 | It will return fake card face. token_status=“ACTIVE”, card art status=“REQUEST_PROCESSING”, is_real_card_face=“FALSE” |
4242 4246 9569 4242 | 123 | It will return fake card face. token_status=“SUSPENDED”, card art status=“NOT_SUPPORT”, is_real_card_face=“FALSE” |
4242 4253 9494 4242 | 123 | It will return fake card face. token_status=“SUSPENDED”, card art status=“REQUEST_PROCESSING”, is_real_card_face=“FALSE” |
4242 4266 2411 4242 | 123 | It will return fake card face. token_status=“DELETED”, card art status=“NOT_SUPPORT”, is_real_card_face=“FALSE” |
4242 4272 1860 4242 | 123 | It will return fake card face. token_status=“DELETED”, card art status=“REQUEST_PROCESSING”, is_real_card_face=“FALSE” |
4242 4259 9407 4242 | 123 | It will return fake card face. token_status=“DELETED”, card art status=“SUPPORT”, is_real_card_face=“FALSE” |
4242 4264 8626 4242 | 123 | It will return fake card face. (When the transaction was done, but card holder called issuers to delete the card before merchant call Card Metadata API.) token_status=“NOT_SUPPORT”,card art status=“NOT_SUPPORT”, is_real_card_face=“FALSE” |
5455 7339 9439 8399 | 123 | It will return real card face. (This is an unsupported credit card in TSP system, but this card’s real card face is stored in TapPay server) token_status=“NOT_SUPPORT”, card art status=“SUPPORT”, is_real_card_face=“TRUE” |
4242 4241 8178 4242 | 123 | It will return real card face. token_status=“SUSPENDED”, card art status=“SUPPORT”, is_real_card_face=“TRUE” |
If you want to test Card Notify API in sandbox, please use follow test card number:
Card Number | CCV | Result |
---|---|---|
4242 4241 8178 4242 | 123 | token_status=“SUSPENDED”, card art status=“SUPPORT”, is_real_card_face=“TRUE” |
If you want to test identity verification(KYC) in sandbox, please use testing national id and phone number as below.
National id | Phone number |
---|---|
A123456789 | 0912345678 |
Related Topics
cardNumber
dueMonth
dueYear
CCV
time
What is it?
Time of transaction measured in milliseconds.
Please see https://currentmillis.com for more detail.
Related topics
rec_trade_id
auth_code
merchant_id
merchant_name
appname
amount
refund_amount
record_status
trade_records
time(filter)
What is it?
A filter that allows you to obtain trade records from a specific time period.
The key value in the filters of Record API request body. Time frame should be 90 days or less.
There are two parameters:
Name | Type | Usage |
---|---|---|
start_time | long | Starting time measured in milliseconds |
end_time | long | Ending time measured in milliseconds |
Related topics
total_page_count
What is it?
The total number of pages under the given filters.
Note that page starts from 0, so if the total_page_count is 2, there are only page 0 and page 1.
Related topics
Record
status
msg
records_per_page
page
trade_records
TPDCard
What is it?
An class for setting up the client’s card.
Related topics
TPDSetup
TPDCard.createToken()
cardNumber
dueMonth
dueYear
CCV
TPDCard.createToken()
What is it?
An method for exchanging the customer’s card information with a prime token for transaction.
If successful, the returned prime token will allow you to pay using payByPrime API.
Related topics
TPDCard
geoLocation
prime
onSuccessCallBack()
onFailureCallBack()
payByPrime
TPDirect.card.createToken()
What is it?
An method for exchanging the customer’s card information with a prime token for transaction.
If successful, the prime token returned in the card array will allow you to pay using payByPrime API.
Related topics
cardNumber
dueMonth
dueYear
CCV
status
card
client_ip
payByPrime
TPDirect.setupSDK()
What is it?
A method in TPDirect for setting up the environment.
You need to call this method to activate your website in order to use our service.
Related topics
TPDirect.card.createToken()
appid
appKey
serverType
TPDServerType
What is it?
An enum used to differentiate sandbox and production environment.
It should be one of the following values:
Value | Usage |
---|---|
TPDServerType.Sandbox | Sandbox environment |
TPDServerType.Production | Production environment |
Related topics
TPDSetup.initInstance()
TPDirect.setupSDK()
appid
appKey
serverType
Sandbox
Production
TPDSetup
What is it?
An class for setting up the environment.
Related topics
TPDCard
TPDSetup.initInstance()
TPDSetup.initInstance()
What is it?
A method in TPDSetup for setting up the environment.
You need to call this method to activate your application in order to use our service.
Related topics
TPDSetup
appid
appKey
TPDServerType
trade_records
What is it?
The JSONArray that contains all records under the given filters.
Each record will contain the following information:
Name | Type(Max) | Usage | |||||||||||||||||||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
rec_trade_id | String(20) | Record identifier. | |||||||||||||||||||||||||||||||||
auth_code | String(6) | Authorization code from the bank. | |||||||||||||||||||||||||||||||||
merchant_id | String(50) | Identifier of the merchant involved in this trade. | |||||||||||||||||||||||||||||||||
merchant_name | String(50) | Name of the merchant involved in this trade. | |||||||||||||||||||||||||||||||||
app_name | String | Name of the website / application involved in this trade. | |||||||||||||||||||||||||||||||||
time | long | Time of the record in milliseconds. | |||||||||||||||||||||||||||||||||
amount | int | Price of the record. It will change if the transaction was refunded. |
|||||||||||||||||||||||||||||||||
refunded_amount | int | Refunded price of the record. | |||||||||||||||||||||||||||||||||
refund_info | JSONObject | Refund information When use plus pay will return. This field displays returned reward amount and cash information from wallet after the refund. It will be determined according to the rules of each wallet whether the points or amounts will be returned first after the refund.
|
|||||||||||||||||||||||||||||||||
record_status | int | Status of the record. | |||||||||||||||||||||||||||||||||
bank_transaction_id | String | A self-defined unique identifier for the bank. | |||||||||||||||||||||||||||||||||
bank_order_number | String | The order number that banks or e-wallets send back while authorization. Support : Easy Wallet, Pi Wallet Please refer to Reference for the length limitation of all supported banks and e-wallets. |
|||||||||||||||||||||||||||||||||
cap_millis | long | Time when the transaction payment will be captured. | |||||||||||||||||||||||||||||||||
original_amount | int | Original price of the record. | |||||||||||||||||||||||||||||||||
bank_transaction_start_millis | long | Time when the bank begins processing the transaction. | |||||||||||||||||||||||||||||||||
bank_transaction_end_millis | long | Time when the bank finishes processing the transaction. | |||||||||||||||||||||||||||||||||
is_captured | boolean | Whether this record is captured or not. | |||||||||||||||||||||||||||||||||
bank_result_code | String(40) | Response code from the bank. | |||||||||||||||||||||||||||||||||
bank_result_msg | String(300) | Error message from the bank. | |||||||||||||||||||||||||||||||||
partial_card_number | String | First six digits of the card and last four digits of the card | |||||||||||||||||||||||||||||||||
payment_method | String | Payment Method
|
|||||||||||||||||||||||||||||||||
details | String | List of product/service purchased in the transaction. | |||||||||||||||||||||||||||||||||
cardholder | JSONArray | Information of the owner of the card
|
|||||||||||||||||||||||||||||||||
merchandise_details | JSONObject | product detail
|
|||||||||||||||||||||||||||||||||
currency | String | The transaction currency | |||||||||||||||||||||||||||||||||
merchant_reference_info | JSON | Merchant reference information
|
|||||||||||||||||||||||||||||||||
e_invoice_carrier | JSONObject | Information of e-invoice carrier
|
|||||||||||||||||||||||||||||||||
three_domain_secure | boolean | Is it an 3D secure transaction | |||||||||||||||||||||||||||||||||
pay_by_instalment | boolean | Is it an instalment transaction | |||||||||||||||||||||||||||||||||
instalment_info | JSONObject |
|
|||||||||||||||||||||||||||||||||
order_number | String | A self-defined identifier for each transaction, for TapPay to identify transaction. This parameter doesn’t allow null. | |||||||||||||||||||||||||||||||||
pay_info | JSONObject | Payment Information Support:LINE Pay, JKOPAY, Easy Wallet, Atome, Pi Wallet, Plus Pay If a LINE Pay transaction is called by “pay by token API”, “” will be returned in “method” and “masked_credit_card_number” parameters, and “0” in other parameters. Only bank account and Debit card can be added to Atome, so the price value will only be showed in pay_info.
|
|||||||||||||||||||||||||||||||||
pay_by_redeem | boolean | Is it an redeem transaction | |||||||||||||||||||||||||||||||||
redeem_info | JSONObject |
|
|||||||||||||||||||||||||||||||||
kyc_info | JSONObject |
|
|||||||||||||||||||||||||||||||||
card_identifier | String | Card identifier. Each credit card will only have one card identifier. Not Support : Apple Pay, Google Pay, Samsung Pay, LINE Pay, JKOPAY, Easy Wallet, Atome, Pi Wallet, Plus Pay. | |||||||||||||||||||||||||||||||||
card_info | JSONObject | Card information. Not support LINE Pay, JKOPAY, Easy Wallet, Atome, Pi Wallet, Plus Pay
|
|||||||||||||||||||||||||||||||||
is_rba_verified | Boolean | If this transaction got the risk score from RBA or not.RBA is able to evaluate the risk of each transaction to recognize and prevent the fraud. This product will be launched soon. Please refer to TapPay official website to know more about RBA. | |||||||||||||||||||||||||||||||||
transaction_method_details | JSONObject | Transaction method details. RBA is able to evaluate the risk of each transaction to recognize and prevent the fraud. This product will be launched soon. Please refer to TapPay official website to know more about RBA.
|
|||||||||||||||||||||||||||||||||
shipping_address | JSONObject | Shipping Address Support: Atome
|
|||||||||||||||||||||||||||||||||
billing_address | JSONObject | Billing Address Support: Atome
|
Related topics
Record
status
msg
records_per_page
page
total_page_count
rec_trade_id
auth_code
merchant_id
merchant_name
app_name
time
amount
refund_amount
record_status
cap_millis
original_amount
bank_transaction_start_millis
bank_transaction_end_millis
trade_history
The JSONObject contains the trade history of each payment under a transaction.
You wull see these parameters under this JSONObject.
Name | Type(Max) | Usage |
---|---|---|
amount | int | Transaction price. |
action | int | Transaction status 0 Authorize 1 Capture 3 Refund 4 Pending 5 Cancel 6 RefundCancel |
millis | long | Trigger status time |
bank_transaction_millis | long | The practical time that TapPay send the transaction to bank to process authorization, capturing, refund and canceling refund the payment. |
success | boolean | Whether the status is successful |
can_refund_cancel_millis | long | action = 3,When can cancel the refund will return |
refund_id | String | When action = 3, 6 return,Refund action identifier generate by TapPay |
bank_refund_order_number | String | The refund order number that banks or e-wallets send back while refund. Support: Easy Wallet, Atome, Pi Wallet, Plus Pay Please refer to Reference for the length limitation of all supported banks and e-wallets. |
bank_refund_id | String(20) | Self-defined refund record identifier. (Format : Half-shaped English number) |
is_pending | Boolean | It will be true when the transaction is not refunded completed. In contrast, it will be false when the refund is done. |
bank_result_code | String(40) | Response code from the bank. We will reply the actual bank result code in the authorization and payment capture history. As for refund, we will show the bank result code of each refund transaction. |
bank_result_msg | String(300) | Response message from the bank. We will reply the actual bank result message in the authorization and payment capture history. As for refund, we will show the bank result message of each refund transaction. |
transaction_time_millis
What is it?
Time of transaction measured in milliseconds.
Please see https://currentmillis.com for more detail.
Related topics
tsp(filter)
What is it?
Name | Type | content |
---|---|---|
tsp | Bool | Default : false true : Serch use TSP service transaction. |
x-api-key
What is it?
An authentication key for each individual partner, also known as partner_key.
You must always put this in your header with the partner_key as the value when calling TapPay server API.
You can find it via Portal > Information
Related topics
payByPrime
payByToken
partner_key
Refund
Record
samsung_pay_country_code
What is it?
Samsung Pay verify page country and language.
value | Content |
---|---|
ae | UAE (English) |
au | Australia (English) |
br | Brazil (Portu) |
de_ch | Switzerland (German) |
fr_ch | Switzerland (French) |
hk | Hong Kong (Chinese) |
my | Malysia (English) |
ru | Russia (Russian) |
se | Sweden (Swedish) |
sg | Singapore (English) |
th | Thailand (Thai) |
tw | Taiwan (Chinese) |
uk | UK (English) |
us | USA (English) |
vn | Vietnam (Vietnamese) |
Each bank capture time
- To explain the data block of the payment TapPay send to the bank, take E.SUN BANK for example. A transaction authorized on 10/19 10:00 AM will be sent to E.SUN BANK for capturing if the transaction is authorized successfully and the merchants call Cap Today API to send the capture request before 10/19 11:30 PM. However, if the merchant doesn’t call the Cap Today API before 10/19 11:30 PM, this transaction will be sent to E.SUN BANK for capturing on 10/20 11:30PM.
- If the capture is failed, TapPay will automatically send the capture request to the bank on the next day. The upper limit of capture retry will be two times. Please contact TapPay Support to get further information, if the capture result is failed after the transaction hit the limitation of the capture retry.
Bank | The data block of the payment TapPay send to the bank | The time TapPay send capture payments to the bank | The time TapPay receive response from the bank | The suggested time to inquire the capture result |
---|---|---|---|---|
CTBC BANK | The transaction successfully authorized and is marked to be captured before 06:00 PM | 06:00 PM | immediately | 08:00 PM |
CTBC BANK (UnionPay) | The transaction successfully authorized and is marked to be captured before 06:00 PM | 06:00 PM | immediately | 08:00 PM |
CTBC BANK (Batch) | The transaction successfully authorized and is marked to be captured before 06:00 PM | 06:00 PM | 06:30 AM | 08:30 AM |
E.SUN BANK | The transaction successfully authorized and is marked to be captured before 11:30 PM | 11:30 PM | 04:30 AM | 06:30 AM |
Taishin Bank | The transaction successfully authorized and is marked to be captured before 09:00 PM | 09:00 PM | immediately | 11:00 PM |
Taipei Fubon Bank | The transaction successfully authorized and is marked to be captured before 8:30 PM | 08:30 PM | 10:00 PM | 00:00 AM |
Cathay United Bank | The transaction successfully authorized and is marked to be captured before 10:00 PM | 10:00 PM | immediately | 00:00 AM |
Bank SinoPac | The transaction successfully authorized and is marked to be captured before 09:00 PM | 09:00 PM | 09:30 AM | 11:30 AM |
KGI BANK | The transaction successfully authorized and is marked to be captured before 10:00 PM | 10:00 PM | 07:30 AM | 09:30 AM |
TAIWAN COOPERATIVE BANK | The transaction successfully authorized and is marked to be captured before 10:30 PM | 10:30 PM | immediately | 00:30 AM |
First Bank | The transaction successfully authorized and is marked to be captured before 10:30 PM | 10:30 PM | immediately | 00:30 AM |
CHANG HWA Bank | The transaction successfully authorized and is marked to be captured before 10:30 PM | 10:30 PM | immediately | 00:30 AM |
UNION BANK OF TAIWAN | The transaction successfully authorized and is marked to be captured before 10:00 PM | 10:00 PM | 05:30 AM | 07:30 AM |
National Credit Card Center of R.O.C. | The transaction successfully authorized and is marked to be captured before 10:00 PM | 10:00 PM | 07:30 AM | 09:30 AM |
NewebPay | The transaction successfully authorized and is marked to be captured before 06:00 PM | 06:00 PM | immediately | 08:00 PM |
SUNNY BANK | The transaction successfully authorized and is marked to be captured before 10:30 PM | 10:30 PM | immediately | 00:30 AM |
BANK OF CHINA | The transaction successfully authorized and is marked to be captured before 11:00 PM | 11:00 PM | immediately | 01:00 AM |
RAZER PAY | The transaction successfully authorized and is marked to be captured before 09:00 PM | 09:00 PM | immediately | 11:00 PM |
Easy Wallet | The transaction successfully authorized and is marked to be captured before 00:00 AM | 01:30 AM | 07:30 AM | 09:30 AM |
JKOPAY | authorizing and capturing at the same time | authorizing and capturing at the same time | authorizing and capturing at the same time | Can be inquired after authorized successfully |
globalpayments | The transaction successfully authorized and is marked to be captured before 00:00 AM | 00:00 AM | 01:00 PM | 03:00 PM |
LINE Pay | The transaction successfully authorized and is marked to be captured before 10:00 PM | 10:00 PM((Need to apply additionally to LINE Pay.)) | immediately | 00:00 AM |
LINE Pay | authorizing and capturing at the same time | authorizing and capturing at the same time | authorizing and capturing at the same time | Can be inquired after authorized successfully |
Atome | authorizing and capturing at the same time | authorizing and capturing at the same time | authorizing and capturing at the same time | Can be inquired after authorized successfully |
Pi Wallet | The transaction successfully authorized and is marked to be captured before 08:00 PM | 08:00 PM | immediately | 10:00 PM |
Pi Wallet | authorizing and capturing at the same time | authorizing and capturing at the same time | authorizing and capturing at the same time | Can be inquired after authorized successfully |
Plus Pay | authorizing and capturing at the same time | authorizing and capturing at the same time | authorizing and capturing at the same time | Can be inquired after authorized successfully |
Plus Pay | The transaction successfully authorized and is marked to be captured before 08:00 PM | 08:00 PM | authorizing and capturing at the same time | 10:00 PM |
Each bank auth reversal time
- Due to the auth reversal rule is different from the refund rule of some banks, please see the refund rule on Each Bank Refund Time
- Since some banks need to reconcile the transaction data, merchant can’t get the final auth reversal result before TapPay get the result from the banks. Take Taipei Fubon Bank for example, merchants can get the final auth reversal result at 00:00 AM if you call Refund API before 20:30 PM. Therefore, TapPay will send the auth reversal request to Taipei Fubon Ban and will get the result from bank at 22:00 PM.
- There’s no auth reversal function if you apple the automatically capture function of JKO Pay and LINE Pay, since the rule of the payment account would be authorization and capture at the same time.
Bank | The data block of the payment TapPay send to the bank | The time TapPay send auth reversal payments to the bank | The time TapPay receive response from the bank | The suggested time to inquire the auth reversal result |
---|---|---|---|---|
CTBC BANK | TapPay will call the bank’s refund API right after the merchant call the Refund API of TapPay | TapPay will call the bank’s refund API right after the merchant call the Refund API of TapPay | immediately | Refund API Response will be the result |
CTBC BANK (UnionPay) | TapPay will call the bank’s refund API right after the merchant call the Refund API of TapPay | TapPay will call the bank’s refund API right after the merchant call the Refund API of TapPay | immediately | Refund API Response will be the result |
CTBC BANK (Batch) | TapPay will call the bank’s refund API right after the merchant call the Refund API of TapPay | TapPay will call the bank’s refund API right after the merchant call the Refund API of TapPay | immediately | Refund API Response will be the result |
E.SUN BANK | TapPay will call the bank’s refund API right after the merchant call the Refund API of TapPay | TapPay will call the bank’s refund API right after the merchant call the Refund API of TapPay | immediately | Refund API Response will be the result |
Taishin Bank | TapPay will call the bank’s refund API right after the merchant call the Refund API of TapPay | TapPay will call the bank’s refund API right after the merchant call the Refund API of TapPay | immediately | Refund API Response will be the result |
Taipei Fubon Bank | The transaction successfully authorized and is marked to be auth reversal before 08:30 PM | 08:30 PM | 10:00 PM | 00:00 AM |
Cathay United Bank | TapPay will call the bank’s refund API right after the merchant call the Refund API of TapPay | TapPay will call the bank’s refund API right after the merchant call the Refund API of TapPay | immediately | Refund API Response will be the result |
Bank SinoPac | TapPay will call the bank’s refund API right after the merchant call the Refund API of TapPay | TapPay will call the bank’s refund API right after the merchant call the Refund API of TapPay | immediately | Refund API Response will be the result |
KGI BANK | TapPay will call the bank’s refund API right after the merchant call the Refund API of TapPay | TapPay will call the bank’s refund API right after the merchant call the Refund API of TapPay | immediately | Refund API Response will be the result |
TAIWAN COOPERATIVE BANK | TapPay will call the bank’s refund API right after the merchant call the Refund API of TapPay | TapPay will call the bank’s refund API right after the merchant call the Refund API of TapPay | immediately | Refund API Response will be the result |
First Bank | TapPay will call the bank’s refund API right after the merchant call the Refund API of TapPay | TapPay will call the bank’s refund API right after the merchant call the Refund API of TapPay | immediately | Refund API Response will be the result |
CHANG HWA Bank | TapPay will call the bank’s refund API right after the merchant call the Refund API of TapPay | TapPay will call the bank’s refund API right after the merchant call the Refund API of TapPay | immediately | Refund API Response will be the result |
UNION BANK OF TAIWAN | TapPay will call the bank’s refund API right after the merchant call the Refund API of TapPay | TapPay will call the bank’s refund API right after the merchant call the Refund API of TapPay | immediately | Refund API Response will be the result |
National Credit Card Center of R.O.C. | TapPay will call the bank’s refund API right after the merchant call the Refund API of TapPay | TapPay will call the bank’s refund API right after the merchant call the Refund API of TapPay | immediately | Refund API Response will be the result |
NewebPay | TapPay will call the bank’s refund API right after the merchant call the Refund API of TapPay | TapPay will call the bank’s refund API right after the merchant call the Refund API of TapPay | immediately | Refund API Response will be the result |
SUNNY BANK | TapPay will call the bank’s refund API right after the merchant call the Refund API of TapPay | TapPay will call the bank’s refund API right after the merchant call the Refund API of TapPay | immediately | Refund API Response will be the result |
BANK OF CHINA | TapPay will call the bank’s refund API right after the merchant call the Refund API of TapPay | TapPay will call the bank’s refund API right after the merchant call the Refund API of TapPay | immediately | Refund API Response will be the result |
RAZER PAY | TapPay will call the bank’s refund API right after the merchant call the Refund API of TapPay | TapPay will call the bank’s refund API right after the merchant call the Refund API of TapPay | immediately | Refund API Response will be the result |
Easy Wallet | The transaction successfully authorized and is marked to be auth reversal before 00:00 AM | 01:30 AM | 07:30 AM | 09:30 AM |
globalpayments | TapPay will call the bank’s refund API right after the merchant call the Refund API of TapPay | TapPay will call the bank’s refund API right after the merchant call the Refund API of TapPay | immediately | Refund API Response will be the result |
LINE Pay | TapPay will call the bank’s refund API right after the merchant call the Refund API of TapPay | TapPay will call the bank’s refund API right after the merchant call the Refund API of TapPay | immediately | Refund API Response will be the result |
Atome | TapPay will call the bank’s refund API right after the merchant call the Refund API of TapPay | TapPay will call the bank’s refund API right after the merchant call the Refund API of TapPay | immediately | Refund API Response will be the result |
Pi Wallet | TapPay will call the bank’s refund API right after the merchant call the Refund API of TapPay | TapPay will call the bank’s refund API right after the merchant call the Refund API of TapPay | immediately | Refund API Response will be the result |
Plus Pay | TapPay will call the bank’s refund API right after the merchant call the Refund API of TapPay | TapPay will call the bank’s refund API right after the merchant call the Refund API of TapPay | immediately | Refund API Response will be the result |
Each bank refund time
- Due to the auth reversal rule is different from the refund rule of some banks, please see the auth reversal rule on Each Bank Auth Reversal Time
- Since some banks need to reconcile the transaction data, merchant can’t get the final refund / partial refund result before TapPay get the result from the banks. Take Taipei Fubon Bank for example, merchants can get the final refund / partial refund result at 00:00 AM if you call Refund API before 20:30 PM. Therefore, TapPay will send the refund / partial refund request to Taipei Fubon Ban and will get the result from bank at 22:00 PM.
- If you want to implement a partial refund of Easy Wallet, please do it after the transaction is successfully authorized for two days and implement the partial refund after 2:00 AM。
Bank | The data block of the payment TapPay send to the bank | The time TapPay send refund payments to the bank | The time TapPay receive response from the bank | The suggested time to inquire the refund result |
---|---|---|---|---|
CTBC BANK | TapPay will call the bank’s refund API right after the merchant call the Refund API of TapPay | TapPay will call the bank’s refund API right after the merchant call the Refund API of TapPay | immediately | Refund API Response will be the result |
CTBC BANK (UnionPay) | TapPay will call the bank’s refund API right after the merchant call the Refund API of TapPay | TapPay will call the bank’s refund API right after the merchant call the Refund API of TapPay | immediately | Refund API Response will be the result |
CTBC BANK (Batch) | The transaction successfully authorized and is marked to be refund before 06:00 PM | 06:00 PM | 06:30 AM | 08:30 AM |
E.SUN BANK | The transaction successfully authorized and is marked to be refund before 11:30 PM | 11:30 PM | 04:30 AM | 06:30 |
Taishin Bank | TapPay will call the bank’s refund API right after the merchant call the Refund API of TapPay | TapPay will call the bank’s refund API right after the merchant call the Refund API of TapPay | immediately | Refund API Response will be the result |
Taipei Fubon Bank | The transaction successfully authorized and is marked to be refund before 08:30 PM | 08:30 PM | 22:00 PM | 00:00 AM |
Cathay United Bank | TapPay will call the bank’s refund API right after the merchant call the Refund API of TapPay | TapPay will call the bank’s refund API right after the merchant call the Refund API of TapPay | immediately | Refund API Response will be the result |
Bank SinoPac | The transaction successfully authorized and is marked to be refund before 09:00 PM | 09:00 PM | 09:30 AM | 11:30 AM |
KGI BANK | The transaction successfully authorized and is marked to be refund before 10:00 PM | 10:00 PM | 07:30 AM | 09:30 AM |
TAIWAN COOPERATIVE BANK | The transaction successfully authorized and is marked to be refund before 10:30 PM | 10:30 PM | immediately | 00:30 AM |
First Bank | The transaction successfully authorized and is marked to be refund before 10:30 PM | 10:30 PM | immediately | 00:30 AM |
CHANG HWA Bank | The transaction successfully authorized and is marked to be refund before 10:30 PM | 10:30 PM | immediately | 00:30 AM |
UNION BANK OF TAIWAN | The transaction successfully authorized and is marked to be refund before 10:00 PM | 10:00 PM | 05:30 AM | 07:30 AM |
National Credit Card Center of R.O.C. | The transaction successfully authorized and is marked to be refund before 10:00 PM | 10:00 PM | 07:30 AM | 09:30 AM |
NewebPay | TapPay will call the bank’s refund API right after the merchant call the Refund API of TapPay | TapPay will call the bank’s refund API right after the merchant call the Refund API of TapPay | immediately | Refund API Response will be the result |
SUNNY BANK | The transaction successfully authorized and is marked to be refund before 10:30 PM | 10:30 PM | immediately | 00:30 AM |
BANK OF CHINA | TapPay will call the bank’s refund API right after the merchant call the Refund API of TapPay | TapPay will call the bank’s refund API right after the merchant call the Refund API of TapPay | immediately | Refund API Response will be the result |
RAZER PAY | TapPay will call the bank’s refund API right after the merchant call the Refund API of TapPay | TapPay will call the bank’s refund API right after the merchant call the Refund API of TapPay | immediately | Refund API Response will be the result |
Easy Wallet | The transaction successfully authorized and is marked to be refund before 00:00 AM | 01:30 AM | 07:30 AM | 09:30 AM |
globalpayments | TapPay will call the bank’s refund API right after the merchant call the Refund API of TapPay | TapPay will call the bank’s refund API right after the merchant call the Refund API of TapPay | immediately | Refund API Response will be the result |
LINE Pay | The transaction successfully authorized and is marked to be refund before 11:00 PM | 11:00 PM | 01:00 PM | 03:00 PM |
Atome | TapPay will call the bank’s refund API right after the merchant call the Refund API of TapPay | TapPay will call the bank’s refund API right after the merchant call the Refund API of TapPay | immediately | Refund API Response will be the result |
Pi Wallet | TapPay will call the bank’s refund API right after the merchant call the Refund API of TapPay | TapPay will call the bank’s refund API right after the merchant call the Refund API of TapPay | immediately | Refund API Response will be the result |
Plus Pay | TapPay will call the bank’s refund API right after the merchant call the Refund API of TapPay | TapPay will call the bank’s refund API right after the merchant call the Refund API of TapPay | immediately | Refund API Response will be the result |