NICEPAY API
...
Payment - API Credit Card
Recurring - Payment API Credit Card
21 min
about recurring payment api credit card recurring type is another feature that can pay a particular bill from your periodically with same amount similar to initial bill the used in this stage is similar to for full & installment and pre auth & capture types however, there are differences in sent request will give a recurringtoken as response called recurring token making can use recurringtoken on later request without using cardno and cardexpyymm recurring payment api credit card (first payment) to activate recurring type , you mandatory pay created to receive recurringtoken beforehand 181,563,117 unhandled content type unhandled content type unhandled content type unhandled content type unhandled content type unhandled content type unhandled content type unhandled content type the used specification is similar to docid\ ab8bqpp59um1jm7jupz8i request parameter for recurring payment api credit card (first payment) the following is a request on recurring to gain recurringtoken which where you need to finish docid\ ab8bqpp59um1jm7jupz8i beforehand you still need cardno , cardexpyymm , cardcvv , cardholdernm & cardholderemail from on first on this recurring scheme 148,72,84,174,232 true unhandled content type unhandled content type unhandled content type unhandled content type unhandled content type unhandled content type unhandled content type unhandled content type unhandled content type unhandled content type unhandled content type unhandled content type unhandled content type unhandled content type unhandled content type unhandled content type unhandled content type unhandled content type unhandled content type unhandled content type unhandled content type unhandled content type unhandled content type unhandled content type unhandled content type unhandled content type unhandled content type unhandled content type unhandled content type unhandled content type unhandled content type unhandled content type unhandled content type unhandled content type unhandled content type unhandled content type unhandled content type unhandled content type unhandled content type unhandled content type unhandled content type unhandled content type unhandled content type unhandled content type unhandled content type unhandled content type unhandled content type unhandled content type unhandled content type unhandled content type unhandled content type unhandled content type unhandled content type unhandled content type unhandled content type response parameter for recurring payment api credit card (first payment) below is detailed response you get perform save & store recurringtoken gain to execute recurring feature on next with same 173,78,85,170,241 true unhandled content type unhandled content type unhandled content type unhandled content type unhandled content type unhandled content type unhandled content type unhandled content type unhandled content type unhandled content type unhandled content type unhandled content type unhandled content type unhandled content type unhandled content type unhandled content type unhandled content type unhandled content type unhandled content type unhandled content type unhandled content type unhandled content type unhandled content type unhandled content type unhandled content type unhandled content type unhandled content type unhandled content type unhandled content type unhandled content type unhandled content type unhandled content type unhandled content type unhandled content type unhandled content type unhandled content type unhandled content type unhandled content type unhandled content type unhandled content type unhandled content type unhandled content type unhandled content type unhandled content type unhandled content type unhandled content type unhandled content type unhandled content type unhandled content type unhandled content type unhandled content type unhandled content type unhandled content type unhandled content type unhandled content type unhandled content type unhandled content type unhandled content type unhandled content type unhandled content type unhandled content type unhandled content type unhandled content type unhandled content type unhandled content type unhandled content type unhandled content type unhandled content type unhandled content type unhandled content type unhandled content type unhandled content type unhandled content type unhandled content type unhandled content type unhandled content type unhandled content type unhandled content type unhandled content type unhandled content type unhandled content type unhandled content type unhandled content type unhandled content type unhandled content type unhandled content type unhandled content type unhandled content type unhandled content type unhandled content type unhandled content type unhandled content type unhandled content type unhandled content type unhandled content type unhandled content type unhandled content type unhandled content type unhandled content type unhandled content type unhandled content type unhandled content type unhandled content type unhandled content type unhandled content type unhandled content type unhandled content type unhandled content type unhandled content type unhandled content type unhandled content type unhandled content type unhandled content type unhandled content type unhandled content type unhandled content type unhandled content type unhandled content type unhandled content type unhandled content type unhandled content type unhandled content type unhandled content type unhandled content type unhandled content type unhandled content type unhandled content type unhandled content type unhandled content type unhandled content type unhandled content type unhandled content type unhandled content type unhandled content type unhandled content type unhandled content type unhandled content type unhandled content type unhandled content type unhandled content type sample parameter for recurring payment api credit card (first payment) request parameter curl curl location 'https //dev nicepay co id/nicepay/direct/v2/payment' \\ \ header 'x forwarded for 1 2 3' \\ \ header 'content type application/x www form urlencoded' \\ \ data urlencode 'timestamp=20250930150955' \\ \ data urlencode 'txid=recurrtest01202509301555563979' \\ \ data urlencode 'referenceno=ordno20250930150915' \\ \ data urlencode 'merchanttoken=bc2ee7790486a7ee4a5313d4c1d4088a38456b89204e308ae38e0beee3849d0b' \\ \ data urlencode 'cardno=5123450000000008' \\ \ data urlencode 'cardexpyymm=3106' \\ \ data urlencode 'cardcvv=100' \\ \ data urlencode 'cardholdernm=nicepay test' \\ \ data urlencode 'callbackurl=https //dev nicepay co id/ionpay client/paymentresult jsp?order id=recurrtest01202509301555563979' node js let secondversion = new secondapiversion(config); let parameterpayment = { amt "1000", referenceno "ordno20250930150915", txid "recurrtest01202509301555563979", cardno "5123450000000008", callbackurl "https //dev nicepay co id/ionpay client/paymentresult jsp?order id=recurrtest01202509301555563979", cardexpyymm "3106", cardcvv "100", recurringtoken "", // leave empty for first payment cardholdernm "nicepay test", preauthtoken "", cardholderemail "test\@email com", }; let response = secondversion requestpayment(parameterpayment);nicepay config = nicepay builder() isproduction(false) // set to true for production build(); card requestdata = card builder() timestamp("20250922143200") // current timestamp (yyyymmddhhmmss) txid("recurrtest01202509301555563979") // transaction id from registration imid("recurrtest") // your nicepay imid referenceno("ordno20250930150915") // unique order reference amt("1000") // payment amount merchanttoken(timestamp, imid, reffno, amount, merchant key) // secure token generation cardno("5123450000000008") // test card number cardexpyymm("3601") // card expiry date (yymm) cardcvv("100") // 3 digit cvv cardholdernm("nicepay test") // cardholder name callbackurl("https //www nicepay co id/ionpay client/paymentresult jsp") // callback url recurringtoken("") // leave empty for first payment preauthtoken("") // leave empty if not pre auth build(); string responsehtml = v2cardservice callv2cardpaymentrequest(requestdata, config); bodypayment = ( builderpayment buildpayment() settimestamp(datetime now() strftime("%y%m%d%h%m%s")) # current timestamp (yyyymmddhhmmss) settxid("testmpgs0501202510011026450166") # transaction id from registration setreferenceno("ordno20250930150915") # unique order reference setcashtag("") # leave empty if not using cashtag setcardno("5123450000000008") # test card number setcardexpyymm("3901") # card expiry date (yymm) setcardcvv("100") # 3 digit cvv setrecurringtoken("") # leave empty if not recurring setpreauthtoken("") # leave empty for hold fund request setamt("1000") # payment amount build() ) environment = ( builderenvironment buildenvironment() iscloud(false) # set to true if using nicepay cloud isproduction(false) # set to true for production build() ) response = servicenicepay servicepayment( datagenerator getpaymentbody(bodypayment datapayment()), environment ) vanilla js const paymentdata = { cardno "5123450000000008", // test card number cardexpyymm "3601", // card expiry in yymm format cardcvv "100", // 3 digit cvv cardholderemail "customer\@example com", // cardholder email cardholdernm "nicepay test", // cardholder name callbackurl "https //your domain com/callback", // callback url after payment txid "recurrtest01202509301555563979", // transaction id from registration merchanttoken "bc2ee7790486a7ee4a5313d4c1d4088a38456b89204e308ae38e0beee3849d0b", // secure token recurringtoken "", // leave empty for first payment }; const response = await nicepay paymenttransaction(paymentdata); laravel $url = httputil getnicepaydomain($this >useprod, $this >usecloud) $this >payment endpoint; // request body parameters $txid = "recurrtest01202509301555563979"; $timestamp = carbon now() >format("ymdhis"); // current timestamp (yyyymmddhhmmss) $reference no = "ordno20250930150915"; $amt = "1000"; // generate secure merchant token $merchant token = $this >generatemerchanttoken( $timestamp, $this >imid, $reference no, $amt, $this >mer key ); $param = \[ "timestamp" => $timestamp, // current timestamp "txid" => $txid, // transaction id from registration "merchanttoken" => $merchant token, // secure hash token "cardno" => "5123450000000008", // test card number "cardexpyymm" => "3901", // card expiry date (yymm) "cardcvv" => "100", // 3 digit cvv "callbackurl" => "https //www nicepay co id/ionpay client/paymentresult jsp", // callback url "returnjsonformat"=> "1", // force json response format "recurringtoken" => "", ]; $response = httputil redirectwithqueryparams($url, $param); php native $config = nicepay builder() >setisproduction(true) // set to false for sandbox/testing >build(); $parameter = card builder() >timestamp($timestamp) // current timestamp (yyyymmddhhmmss) >imid("testmpgs05") // your nicepay imid >txid("testmpgs0501202510011026450166") // transaction id from registration >referenceno("ordno20251001101069") // unique order reference >merchanttoken( $timestamp, $imid, $referenceno, $amt, $this >merchantkey ) // generate secure token >cardno(testconst $card no) // test card number from constants >cardexpyymm(testconst $card exp yymm) // card expiry date (yymm) >cardcvv(testconst $card cvv) // 3 digit cvv >cardholdernm("nicepay test") // cardholder name >callbackurl("https //dev nicepay co id/ionpay client/paymentresult jsp?") // callback url after payment >recurringtoken("") >build(); $cardservice = new v2cardservice($config); $response = $cardservice >payment($parameter); var config nicepay? = nicepay builder() isproduction(true) // set to false for sandbox/testing build() val request directv2requestpaymentcard = directv2requestpaymentcard builder() timestamp("20250922143200") // current timestamp (yyyymmddhhmmss) txid("recurrtest01202509301555563979") // transaction id from registration imid("recurrtest") // your nicepay imid merchantkey(merchant key) // secret merchant key referenceno("ordno20250930150915") // unique order reference number amt("1000") // payment amount callbakurl("https //www nicepay co id/ionpay client/paymentresult jsp") // callback url after payment cardno("5123450000000008") // test card number cardcvv("123") // 3 digit cvv (sample) cardexpyymm("3601") // card expiry date (yymm) recurringtoken("") // left empty for first payment build() val response = paymentservice registration(request, config)!! response parameter sample response continual recurring payment api credit card after ing with first and already receiving recurringtoken on docid\ ap1yivfhqa0ah6khecv g you can use that recurringtoken to pay another bill using a similar credential to implement recurring (subscription) mechanism however, to this continual recurring, you still need to beforehand do registration on docid\ ab8bqpp59um1jm7jupz8i the following is request and response detail used on later using same recurring token 181,563,117 unhandled content type unhandled content type unhandled content type unhandled content type unhandled content type unhandled content type unhandled content type unhandled content type specification used is similar to docid\ ab8bqpp59um1jm7jupz8i request payment for continual recurring payment api credit card you only need to use recurringtoken on recurring for this next request without using cardno and cardexpyymm 148,72,84,174,232 true unhandled content type unhandled content type unhandled content type unhandled content type unhandled content type unhandled content type unhandled content type unhandled content type unhandled content type unhandled content type unhandled content type unhandled content type unhandled content type unhandled content type unhandled content type unhandled content type unhandled content type unhandled content type unhandled content type unhandled content type unhandled content type unhandled content type unhandled content type unhandled content type unhandled content type unhandled content type unhandled content type unhandled content type unhandled content type unhandled content type unhandled content type unhandled content type unhandled content type unhandled content type unhandled content type unhandled content type unhandled content type unhandled content type unhandled content type unhandled content type unhandled content type unhandled content type unhandled content type unhandled content type unhandled content type unhandled content type unhandled content type unhandled content type unhandled content type unhandled content type include cardcvv on every depending on mid type of cvv or non cvv response payment for continual recurring payment api credit card 173,78,85,170,241 true unhandled content type unhandled content type unhandled content type unhandled content type unhandled content type unhandled content type unhandled content type unhandled content type unhandled content type unhandled content type unhandled content type unhandled content type unhandled content type unhandled content type unhandled content type unhandled content type unhandled content type unhandled content type unhandled content type unhandled content type unhandled content type unhandled content type unhandled content type unhandled content type unhandled content type unhandled content type unhandled content type unhandled content type unhandled content type unhandled content type unhandled content type unhandled content type unhandled content type unhandled content type unhandled content type unhandled content type unhandled content type unhandled content type unhandled content type unhandled content type unhandled content type unhandled content type unhandled content type unhandled content type unhandled content type unhandled content type unhandled content type unhandled content type unhandled content type unhandled content type unhandled content type unhandled content type unhandled content type unhandled content type unhandled content type unhandled content type unhandled content type unhandled content type unhandled content type unhandled content type unhandled content type unhandled content type unhandled content type unhandled content type unhandled content type unhandled content type unhandled content type unhandled content type unhandled content type unhandled content type unhandled content type unhandled content type unhandled content type unhandled content type unhandled content type unhandled content type unhandled content type unhandled content type unhandled content type unhandled content type unhandled content type unhandled content type unhandled content type unhandled content type unhandled content type unhandled content type unhandled content type unhandled content type unhandled content type unhandled content type unhandled content type unhandled content type unhandled content type unhandled content type unhandled content type unhandled content type unhandled content type unhandled content type unhandled content type unhandled content type unhandled content type unhandled content type unhandled content type unhandled content type unhandled content type unhandled content type unhandled content type unhandled content type unhandled content type unhandled content type unhandled content type unhandled content type unhandled content type unhandled content type unhandled content type unhandled content type unhandled content type unhandled content type unhandled content type unhandled content type unhandled content type unhandled content type unhandled content type unhandled content type unhandled content type unhandled content type unhandled content type unhandled content type unhandled content type unhandled content type unhandled content type unhandled content type unhandled content type unhandled content type unhandled content type sample parameter for continual recurring payment api credit card request parameter curl curl location 'https //dev nicepay co id/nicepay/direct/v2/payment' \\ \ header 'x forwarded for 1 2 3' \\ \ header 'content type application/x www form urlencoded' \\ \ header 'cookie jsessionid=95539d2a218bd0ba1ea20d10878b53e2 pg was1' \\ \ data urlencode 'timestamp=20250930170957' \\ \ data urlencode 'txid=recurrtest01202509301729488790' \\ \ data urlencode 'referenceno=ordno20250930170928' \\ \ data urlencode 'merchanttoken=7c60ad0bfb38e1599bbcee61e3bba438bf9f6ffbbaa0d1cfc561c9fdcd24f89d' \\ \ data urlencode 'cardholdernm=nicepay test' \\ \ data urlencode 'recurringtoken=20b50427bc05cba305b0d580bf403e3c8487db29454459a920b6af358e435035' \\ \ data urlencode 'callbackurl=https //dev nicepay co id/ionpay client/paymentresult jsp?order id=recurrtest01202509301729488790' node js let secondversion = new secondapiversion(config); let parameterpayment = { amt "1000", referenceno "ordno20250930170928", txid "recurrtest01202509301729488790", callbackurl "https //dev nicepay co id/ionpay client/paymentresult jsp?order id=recurrtest01202509301555563979", cardholdernm "nicepay test", recurringtoken "20b50427bc05cba305b0d580bf403e3c8487db29454459a920b6af358e435035", cardholderemail "test\@email com", }; let response = secondversion requestpayment(parameterpayment);nicepay config = nicepay builder() isproduction(false) // set to true for production build(); card requestdata = card builder() timestamp("20250922143200") // current timestamp (yyyymmddhhmmss) txid("recurrtest01202509301729488790") // transaction id from registration imid("recurrtest") // your nicepay imid referenceno("ordno20250930170928") // unique order reference amt("1000") // payment amount merchanttoken(timestamp, imid, reffno, amount, merchant key) // secure token generation cardholdernm("nicepay test") // cardholder name callbackurl("https //www nicepay co id/ionpay client/paymentresult jsp") // callback url recurringtoken("20b50427bc05cba305b0d580bf403e3c8487db29454459a920b6af358e435035") // leave empty for first payment preauthtoken("") // leave empty if not pre auth build(); string responsehtml = v2cardservice callv2cardpaymentrequest(requestdata, config); bodypayment = ( builderpayment buildpayment() settimestamp(datetime now() strftime("%y%m%d%h%m%s")) # current timestamp (yyyymmddhhmmss) settxid("recurrtest01202509301729488790") # transaction id from registration setreferenceno("ordno20250930170928") # unique order reference setcashtag("") setrecurringtoken("20b50427bc05cba305b0d580bf403e3c8487db29454459a920b6af358e435035") # leave empty if not recurring setpreauthtoken("") # leave empty if not pre auth setamt("1000") # payment amount build() ) environment = ( builderenvironment buildenvironment() iscloud(false) # set to true if using nicepay cloud isproduction(false) # set to true for production build() ) response = servicenicepay servicepayment( datagenerator getpaymentbody(bodypayment datapayment()), environment ) vanilla js const paymentdata = { cardholderemail "customer\@example com", // cardholder email cardholdernm "nicepay test", // cardholder name callbackurl "https //your domain com/callback", // callback url after payment txid "recurrtest01202509301729488790", // transaction id from registration merchanttoken "bc2ee7790486a7ee4a5313d4c1d4088a38456b89204e308ae38e0beee3849d0b", // secure token recurringtoken "20b50427bc05cba305b0d580bf403e3c8487db29454459a920b6af358e435035", // leave empty for first payment }; const response = await nicepay paymenttransaction(paymentdata); laravel $url = httputil getnicepaydomain($this >useprod, $this >usecloud) $this >payment endpoint; // request body parameters $txid = "recurrtest01202509301729488790"; $timestamp = carbon now() >format("ymdhis"); // current timestamp (yyyymmddhhmmss) $reference no = "ordno20250930170928"; $amt = "1000"; // generate secure merchant token $merchant token = $this >generatemerchanttoken( $timestamp, $this >imid, $reference no, $amt, $this >mer key ); $param = \[ "timestamp" => $timestamp, // current timestamp "txid" => $txid, // transaction id from registration "merchanttoken" => $merchant token, // secure hash token "callbackurl" => "https //www nicepay co id/ionpay client/paymentresult jsp", // callback url "returnjsonformat"=> "1", // force json response format "recurringtoken" => "20b50427bc05cba305b0d580bf403e3c8487db29454459a920b6af358e435035", ]; $response = httputil redirectwithqueryparams($url, $param); php native $config = nicepay builder() >setisproduction(true) // set to false for sandbox/testing >build(); $parameter = card builder() >timestamp($timestamp) // current timestamp (yyyymmddhhmmss) >imid("ionpaytest") // your nicepay imid >txid("recurrtest01202509301729488790") // transaction id from registration >referenceno("ordno20250930170928") // unique order reference >merchanttoken( $timestamp, $imid, $newcctrx >getreferenceno(), $newcctrx >getamt(), $this >merchantkey ) // generate secure token >cardholdernm("nicepay test") // cardholder name >callbackurl("https //dev nicepay co id/ionpay client/paymentresult jsp?") // callback url after payment >recurringtoken("20b50427bc05cba305b0d580bf403e3c8487db29454459a920b6af358e435035") >build(); $cardservice = new v2cardservice($config); $response = $cardservice >payment($parameter); var config nicepay? = nicepay builder() isproduction(true) // set to false for sandbox/testing build() val request directv2requestpaymentcard = directv2requestpaymentcard builder() timestamp("20250922143200") // current timestamp (yyyymmddhhmmss) txid("recurrtest01202509301555563979") // transaction id from registration imid("recurrtest") // your nicepay imid merchantkey(merchant key) // secret merchant key referenceno("ordno20250930150915") // unique order reference number amt("1000") // payment amount callbakurl("https //dev nicepay co id/ionpay client/paymentresult jsp") // callback url after payment recurringtoken("20b50427bc05cba305b0d580bf403e3c8487db29454459a920b6af358e435035") // left empty for first payment build() val response = paymentservice registration(request, config)!! response parameter sample response callback handling for full payment & installment payment api credit card txid will never similar with request hold capture will ensure that capture amount value won't exceed owned funds when your callback already received callbackurl , we recommended to do verification using docid\ fc bkdwkevwf2h9usoc8k callback handling is very important to minimize fraud act, we highly recommend to do verification using callback handling url callback "callbackurl" "https //www merchant com/callbackurl/" response callback { "resultcd" "0000", "resultmsg" "success", "txid" "ionpaytest01202212141112221428", "referenceno" "", "paymethod" "01", "amt" "10000", "transdt" "20221212", "transtm" "121212", "description" "testing credit card transaction", "authno" "080623", "issubankcd" "othr" "acqubankcd" "bmri", "cardno" "453211 1111", "goodsnm" "test transaction nicepay" "billingnm" "john doe", "currency" "idr", "timestamp" "20221212121212", "merchanttoken" "2035d2295d9578fffb40137186f0203474142ae3e57992d4847826c5fcaffce6", "cardexpyymm" "2712", "instmntmon" "1", "instmnttype" "1", "cctranstype" "1" }