NAV
docs

Reference

acquirer

What is it?

您的收單銀行或是金流處理器

使用 Reconciliation API 時,欲使用收單銀行為搜尋條件時,請按照以下參數帶入 Request

銀行 參數名稱
國泰世華銀行 TW_CATGAY
玉山銀行 TW_ESUN
台新銀行 TW_TAISHIN
中國信託銀行 TW_CTBC
永豐銀行 TW_NEW_SINOPAC
凱基銀行 TW_KAIGI
合作金庫銀行 TW_TCB
第一銀行 TW_FIRST
財團法人聯合信用卡處理中心 TW_NCCC
藍新金流 TW_SPGATEWAY
台北富邦銀行 TW_FUBON
陽信銀行 TW_SUNNY
中國銀行 HK_BOC
聯邦銀行 TW_UBOT
RAZER PAY MY_MOLPAY
彰化銀行 TW_CHB
環匯亞太 US_GLOBAL_PAYMENTS
LINE Pay TW_LINE_PAY
JKOPAY TW_JKO_PAY
悠遊付 TW_EASY_WALLET
Atome TW_ATOME
Pi 錢包 TW_PI_WALLET
全盈支付 TW_PLUS_PAY

payByPrime
payByToken

amount

What is it?

一筆交易的總金額

若欲部分退款,請輸入比原始金額還小的價格

台幣(TWD):單筆交易金額下限為台幣1元,金額上限為台幣20,000,000元。台幣交易1元時,請帶入1

港幣(HKD):單筆交易金額下限為港幣0.01元,金額上限為港幣252,500元。港幣交易1.01元時,請帶 101

馬幣(MYR):單筆交易金額下限為馬幣0.01令吉,金額上限為馬幣135,000令吉。馬幣交易1.01令吉時,請帶 101

美金(USD):單筆交易金額下限為美金0.01元,金額上限為美金33,169元。美金交易1.01元時,請帶 101

payByPrime
payByToken
Refund
trade_records
Partial Refund

amount(filter)

What is it?

用來過濾特定金額內的搜尋條件
外幣金額需包含兩位小數,如100代表1.00
裡面有兩個參數:

名稱 類別(長度) 內容
upper_limit int 最高價格
lower_limit int 最低價格

filters

appid

What is it?

您 APP 或網站的數字識別碼,做於驗證用途
可於 Portal > 開發人員內容 > 應用程式 > 點擊對應 APP 或網站的"內容"找到
第五步

TPDSetup.initInstance()
TPDirect.setupSDK()
appKey
serverType
TPDServerType

appKey

What is it?

您的 APP 或網站的驗證金鑰匙
可於 Portal > 開發人員內容 > 應用程式 > 點擊對應 APP 或網站的"內容"找到
第五步

TPDSetup.initInstance()
TPDirect.setupSDK()
appid
serverType
TPDServerType

appname

What is it?

於 Portal 網站上所定義的 APP 或網站名稱
第五步

rec_trade_id
auth_code
merchant_id
merchant_name
time
amount
refund_amount
record_status
trade_records

attribute

What is it?

排序交易紀錄的條件
以下為接受的值:

內容
time 依交易時間排序
amount 依交易金額排序

order_by
is_descending
time
amount

auth_code

銀行授權碼以確保交易是否有成功

payByPrime
payByToken
trade_records

authtocapperiodinday

What is it?

銀行授權款項與實際請款之間的天數
這期限可以延長至最多 7 天
若您欲手動請款,可輸入 -1 來取消自動請款

payByPrime
payByToken
Refund
Partial Refund

backend_notify_url

What is it?

商戶 Server 接收交易結果的 URL。必須以 https 開頭。

3D 交易過程中有可能發生消費者棄單,消費者操作異常或是銀行端和 TapPay 狀態同步異常導致該筆 交易狀態為待付款(商戶此時不會收到 backend_notify_url 通知)。

3D或錢包待付款訂單的反查機制

TapPay 將針對待付款交易,於訂單建立後10-20分鐘內進行反查,每筆待付款最多向銀行反查 2 次。若得到銀行端「授權成功」的結果,即更新後台訂單狀態並發出 backend_notify_url 通知商戶,反查 2 次的結果皆非「授權成功」時,交易狀態將停留在「待付款」。

有反查的銀行
台新銀行
玉山銀行
國泰世華銀行
藍新金流
財團法人聯合信用卡處理中心
台北富邦銀行
RAZER PAY
永豐銀行
彰化銀行
有反查的錢包
街口支付
悠遊付
Pi 錢包
全盈支付

bank_order_number

What is it?

銀行或錢包端於授權時回傳的訂單編號

銀行 / 錢包名稱 長度
悠遊付 30
Pi錢包 20

bank_refund_order_number

What is it?

銀行或錢包端於退款時回傳的退款編號

銀行 / 錢包名稱 長度
悠遊付 30
Atome 40
Pi 錢包 14
全盈支付 64

bank_transaction_id

What is it?

大寫英文字母 及數字所組成的訂單編號
此訂單編號為方便您對帳使用,並將會送至銀行
沒有需求的話可以不填,我們會自動幫您產生一組
若有填寫的話,請遵守每家銀行的長度限制:

名稱 長度 特殊規則
玉山銀行 20 不可包含 _ 字元
台新銀行 23
中國信託銀行 19 僅接受一般英文字母、數字及底線 _ 的組合
永豐銀行 40
台北富邦銀行 25
LINE Pay 40
凱基銀行 40
聯邦銀行 40
國泰世華銀行 20 僅接受大寫英文字母與數字
合作金庫銀行 19
第一銀行 19
財團法人聯合信用卡處理中心 40 不接受中文
藍新金流 20
陽信銀行 19
中國銀行 40
RAZER PAY 32
JKOPAY 40
悠遊付 50
彰化銀行 19
環匯亞太 40
Atome 40
Pi 錢包 30
全盈支付 40

payByPrime
payByToken
trade_records
rec_trade_id

bank_transaction_end_millis

What is it?

銀行實際處理完畢交易請求的時間,單位為毫秒

trade_records

bank_transaction_start_millis

What is it?

銀行實際收到交易請求並開始處理的時間,單位為毫秒

trade_records

bank_transaction_time

What is it?

銀行處理交易請求的時間
裡面有兩個參數:

名稱 類別 內容
start_time_millis String 起始時間
end_time_millis String 結束時間

start_time_millis
end_time_millis

bank_transaction_time(bind_card)

What is it?

銀行處理交易請求的時間
裡面有兩個參數:

名稱 類別 內容
start_time_millis long 起始時間
end_time_millis long 結束時間

start_time_millis
end_time_millis

cap_millis

What is it?

交易會被請款的時間

Record
trade_records

card

What is it?

TPDirect.card.createToken() 所回傳的 JSON 物件
裡面包含 prime 字串及卡號後四碼

TPDirect.card.createToken()
status
clientip
prime
lastfour

cardholder

What is it?

卡片持有者的資訊,應包含以下值:

名稱(*為必填) 類別(長度) 內容
phone_number* String(40) 手機號碼,包含加號之 E.164 格式(“+886923456789”)
name* String(40) 名稱
email* String(40) 電子信箱
zip_code String(40) 郵遞區號
address String(90) 地址
national_id String(40) 身分證字號

非必填欄位也應有對應的 key,value 的部分可以帶空字串(zip_code: “”, address: “”, national_id: “”)


各支援銀行需驗證的必填欄位

支援銀行 需驗證的必填欄位 備註
財團法人聯合信用卡處理中心 national_id 若此筆屬於產壽險交易,強烈建議您進行身份驗證
若您使用的是僅供身份驗證的收單帳號,可再額外驗證電話號碼
台新銀行 national_id 若是台新自行卡可再額外驗 phone_number
(務必在 cardholder 中帶入 09 開頭的電話,若輸入錯誤會導致交易失敗)
玉山銀行(只支援自行卡) national_id
TapPay phone_number 務必帶入 09 開頭的電話,若輸入錯誤會導致交易失敗。
綁卡手機身份驗證僅支援國內 V/ M/ J 卡,其餘信用卡將會直接進行授權交易。

payByPrime
payByToken

cardholder(filter)

What is it?

用來過濾特定消費者的搜尋條件 裡面有三個參數:

名稱 類別 內容
name String 名稱
phone_number String 電話
email String 電子信箱

Record

card_info

What is it?

卡片資訊,會回傳以下值:

名稱 類別(長度) 內容
bin_code String(6) 卡片前六碼
last_four String(4) 卡片後四碼
issuer String 發卡行
issuer_zh_tw String 發卡銀行中文名稱
bank_id String 發卡銀行代碼
funding int 卡片類別
-1 = Unknown
0 = 信用卡
1 = 簽帳卡
2 = 預付卡
type int 卡片種類
-1 = Unknown
1 = VISA
2 = MasterCard
3 = JCB
4 = Union Pay
5 = AMEX
level String 卡片等級
country String 發卡行國家
country_code String 發卡行國家碼
expiry_date String 卡片到期時間,格式 YYYYMM,卡片到期時間( remember = true 時回傳)
( Apple Pay / Google Pay / LINE Pay / Samsung Pay / Atome / Pi 錢包不會回傳此欄位)

payByPrime
payByToken

card_key

What is it?

保護卡片字串的卡片金鑰
remember = true ,則會於 payByPrime 中的 card_secret 內回傳
未來付款就只需利用卡片字串與金鑰來呼叫 payByToken API,省略 createToken 與 payByPrime 的步驟

payByPrime
payByToken
card_token
remember

cardNumber

What is it?

由十六位數所組成的信用卡號碼

TPDCard
TPDirect.card.createToken()
due_Month
due_Year
CCV
Test Card

card_secret

What is it?

包含卡片字串金鑰的 JSON 物件,只有呼叫 payByPrime 時,參數 remember = true 才會回傳

名稱 類別(長度) 內容
card_key String(64) 保護卡片字串卡片金鑰
card_token String(67) 代表消費者卡片的字串

未來付款就只需利用卡片字串金鑰來呼叫 payByToken API,省略 createToken 與 payByPrime 的步驟

payByPrime
payByToken
card_key
card_token
remember

card_token

What is it?

代表消費者卡片的字串
remember = true ,則會於 payByPrime 中的 card_secret 內回傳
未來付款就只需利用卡片字串與金鑰來呼叫 payByToken API,省略 createToken 與 payByPrime 的步驟

payByPrime
payByToken
card_key
remember

CCV

What is it?

信用卡背後的三位識別碼

TPDCard
TPDirect.card.createToken()
cardNumber
dueMonth
dueYear
Test Card

client_ip

What is it?

消費者的 IP 位置

TPDirect.card.createToken()
status
card

currency

What is it?

貨幣的 ISO 4217 字母代碼,如:新台幣 = “TWD”

銀行 支援幣別
中國信託銀行 新台幣(TWD)
玉山銀行 新台幣(TWD)
台新銀行 新台幣(TWD)
國泰世華銀行 新台幣(TWD)
永豐銀行 新台幣(TWD)
凱基銀行 新台幣(TWD)
合作金庫銀行 新台幣(TWD)
第一銀行 新台幣(TWD)
財團法人聯合信用卡處理中心 新台幣(TWD)
藍新金流 新台幣(TWD)
台北富邦銀行 新台幣(TWD)
陽信銀行 新台幣(TWD)
聯邦銀行 新台幣(TWD)
中國銀行 港幣(HKD)
RAZER PAY 馬幣(MYR)
環匯亞太 台幣(TWD), 美金(USD)
LINE Pay 新台幣(TWD)
JKOPAY 新台幣(TWD)
悠遊付 新台幣(TWD)
Atome 新台幣(TWD)
Pi 錢包 新台幣(TWD)
全盈支付 新台幣(TWD)

payByPrime
payByToken

delay_capture_in_days

What is it?

銀行授權款項與實際請款之間的天數
這期限可以延長至最多 7 天
若您欲手動請款,可輸入 -1 來取消自動請款

當您呼叫此API時,TapPay 將於當日向銀行進行請款,不代表當日請款已成功。
實際請款是否成功,請於請款隔天上午9點利用TapPay 後台或 Record API查詢交易狀態進行確認。

Refund
Partial Refund

details

What is it?

交易明細
此欄位資訊將顯示在銀行對帳系統中

銀行名稱 內容
中國信託銀行 限制 18 字節,超過將自動截斷,此欄位僅支援Big-5,因此將自動過濾掉Big-5不支援的字元
陽信銀行 限制 18 字節,超過將自動截斷
台新銀行 限制 40 字節,超過將自動截斷
藍新金流 限制 50 字節,超過將自動截斷
國泰世華銀行 未提供此欄位
玉山銀行 未提供此欄位
凱基銀行 未提供此欄位
永豐銀行 未提供此欄位
合作金庫銀行 未提供此欄位
第一銀行 未提供此欄位
財團法人聯合信用卡處理中心 未提供此欄位
Atome 長度限制為 500
格式範例: [{"item_id":"apple123","item_name":"apple","item_quantity":1,"item_price":10}]
Note: 要以字串格式帶進 details 欄位, 範例: {"details": "[{\"item_id\":\"apple123\",\"item_name\":\"apple\",\"item_quantity\":1,\"item_price\":10}]"}
名稱 (* = 必填)類別(長度)內容
item_id*String(60)商品編號
item_name*String(60)商品名稱
item_quantity*Integer該品項數量
item_price*Integer該品項單價
Pi 錢包 長度限制為 500
格式範例: ["item_name":"apple","item_quantity":1,"item_price":10}]
Note: 要以字串格式帶進 details 欄位, 範例: {"details": "[{\"item_name\":\"apple\",\"item_quantity\":1,\"item_price\":10}]"}
名稱 (* = 必填)類別(長度)內容
item_nameString(60)商品名稱
item_quantityInteger該品項數量
item_priceInteger該品項單價

payByPrime
payByToken

due_month

What is it?

信用卡的到期月份:

月份
一月 01
二月 02
三月 03
四月 04
五月 05
六月 06
七月 07
八月 08
九月 09
十月 10
十一月 11
十二月 12

TPDCard
TPDirect.card.createToken()
cardNumber
dueYear
CCV
Test Card

due_year

What is it?

信用卡的到期年份,為西元年的後兩位數(“2019” -> “19”)

TPDCard
TPDirect.card.createToken()
cardNumber
due_month
CCV
Test Card

filters

What is it?

過濾交易紀錄的條件,每個皆非必帶:

名稱 類別(長度) 預設 規則
time JSONObject 起始到結束時間上限為 90 天
amount JSONObject {“upper_limit”: 無上限, “lower_limit”: 0}
merchant_id String array
record_status int
rec_trade_id String(20)
tsp Boolean
card_identifier String

time(filter)
amount(filter)
merchant_id(filter)
record_status
rec_trade_id

final_price

What is it?

保單金額

所有保單金額的加總,應該等於 Pay by Prime Request 中的 amount 金額

payByPrime

frontend_redirect_url

What is it?

使用 LINE Pay、街口支付、Atome、Pi 錢包、全盈支付 或者 3D 驗證交易時,當消費者在 LINE Pay、街口支付、Atome、Pi 錢包 或 3D 驗證完成交易程序後,導轉回到商戶網頁前端的交易結果頁面 URL。必須以 https 開頭。

geoLocation

What is it?

消費者地點的經緯度,格式為"(經度, 緯度)“或是"UNKNOWN”

TPDCard.createToken()

instalment

What is it?

分期付款的期數,預設為 0

payByPrime
payByToken

insurance_type

What is it?

險種

代號 類別
A01 壽險
A02 意外險
A03 醫療險
A04 癌症險
A05 重大疾病/重大傷病險
A06 失能險
B01 旅平險
B02 火險
B03 機車保險
B04 汽車保險
B05 水險
B06 新種險
B07 工程險
B08 健傷險(旅綜)
B09 組合型

payByPrime

insured

What is it?

被保人的身分證字號或居留證

payByPrime

is_descending

What is it?

排序交易紀錄的條件,根據"attribute“的值有不同效果:

attribute 內容
true time 由最新的紀錄到最舊的紀錄
true amount 由金額最高的紀錄到金額最少的紀錄
false time 由最舊的紀錄到最新的紀錄
false amount 由金額最少的紀錄到金額最高的紀錄

order_by
is_descending
time
amount

last_four

What is it?

卡片後四碼

onSuccessCallBack()
card
prime

merchant_id

What is it?

於 Portal 上為每個商家所產生的識別碼,須由小於 50 位數的英數字元所組合

payByPrime
payByToken
Record
merchantid(filter)
trade_records

merchant_id(filter)

What is it?

用來指定特定 merchant_id 的搜尋條件
您可將一次將許多 merchant_id 放入同個陣列中進行搜尋

filters
merchant_id

merchant_name

What is it?

於 Portal 上所定義的商家名稱

rec_trade_id
auth_code
merchant_id
appname
time
amount
refundamount
record_status orderid
trade_records

millis

What is it?

交易時間,單位為毫秒
請參考 https://currentmillis.com

payByPrime
payByToken

msg

What is it?

錯誤訊息,呼叫 API 錯誤時回傳
請參考我們的錯誤代碼表

TPDCard.createToken()
payByPrime
payByToken
Refund
Record
onFailureCallBack()
status

number_of_transactions

What is it?

總交易筆數

Record

onFailureCallBack()

What is it?

TPDCard.createToken() 的回傳函數,於方法錯誤時回傳錯誤代碼訊息

TPDCard.createToken()
onSuccessCallBack()
status
msg

onSuccessCallBack()

What is it?

TPDCard.createToken() 的回傳函數,於方法成功時回傳 prime 字串與卡片後四碼

TPDCard.createToken()
onFailureCallBack()
prime
lastfour

order_by

What is it?

排序交易紀錄的條件
這個 JSON 物件有以下值:

名稱 類別 預設值 可帶值
attribute String time time
amount
is_descending boolean true true
false

Record
partner_key
records_per_page page
filters
attribute
is_descending

order_number

What is it?

由小於五十位的英數位元所自行定義的訂單編號,用於 TapPay 做訂單識別,可重複帶入

若有帶入此欄位,則不可為空

payByPrime
payByToken
filters
trade_records

original_amount

What is it?

一筆交易的原始金額
此金額不會因款項被退款而受影響

trade_records

page

What is it?

某一頁交易紀錄,此參數預設為0,並從0開始增加
每一頁的交易紀錄數量將取決於 “records_per_page
舉例來說:
如果總交易紀錄量為400,而 “records_per_page” 為200
則第0頁會有第1筆紀錄至第200筆紀錄,而第1頁會有第201筆至第400筆紀錄
如果 “records_per_page” 為50,則總共會有四頁 第0頁1~50,第1頁51~100,第2頁101~150,第3頁151~200

Record
records_per_page

Partial Refund

What is it?

部分退款必須等銀行請款成功後方可執行,全額退款則沒有此限制

整個付款流程為下:
交易 >  delay_capture_in_days 天後請款 > 請款成功即可部分退款

舉例:
顧客於十月九號交易,delay_capture_in_days 預設為 0,則當日請款,請款成功即可部分退款
顧客於十月九號交易,delay_capture_in_days 更改為 3,則十月十二號請款,請款成功即可部分退款

*若顯示「請款成功」但無法部分退款,原因為銀行正針對該筆交易進行結帳,請稍後一至兩天再試

Refund
delay_capture_in_days

partner_key

What is it?

每個 Portal 帳號的識別金鑰
呼叫 TapPay 伺服器的 API 時必須將 header 中的"x-api-key“設為此值
您可於 Portal 左手邊的 Information 找到此值

payByPrime
payByToken
Refund
Record
x-api-key

payByPrime

What is it?

利用 prime 字串來付款的 API
使用者第一次登錄卡號時必須使用此 API 來進行付款並儲存卡片

API 說明

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?

利用卡片金鑰卡片字串來付款的 API
當使用者願意儲存卡號後,即可跳過 createToken 跟 payByPrime 的步驟,直接使用此 API 進行付款

API 說明

payByPrime
card_key
card_token
partner_key
merchant_id
amount
currency
details
instalment
status
msg
rec_trade_id
auth_code
card_info
acquirer
millis
x-api-key

partial_card_number

What is it?

信用卡前六碼與後四碼

Record

payment_deadline

What is it?

保單繳費期限

payByPrime

payment_frequency

What is it?

繳別

類別
0 一次繳清
1 月繳
3 季繳
6 半年繳
12 年繳

payByPrime

policy_id

What is it?

保單識別碼,保險公司自定義

payByPrime

prime

What is it?

代替卡片的一次性字串,由 TPDCard.createToken()onSuccessCallBack()TPDirect.card.createToken() 回傳
可用於 payByPrime API 內進行付款
此字串的時效為 90 秒
若您有開啟 Apple Pay 延後授權,請自行保管 Prime。預設 Prime 有效期限為 30 天

TPDirect.card.createToken()
TPDCard.createToken()
onSuccessCallBack()
card
last_four
payByPrime

proposer

What is it?

要保人的身分證字號或居留證

payByPrime

Production

What is it?

交易的正式環境,當您的產品正式上線後應切換至此環境
您可利用 TPDSetup.initInstance()TPDirect.setupSDK() 來進行設定

請確認以下事情:
1. Portal 上的商家是否有在正式環境註冊,並使用銀行的正式收單帳號
2. Portal 上的 IP 是否有在正式環境登錄
3. 前端的環境設定中必須要帶入正式環境的 App Key
4. 前端的伺服器種類必須要切換到正式環境 (Production)
5. 後端的傳送的網址必須要切換到正式環境 (https://sandbox.tappaysdk.com/tpc/ -> https://prod.tappaysdk.com/tpc/)

TPDSetup.initInstance()
TPDirect.setupSDK()
TPDServerType
serverType
Sandbox

ptradeid

What is it?

由小於五十位的英數位元所自行定義的交易識別碼

payByPrime
payByToken
filters
traderecords

order_id

What is it?

大寫英文字母 及數字所組成的訂單編號
此訂單編號為方便您對帳使用,並將會送至銀行
沒有需求的話可以不填,我們會自動幫您產生一組
若有填寫的話,請遵守每家銀行的長度限制:

名稱 長度
中國信託銀行
陽信銀行
19
玉山銀行
國泰世華銀行
20
台新銀行 23
凱基銀行 40

payByPrime
payByToken
traderecords
rectradeid

Record

What is it?

查詢交易紀錄用的 API

API 說明

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?

決定一張頁面上有幾筆交易紀錄的參數
預設值為50,而最大值為200
舉例來說:
如果總交易紀錄量為400,而 “records_per_page” 為200
則第0頁會有第1筆紀錄至第200筆紀錄,而第1頁會有第201筆至第400筆紀錄

Record
page

record_status

What is it?

交易紀錄的狀態
可能的值包括:

狀態 內容
-1 ERROR 交易錯誤
0 AUTH 銀行已授權交易,但尚未請款
1 OK 交易完成
2 PARTIALREFUNDED 部分退款
3 REFUNDED 完全退款
4 PENDING 待付款
5 CANCEL 取消交易

filters
trade_records

rec_trade_id

What is it?

付款成功後所回傳的獨特交易識別碼
用於退款查帳

payByPrime
payByToken
Refund
filters
trade_records

Refund

What is it?

退款的 API,支援部分退款

API 說明

partner_key
rec_trade_id
amount
status
msg
refund_amount
x-api-key
Partial Refund

refunded_amount

What is it?

退款金額

Refund
trade_records

remember

What is it?

決定是否要記憶卡號的參數
此參數 = true 時,payByPrime 會回傳 card_secret,裡面包含卡片字串金鑰
未來付款就只需利用卡片字串金鑰來呼叫 payByToken API,省略 createToken 與 payByPrime 的步驟

payByPrime
card_secret

Sandbox

What is it?

測試環境,具有與正式環境一樣的功能,但付款時不會接觸到金流
您可利用 TPDSetup.initInstance()TPDirect.setupSDK() 來進行設定

TPDSetup.initInstance()
TPDirect.setupSDK()
TPDServerType
serverType
Production

serverType

What is it?

決定伺服器環境的參數,應為以下其中一值:

內容
sandbox 測試環境
production 正式環境

TPDSetup.initInstance()
TPDirect.setupSDK()
appid
appKey
TPDServerType
Sandbox
Production

status

What is it?

API 回傳代碼
請參考我們的錯誤代碼表

TPDirect.card.createToken()
TPDCard.createToken()
payByPrime
payByToken
Refund
Record
onFailureCallBack
msg

Status Code

What is it?

消費者填卡號的狀態,由 JavaScript 的 SDK 所回傳:

code 內容
0 欄位已填好,並且沒有問題
1 欄位還沒有填寫
2 欄位有錯誤,此時在 CardView 裡面會用顯示 errorColor
3 使用者正在輸入中

shippingType

What is it?

運送方式,顯示在 Payment Request API 畫面上

1. shipping

2. delivery

3. pickup

TapPay Fields Styles

What it is?

TapPay Fields 支援的 CSS 屬性

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?

下列測試卡號,僅支援 Direct Pay 測試環境交易

Token Pay 交易,於測試環境中需使用真卡測試。使用真卡於測試環境中測試,並不會真的扣款

錢包類的測試環境交易測試,請聯繫 TapPay Support 取得測試方式

備註: 卡片到期年份及月份使用超過目前年月份的效期即可

卡號 CCV 結果
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 )
使用此卡號進行 3D 驗證時會直接授權成功
6234 5774 3859 4899 123 0 - Success ( type : UnionPay )
4716 3139 6829 4359 123 0 - Success ( type : Visa )
使用此測試卡,會得到 bank_id 與 issuer_zh_tw 皆為空的情境
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



在測試環境內,若您要測試Card Metadata API,您一定要用以下的卡號進行測試:

卡號CCV結果
5480 3543 1215 3777123將回傳真實卡面 (Mastercard)
token_status=“ACTIVE”, card art status=“SUPPORT”, is_real_card_face=“TRUE”
4622 9431 2741 6387123將回傳真實卡面(Visa)
token_status=“ACTIVE”, card art status=“SUPPORT”, is_real_card_face=“TRUE”
4242 4217 4599 4242123將回傳假卡面(商戶使用不支援TSP系統的信用卡測試)
token_status=“NOT_SUPPORT”, card art status=“NOT SUPPORT”, is_real_card_face=“FALSE”
4242 4278 8927 4242123將回傳假卡面
token_status=“REQUEST_PROCESSING”, card art status=“REQUEST_PROCESSING”, is_real_card_face=“FALSE”
4242 4230 1382 4242123將回傳假卡面
token_status=“ACTIVE”, card art status=“NOT_SUPPORT”, is_real_card_face=“FALSE”
4242 4235 5081 4242123將回傳假卡面
token_status=“ACTIVE”, card art status=“REQUEST_PROCESSING”, is_real_card_face=“FALSE”
4242 4246 9569 4242123將回傳假卡面
token_status=“SUSPENDED”, card art status=“NOT_SUPPORT”, is_real_card_face=“FALSE”
4242 4253 9494 4242123將回傳假卡面
token_status=“SUSPENDED”, card art status=“REQUEST_PROCESSING”, is_real_card_face=“FALSE”
4242 4266 2411 4242123將回傳假卡面
token_status=“DELETED”, card art status=“NOT_SUPPORT”, is_real_card_face=“FALSE”
4242 4272 1860 4242123將回傳假卡面
token_status=“DELETED”, card art status=“REQUEST_PROCESSING”, is_real_card_face=“FALSE”
4242 4259 9407 4242123將回傳假卡面
token_status=“DELETED”, card art status=“SUPPORT”, is_real_card_face=“FALSE”
4242 4264 8626 4242123“將回傳假卡面(當消費者在交易完成,但商戶尚未呼叫Card Metadata API前,消費者就先通 知發卡行剪卡)token_status="NOT_SUPPORT”, card art status=“NOT_SUPPORT”, is_real_card_face=“FALSE”“
5455 7339 9439 8399123"將回傳真卡面,但TSP系統不支援該卡面,但TapPay系統裡存有該卡面) token_status="NOT_SUPPORT”, card art status=“SUPPORT”, is_real_card_face=“TRUE”
4242 4241 8178 4242123將回傳真卡面token_status=“SUSPENDED”, card art status=“SUPPORT”, is_real_card_face=“TRUE"

這些卡號將會產生對應的結果



在測試環境內,若您要測試Card Notify API,您一定要用以下的卡號進行測試:

卡號CCV結果
4242 4241 8178 4242123此測試卡,測試結果固定為token_status=“SUSPENDED”, card art status=“SUPPORT”, is_real_card_face=“TRUE”

在測試環境中,若您要測試 KYC 驗證功能,請一定要使用以下的身份證字號及電話號碼

身分證字號 電話號碼
A123456789 0912345678

cardNumber
due_month
due_year
CCV

time

What is it?

交易時間,單位為毫秒
請參考 https://currentmillis.com

rec_trade_id
auth_code
merchant_id
merchant_name
appname
amount
refund_amount
record_status
trade_records

time(filter)

What is it?

用來過濾特定時間內的搜尋條件
為 Record API Request Body 中,filters 的必填參數。起始到結束時間上限為 90 天
裡面有兩個參數;

名稱 類別 內容
start_time long 起始時間
end_time long 結束時間

filters

total_page_count

What is it?

交易紀錄總頁數
由於頁數由0開始,所以如果 total_page_count = 2,則指會有第0頁與第1頁

Record
status
msg
records_per_page
page
trade_records

Web SDK compatibility

Safari Direct pay Apple pay Google pay (真實卡號) Google pay (虛擬卡號) 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 (真實卡號) Google pay (虛擬卡號) 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 (真實卡號) Google pay (虛擬卡號) 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 (真實卡號) Google pay (虛擬卡號) 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 (真實卡號) Google pay (虛擬卡號) PaymentRequestAPI LINE Pay Samsung Pay JKOPAY
Windows Edge O X O X X O O O
IE11 Direct pay Apple pay Google pay (真實卡號) Google pay (虛擬卡號) PaymentRequestAPI LINE Pay Samsung Pay JKOPAY
Windows IE11 O X X X X O X O
Facebook Browser Direct pay Apple pay Google pay (真實卡號) Google pay (虛擬卡號) 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 (真實卡號) Google pay (虛擬卡號) PaymentRequestAPI
iOS LINE Browser O X X X X
Android LINE Browser O X X X X

TPDCard

What is it?

設定使用者卡片的類別



TPDSetup
cardNumber
due_month
due_year
CCV

TPDCard.createToken()

What is it?

取得 prime 字串的方法

TPDCard
geoLocation
prime
onSuccessCallBack()
onFailureCallBack()
payByPrime

TPDirect.card.createToken()

What is it?

取得 prime 字串的方法


cardNumber
due_month
due_year
CCV
status
card
client_ip
payByPrime

TPDirect.setupSDK()

What is it?

驗證並設定伺服器的方法,必須於呼叫其他 SDK 方法前優先呼叫


TPDirect.card.createToken()
appid
appKey
serverType

TPDServerType

What is it?

決定伺服器環境的參數,應為以下其中一值:

內容
TPDServerType.Sandbox 測試環境
TPDServerType.Production 正式環境

TPDSetup.initInstance()
TPDirect.setupSDK()
appid
appKey
serverType
Sandbox
Production

TPDSetup

What is it?

驗證並設定伺服器的方法的類別



TPDCard
TPDSetup.initInstance()

TPDSetup.initInstance()

What is it?

驗證並設定伺服器的方法,必須於呼叫其他 SDK 方法前優先呼叫

TPDSetup
appid
appKey
TPDServerType

trade_records

What is it?

包含對應條件底下全部交易紀錄的 JSON 陣列
每筆交易紀錄為一個 JSONObject,並包含以下值:

名稱 類別(長度) 內容
rec_trade_id String(20) 交易紀錄識別碼
auth_code String(6) 銀行授權碼
merchant_id String(50) 商家識別碼
merchant_name String(50) 商家名稱
app_name String App 或網站名稱
time long 交易時間
amount int 交易金額,會因退款而減少
refunded_amount int 退款金額
refund_info JSONObject 退款資訊
僅限於錢包交易才會回傳。此欄位主要顯示在執行退款時,錢包端返還的點數及金額資訊。
若一筆交易同時使用現金和點數折抵來付款,退款後會依據各錢包本身規則決定優先返還點數或是金額。
目前僅支援 :全盈支付
名稱類別內容
returned_reward_amountInt退款後,返還的點數折抵金額
returned_real_amountInt退款後,返還的現金金額。
若無則顯示0。
record_status int 交易狀態
bank_transaction_id String 由大寫英文字母及數字所組成的訂單編號,此訂單編號為方便您對帳使用,並將會送至銀行
bank_order_number String 銀行或錢包端於授權時回傳的訂單編號
支援:悠遊付、Pi錢包、全盈支付
各支援銀行或錢包回傳長度限制,請參考 Reference
cap_millis long 交易會被請款的時間
original_amount int 原始交易金額
bank_transaction_start_millis long 銀行實際交易時間
bank_transaction_end_millis long 銀行實際結束時間
is_captured boolean 是否已請款
bank_result_code String(40) 銀行回傳的交易結果代碼
bank_result_msg String(300) 銀行回傳的交易結果訊息
partial_card_number String 卡號的前六碼與後四碼
payment_method String 付款方式
名稱內容
direct_payDirect Pay
apple_payApple Pay
google_pay_tokenGoogle Pay Token 卡號
google_pay_fpanGoogle Pay 原始卡號
samsung_paySamsung Pay
line_payLINE Pay
tsp_tokenTSP Token
jko_payJKOPAY
easy_wallet悠遊付
atomeAtome
pi_walletPi 錢包
plus_pay全盈支付
details String 交易明細
cardholder JSONArray 消費者資料
名稱類別內容
nameString消費者姓名
phone_numberString消費者電話
emailString消費者信箱
zip_codeString(40)郵遞區號
addressString(90)地址
national_idString(40)身份證字號
member_idString(64)持卡人或購買人會員編號。用於 TapPay 詐欺檢測、會員資料管理時使用。支援 : Direct Pay
bank_member_idString(50)持卡人或購買人編號,屬於商戶與銀行或是錢包串接方交換或約定之消費者編號。當使用此 API 執行悠遊付錢包綁定時,此欄位為必填。支援:悠遊付
merchandise_details JSONObject 交易商品明細
名稱類型內容
no_rebate_amountInt不適用回饋之金額(例如:煙)
no_bonus_amountInt不適用贈點之金額(例如:煙)
currency String 此筆交易幣別
merchant_reference_info JSON 商戶參考資訊
名稱類別內容
affiliate_codesArray商戶於TapPay後台或第三方合作方設定之聯名卡資訊,當交易符合設定時才會回傳
不支援: JKOPAY, Atome, Pi 錢包
member_uidString(60)會員編號(由串街方回傳)
e_invoice_carrier JSONObject 電子發票載具資料
名稱類別內容
typeInt(3)0:手機條碼
1:自然人憑證條碼
-1:其他載具條碼
-2:未使用載用
numberString(100)電子發票載具號碼
donationBoolean是否捐贈
donation_idString(50)愛心碼
three_domain_secure boolean 是否為 3D 驗證交易
pay_by_instalment boolean 是否為分期付款
instalment_info JSONObject pay_by_instalment 為 true 時回傳
名稱類別內容
number_of_instalmentsint分期付款期數
first_paymentint頭期金額
each_paymentint每期金額
order_number String 自定義的訂單編號,用於 TapPay 做訂單識別,可重複帶入。若有帶入此欄位,則不可為空
pay_info JSONObject 支援:LINE Pay, JKOPAY, 悠遊付, Atome, Pi 錢包, 全盈支付
若此交易為LINE PAY定期定額,"method" 與 “masked_credit_card_number” 回傳值為空字串,其餘欄位回傳值為 0
Atome 只能綁定銀行帳戶和 debit card,所以 pay_info 中只有 bank_account 會有值
名稱類別內容
methodString交易方式,只支援 LINE Pay
1. CREDIT_CARD(信用卡)
2. BALANCE(一卡通 iPASS)
3. POINT (LINE Point 全額折抵)
4. DISCOUNT(LINE Pay 優惠券)
masked_credit_card_numberString遮蔽後的卡片末四碼
此欄位僅限LINE Pay,全盈支付交易回傳。若需要須先跟全盈支付申請開通
pointInt點數折抵金額,若無折抵則為0
discountInt優惠券折抵金額,若無折抵則為 0
credit_cardInt使用信用卡支付金額。若無使用此支付方式,會顯示為0
balanceInt使用錢包儲值帳戶支付金額。若無使用此支付方式,會顯示為0
bank_accountInt使用銀行連結帳戶支付金額。若無使用此支付方式,會顯示為0
bin_codeString卡片前6碼或8碼。全盈支付交易回傳。若需要須先跟全盈支付申請開通
pay_by_redeem boolean 是否為紅利折抵交易
redeem_info JSONObject
名稱類別內容
used_pointString紅利折抵點數
balanceString紅利餘額
offset_amountString紅利折抵金額
due_amountString折抵後自付金額
kyc_info JSONObject
名稱類別內容
is_kyc_verifiedBoolean是否有做 KYC 驗證(cardholder_verify.national_id 帶 true 的話,此內容為 true,否則為 false)
kyc_verification_merchant_idString執行 KYC 驗證的 merchant id
card_identifier String 信用卡識別碼,每張信用卡只會對到一組識別碼
不支援:Apple Pay, Google Pay, Samsung Pay, LINE Pay, JKOPAY, Easy Wallet, Atome, Pi 錢包, 全盈支付
card_info JSONObject 卡片資訊。不支援:LINE Pay, JKOPAY, 悠遊付, Atome, Pi 錢包, 全盈支付
裡面包含以下值:
名稱類別(長度)內容
bin_codeString(6)卡片前六碼
last_fourString(4)卡片後四碼
issuerString發卡銀行
issuer_zh_twString發卡銀行中文名稱
bank_idString發卡銀行代碼
fundingint卡片類別
-1 = Unknown
0 = 信用卡 (Credit Card)
1 = 簽帳卡 (Debit Card)
2 = 預付卡 (Prepaid Card)
typeint卡片種類
-1 = Unknown
1 = VISA
2 = MasterCard
3 = JCB
4 = Union Pay
5 = AMEX
levelString卡片等級
countryString發卡行國家
country_codeString發卡行國家碼
is_rba_verified Boolean 該交易有無取得 RBA 評估的風險分數RBA 可以為每筆交易評估風險,以辨認和防止偽冒交易發生。該產品即將上線,您可以參考 TapPay 官網更了解 RBA 這項服務。
transaction_method_details JSONObject 交易方式細節
RBA 可以為每筆交易評估風險,以辨認和防止偽冒交易發生。該產品即將上線,您可以參考 TapPay 官網更了解 RBA 這項服務。
名稱類別內容
transaction_methodStringTHREE_DOMAIN_SECURE: 表示訂單以 3D 驗證的規格送往銀行做交易
FRICTIONLESS: 表示訂單以一般授權的規格送往銀行做交易
transaction_method_referenceStringRBA : 該訂單最後的交易方式,是由 RBA 風險分數規則決定
REQUEST : 訂單最後的交易方式,是由商戶交易時帶來的 Request 規格決定
shipping_address JSONObject 商品寄送地址
支援: Atome
名稱類別(長度)內容
country_codeString(2)符合 ISO-3611 的兩碼國家代碼
linesString(1000)地址
postcodeString(10)郵遞區號
billing_address JSONObject 帳單寄送地址
支援: Atome
名稱類別(長度)內容
country_codeString(2)符合 ISO-3611 的兩碼國家代碼
linesString(1000)地址
postcodeString(10)郵遞區號

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

transaction_time_millis

What is it?

交易時間,單位為毫秒
請參考 https://currentmillis.com

payByPrime
payByToken

x-api-key

What is it?

每個 Portal 帳號的識別金鑰,亦稱為 partner_key 呼叫 TapPay 伺服器的 API 時必須將此值放進 header 中
您可於 Portal 左手邊的 Information 找到此值

payByPrime
payByToken
partner_key Refund
Record