Browse every verified API method by payment gateway.
This page lists only externally callable APIs that can be mapped to route, controller and driver code. Expand each gateway to view endpoints, parameters, gateway_credentials, responses, errors and test examples.
This page only lists APIs that are available to integrators. Internal engineering names, file paths and database details are not shown in public docs.
Public docs show integration details only. Internal engineering names, file paths and database fields are not shown.Last updated:2026-06-23
Public integration docs
Quickstart
Start by getting a PayCore API key, choose Direct Gateway or All-in-One payment project, then call the create payment API. Use the search box above to find gateways, methods, fields or endpoints.
PayCore APIs authenticate callers with the X-API-KEY header. Gateway merchant credentials are sent in gateway_credentials in the request body.
Direct / All-in-One
Integration modes
Direct Gateway lets merchants pass gateway credentials directly. All-in-One projects use a PayCore project API key to manage payment pages and methods centrally.
Webhook
Webhook concept
Gateway callbacks update PayCore payment status first. If payok_url is provided, PayCore notifies the merchant system after payment succeeds. Payment pages also poll status in the background to reduce manual refreshes.
COMMON
Common APIs
Shared query, sync and overview APIs.
Merchant APIs
Production ready
Query payment
Query payment status and payment info by payment_no.
GET/api/paycore/payments/{paymentNo}
Parameters
Header parameters
Field
Location
Required
Type
Description
Example
X-API-KEY
header
Required
string
PayCore API key.
pc_live_xxxxx
Path / Query / Body parameters
Field
Location
Required
Type
Description
Example
paymentNo
path
Required
string
PayCore payment_no.
PAY202606220001ABCDEFGH
Request / Response examples
cURL
curl -X GET "https://api-core.cc/api/paycore/payments/{paymentNo}" \
-H "X-API-KEY: YOUR_PAYCORE_API_KEY"
Create an ECPay AIO redirect payment. It defaults to ChoosePayment=ALL, and the payer chooses an available method on the ECPay page.
POST/api/paycore/pay/ecpay/aio
Parameters
Header parameters
Field
Location
Required
Type
Description
Example
Content-Type
header
Required
string
Use application/json when creating payments.
application/json
X-API-KEY
header
Required
string
PayCore API authentication key. This is not the gateway merchant credential.
pc_live_xxxxx
Path / Query / Body parameters
Field
Location
Required
Type
Description
Example
merchant_order_no
body
Required
string|max:100
Merchant order number. It should be unique. Existing active orders may return the existing payment or an order conflict.
ORDER202606220001
amount
body
Required
integer|min:1
Payment amount. ECPay, SmilePay and PLUS use integer TWD amounts. Stripe uses minor units; PayPal uses major amount strings, and TWD / JPY / HUF are sent without decimals.
980
currency
body
Optional
string|max:10
Currency. ECPay and SmilePay are TWD-only. PayPal currency support is determined by PayPal.
TWD
payer_account
body
Optional
string|max:100
Optional payer/member identifier for tracking.
uid811118A
success_url
body
Optional
url
Merchant success URL.
https://merchant.example/success
return_url
body
Optional
url
Compatibility field. Some payment methods use it as success_url.
https://merchant.example/return
cancel_url
body
Optional
url
Merchant cancel URL.
https://merchant.example/cancel
payok_url
body
Optional
url
Merchant notification URL called by PayCore after payment succeeds.
https://merchant.example/paycore/payok
item_name
body
Optional
string|max:200
Item name. Used by gateways that require item text.
PayCore 測試商品
description
body
Optional
string|max:200
Payment description; can be used as fallback item/trade description.
Order payment
buyer_name
body
Optional
string|max:100
Buyer name, mainly used by offline payment methods such as SmilePay.
王小明
buyer_mobile
body
Optional
string|max:30
Buyer mobile number.
0912345678
buyer_phone
body
Optional
string|max:30
Buyer phone; may be used as fallback for mobile/tel fields.
{
"success": false,
"message": "Validation failed",
"error": {
"error_code": "VALIDATION_FAILED",
"fields": {
"amount": [
"The amount field is required."
]
}
}
}
Errors and notes
ECPAY_CREDENTIAL_INVALID
ORDER_CONFLICT
INVALID_ARGUMENT
Payment gateway error
AIO code generation remains pending and does not mean the payment is paid.
Production ready
Create ECPay AIO credit card payment
Create an ECPay AIO credit-card redirect payment with ChoosePayment=Credit.
POST/api/paycore/pay/ecpay/aio/credit
Parameters
Header parameters
Field
Location
Required
Type
Description
Example
Content-Type
header
Required
string
Use application/json when creating payments.
application/json
X-API-KEY
header
Required
string
PayCore API authentication key. This is not the gateway merchant credential.
pc_live_xxxxx
Path / Query / Body parameters
Field
Location
Required
Type
Description
Example
merchant_order_no
body
Required
string|max:100
Merchant order number. It should be unique. Existing active orders may return the existing payment or an order conflict.
ORDER202606220001
amount
body
Required
integer|min:1
Payment amount. ECPay, SmilePay and PLUS use integer TWD amounts. Stripe uses minor units; PayPal uses major amount strings, and TWD / JPY / HUF are sent without decimals.
980
currency
body
Optional
string|max:10
Currency. ECPay and SmilePay are TWD-only. PayPal currency support is determined by PayPal.
TWD
payer_account
body
Optional
string|max:100
Optional payer/member identifier for tracking.
uid811118A
success_url
body
Optional
url
Merchant success URL.
https://merchant.example/success
return_url
body
Optional
url
Compatibility field. Some payment methods use it as success_url.
https://merchant.example/return
cancel_url
body
Optional
url
Merchant cancel URL.
https://merchant.example/cancel
payok_url
body
Optional
url
Merchant notification URL called by PayCore after payment succeeds.
https://merchant.example/paycore/payok
item_name
body
Optional
string|max:200
Item name. Used by gateways that require item text.
PayCore 測試商品
description
body
Optional
string|max:200
Payment description; can be used as fallback item/trade description.
Order payment
buyer_name
body
Optional
string|max:100
Buyer name, mainly used by offline payment methods such as SmilePay.
王小明
buyer_mobile
body
Optional
string|max:30
Buyer mobile number.
0912345678
buyer_phone
body
Optional
string|max:30
Buyer phone; may be used as fallback for mobile/tel fields.
{
"success": false,
"message": "Validation failed",
"error": {
"error_code": "VALIDATION_FAILED",
"fields": {
"amount": [
"The amount field is required."
]
}
}
}
Errors and notes
ECPAY_CREDENTIAL_INVALID
ORDER_CONFLICT
INVALID_ARGUMENT
Payment gateway error
ECPay AIO payments currently accept TWD only.
Production ready
Create ECPay AIO ATM payment
Create an ECPay AIO ATM redirect payment. After ECPay generates the code, PayCore stores the bank code, virtual account and expiry.
POST/api/paycore/pay/ecpay/aio/atm
Parameters
Header parameters
Field
Location
Required
Type
Description
Example
Content-Type
header
Required
string
Use application/json when creating payments.
application/json
X-API-KEY
header
Required
string
PayCore API authentication key. This is not the gateway merchant credential.
pc_live_xxxxx
Path / Query / Body parameters
Field
Location
Required
Type
Description
Example
merchant_order_no
body
Required
string|max:100
Merchant order number. It should be unique. Existing active orders may return the existing payment or an order conflict.
ORDER202606220001
amount
body
Required
integer|min:1
Payment amount. ECPay, SmilePay and PLUS use integer TWD amounts. Stripe uses minor units; PayPal uses major amount strings, and TWD / JPY / HUF are sent without decimals.
980
currency
body
Optional
string|max:10
Currency. ECPay and SmilePay are TWD-only. PayPal currency support is determined by PayPal.
TWD
payer_account
body
Optional
string|max:100
Optional payer/member identifier for tracking.
uid811118A
success_url
body
Optional
url
Merchant success URL.
https://merchant.example/success
return_url
body
Optional
url
Compatibility field. Some payment methods use it as success_url.
https://merchant.example/return
cancel_url
body
Optional
url
Merchant cancel URL.
https://merchant.example/cancel
payok_url
body
Optional
url
Merchant notification URL called by PayCore after payment succeeds.
https://merchant.example/paycore/payok
item_name
body
Optional
string|max:200
Item name. Used by gateways that require item text.
PayCore 測試商品
description
body
Optional
string|max:200
Payment description; can be used as fallback item/trade description.
Order payment
buyer_name
body
Optional
string|max:100
Buyer name, mainly used by offline payment methods such as SmilePay.
王小明
buyer_mobile
body
Optional
string|max:30
Buyer mobile number.
0912345678
buyer_phone
body
Optional
string|max:30
Buyer phone; may be used as fallback for mobile/tel fields.
{
"success": false,
"message": "Validation failed",
"error": {
"error_code": "VALIDATION_FAILED",
"fields": {
"amount": [
"The amount field is required."
]
}
}
}
Errors and notes
ECPAY_CREDENTIAL_INVALID
ORDER_CONFLICT
ECPAY amount mismatch
AIO ATM first redirects to ECPay; after return, the token payment page displays the generated payment instructions.
Production ready
Create ECPay AIO CVS code payment
Create an ECPay AIO CVS redirect payment. After ECPay generates the code, PayCore displays the CVS code and expiry.
POST/api/paycore/pay/ecpay/aio/cvs
Parameters
Header parameters
Field
Location
Required
Type
Description
Example
Content-Type
header
Required
string
Use application/json when creating payments.
application/json
X-API-KEY
header
Required
string
PayCore API authentication key. This is not the gateway merchant credential.
pc_live_xxxxx
Path / Query / Body parameters
Field
Location
Required
Type
Description
Example
merchant_order_no
body
Required
string|max:100
Merchant order number. It should be unique. Existing active orders may return the existing payment or an order conflict.
ORDER202606220001
amount
body
Required
integer|min:1
Payment amount. ECPay, SmilePay and PLUS use integer TWD amounts. Stripe uses minor units; PayPal uses major amount strings, and TWD / JPY / HUF are sent without decimals.
980
currency
body
Optional
string|max:10
Currency. ECPay and SmilePay are TWD-only. PayPal currency support is determined by PayPal.
TWD
payer_account
body
Optional
string|max:100
Optional payer/member identifier for tracking.
uid811118A
success_url
body
Optional
url
Merchant success URL.
https://merchant.example/success
return_url
body
Optional
url
Compatibility field. Some payment methods use it as success_url.
https://merchant.example/return
cancel_url
body
Optional
url
Merchant cancel URL.
https://merchant.example/cancel
payok_url
body
Optional
url
Merchant notification URL called by PayCore after payment succeeds.
https://merchant.example/paycore/payok
item_name
body
Optional
string|max:200
Item name. Used by gateways that require item text.
PayCore 測試商品
description
body
Optional
string|max:200
Payment description; can be used as fallback item/trade description.
Order payment
buyer_name
body
Optional
string|max:100
Buyer name, mainly used by offline payment methods such as SmilePay.
王小明
buyer_mobile
body
Optional
string|max:30
Buyer mobile number.
0912345678
buyer_phone
body
Optional
string|max:30
Buyer phone; may be used as fallback for mobile/tel fields.
{
"success": false,
"message": "Validation failed",
"error": {
"error_code": "VALIDATION_FAILED",
"fields": {
"amount": [
"The amount field is required."
]
}
}
}
Errors and notes
ECPAY_CREDENTIAL_INVALID
ECPAY amount mismatch
The payment page provides an ECPay CVS payment guide link.
Production ready
Create ECPay AIO barcode payment
Create an ECPay AIO barcode redirect payment. After ECPay generates the barcode, PayCore displays the three barcode lines and expiry.
POST/api/paycore/pay/ecpay/aio/barcode
Parameters
Header parameters
Field
Location
Required
Type
Description
Example
Content-Type
header
Required
string
Use application/json when creating payments.
application/json
X-API-KEY
header
Required
string
PayCore API authentication key. This is not the gateway merchant credential.
pc_live_xxxxx
Path / Query / Body parameters
Field
Location
Required
Type
Description
Example
merchant_order_no
body
Required
string|max:100
Merchant order number. It should be unique. Existing active orders may return the existing payment or an order conflict.
ORDER202606220001
amount
body
Required
integer|min:1
Payment amount. ECPay, SmilePay and PLUS use integer TWD amounts. Stripe uses minor units; PayPal uses major amount strings, and TWD / JPY / HUF are sent without decimals.
980
currency
body
Optional
string|max:10
Currency. ECPay and SmilePay are TWD-only. PayPal currency support is determined by PayPal.
TWD
payer_account
body
Optional
string|max:100
Optional payer/member identifier for tracking.
uid811118A
success_url
body
Optional
url
Merchant success URL.
https://merchant.example/success
return_url
body
Optional
url
Compatibility field. Some payment methods use it as success_url.
https://merchant.example/return
cancel_url
body
Optional
url
Merchant cancel URL.
https://merchant.example/cancel
payok_url
body
Optional
url
Merchant notification URL called by PayCore after payment succeeds.
https://merchant.example/paycore/payok
item_name
body
Optional
string|max:200
Item name. Used by gateways that require item text.
PayCore 測試商品
description
body
Optional
string|max:200
Payment description; can be used as fallback item/trade description.
Order payment
buyer_name
body
Optional
string|max:100
Buyer name, mainly used by offline payment methods such as SmilePay.
王小明
buyer_mobile
body
Optional
string|max:30
Buyer mobile number.
0912345678
buyer_phone
body
Optional
string|max:30
Buyer phone; may be used as fallback for mobile/tel fields.
{
"success": false,
"message": "Validation failed",
"error": {
"error_code": "VALIDATION_FAILED",
"fields": {
"amount": [
"The amount field is required."
]
}
}
}
Errors and notes
ECPAY_CREDENTIAL_INVALID
ECPAY amount mismatch
For Taiwan barcode payments, copy the payment page URL and scan the three rendered barcodes at the store. The payment page only shows ECPay barcode help links.
Production ready
Create ECPay ATM background code
PayCore calls ECPay GenPaymentCode directly to obtain an ATM virtual account without redirecting to the ECPay payment page.
POST/api/paycore/pay/ecpay/atm
Parameters
Header parameters
Field
Location
Required
Type
Description
Example
Content-Type
header
Required
string
Use application/json when creating payments.
application/json
X-API-KEY
header
Required
string
PayCore API authentication key. This is not the gateway merchant credential.
pc_live_xxxxx
Path / Query / Body parameters
Field
Location
Required
Type
Description
Example
merchant_order_no
body
Required
string|max:100
Merchant order number. It should be unique. Existing active orders may return the existing payment or an order conflict.
ORDER202606220001
amount
body
Required
integer|min:1
Payment amount. ECPay, SmilePay and PLUS use integer TWD amounts. Stripe uses minor units; PayPal uses major amount strings, and TWD / JPY / HUF are sent without decimals.
980
currency
body
Optional
string|max:10
Currency. ECPay and SmilePay are TWD-only. PayPal currency support is determined by PayPal.
TWD
payer_account
body
Optional
string|max:100
Optional payer/member identifier for tracking.
uid811118A
success_url
body
Optional
url
Merchant success URL.
https://merchant.example/success
return_url
body
Optional
url
Compatibility field. Some payment methods use it as success_url.
https://merchant.example/return
cancel_url
body
Optional
url
Merchant cancel URL.
https://merchant.example/cancel
payok_url
body
Optional
url
Merchant notification URL called by PayCore after payment succeeds.
https://merchant.example/paycore/payok
item_name
body
Optional
string|max:200
Item name. Used by gateways that require item text.
PayCore 測試商品
description
body
Optional
string|max:200
Payment description; can be used as fallback item/trade description.
Order payment
buyer_name
body
Optional
string|max:100
Buyer name, mainly used by offline payment methods such as SmilePay.
王小明
buyer_mobile
body
Optional
string|max:30
Buyer mobile number.
0912345678
buyer_phone
body
Optional
string|max:30
Buyer phone; may be used as fallback for mobile/tel fields.
{
"success": false,
"message": "Validation failed",
"error": {
"error_code": "VALIDATION_FAILED",
"fields": {
"amount": [
"The amount field is required."
]
}
}
}
Errors and notes
ECPAY_CREDENTIAL_INVALID
ORDER_CONFLICT
ECPAY_BACKGROUND_CODE_FAILED
Successful background code generation only means payment instructions were generated, not that the payment is paid.
Production ready
Create ECPay CVS background code
PayCore calls ECPay GenPaymentCode directly to obtain a CVS code without redirecting to the ECPay payment page.
POST/api/paycore/pay/ecpay/cvs
Parameters
Header parameters
Field
Location
Required
Type
Description
Example
Content-Type
header
Required
string
Use application/json when creating payments.
application/json
X-API-KEY
header
Required
string
PayCore API authentication key. This is not the gateway merchant credential.
pc_live_xxxxx
Path / Query / Body parameters
Field
Location
Required
Type
Description
Example
merchant_order_no
body
Required
string|max:100
Merchant order number. It should be unique. Existing active orders may return the existing payment or an order conflict.
ORDER202606220001
amount
body
Required
integer|min:1
Payment amount. ECPay, SmilePay and PLUS use integer TWD amounts. Stripe uses minor units; PayPal uses major amount strings, and TWD / JPY / HUF are sent without decimals.
980
currency
body
Optional
string|max:10
Currency. ECPay and SmilePay are TWD-only. PayPal currency support is determined by PayPal.
TWD
payer_account
body
Optional
string|max:100
Optional payer/member identifier for tracking.
uid811118A
success_url
body
Optional
url
Merchant success URL.
https://merchant.example/success
return_url
body
Optional
url
Compatibility field. Some payment methods use it as success_url.
https://merchant.example/return
cancel_url
body
Optional
url
Merchant cancel URL.
https://merchant.example/cancel
payok_url
body
Optional
url
Merchant notification URL called by PayCore after payment succeeds.
https://merchant.example/paycore/payok
item_name
body
Optional
string|max:200
Item name. Used by gateways that require item text.
PayCore 測試商品
description
body
Optional
string|max:200
Payment description; can be used as fallback item/trade description.
Order payment
buyer_name
body
Optional
string|max:100
Buyer name, mainly used by offline payment methods such as SmilePay.
王小明
buyer_mobile
body
Optional
string|max:30
Buyer mobile number.
0912345678
buyer_phone
body
Optional
string|max:30
Buyer phone; may be used as fallback for mobile/tel fields.
{
"success": false,
"message": "Validation failed",
"error": {
"error_code": "VALIDATION_FAILED",
"fields": {
"amount": [
"The amount field is required."
]
}
}
}
Errors and notes
ECPAY_CREDENTIAL_INVALID
ORDER_CONFLICT
ECPAY_BACKGROUND_CODE_FAILED
The payment page provides an ECPay CVS payment guide link.
Production ready
Create ECPay barcode background code
PayCore calls ECPay GenPaymentCode directly to obtain three barcode lines without redirecting to the ECPay payment page.
POST/api/paycore/pay/ecpay/barcode
Parameters
Header parameters
Field
Location
Required
Type
Description
Example
Content-Type
header
Required
string
Use application/json when creating payments.
application/json
X-API-KEY
header
Required
string
PayCore API authentication key. This is not the gateway merchant credential.
pc_live_xxxxx
Path / Query / Body parameters
Field
Location
Required
Type
Description
Example
merchant_order_no
body
Required
string|max:100
Merchant order number. It should be unique. Existing active orders may return the existing payment or an order conflict.
ORDER202606220001
amount
body
Required
integer|min:1
Payment amount. ECPay, SmilePay and PLUS use integer TWD amounts. Stripe uses minor units; PayPal uses major amount strings, and TWD / JPY / HUF are sent without decimals.
980
currency
body
Optional
string|max:10
Currency. ECPay and SmilePay are TWD-only. PayPal currency support is determined by PayPal.
TWD
payer_account
body
Optional
string|max:100
Optional payer/member identifier for tracking.
uid811118A
success_url
body
Optional
url
Merchant success URL.
https://merchant.example/success
return_url
body
Optional
url
Compatibility field. Some payment methods use it as success_url.
https://merchant.example/return
cancel_url
body
Optional
url
Merchant cancel URL.
https://merchant.example/cancel
payok_url
body
Optional
url
Merchant notification URL called by PayCore after payment succeeds.
https://merchant.example/paycore/payok
item_name
body
Optional
string|max:200
Item name. Used by gateways that require item text.
PayCore 測試商品
description
body
Optional
string|max:200
Payment description; can be used as fallback item/trade description.
Order payment
buyer_name
body
Optional
string|max:100
Buyer name, mainly used by offline payment methods such as SmilePay.
王小明
buyer_mobile
body
Optional
string|max:30
Buyer mobile number.
0912345678
buyer_phone
body
Optional
string|max:30
Buyer phone; may be used as fallback for mobile/tel fields.
Used by ECPay callbacks. Merchants should not call it manually. Supports AIO PaymentInfoURL and background-code payment result notifications; encrypted Data in background JSON callbacks is parsed automatically.
POST/api/paycore/webhooks/ecpay
Parameters
Path / Query / Body parameters
Field
Location
Required
Type
Description
Example
MerchantID
body
Optional
string
ECPay merchant ID, used by AIO and background-code JSON callbacks.
2000132
RqHeader
body
Optional
object
Transport header in ECPay background-code JSON callbacks.
{"Timestamp":1782144000}
Data
body
Optional
string
AES encrypted data in ECPay background-code JSON callbacks. PayCore tolerates base64 + converted to spaces.
encrypted-data
TransCode
body
Optional
integer
Transport code for ECPay background-code JSON callbacks.
1
MerchantTradeNo
body
Optional
string
ECPay trade number, maps to gateway_order_no.
PC202606220001
CustomField1
body
Optional
string
PayCore payment_no.
PAY202606220001ABCDEFGH
TradeAmt
body
Optional
integer
Returned amount; PayCore compares it to transaction amount.
980
RtnCode
body
Optional
string
ECPay return code. Code generation success does not mean paid.
{
"success": false,
"message": "Validation failed",
"error": {
"error_code": "VALIDATION_FAILED",
"fields": {
"amount": [
"The amount field is required."
]
}
}
}
Errors and notes
ECPay MerchantID mismatch.
ECPay amount mismatch.
ECPay CheckMacValue verification failed.
ECPay encrypted background callback transaction not found.
SMILEPAY
SmilePay
Supports ATM virtual accounts, CVS code payments and a dedicated barcode payment endpoint.
Merchant APIs
Production ready
Create SmilePay ATM virtual account
Create a SmilePay ATM payment. PayCore automatically uses the ATM payment parameters.
POST/api/paycore/pay/smilepay/atm
Parameters
Header parameters
Field
Location
Required
Type
Description
Example
Content-Type
header
Required
string
Use application/json when creating payments.
application/json
X-API-KEY
header
Required
string
PayCore API authentication key. This is not the gateway merchant credential.
pc_live_xxxxx
Path / Query / Body parameters
Field
Location
Required
Type
Description
Example
merchant_order_no
body
Required
string|max:100
Merchant order number. It should be unique. Existing active orders may return the existing payment or an order conflict.
ORDER202606220001
amount
body
Required
integer|min:1
Payment amount. ECPay, SmilePay and PLUS use integer TWD amounts. Stripe uses minor units; PayPal uses major amount strings, and TWD / JPY / HUF are sent without decimals.
980
currency
body
Optional
string|max:10
Currency. ECPay and SmilePay are TWD-only. PayPal currency support is determined by PayPal.
TWD
payer_account
body
Optional
string|max:100
Optional payer/member identifier for tracking.
uid811118A
success_url
body
Optional
url
Merchant success URL.
https://merchant.example/success
return_url
body
Optional
url
Compatibility field. Some payment methods use it as success_url.
https://merchant.example/return
cancel_url
body
Optional
url
Merchant cancel URL.
https://merchant.example/cancel
payok_url
body
Optional
url
Merchant notification URL called by PayCore after payment succeeds.
https://merchant.example/paycore/payok
item_name
body
Optional
string|max:200
Item name. Used by gateways that require item text.
PayCore 測試商品
description
body
Optional
string|max:200
Payment description; can be used as fallback item/trade description.
Order payment
buyer_name
body
Optional
string|max:100
Buyer name, mainly used by offline payment methods such as SmilePay.
王小明
buyer_mobile
body
Optional
string|max:30
Buyer mobile number.
0912345678
buyer_phone
body
Optional
string|max:30
Buyer phone; may be used as fallback for mobile/tel fields.
{
"success": false,
"message": "Validation failed",
"error": {
"error_code": "VALIDATION_FAILED",
"fields": {
"amount": [
"The amount field is required."
]
}
}
}
Errors and notes
SMILEPAY_CREDENTIAL_INVALID
SmilePay amount mismatch.
SmilePay Dcvc mismatch.
Amount must match the original payment amount.
Production ready
Create SmilePay CVS code payment
Create a SmilePay CVS code payment. Use cvs_type to choose ibon, fami, famiport or family; Taiwan code payments expose a copyable payment code.
POST/api/paycore/pay/smilepay/cvs
Parameters
Header parameters
Field
Location
Required
Type
Description
Example
Content-Type
header
Required
string
Use application/json when creating payments.
application/json
X-API-KEY
header
Required
string
PayCore API authentication key. This is not the gateway merchant credential.
pc_live_xxxxx
Path / Query / Body parameters
Field
Location
Required
Type
Description
Example
merchant_order_no
body
Required
string|max:100
Merchant order number. It should be unique. Existing active orders may return the existing payment or an order conflict.
ORDER202606220001
amount
body
Required
integer|min:1
Payment amount. ECPay, SmilePay and PLUS use integer TWD amounts. Stripe uses minor units; PayPal uses major amount strings, and TWD / JPY / HUF are sent without decimals.
980
currency
body
Optional
string|max:10
Currency. ECPay and SmilePay are TWD-only. PayPal currency support is determined by PayPal.
TWD
payer_account
body
Optional
string|max:100
Optional payer/member identifier for tracking.
uid811118A
success_url
body
Optional
url
Merchant success URL.
https://merchant.example/success
return_url
body
Optional
url
Compatibility field. Some payment methods use it as success_url.
https://merchant.example/return
cancel_url
body
Optional
url
Merchant cancel URL.
https://merchant.example/cancel
payok_url
body
Optional
url
Merchant notification URL called by PayCore after payment succeeds.
https://merchant.example/paycore/payok
item_name
body
Optional
string|max:200
Item name. Used by gateways that require item text.
PayCore 測試商品
description
body
Optional
string|max:200
Payment description; can be used as fallback item/trade description.
Order payment
buyer_name
body
Optional
string|max:100
Buyer name, mainly used by offline payment methods such as SmilePay.
王小明
buyer_mobile
body
Optional
string|max:30
Buyer mobile number.
0912345678
buyer_phone
body
Optional
string|max:30
Buyer phone; may be used as fallback for mobile/tel fields.
{
"success": false,
"message": "Validation failed",
"error": {
"error_code": "VALIDATION_FAILED",
"fields": {
"amount": [
"The amount field is required."
]
}
}
}
Errors and notes
SMILEPAY_CREDENTIAL_INVALID
SmilePay amount mismatch.
SmilePay validation token mismatch.
SmilePay CVS-code help only shows SmilePay-specific guide links.
Production ready
Create SmilePay barcode payment
Create a SmilePay barcode payment. PayCore generates SmilePay barcode instructions and displays three scannable barcode lines on the payment page. For Taiwan barcode payments, copy the payment page URL instead of copying raw Barcode1/2/3 strings.
POST/api/paycore/pay/smilepay/barcode
Parameters
Header parameters
Field
Location
Required
Type
Description
Example
Content-Type
header
Required
string
Use application/json when creating payments.
application/json
X-API-KEY
header
Required
string
PayCore API authentication key. This is not the gateway merchant credential.
pc_live_xxxxx
Path / Query / Body parameters
Field
Location
Required
Type
Description
Example
merchant_order_no
body
Required
string|max:100
Merchant order number. It should be unique. Existing active orders may return the existing payment or an order conflict.
ORDER202606220001
amount
body
Required
integer|min:1
Payment amount. ECPay, SmilePay and PLUS use integer TWD amounts. Stripe uses minor units; PayPal uses major amount strings, and TWD / JPY / HUF are sent without decimals.
980
currency
body
Optional
string|max:10
Currency. ECPay and SmilePay are TWD-only. PayPal currency support is determined by PayPal.
TWD
payer_account
body
Optional
string|max:100
Optional payer/member identifier for tracking.
uid811118A
success_url
body
Optional
url
Merchant success URL.
https://merchant.example/success
return_url
body
Optional
url
Compatibility field. Some payment methods use it as success_url.
https://merchant.example/return
cancel_url
body
Optional
url
Merchant cancel URL.
https://merchant.example/cancel
payok_url
body
Optional
url
Merchant notification URL called by PayCore after payment succeeds.
https://merchant.example/paycore/payok
item_name
body
Optional
string|max:200
Item name. Used by gateways that require item text.
PayCore 測試商品
description
body
Optional
string|max:200
Payment description; can be used as fallback item/trade description.
Order payment
buyer_name
body
Optional
string|max:100
Buyer name, mainly used by offline payment methods such as SmilePay.
王小明
buyer_mobile
body
Optional
string|max:30
Buyer mobile number.
0912345678
buyer_phone
body
Optional
string|max:30
Buyer phone; may be used as fallback for mobile/tel fields.
{
"success": false,
"message": "Validation failed",
"error": {
"error_code": "VALIDATION_FAILED",
"fields": {
"amount": [
"The amount field is required."
]
}
}
}
Errors and notes
SMILEPAY_CREDENTIAL_INVALID
SMILEPAY_BARCODE_SERVICE_NOT_ENABLED
SmilePay amount mismatch.
SmilePay validation token mismatch.
The payment page only shows SmilePay barcode help links, never ECPay help links.
If SmilePay returns Can not use this Pay_zg service(Store), PayCore returns 422 with SMILEPAY_BARCODE_SERVICE_NOT_ENABLED, does not issue a payment order, and does not return 502.
Webhooks / Returns
Production ready
SmilePay Roturl callback
Used by SmilePay payment notification. Data_id maps to merchant_order_no and SmilePayNO maps to gateway_trade_no.
POST/api/paycore/webhooks/smilepay
Parameters
Header parameters
Field
Location
Required
Type
Description
Example
Content-Type
header
Optional
form/json
SmilePay may send form payload; PayCore simulations may use JSON.
application/x-www-form-urlencoded
Path / Query / Body parameters
Field
Location
Required
Type
Description
Example
Dcvc
body
Required
string
Merchant code. PayCore compares it with stored credentials.
2109
Data_id
body
Required
string
Merchant order number, maps to merchant_order_no.
ORDER202606220202111
SmilePayNO
body
Optional
string
SmilePay transaction number. PayCore first matches it with gateway_trade_no.
062223689453
Amount
body
Required
integer|string
Payment amount. Must match the original payment amount.
HTTP/1.1 200 OK
Content-Type: text/plain; charset=UTF-8
OK
Error response example
JSON
{
"success": false,
"message": "Validation failed",
"error": {
"error_code": "VALIDATION_FAILED",
"fields": {
"amount": [
"The amount field is required."
]
}
}
}
Errors and notes
SmilePay Dcvc mismatch.
SmilePay amount mismatch.
SmilePay validation token mismatch.
If SmilePay amount mismatch is returned, check paycore.log for SmilePay amount mismatch detail: expected_amount, received_amount, matched_by, payload_data_id and payload_smilepay_no.
PAYPAL
PayPal
Supports PayPal Checkout order creation, return capture and webhook.
Merchant APIs
Production ready
Create PayPal Checkout
Create a PayPal Order and receive approval_url. After approval, the payer returns to PayCore for capture.
POST/api/paycore/pay/paypal/checkout
Parameters
Header parameters
Field
Location
Required
Type
Description
Example
Content-Type
header
Required
string
Use application/json when creating payments.
application/json
X-API-KEY
header
Required
string
PayCore API authentication key. This is not the gateway merchant credential.
pc_live_xxxxx
Path / Query / Body parameters
Field
Location
Required
Type
Description
Example
merchant_order_no
body
Required
string|max:100
Merchant order number. It should be unique. Existing active orders may return the existing payment or an order conflict.
ORDER202606220001
amount
body
Required
integer|min:1
Payment amount. ECPay, SmilePay and PLUS use integer TWD amounts. Stripe uses minor units; PayPal uses major amount strings, and TWD / JPY / HUF are sent without decimals.
980
currency
body
Optional
string|max:10
Currency. ECPay and SmilePay are TWD-only. PayPal currency support is determined by PayPal.
TWD
payer_account
body
Optional
string|max:100
Optional payer/member identifier for tracking.
uid811118A
success_url
body
Optional
url
Merchant success URL.
https://merchant.example/success
return_url
body
Optional
url
Compatibility field. Some payment methods use it as success_url.
https://merchant.example/return
cancel_url
body
Optional
url
Merchant cancel URL.
https://merchant.example/cancel
payok_url
body
Optional
url
Merchant notification URL called by PayCore after payment succeeds.
https://merchant.example/paycore/payok
item_name
body
Optional
string|max:200
Item name. Used by gateways that require item text.
PayCore 測試商品
description
body
Optional
string|max:200
Payment description; can be used as fallback item/trade description.
Order payment
buyer_name
body
Optional
string|max:100
Buyer name, mainly used by offline payment methods such as SmilePay.
王小明
buyer_mobile
body
Optional
string|max:30
Buyer mobile number.
0912345678
buyer_phone
body
Optional
string|max:30
Buyer phone; may be used as fallback for mobile/tel fields.
{
"success": false,
"message": "Validation failed",
"error": {
"error_code": "VALIDATION_FAILED",
"fields": {
"amount": [
"The amount field is required."
]
}
}
}
Errors and notes
PAYPAL_WEBHOOK_VERIFY_FAILED
STRIPE
Stripe
Supports cards, Alipay, WeChat Pay and Southeast Asia local payment methods through Stripe PaymentIntents and Payment Element.
Merchant APIs
Production ready
Create Stripe card payment
Create a Stripe card payment. PayCore returns a hosted payment URL where the payer completes payment securely.
POST/api/paycore/pay/stripe/credit
Parameters
Header parameters
Field
Location
Required
Type
Description
Example
Content-Type
header
Required
string
Use application/json when creating payments.
application/json
X-API-KEY
header
Required
string
PayCore API authentication key. This is not the gateway merchant credential.
pc_live_xxxxx
Path / Query / Body parameters
Field
Location
Required
Type
Description
Example
merchant_order_no
body
Required
string|max:100
Merchant order number. It should be unique. Existing active orders may return the existing payment or an order conflict.
ORDER202606220001
amount
body
Required
integer|min:1
Payment amount. ECPay, SmilePay and PLUS use integer TWD amounts. Stripe uses minor units; PayPal uses major amount strings, and TWD / JPY / HUF are sent without decimals.
980
currency
body
Optional
string|max:10
Currency. ECPay and SmilePay are TWD-only. PayPal currency support is determined by PayPal.
TWD
payer_account
body
Optional
string|max:100
Optional payer/member identifier for tracking.
uid811118A
success_url
body
Optional
url
Merchant success URL.
https://merchant.example/success
return_url
body
Optional
url
Compatibility field. Some payment methods use it as success_url.
https://merchant.example/return
cancel_url
body
Optional
url
Merchant cancel URL.
https://merchant.example/cancel
payok_url
body
Optional
url
Merchant notification URL called by PayCore after payment succeeds.
https://merchant.example/paycore/payok
item_name
body
Optional
string|max:200
Item name. Used by gateways that require item text.
PayCore 測試商品
description
body
Optional
string|max:200
Payment description; can be used as fallback item/trade description.
Order payment
buyer_name
body
Optional
string|max:100
Buyer name, mainly used by offline payment methods such as SmilePay.
王小明
buyer_mobile
body
Optional
string|max:30
Buyer mobile number.
0912345678
buyer_phone
body
Optional
string|max:30
Buyer phone; may be used as fallback for mobile/tel fields.
{
"success": false,
"message": "Validation failed",
"error": {
"error_code": "VALIDATION_FAILED",
"fields": {
"amount": [
"The amount field is required."
]
}
}
}
Errors and notes
STRIPE_SECRET_KEY_INVALID
STRIPE_PUBLISHABLE_KEY_INVALID
STRIPE_AUTH_FAILED
STRIPE_PAYMENT_INTENT_CREATE_FAILED
Production ready
Create Stripe Alipay payment (China)
Create a Stripe Alipay payment. PayCore creates a PaymentIntent with payment_method_types[]=alipay.
POST/api/paycore/pay/stripe/alipay
Parameters
Header parameters
Field
Location
Required
Type
Description
Example
Content-Type
header
Required
string
Use application/json when creating payments.
application/json
X-API-KEY
header
Required
string
PayCore API authentication key. This is not the gateway merchant credential.
pc_live_xxxxx
Path / Query / Body parameters
Field
Location
Required
Type
Description
Example
merchant_order_no
body
Required
string|max:100
Merchant order number. It should be unique. Existing active orders may return the existing payment or an order conflict.
ORDER202606220001
amount
body
Required
integer|min:1
Payment amount. ECPay, SmilePay and PLUS use integer TWD amounts. Stripe uses minor units; PayPal uses major amount strings, and TWD / JPY / HUF are sent without decimals.
980
currency
body
Optional
string|max:10
Currency. ECPay and SmilePay are TWD-only. PayPal currency support is determined by PayPal.
TWD
payer_account
body
Optional
string|max:100
Optional payer/member identifier for tracking.
uid811118A
success_url
body
Optional
url
Merchant success URL.
https://merchant.example/success
return_url
body
Optional
url
Compatibility field. Some payment methods use it as success_url.
https://merchant.example/return
cancel_url
body
Optional
url
Merchant cancel URL.
https://merchant.example/cancel
payok_url
body
Optional
url
Merchant notification URL called by PayCore after payment succeeds.
https://merchant.example/paycore/payok
item_name
body
Optional
string|max:200
Item name. Used by gateways that require item text.
PayCore 測試商品
description
body
Optional
string|max:200
Payment description; can be used as fallback item/trade description.
Order payment
buyer_name
body
Optional
string|max:100
Buyer name, mainly used by offline payment methods such as SmilePay.
王小明
buyer_mobile
body
Optional
string|max:30
Buyer mobile number.
0912345678
buyer_phone
body
Optional
string|max:30
Buyer phone; may be used as fallback for mobile/tel fields.
{
"success": false,
"message": "Validation failed",
"error": {
"error_code": "VALIDATION_FAILED",
"fields": {
"amount": [
"The amount field is required."
]
}
}
}
Errors and notes
STRIPE_PAYMENT_METHOD_CURRENCY_UNSUPPORTED
STRIPE_PAYMENT_INTENT_CREATE_FAILED
STRIPE_AUTH_FAILED
Allowed currencies: CNY, AUD, CAD, EUR, GBP, HKD, JPY, MYR, NZD, SGD and USD. Stripe may still reject the request if Alipay is not available for the merchant account.
Production ready
Create Stripe WeChat Pay payment (China)
Create a Stripe WeChat Pay payment. The public API uses wechat-pay and maps it to Stripe enum wechat_pay internally.
POST/api/paycore/pay/stripe/wechat-pay
Parameters
Header parameters
Field
Location
Required
Type
Description
Example
Content-Type
header
Required
string
Use application/json when creating payments.
application/json
X-API-KEY
header
Required
string
PayCore API authentication key. This is not the gateway merchant credential.
pc_live_xxxxx
Path / Query / Body parameters
Field
Location
Required
Type
Description
Example
merchant_order_no
body
Required
string|max:100
Merchant order number. It should be unique. Existing active orders may return the existing payment or an order conflict.
ORDER202606220001
amount
body
Required
integer|min:1
Payment amount. ECPay, SmilePay and PLUS use integer TWD amounts. Stripe uses minor units; PayPal uses major amount strings, and TWD / JPY / HUF are sent without decimals.
980
currency
body
Optional
string|max:10
Currency. ECPay and SmilePay are TWD-only. PayPal currency support is determined by PayPal.
TWD
payer_account
body
Optional
string|max:100
Optional payer/member identifier for tracking.
uid811118A
success_url
body
Optional
url
Merchant success URL.
https://merchant.example/success
return_url
body
Optional
url
Compatibility field. Some payment methods use it as success_url.
https://merchant.example/return
cancel_url
body
Optional
url
Merchant cancel URL.
https://merchant.example/cancel
payok_url
body
Optional
url
Merchant notification URL called by PayCore after payment succeeds.
https://merchant.example/paycore/payok
item_name
body
Optional
string|max:200
Item name. Used by gateways that require item text.
PayCore 測試商品
description
body
Optional
string|max:200
Payment description; can be used as fallback item/trade description.
Order payment
buyer_name
body
Optional
string|max:100
Buyer name, mainly used by offline payment methods such as SmilePay.
王小明
buyer_mobile
body
Optional
string|max:30
Buyer mobile number.
0912345678
buyer_phone
body
Optional
string|max:30
Buyer phone; may be used as fallback for mobile/tel fields.
Create a Stripe GrabPay payment. PayCore creates a PaymentIntent with payment_method_types[]=grabpay.
POST/api/paycore/pay/stripe/grabpay
Parameters
Header parameters
Field
Location
Required
Type
Description
Example
Content-Type
header
Required
string
Use application/json when creating payments.
application/json
X-API-KEY
header
Required
string
PayCore API authentication key. This is not the gateway merchant credential.
pc_live_xxxxx
Path / Query / Body parameters
Field
Location
Required
Type
Description
Example
merchant_order_no
body
Required
string|max:100
Merchant order number. It should be unique. Existing active orders may return the existing payment or an order conflict.
ORDER202606220001
amount
body
Required
integer|min:1
Payment amount. ECPay, SmilePay and PLUS use integer TWD amounts. Stripe uses minor units; PayPal uses major amount strings, and TWD / JPY / HUF are sent without decimals.
980
currency
body
Optional
string|max:10
Currency. ECPay and SmilePay are TWD-only. PayPal currency support is determined by PayPal.
TWD
payer_account
body
Optional
string|max:100
Optional payer/member identifier for tracking.
uid811118A
success_url
body
Optional
url
Merchant success URL.
https://merchant.example/success
return_url
body
Optional
url
Compatibility field. Some payment methods use it as success_url.
https://merchant.example/return
cancel_url
body
Optional
url
Merchant cancel URL.
https://merchant.example/cancel
payok_url
body
Optional
url
Merchant notification URL called by PayCore after payment succeeds.
https://merchant.example/paycore/payok
item_name
body
Optional
string|max:200
Item name. Used by gateways that require item text.
PayCore 測試商品
description
body
Optional
string|max:200
Payment description; can be used as fallback item/trade description.
Order payment
buyer_name
body
Optional
string|max:100
Buyer name, mainly used by offline payment methods such as SmilePay.
王小明
buyer_mobile
body
Optional
string|max:30
Buyer mobile number.
0912345678
buyer_phone
body
Optional
string|max:30
Buyer phone; may be used as fallback for mobile/tel fields.
{
"success": false,
"message": "Validation failed",
"error": {
"error_code": "VALIDATION_FAILED",
"fields": {
"amount": [
"The amount field is required."
]
}
}
}
Errors and notes
STRIPE_PAYMENT_METHOD_CURRENCY_UNSUPPORTED
STRIPE_PAYMENT_INTENT_CREATE_FAILED
STRIPE_AUTH_FAILED
Allowed currencies: SGD and MYR.
Production ready
Create Stripe PayNow payment (Singapore)
Create a Stripe PayNow payment. The payer sees a PayNow QR code on the payment page and scans it with a supported app.
POST/api/paycore/pay/stripe/paynow
Parameters
Header parameters
Field
Location
Required
Type
Description
Example
Content-Type
header
Required
string
Use application/json when creating payments.
application/json
X-API-KEY
header
Required
string
PayCore API authentication key. This is not the gateway merchant credential.
pc_live_xxxxx
Path / Query / Body parameters
Field
Location
Required
Type
Description
Example
merchant_order_no
body
Required
string|max:100
Merchant order number. It should be unique. Existing active orders may return the existing payment or an order conflict.
ORDER202606220001
amount
body
Required
integer|min:1
Payment amount. ECPay, SmilePay and PLUS use integer TWD amounts. Stripe uses minor units; PayPal uses major amount strings, and TWD / JPY / HUF are sent without decimals.
980
currency
body
Optional
string|max:10
Currency. ECPay and SmilePay are TWD-only. PayPal currency support is determined by PayPal.
TWD
payer_account
body
Optional
string|max:100
Optional payer/member identifier for tracking.
uid811118A
success_url
body
Optional
url
Merchant success URL.
https://merchant.example/success
return_url
body
Optional
url
Compatibility field. Some payment methods use it as success_url.
https://merchant.example/return
cancel_url
body
Optional
url
Merchant cancel URL.
https://merchant.example/cancel
payok_url
body
Optional
url
Merchant notification URL called by PayCore after payment succeeds.
https://merchant.example/paycore/payok
item_name
body
Optional
string|max:200
Item name. Used by gateways that require item text.
PayCore 測試商品
description
body
Optional
string|max:200
Payment description; can be used as fallback item/trade description.
Order payment
buyer_name
body
Optional
string|max:100
Buyer name, mainly used by offline payment methods such as SmilePay.
王小明
buyer_mobile
body
Optional
string|max:30
Buyer mobile number.
0912345678
buyer_phone
body
Optional
string|max:30
Buyer phone; may be used as fallback for mobile/tel fields.
{
"success": false,
"message": "Validation failed",
"error": {
"error_code": "VALIDATION_FAILED",
"fields": {
"amount": [
"The amount field is required."
]
}
}
}
Errors and notes
STRIPE_PAYMENT_METHOD_CURRENCY_UNSUPPORTED
STRIPE_PAYMENT_INTENT_CREATE_FAILED
STRIPE_AUTH_FAILED
PayNow currently requires SGD.
Production ready
Create Stripe PromptPay payment (Thailand)
Create a Stripe PromptPay payment. The payer sees a PromptPay QR code and scans it with a Thailand bank app.
POST/api/paycore/pay/stripe/promptpay
Parameters
Header parameters
Field
Location
Required
Type
Description
Example
Content-Type
header
Required
string
Use application/json when creating payments.
application/json
X-API-KEY
header
Required
string
PayCore API authentication key. This is not the gateway merchant credential.
pc_live_xxxxx
Path / Query / Body parameters
Field
Location
Required
Type
Description
Example
merchant_order_no
body
Required
string|max:100
Merchant order number. It should be unique. Existing active orders may return the existing payment or an order conflict.
ORDER202606220001
amount
body
Required
integer|min:1
Payment amount. ECPay, SmilePay and PLUS use integer TWD amounts. Stripe uses minor units; PayPal uses major amount strings, and TWD / JPY / HUF are sent without decimals.
980
currency
body
Optional
string|max:10
Currency. ECPay and SmilePay are TWD-only. PayPal currency support is determined by PayPal.
TWD
payer_account
body
Optional
string|max:100
Optional payer/member identifier for tracking.
uid811118A
success_url
body
Optional
url
Merchant success URL.
https://merchant.example/success
return_url
body
Optional
url
Compatibility field. Some payment methods use it as success_url.
https://merchant.example/return
cancel_url
body
Optional
url
Merchant cancel URL.
https://merchant.example/cancel
payok_url
body
Optional
url
Merchant notification URL called by PayCore after payment succeeds.
https://merchant.example/paycore/payok
item_name
body
Optional
string|max:200
Item name. Used by gateways that require item text.
PayCore 測試商品
description
body
Optional
string|max:200
Payment description; can be used as fallback item/trade description.
Order payment
buyer_name
body
Optional
string|max:100
Buyer name, mainly used by offline payment methods such as SmilePay.
王小明
buyer_mobile
body
Optional
string|max:30
Buyer mobile number.
0912345678
buyer_phone
body
Optional
string|max:30
Buyer phone; may be used as fallback for mobile/tel fields.
{
"success": false,
"message": "Validation failed",
"error": {
"error_code": "VALIDATION_FAILED",
"fields": {
"amount": [
"The amount field is required."
]
}
}
}
Errors and notes
STRIPE_PAYMENT_METHOD_CURRENCY_UNSUPPORTED
STRIPE_PAYMENT_INTENT_CREATE_FAILED
STRIPE_AUTH_FAILED
PromptPay currently requires THB.
Production ready
Create Stripe FPX payment (Malaysia)
Create a Stripe FPX payment. The payer is redirected from the PayCore payment page to FPX online banking and then returns.
POST/api/paycore/pay/stripe/fpx
Parameters
Header parameters
Field
Location
Required
Type
Description
Example
Content-Type
header
Required
string
Use application/json when creating payments.
application/json
X-API-KEY
header
Required
string
PayCore API authentication key. This is not the gateway merchant credential.
pc_live_xxxxx
Path / Query / Body parameters
Field
Location
Required
Type
Description
Example
merchant_order_no
body
Required
string|max:100
Merchant order number. It should be unique. Existing active orders may return the existing payment or an order conflict.
ORDER202606220001
amount
body
Required
integer|min:1
Payment amount. ECPay, SmilePay and PLUS use integer TWD amounts. Stripe uses minor units; PayPal uses major amount strings, and TWD / JPY / HUF are sent without decimals.
980
currency
body
Optional
string|max:10
Currency. ECPay and SmilePay are TWD-only. PayPal currency support is determined by PayPal.
TWD
payer_account
body
Optional
string|max:100
Optional payer/member identifier for tracking.
uid811118A
success_url
body
Optional
url
Merchant success URL.
https://merchant.example/success
return_url
body
Optional
url
Compatibility field. Some payment methods use it as success_url.
https://merchant.example/return
cancel_url
body
Optional
url
Merchant cancel URL.
https://merchant.example/cancel
payok_url
body
Optional
url
Merchant notification URL called by PayCore after payment succeeds.
https://merchant.example/paycore/payok
item_name
body
Optional
string|max:200
Item name. Used by gateways that require item text.
PayCore 測試商品
description
body
Optional
string|max:200
Payment description; can be used as fallback item/trade description.
Order payment
buyer_name
body
Optional
string|max:100
Buyer name, mainly used by offline payment methods such as SmilePay.
王小明
buyer_mobile
body
Optional
string|max:30
Buyer mobile number.
0912345678
buyer_phone
body
Optional
string|max:30
Buyer phone; may be used as fallback for mobile/tel fields.
{
"success": false,
"message": "Validation failed",
"error": {
"error_code": "VALIDATION_FAILED",
"fields": {
"amount": [
"The amount field is required."
]
}
}
}
Errors and notes
STRIPE_WEBHOOK_SIGNATURE_INVALID
PLUS
PLUS
Current code supports PLUS ATM payment, balance action, return and webhook.
Merchant APIs
Production ready
Create PLUS ATM payment
Create a PLUS ATM payment. PLUS small/large amount routing belongs only to PLUS payment methods.
POST/api/paycore/pay/plus/atm
Parameters
Header parameters
Field
Location
Required
Type
Description
Example
Content-Type
header
Required
string
Use application/json when creating payments.
application/json
X-API-KEY
header
Required
string
PayCore API authentication key. This is not the gateway merchant credential.
pc_live_xxxxx
Path / Query / Body parameters
Field
Location
Required
Type
Description
Example
merchant_order_no
body
Required
string|max:100
Merchant order number. It should be unique. Existing active orders may return the existing payment or an order conflict.
ORDER202606220001
amount
body
Required
integer|min:1
Payment amount. ECPay, SmilePay and PLUS use integer TWD amounts. Stripe uses minor units; PayPal uses major amount strings, and TWD / JPY / HUF are sent without decimals.
980
currency
body
Optional
string|max:10
Currency. ECPay and SmilePay are TWD-only. PayPal currency support is determined by PayPal.
TWD
payer_account
body
Optional
string|max:100
Optional payer/member identifier for tracking.
uid811118A
success_url
body
Optional
url
Merchant success URL.
https://merchant.example/success
return_url
body
Optional
url
Compatibility field. Some payment methods use it as success_url.
https://merchant.example/return
cancel_url
body
Optional
url
Merchant cancel URL.
https://merchant.example/cancel
payok_url
body
Optional
url
Merchant notification URL called by PayCore after payment succeeds.
https://merchant.example/paycore/payok
item_name
body
Optional
string|max:200
Item name. Used by gateways that require item text.
PayCore 測試商品
description
body
Optional
string|max:200
Payment description; can be used as fallback item/trade description.
Order payment
buyer_name
body
Optional
string|max:100
Buyer name, mainly used by offline payment methods such as SmilePay.
王小明
buyer_mobile
body
Optional
string|max:30
Buyer mobile number.
0912345678
buyer_phone
body
Optional
string|max:30
Buyer phone; may be used as fallback for mobile/tel fields.