NICEPAY API
...
Payment - API Credit Card
Pre-Auth & Capture - Payment API Credit Card
21 min
tentang pre auth & capture payment api credit card setelah melakukan pendaftaran dengan tipe fitur pre auth & capture pada docid\ z6sdmngzu quc96xnnxmm , dapat melanjutkan langkah selanjutnya ke pada tersebut melalui ini pelajari mengenai fitur dengan recurringtoken di docid\ cglxg10p9zmvtux b7ga atau kunjungi penjelasan teknis mengenai pre auth capture di docid\ u02tzmaqg6u5l7zaesbe5 pre auth payment api credit card (hold fund) api endpoint /nicepay/direct/v2/payment request method post post description pre auth (hold fund) merchant token sha256( timestamp + imid + referenceno + amt + merchantkey ) request format application/json request parameter for pre auth payment api credit card (hold fund) untuk dapat melakukan fitur pre auth dari akan lakukan, diperlukan untuk mengisi txid dari hasil response pada docid\ z6sdmngzu quc96xnnxmm sudah lakukan sebelumnya parameter tipe ukuran deskripsi contoh / catatan timestamp required required n 14 request timestamp ( yyyymmddhh24miss ) 20230522130518 txid required required an 30 transaction id ionpaytest01202305161007570327 referenceno required required ans 40 order number this is the description of the merchanttoken required required an 255 token ff139e49606387091cd9baeadff3161aff6afd9406e1f481e0fdb8b46d1ae5ae cardno required required n 20 number 443426 0008 cardexpyymm required required a 4 card expiry ( yymm ) 3901 cardholdernm required required an 45 card holder name john doe only alphabet allowed cardholderemail required required ans 100 card holder email johndoe\@gmail com cardcvv required required n 6 card cvv 100 callbackurl required required ans 255 result url https //www merchant com/callbackurl/ juga memerlukan cardno , cardexpyymm , cardholdernm , cardholderemail & cardcvv bisa dapatkan dari agar tagihan nya dapat di response parameter for pre auth payment api credit card (hold fund) berikut ini adalah response dari hasil request pre auth ( hold fund ) parameter tipe ukuran deskripsi contoh / catatan timestamp n 14 response date ( yyyymmddhh24miss ) 20230516135959 resultcd n 4 docid 7o8nl7guqp asiwfdqi3v 0000 resultmsg an 255 result message docid\ wpcemazro xvnxz 1zaib success txid an 30 transaction id ionpaytest01202305161007570327 referenceno ans 40 order number merchantreferencenumber001 paymethod n 2 docid\ iifmsruuw7j9vmwefjz97 01 when success amount n 12 amount 10000 when success currency an 3 currency idr when success goodsnm an 100 goods name goods 1 when success billingnm an 100 buyer name john doe when success transdt n 8 transaction date ( yyyymmdd ) 20230522 when success transtm n 6 transaction time ( hh24miss ) 135959 when success description an 100 description this is the description of the when success authno n 10 approval number 123456 when success issubankcd a 4 docid\ ky4ppujot06atnie easf cena when success acqubankcd a 4 docid\ ky4ppujot06atnie easf bnia when success cardno an 20 card number (masked) 443426 0008 when success cardexpyymm n 4 card expiry ( yymm ) 3901 when success instmntmon n 2 installment month 1 when success instmntype n 2 docid\ rt2c32s9hfl aohyoebv5 1 when success preauthtoken an pre auth token 5c6ba40e61c45d9fa37e763ea1f86b9d6ac5f1f7ed279e4d4531191c83279320 when success cctranstype an 2 docid 5kylpx5mpjsl96c8mhoik 3 when success vat n 12 value added tax ( ) 0 when success fee n 12 service fee 0 when success notaxamt n 12 tax free amount 0 when success acqubanknm a 255 acquiring name cimb issubanknm a 255 issuing name bca apabila ini berhasil maka dana sudah dibayarkan akan di hold secara otomatis dan pun akan mendapatkan preauthtoken diperlukan untuk melakukan capture nantinya mohon untuk segera melakukan capture setelah pre auth sudah diselesaikan sebelum dana nya kedaluwarsa dan akan dianggap void (dana akan dikembalikan ke cardholder ) tenggat waktu kedaluwarsa pada jenis pre auth biasanya memakan waktu sampai 7 hari sample parameter for pre auth payment api credit card (hold fund) 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=3fe76f9694b783056d2b7303a357c20b pg was1' \\ \ data urlencode 'timestamp=20251001101049' \\ \ data urlencode 'txid=testmpgs0501202510011026450166' \\ \ data urlencode 'referenceno=ordno20251001101069' \\ \ data urlencode 'merchanttoken=de7774d7e288057b706f70317f94b3c893724222cdce9922371dca6228531816' \\ \ 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=testmpgs0501202510011026450166' node js let secondversion = new secondapiversion(config); let parameterpayment = { amt "10000", referenceno "ordno20251001101069", txid "testmpgs0501202510011026450166", cardno "5123450000000008", callbackurl "https //dev nicepay co id/ionpay client/paymentresult jsp?order id=recurrtest01202509301555563979", cardexpyymm "3106", cardcvv "100", cardholdernm "nicepay test", preauthtoken "", // leave empty for hold fund 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("testmpgs0501202510011026450166") // transaction id from registration imid("testmpgs05") // your nicepay imid referenceno("ordno20251001101069") // unique order reference amt("10000") // 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 //dev nicepay co id/ionpay client/paymentresult jsp") // callback url recurringtoken("") // leave empty if not recurring token preauthtoken("") // leave empty for hold fund 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("ordno20251001101069") # 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("10000") # 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 "testmpgs0501202510011026450166", // transaction id from registration merchanttoken "bc2ee7790486a7ee4a5313d4c1d4088a38456b89204e308ae38e0beee3849d0b", // secure token preauthtoken "", // leave empty for hold fund }; const response = await nicepay paymenttransaction(paymentdata); laravel $url = httputil getnicepaydomain($this >useprod, $this >usecloud) $this >payment endpoint; // request body parameters $txid = "testmpgs0501202510011026450166"; $timestamp = carbon now() >format("ymdhis"); // current timestamp (yyyymmddhhmmss) $reference no = "ordno20251001101069"; $amt = "10000"; // 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 "recurringtoken" => "", //leave empty if not recurring "preauthtoken" => "", // leave empty for hold fund request ]; $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, $newcctrx >getreferenceno(), $newcctrx >getamt(), $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("") >preauthtoken("") // leave empty for hold fund request >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("testmpgs0501202510011026450166") // transaction id from registration imid("testmpgs05") // your nicepay imid merchantkey(merchant key) // secret merchant key referenceno("ordno20251001101069") // unique order reference number amt("10000") // 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) preauthtoken("") // left empty for hold fund build() val response = paymentservice registration(request, config)!! response parameter sample response capture payment api credit card api url /nicepay/direct/v2/payment request method post post description capture process from pre auth merchant token sha256( timestamp + imid + referenceno + amt + merchantkey ) request format application/json request parameter for capture payment api credit card setelah mendapatkan preauthtoken pada sudah dibayarkan oleh dan di api pre auth payment (hold), langkah selanjutnya adalah melakukan capture pada dana telah di hold namun, untuk melakukan itu, diperlukan untuk registrasi kembali dengan baru pada docid\ z6sdmngzu quc96xnnxmm dengan amount capture harus berjumlah kurang atau sama dari amount telah di hold pada pre auth sebelumnya apabila sudah sukses mendaftarkan kembali, baru dapat menggunakan capture ini proses capture dapat dilakukan berulang kali selama jumlah amount sudah melalui pre auth masih ada untuk di capture beserta dengan pre auth masih belum kedaluwarsa atau belum dianggap void berikut ini adalah daftar untuk melakukan menggunakan preauthtoken tanpa cardno , cardexpyymm maupun cardcvv parameter tipe ukuran deskripsi contoh / catatan timestamp required required n 14 request timestamp ( yyyymmddhh24miss ) 20230516135959 txid required required an 30 transaction id ionpaytest01202305161007570327 referenceno required required ans 40 order number merchantreferencenumber001 merchanttoken required required an 255 token ff139e49606387091cd9baeadff3161aff6afd9406e1f481e0fdb8b46d1ae5ae cardholdernm required required an 45 card holder name john doe only alphabet allowed cardcvv n 6 card cvv 100 callbackurl required required ans 255 result url https //www nicepay co id/ionpay client/paymentresult jsp preauthtoken required for capture process in pre auth required for capture process in pre auth an 64 pre auth token 5976c263fe6116503645057bb00be809c3a6f9c1e355efa12ef2cda2be03d5eb txid tidak akan sama dengan request (pre auth hold) proses capture akan memastikan bahwa nilai amount di capture tidak melebihi dana sudah pre auth response parameter for capture payment api credit card parameter tipe ukuran deskripsi contoh / catatan timestamp n 14 response date ( yyyymmddhh24miss ) 20230516135959 resultcd n 4 docid 7o8nl7guqp asiwfdqi3v 0000 resultmsg an 255 result message docid\ wpcemazro xvnxz 1zaib success txid an 30 transaction id ionpaytest01202305161007570327 referenceno ans 40 order number merchantreferencenumber001 paymethod n 2 docid\ iifmsruuw7j9vmwefjz97 01 when success amount n 12 amount 10000 when success currency an 3 currency idr when success goodsnm an 100 goods name goods 1 when success billingnm an 100 buyer name john doe when success transdt n 8 transaction date ( yyyymmdd ) 20230522 when success transtm n 6 transaction time ( hh24miss ) 224343 when success description an 100 description this is the description of the when success authno n 10 approval number 123456 when success issubankcd a 4 docid\ ky4ppujot06atnie easf cena when success acqubankcd a 4 docid\ ky4ppujot06atnie easf bnia when success cardno an 20 card number (masked) 51234500 0008 when success cardexpyymm n 4 card expiry ( yymm ) 3901 when success instmntmon n 2 installment month 1 when success instmntype n 2 docid\ rt2c32s9hfl aohyoebv5 1 when success cctranstype an 2 docid 5kylpx5mpjsl96c8mhoik 3 when success vat n 12 value added tax ( ) 0 when success fee n 12 service fee 0 when success notaxamt n 12 tax free amount 0 when success acqubanknm a 255 acquiring name cimb issubanknm a 255 issuing name bca txid tidak akan sama seperti request hold saat capture , dan amt tidak melebihi dana ditahan sample parameter for capture 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' \\ \ data urlencode 'timestamp=20251001171036' \\ \ data urlencode 'txid=testmpgs0501202510011716431018' \\ \ data urlencode 'referenceno=ordno20251001171009' \\ \ data urlencode 'merchanttoken=e9cc3a18732249cd1d51062c5377e5bddb31dae9a232f1c16249a17d376699ff' \\ \ data urlencode 'cardholdernm=nicepay test' \\ \ data urlencode 'preauthtoken=a513eff039c80a8c617fe57dbb401c52dbfd683b5d48fb3df61312f5a6665f35' \\ \ data urlencode 'callbackurl=https //dev nicepay co id/ionpay client/paymentresult jsp?order id=testmpgs0501202510011716431018' node js let secondversion = new secondapiversion(config); let parameterpayment = { amt "100", referenceno "ordno20251001171009", txid "testmpgs0501202510011716431018", callbackurl "https //dev nicepay co id/ionpay client/paymentresult jsp?order id=recurrtest01202509301555563979", cardholdernm "nicepay test", preauthtoken "a513eff039c80a8c617fe57dbb401c52dbfd683b5d48fb3df61312f5a6665f35", // preauth token 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("testmpgs0501202510011716431018") // transaction id from registration imid("testmpgs05") // your nicepay imid referenceno("ordno20251001171009") // unique order reference amt("100") // payment amount merchanttoken(timestamp, imid, reffno, amount, merchant key) // secure token generation cardholdernm("nicepay test") // cardholder name callbackurl("https //dev nicepay co id/ionpay client/paymentresult jsp") // callback url recurringtoken("") // leave empty if not recurring token preauthtoken("a513eff039c80a8c617fe57dbb401c52dbfd683b5d48fb3df61312f5a6665f35") // preauth token build(); string responsehtml = v2cardservice callv2cardpaymentrequest(requestdata, config); bodypayment = ( builderpayment buildpayment() settimestamp(datetime now() strftime("%y%m%d%h%m%s")) # current timestamp (yyyymmddhhmmss) settxid("testmpgs0501202510011716431018") # transaction id from registration setreferenceno("ordno20251001171009") # unique order reference setcashtag("") # leave empty if not using cashtag setrecurringtoken("") # leave empty if not recurring setpreauthtoken("a513eff039c80a8c617fe57dbb401c52dbfd683b5d48fb3df61312f5a6665f35") # preauth token setamt("10000") # 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 "testmpgs0501202510011716431018", // transaction id from registration merchanttoken "bc2ee7790486a7ee4a5313d4c1d4088a38456b89204e308ae38e0beee3849d0b", // secure token preauthtoken "a513eff039c80a8c617fe57dbb401c52dbfd683b5d48fb3df61312f5a6665f35", // preauth token }; const response = await nicepay paymenttransaction(paymentdata); laravel $url = httputil getnicepaydomain($this >useprod, $this >usecloud) $this >payment endpoint; // request body parameters $txid = "testmpgs0501202510011716431018"; $timestamp = carbon now() >format("ymdhis"); // current timestamp (yyyymmddhhmmss) $reference no = "ordno20251001171009"; $amt = "100"; // 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 "recurringtoken" => "", //leave empty if not recurring "preauthtoken" => "a513eff039c80a8c617fe57dbb401c52dbfd683b5d48fb3df61312f5a6665f35", // preauth token ]; $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("testmpgs0501202510011716431018") // transaction id from registration >referenceno("ordno20251001171009") // unique order reference >merchanttoken( $timestamp, $imid, $newcctrx >getreferenceno(), $newcctrx >getamt(), $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("") >preauthtoken("a513eff039c80a8c617fe57dbb401c52dbfd683b5d48fb3df61312f5a6665f35") // preauth token >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("testmpgs0501202510011716431018") // transaction id from registration imid("testmpgs05") // your nicepay imid merchantkey(merchant key) // secret merchant key referenceno("ordno20251001171009") // unique order reference number amt("10000") // payment amount callbakurl("https //www nicepay co id/ionpay client/paymentresult jsp") // callback url after payment preauthtoken("a513eff039c80a8c617fe57dbb401c52dbfd683b5d48fb3df61312f5a6665f35") // preauth token build() val response = paymentservice registration(request, config)!! response parameter sample response 	 	 	 	 		 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 		 	 	 callback handling for pre auth & capture payment api credit card saat callback telah diterima callbackurl , kami sangat menganjurkan untuk melakukan verifikasi status menggunakan docid 9ivqi i4yka9s1oz6s ha callback handling sangat penting untuk membantu meminimalisir tindakan fraud, kami sangat merekomendasikan untuk melakukan verifikasi menggunakan 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" }