NICEPAY API
...
Payment - API Credit Card
Pre-Auth & Capture - Payment API Credit Card
21 min
tentang pre auth & capture payment api credit card setelah {{anda}} melakukan pendaftaran {{transaksi}} {{kartukredit}} dengan tipe fitur pre auth & capture pada docid\ z6sdmngzu quc96xnnxmm , {{anda}} dapat melanjutkan langkah selanjutnya ke {{proses}} {{pembayaran}} pada {{transaksi}} tersebut melalui {{api}} {{paymentproduct}} ini pelajari mengenai fitur {{pembayaran}} {{kartukredit}} dengan recurringtoken di {{halaman}} docid\ cglxg10p9zmvtux b7ga atau kunjungi penjelasan teknis {{api}} mengenai pre auth capture di {{halaman}} 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 {{transaksi}} {{yang}} {{pelanggan}} {{anda}} akan lakukan, {{anda}} diperlukan untuk mengisi {{parameter}} txid dari hasil response pada docid\ z6sdmngzu quc96xnnxmm {{yang}} {{anda}} 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 {{merchant}} order number this is the description of the {{paymentproduct}} merchanttoken required required an 255 {{merchant}} token ff139e49606387091cd9baeadff3161aff6afd9406e1f481e0fdb8b46d1ae5ae cardno required required n 20 {{cc}} 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 {{paymentproduct}} result url https //www merchant com/callbackurl/ {{anda}} juga memerlukan {{parameter}} cardno , cardexpyymm , cardholdernm , cardholderemail & cardcvv {{yang}} {{anda}} bisa dapatkan dari {{pelanggan}} {{anda}} agar tagihan {{transaksi}} nya dapat di {{proses}} response parameter for pre auth payment api credit card (hold fund) berikut ini adalah response {{parameter}} dari hasil request pre auth {{paymentproduct}} ( 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 {{merchant}} order number merchantreferencenumber001 paymethod n 2 docid\ iifmsruuw7j9vmwefjz97 01 when success amount n 12 {{paymentproduct}} amount 10000 when success currency an 3 currency idr when success goodsnm an 100 goods name {{merchant}} 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 {{paymentproduct}} 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 ( {{vat}} ) 0 when success fee n 12 service fee 0 when success notaxamt n 12 tax free amount 0 when success acqubanknm a 255 acquiring {{bank}} name cimb issubanknm a 255 issuing {{bank}} name bca apabila {{proses}} ini berhasil maka dana {{yang}} sudah dibayarkan akan di hold secara otomatis dan {{anda}} pun akan mendapatkan preauthtoken {{yang}} diperlukan untuk melakukan {{proses}} capture nantinya mohon untuk segera melakukan {{proses}} capture setelah {{proses}} pre auth sudah diselesaikan sebelum dana {{transaksi}} nya kedaluwarsa dan akan dianggap void (dana {{transaksi}} akan dikembalikan ke cardholder ) tenggat waktu kedaluwarsa pada {{transaksi}} 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 {{anda}} mendapatkan preauthtoken pada {{transaksi}} {{yang}} sudah dibayarkan oleh {{pelanggan}} {{anda}} dan di {{proses}} api pre auth payment (hold), langkah selanjutnya adalah melakukan {{proses}} capture pada dana {{yang}} telah di hold namun, untuk melakukan {{proses}} itu, {{anda}} diperlukan untuk registrasi kembali dengan {{transaksi}} {{yang}} baru pada docid\ z6sdmngzu quc96xnnxmm dengan amount {{yang}} {{anda}} capture harus berjumlah kurang atau sama dari amount {{yang}} telah di hold pada {{proses}} pre auth sebelumnya apabila {{anda}} sudah sukses mendaftarkan {{transaksi}} kembali, {{anda}} baru dapat menggunakan {{api}} capture ini proses capture dapat dilakukan berulang kali selama jumlah amount {{yang}} sudah melalui pre auth masih ada untuk di capture beserta dengan {{transaksi}} pre auth masih belum kedaluwarsa atau belum dianggap void berikut ini adalah daftar {{parameter}} untuk melakukan {{integrasi}} {{proses}} {{pembayaran}} {{kartukredit}} 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 {{merchant}} order number merchantreferencenumber001 merchanttoken required required an 255 {{merchant}} 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 {{paymentproduct}} 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 {{yang}} di capture tidak melebihi dana {{yang}} sudah {{anda}} 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 {{merchant}} order number merchantreferencenumber001 paymethod n 2 docid\ iifmsruuw7j9vmwefjz97 01 when success amount n 12 {{paymentproduct}} amount 10000 when success currency an 3 currency idr when success goodsnm an 100 goods name {{merchant}} 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 {{paymentproduct}} 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 ( {{vat}} ) 0 when success fee n 12 service fee 0 when success notaxamt n 12 tax free amount 0 when success acqubanknm a 255 acquiring {{bank}} name cimb issubanknm a 255 issuing {{bank}} name bca txid tidak akan sama seperti request hold saat capture , dan amt tidak melebihi dana {{yang}} 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 {{anda}} , kami sangat menganjurkan {{merchant}} untuk melakukan verifikasi status menggunakan docid 9ivqi i4yka9s1oz6s ha callback handling sangat penting untuk membantu meminimalisir tindakan fraud, kami sangat merekomendasikan {{merchant}} 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" }