If you need to set up regular recurring charges for consumers, you can easily achieve this through PayKKa's recurring payment feature. When making the first charge, specify to store the bank card information. Subsequent recurring charges can be completed using the recurring agreement and Token, making the process convenient and secure.
Call the interface Initiate Transaction
Request Example
{
"merchant_id": "18356675194960",
"payment_type": "RECURRING",
"authorisation_type": "FINAL_AUTH",
"capture_method": "AUTOMATIC",
"trans_id": "m3246749195217",
"currency": "HKD",
"amount": "800",
"return_url": "https://url",
"mit": false,
"payment": {
"payment_method": "BANKCARD",
"store_payment_method": true,
"token_usage": "SUBSCRIPTION",
"shopper_reference": "854f5baaf0a735139c583c4cea14d14c",
"exp_year": "2029",
"exp_month": "08",
"cvv": "579",
"holder_name": "Yi Westrich",
"card_no": "5555555555554444"
}
}Create a checkout, and set the parameter to store the payment method (store_payment_method=true)
Request Example Create Session
{
"merchant_id": "18356675194960",
"payment_type": "RECURRING",
"trans_id": "m826xxx66465",
"expire_time": "2025-05-05T17:17:24+08:00",
"session_mode": "HOSTED",
"currency": "HKD",
"amount": "800",
"return_url": "https://url",
"payment": {
"store_payment_method": true,
"token_usage": "SUBSCRIPTION",
"shopper_reference": "854f5baaf0a735139c583c4cea14d14c"
}
}After a successful payment, you can obtain the recurring agreement id. The payment data is stored by PayKKa as a token (the token can be obtained via the transaction query interface)
{
"ret_code": "000000",
"ret_msg": "Success",
"data": {
"error_code": "0000",
"error_description": "request success",
"merchant_id": "18356675194960",
"trans_id": "m826xxx66465",
"order_id": "GW206xxx28702",
"status": "SUCCESS",
"authorisation_type": "FINAL_AUTH",
"capture_method": "AUTOMATIC",
"amount": 8715,
"currency": "EUR",
"pay_finish_time": "2025-05-08T15:34:14+08:00",
"token": "TK20535xxxx8947",
"recurring_agreement_id": "RA4264524535435435",
"shopper_reference": "f4911bc8b17106a08f2f7a89a9fc4d11",
"expire_time": "2025-05-08T19:24:49+08:00",
"payment": {
"payment_method": "BANKCARD"
},
"card_info": {
"bin": "400000",
"last4": "3220",
"card_brand": "VISA"
},
"balances": {
"authed_amount": 8715,
"captured_amount": 8715,
"able_to_capture_amount": 0,
"voided_amount": 0,
"able_to_void_amount": 0,
"refunded_amount": 0,
"able_to_refund_amount": 8715
}
}
}You need to specify
mit=true, indicating the transaction is initiated by the merchant
Request Example Initiate Transaction
{
"merchant_id": "18356675194960",
"payment_type": "RECURRING",
"authorisation_type": "FINAL_AUTH",
"capture_method": "AUTOMATIC",
"trans_id": "m3246749195217",
"currency": "HKD",
"amount": "800",
"mit": true,
"recurring_agreement_id": "RA4264524535435435",
"payment": {
"payment_method": "BANKCARD",
"shopper_reference": "558b5cb1b8cbcc8496062155c69cf2ab",
"token": "TK20231435132143229"
}
}To cancel a recurring agreement, use the Delete Recurring Agreement interface, providing recurring_agreement_id and shopper_reference.
Cancelling a recurring agreement is irreversible. Please proceed with caution.