LuxtakLuxtak
  • Introduction
  • Payin API
    • Environments
    • All-In-One Checkout
      • Checkout Page (General)
      • Checkout Page (E-com)
    • Direct integration
      • Brazil
        • Pix
      • Mexico
        • Cash
        • CoDi
        • SPEI
      • Colombia
        • Wallet
        • PSE
      • Chile
        • Bank Transfer
        • Wallet
      • Peru
        • Bank Transfer
        • Cash
      • Ecuador
        • Bank Transfer
        • Cash
      • Russia
        • CreditCard
        • SBP
        • SberPay
        • TPay
        • Vault
      • Global
        • Crypto
        • Binance
    • Notification
      • Security
    • Recurring Payment
      • Support Target and Currency
    • Tokenization
    • Payin Detail
    • Refund
    • Data
      • Payment Method
      • Data for test (Sandbox)
      • Payin Status
      • Icon of methods
      • Country Code
    • API Code
  • Payout API
    • Environments
    • Security
    • Submit a payout
      • Brazil
        • Pix
      • Russia
        • SBP
      • Global
        • Crypto
    • Notification
    • Account Balance
    • Payout Status
    • Payout Bank List
    • Payout List
    • Payout Detail
    • Payment Method
    • Data for test
    • API Code

Recurring Payment

Request Base URL

Test Environment : https://gateway-test.luxtak.com
Prod Environment : https://gateway.luxtak.com

EndPoints

/trade/recurring

Request Header

Content-Type*stringapplication/json; chartset=UTF-8
Authorization*stringBasic Base($app_id:$security_key)

Request Parameters (JSON format)

NameTypeRemark
app_id*stringcreated app's id at dashboard
- Max. 32 chars -
method*stringFixed value: creditcard
timestamp*stringyyyy-MM-dd HH:mm:ss
- Max. 19 chars -
out_trade_no*stringID given by the merchant in their system
- Max. 64 chars -
notify_url*stringWhere luxtak will send notification to
subject*stringpayment reason or item title
- Max. 128 chars -
content*stringpayment reason detail or item detail.This will be shown on the bank bill.
- Max. 255 chars -
order_amount*numberorder amount
- 1~ -
order_currency*stringCheck here for supported currency
trade_type*stringFixed value: WEB
timeout_expressstringm(minutes), h(hours), d(days), c(current day)
- 90m in default -
buyer_id*stringmerchant user's id
interval*stringD(day), W(week), M(month), Y(year)
quantity*numberQuantity of recurring
trial_period*stringTrial period
trial_amount*stringTrial amount (when trial_amount is not blank)

Request Sample

curl --location --request POST 'https://gateway.luxtak.com/trade/recurring' \
--header 'Authorization: Basic
MTYyNTgyOTIxNDUzMTY2Mzg6UGFnc21pbGVfc2tfZDUwMWQ1ZGNkNTI5OGQ5N2MwNm
UzYjI4YjA2OWZjZmY3NDU5ZjY2NzNiMjFjMTFlYTY3NDM5MDgzOTZkOTYxNQ==' \
--header 'Content-Type: application/json' \
--data-raw '{
  "charset": "UTF-8",
  * "app_id": "162************38",
  * "out_trade_no": "202201010354002",
  * "order_currency": "",
  * "order_amount": "12.01",
  * "subject": "item name",
  * "content": "item description",
  * "trade_type": "WEB",
  "timeout_express": "1d",
  * "timestamp": "2022-01-01 03:54:01",
  * "notify_url": "http://merchant/callback/success",
  * "buyer_id": "buyer_0101_0001",
  * "trial_amount":"6.66",
  * "trial_period":"5m",
  * "interval":"30m",
  * "quantity":3
}'

Http Response (JSON format)

ParameterTypeDescription
codestringReturn code
msgstringReturn msg
sub_codestringReturn sub code(only error)
sub_msgstringReturn sub msg(only error)
out_trade_nostring​Request out_trade_no
trade_nostring​Luxtak trade NO.
web_urlstring​Checkout URL

Return Code (Success)

200submit successfully
{
  "code": "10000",
  "msg": "Success",
  "trade_no": "2022010110293900083",
  "out_trade_no": "202201010354003",
  "web_url": "http://checkouttestv2.luxtak.com?prepay_id=123456",
  "prepay_id": "123456"
}

Return Code (Fail)

400duplicate out_trade_no
{
    "code": "40002",
    "msg": "Business Failed",
    "sub_code": "duplicate-out_trade_no",
    "sub_msg": "out_trade_no is duplicate",
}

IPN Notifications

Tips

Follow the general IPN notifications guide to receive our IPN notification messages, meantime with recurring sub orders, we will also send the parameter period to specific current period of the order.

Content-Type: application/json
Method: POST
Header: Luxtak-Signature
Body:
{
  "amount":"",
  "out_trade_no":"",
  "method":"",
  "trade_status":"",
  "trade_no":"",
  "currency":"",
  "out_request_no":"",
  "app_id":"",
  "timestamp":"",
  "user":{
    "identify":{
      "number":"",
      "type":""
    },
    "phone":"",
    "email":""
  },
  "card":{
    "card_no":"F6L4"
  },
  "period": 1
}

Attention

Tips

return_url is not in the request parameters, if needed, just append the return_url after the web_url when redirect: http://checkout.luxtak.com?prepay_id={$prepay_id}

Cancel Recurring Payment

Request Base URL

Test Environment : https://gateway-test.luxtak.com
Prod Environment : https://gateway.luxtak.com

EndPoints

/trade/recurring/cancel

Request Header

Content-Type*stringapplication/json; chartset=UTF-8
Authorization*stringBasic Base($app_id:$security_key)

Request Parameters (JSON format)

NameTypeRemark
app_id*stringcreated app's id at dashboard
- Max. 32 chars -
timestamp*stringyyyy-MM-dd HH:mm:ss
- Max. 19 chars -
out_trade_no*stringID given by the merchant in their system
- Max. 64 chars -

Request Sample

curl --location --request POST 'https://gateway.luxtak.com/trade/recurring/cancel'
\
--header 'Authorization: Basic
MTYyNTgyOTIxNDUzMTY2Mzg6UGFnc21pbGVfc2tfZDUwMWQ1ZGNkNTI5OGQ5N2MwNm
UzYjI4YjA2OWZjZmY3NDU5ZjY2NzNiMjFjMTFlYTY3NDM5MDgzOTZkOTYxNQ==' \
--header 'Content-Type: application/json' \
--data-raw '{
 * "app_id": "162************38",
 * "out_trade_no": "202201010354002",
 * "timestamp": "2022-01-01 03:54:01",
}'

Http Response (JSON format)

ParameterTypeDescription
codestringReturn code
msgstringReturn msg
sub_codestringReturn sub code(only error)
sub_msgstringReturn sub msg(only error)
out_trade_nostring​Request out_trade_no
recurring_statusstring​Recurring status

Return Code (Success)

200submit successfully
{
  "code": "10000",
  "msg": "Success",
  "out_trade_no": "202201010354003",
  "recurring_status": "CANCEL"
}

Return Code (Fail)

400duplicate out_trade_no
{
  "code": "40002",
  "msg": "Business Failed",
  "sub_code": "duplicate-out_trade_no",
  "sub_msg": "out_trade_no is duplicate"
}
Prev
Notification
Next
Tokenization