NICEPAY API
...
Registration - API Credit Card
Pre-Auth & Capture - Registration API Credit Card
13 min
about pre auth & capture registration api credit card pre auth & capture is another feature from where can hold or do pre auth beforehand from paid fund from then, you need to validate for that fund also known as capture so that fund logs into your account if you want to do capture after pre auth expired time finished, then that will considered as void, and that fund will return to your so, we recommend doing capture as soon as possible before pre auth expiry time finished learn about feature with preauth & capture on docid\ xw 13tlribkigqz6ktcbm pre auth & capture registration api credit card api endpoint /nicepay/direct/v2/registration request method post post description pre auth & capture merchant token sha256( timestamp + imid + referenceno + amt + merchantkey ) request format application/json request parameter for pre auth & capture registration api credit card the first step that should do is to activate pre auth & capture feature to register beforehand on this registration this need to be done so you can get txid that will use later to with pre auth parameter type size description example / notes timestamp required required n 14 request timestamp ( yyyymmddhh24miss ) 20221202141217 imid required required an 10 id ionpaytest paymethod required required n 2 docid\ ek 0djw7nuhytcda4sa3p 01 currency required required a 3 currency idr amt required required n 12 amount (number not in float format) 10000 (total sum amount goods from cartdata ) referenceno required required ans 40 's reference number ordno20221202141217 goodsnm required required an 100 goods name testing transaction billingnm required required a 100 buyer name john doe billingphone required required n 15 buyer phone number 2112345678 billingemail required required ans 40 buyer e mail buyer\@merchant com billingaddr required required an 100 buyer address jln raya kasablanka kav 88 billingcity required required a 50 buyer city south jakarta billingstate required required a 50 billing state dki jakarta billingpostcd required required n 10 billing post number 14350 billingcountry required required a 10 billing country cartdata optional optional jsonstring 4000 cart data {} instmnttype required required n 2 docid\ wfsinjxqc2s9yubbybpep 1 (for preauth & recurring default 1) instmntmon required required n 2 installment month 1 1 month/full , if instmnttype null/1 1 (for preauth & recurring default 1) recurropt required required n 2 0 automatic cancel 1 do not cancel 2 do not make token 2 dbprocessurl required required ans 255 notification url https //merchant com/dbprocessurl userip required for cc, e wallet, payloan, qris required for cc, e wallet, payloan, qris an 15 user ip 127 0 0 1 merchanttoken required required an 255 token c91e6531f6c84869439bc5ebe5389bd71e7752c054fc9dbfe193d087a1b797ae description an 100 transaction description test transaction usersessionid an 100 user session id usersessionid useragent ans 100 user agent mozilla userlanguage a 2 user language en us cart data for full payment & installment registration api credit card cartdata on request at registration uses to cover goods or items will be paid to your including item detail and each item price parameter description example count total sum from whole cart data 2 item divide into 5 types of such as img url , goods id , goods name , goods detail and goods amt detail explaination on item parameter description example img url url item picture (size 50px x 50px) htttps\ //www merchant com/image goods1 jpg goods id item id niceprdid1 goods name item name nama item 1 goods detail item detail description detail item 1 goods amt item price 1000 sample json cart data cartdata credit card registration { "count" "2", "item" \[ { "img url" "http //www merchant com/image goods1 jpg", "goods id" "niceprdid1", "goods name" "item 1 name", "goods detail" "item 1 detail", "goods amt" "1000" }, { "img url" "http //www merchant com/image goods2 jpg", "goods id" "niceprdid1", "goods name" "item 2 name", "goods detail" "item 2 detail", "goods amt" "1000" } ] } response parameter for pre auth & capture registration api credit card the following is response from registration request result for pre auth & capture type that already with the result needed to to next from this response result is only txid to to next stage, please visit docid\ yau1f649b4 xi0opn5idc parameter type size description example / notes resultcd n 4 docid 2r5sr3xvppu1eju1nitg 0000 resultmsg an 255 result message docid 4 fpewlvczfhcvygxwck9 success txid an 30 transaction id pactest00101202206241007570327 referenceno ans 40 reference number ordno20221215101254 paymethod n 2 docid\ ek 0djw7nuhytcda4sa3p 01 amt n 12 amount 10000 transdt n 8 transaction date ( yyyymmdd ) 20221212 transtm n 6 transaction time ( hh24miss ) 121212 description an 100 transaction description testing transaction bankcd a 4 docid\ qbeq29lj53z vbvxtvb7l null vacctno n 20 null mitracd a 4 docid 0upx1lyg1o2f4biu3ssp null payno n 12 cvs number null currency a 3 currency idr goodsnm an 100 goods name goods for testing transaction billingnm a 100 buyer name john doe vacctvaliddt n 8 va expiry date ( yyyymmdd ) null vacctvalidtm n 6 va expiry time ( hh24miss ) null payvaliddt n 8 expiry date ( yyyymmdd ) null payvalidtm n 6 expiry time ( hh24miss ) null requesturl ans 360 request url null paymentexpdt n 6 qr expiry date ( yyyymmdd ) null paymentexptm n 6 qr expiry time ( hh24miss ) null qrcontent ans 360 qr string in plain text null qrurl ans 360 url for qr image, valid for 5 minutes null check docid\ taysz4wmthxupcvxy e48 to know common code also response code on or other s sample parameter for pre auth & capture registration api credit card request parameter curl curl location 'https //dev nicepay co id/nicepay/direct/v2/registration' \\ \ header 'content type application/json' \\ \ data raw '{ "timestamp" "20221214111261", "imid" "pactest001", "paymethod" "01", "currency" "idr", "amt" "5000", "merchanttoken" "b40cb019e938d0118b77cb6f564a7facf12472e5bbb598dde0cd43b2df46b2aa", "referenceno" "ordno20221214111261", "goodsnm" "goods for testing pre auth", "billingnm" "john doe", "billingphone" "081288998899", "billingemail" "john doe\@example com", "billingaddr" "jln raya kasablanka kav 88", "billingcity" "south jakarta", "billingstate" "dki jakarta", "billingcountry" "indonesia", "billingpostcd" "12800", "dbprocessurl" "http //ptsv2 com/t/merchant/post", "userip" "127 0 0 1", "instmnttype" "1", "instmntmon" "1", "cartdata" "{\\"count\\" \\"1\\",\\"item\\" \[{\\"goods id\\" \\"niceprdid1\\",\\"img url\\" \\"http //www merchant com/image goods1 jpg\\",\\"goods name\\" \\"goods for testing pre auth\\",\\"goods detail\\" \\"goods for testing pre auth details\\",\\"goods amt\\" \\"5000\\",\\"goods quantity\\" \\"1\\"}]}", "recurropt" "", "userlanguage" "en", "useragent" "mozilla/5 0 (windows nt 6 1; win64; x64; rv 47 0) gecko/20100101 firefox/47 0" }' node js const nicepayclient = require("nodejs nicepay"); let secondversion = new nicepayclient secondapiversion({ isproduction false, iscloudserver false, merchantkey "your merchant key", }); const parameter = { timestamp "20221214111261", imid "pactest001", paymethod "01", currency "idr", amt "5000", merchanttoken "b40cb019e938d0118b77cb6f564a7facf12472e5bbb598dde0cd43b2df46b2aa", referenceno "ordno20221214111261", goodsnm "goods for testing pre auth", billingnm "john doe", billingphone "081288998899", billingemail "john doe\@example com", billingaddr "jln raya kasablanka kav 88", billingcity "south jakarta", billingstate "dki jakarta", billingcountry "indonesia", billingpostcd "12800", dbprocessurl "http //ptsv2 com/t/merchant/post", cartdata "{\\"count\\" \\"1\\",\\"item\\" \[{\\"goods id\\" \\"niceprdid1\\",\\"img url\\" \\"http //www merchant com/image goods1 jpg\\",\\"goods name\\" \\"goods for testing pre auth\\",\\"goods detail\\" \\"goods for testing pre auth details\\",\\"goods amt\\" \\"5000\\",\\"goods quantity\\" \\"1\\"}]}", userip "127 0 0 1", instmnttype "1", instmntmon "1", recurropt "", userlanguage "en", useragent "mozilla/5 0 (windows nt 6 1; win64; x64; rv 47 0) gecko/20100101 firefox/47 0", }; let endpoint = "/direct/v2/registration"; secondversion requestapi(parameter, endpoint); string reffno = "ordno20221202141217"; card requestdata = card builder() timestamp("20221202141217") imid("ionpaytest") paymethod("01") currency("idr") amt("5000") referenceno(reffno) goodsnm("testing transaction") billingnm("john doe") billingphone("081288998899") billingemail("john doe\@example com") billingaddr("jln raya kasablanka kav 88") billingcity("south jakarta") billingstate("dki jakarta") billingpostcd("12800") billingcountry("indonesia") description("testing registration credit card") deliverynm("") deliveryphone("") deliveryaddr("") deliverycity("") deliverystate("") deliverypostcd("") deliverycountry("") dbprocessurl("http //ptsv2 com/t/merchant/post") userip("127 0 0 1") useragent("mozilla/5 0 (windows nt 6 1; win64; x64; rv 47 0) gecko/20100101 firefox/47 0") instmnttype("1") instmntmon("1") recurropt("1") cartdata("{\\"count\\" \\"1\\",\\"item\\" \[{\\"goods id\\" \\"niceprdid1\\",\\"img url\\" \\"http //www merchant com/image goods1 jpg\\",\\"goods name\\" \\"goods for testing pre auth\\",\\"goods detail\\" \\"goods for testing pre auth details\\",\\"goods amt\\" \\"5000\\",\\"goods quantity\\" \\"1\\"}]}") merchanttoken("20221202141217", "ionpaytest", reffno, "5000", merchantkey) build(); nicepayresponsev2 cardregistresponse = v2cardservice callv2cardregistration(requestdata, config); amt = 5000 itemcartdata = { "goods id" "niceprdid1", "goods detail" "goods for testing pre auth details", "goods name" "goods for testing pre auth", "goods amt" amt, "goods url" "https //merchant com/cellphones/iphone5s 64g", } bodycartdata = ( buildercartdata buildcartdata() setcount("1") setitem(itemcartdata) build() ) bodycreditcard = ( buildercreditcard buildcreditcard() setpaymethod(constantsgeneral getpaymethodcreditcard()) setrecurropt("1") setinstmntmon("1") setinstmnttype("1") setamt(str(amt)) build() ) environment = ( builderenvironment buildenvironment() iscloud(false) isproduction(false) build() ) c# string merchantkey = config merkey; string clientid = config clientid; string timestamp = "20221214111261"; string refno = "ordno20221214111261"; string amount = "5000"; bool isproduction = false; bool iscloudserver = false; // 1️⃣ generate merchant token (keep original logic) var merchanttokenbuilder = new merchanttokenbuilder() settimestamp(timestamp) setimid("pactest001") setrefno(refno) setamount(amount) setmerchantkey(merchantkey); string merchanttoken = merchanttokenbuilder buildmerchanttoken(); // 2️⃣ build cart data var cartitem = new dictionary\<string, object> { { "goods id", "niceprdid1"}, { "img url", "http //www merchant com/image goods1 jpg" }, { "goods name", "goods for testing pre auth" }, { "goods detail", "goods for testing pre auth details" }, { "goods amt", "5000" } }; var cartdatabuilder = new buildercartdata() setcount("1") setitem(cartitem); var cartdata = cartdatabuilder build(); // 3️⃣ build credit card request body var bodybuilder = new nicepayrequestbuilder() setcommonfields( imid "pactest001", timestamp timestamp, paymethod "01", currency "idr", amt amount, referenceno refno, goodsnm "goods for testing pre auth", merchanttoken merchanttoken ) setcreditcard( instmnttype "1", instmntmon "1", recurropt "" ) setbillinginfo( billingnm "john doe", billingphone "081288998899", billingemail "john doe\@example com", billingaddr "jln raya kasablanka kav 88", billingcity "south jakarta", billingstate "dki jakarta", billingpostcd "12800", billingcountry "indonesia" ) setdbprocessurl("http //ptsv2 com/t/merchant/post") setcartdata(cartdata) setuserip("127 0 0 1") setuserlanguage("en") setuseragent("mozilla/5 0 (windows nt 6 1; win64; x64; rv 47 0) gecko/20100101 firefox/47 0"); apiendpoints apiendpoints = new apiendpoints(); // 4️⃣ build payload and send dictionary\<string, object> payload = bodybuilder build(); string jsonpayload = newtonsoft json jsonconvert serializeobject(payload, newtonsoft json formatting indented); var registrationservice = new nicepayregistrationservice(apiendpoints, isproduction, iscloudserver); var result = await registrationservice sendpostasync(apiendpoints registv2, payload); vanilla js const registrationdata = { timestamp "20221214111261", imid "pactest001", paymethod "01", currency "idr", amt "5000", merchanttoken "b40cb019e938d0118b77cb6f564a7facf12472e5bbb598dde0cd43b2df46b2aa", referenceno "ordno20221214111261", goodsnm "goods for testing pre auth", billingnm "john doe", billingphone "081288998899", billingemail "john doe\@example com", billingaddr "jln raya kasablanka kav 88", billingcity "south jakarta", billingstate "dki jakarta", billingcountry "indonesia", billingpostcd "12800", dbprocessurl "http //ptsv2 com/t/merchant/post", cartdata "{\\"count\\" \\"1\\",\\"item\\" \[{\\"goods id\\" \\"niceprdid1\\",\\"img url\\" \\"http //www merchant com/image goods1 jpg\\",\\"goods name\\" \\"goods for testing pre auth\\",\\"goods detail\\" \\"goods for testing pre auth details\\",\\"goods amt\\" \\"5000\\",\\"goods quantity\\" \\"1\\"}]}", userip "127 0 0 1", instmnttype "1", instmntmon "1", recurropt "", userlanguage "en", useragent "mozilla/5 0 (windows nt 6 1; win64; x64; rv 47 0) gecko/20100101 firefox/47 0", }; const paymentdata = { cardno "4811111111111114", expmonth "12", expyear "2025", cvv "123", }; (async () => { try { const response = await nicepay registertransaction(registrationdata, paymentdata); console log("transaction response ", response); } catch (error) { console error("registration failed ", error); } })(); laravel $useprod = false; $usecloud = false; $registration endpoint = "/nicepay/direct/v2/registration"; $url = httputil getnicepaydomain($useprod, $usecloud) $registration endpoint; $timestamp = "20221213101276"; $reference no = "ordno20221213101276"; $amt = "5000"; $merchant token = "ed9c8640b6260c8fa7070aa4e38df87896f9777899af354ee6d3d61f64626c0c"; $body = \[ "timestamp" => $timestamp, "imid" => "recurrtest", "paymethod" => "01", "currency" => "idr", "amt" => $amt, "merchanttoken" => $merchant token, "referenceno" => $reference no, "goodsnm" => "goods for testing", "billingnm" => "john doe", "billingphone" => "081288998899", "billingemail" => "john doe\@example com", "billingaddr" => "jln raya kasablanka kav 88", "billingcity" => "south jakarta", "billingstate" => "dki jakarta", "billingpostcd" => "12800", "billingcountry" => "indonesia", "cartdata" => "{\\"count\\" \\"1\\",\\"item\\" \[{\\"goods id\\" \\"niceprdid1\\",\\"img url\\" \\"http //www merchant com/image goods1 jpg\\",\\"goods name\\" \\"goods for testing pre auth\\",\\"goods detail\\" \\"goods for testing pre auth details\\",\\"goods amt\\" \\"5000\\",\\"goods quantity\\" \\"1\\"}]}", "dbprocessurl" => "http //ptsv2 com/t/merchant/post", "userip" => "127 0 0 1", "instmnttype" => "1", "instmntmon" => "1", "recurropt" => "1", "userlanguage" => "en", "useragent" => "mozilla/5 0 (windows nt 6 1; win64; x64; rv 47 0) gecko/20100101 firefox/47 0" ]; $response = httputil postjsonrequest($url, $body); php native $config = nicepay builder() >setisproduction(false) >build(); $timestamp = "20221202141217"; $reffno = "ordno20221202141217"; $amount = "5000"; $parameter = card builder() >settimestamp($timestamp) >setimid("ionpaytest") >setpaymethod("01") >setcurrency("idr") >setamt($amount) >setreferenceno($reffno) >setmerchanttoken($timestamp, "ionpaytest", $reffno, $amount, $this >merchantkey) >setdescription("testing registration credit card") >setgoodsnm("testing transaction") >setbillingnm("john doe") >setbillingphone("081288998899") >setbillingemail("john doe\@example com") >setbillingaddr("jln raya kasablanka kav 88") >setbillingcity("south jakarta") >setbillingstate("dki jakarta") >setbillingpostcd("12800") >setbillingcountry("indonesia") >setdbprocessurl("http //ptsv2 com/t/merchant/post") >setcartdata("{\\"count\\" \\"1\\",\\"item\\" \[{\\"goods id\\" \\"niceprdid1\\",\\"img url\\" \\"http //www merchant com/image goods1 jpg\\",\\"goods name\\" \\"goods for testing pre auth\\",\\"goods detail\\" \\"goods for testing pre auth details\\",\\"goods amt\\" \\"5000\\",\\"goods quantity\\" \\"1\\"}]}") >setuserip("127 0 0 1") >setinstmnttype("1") >setinstmntmon("1") >setrecurropt("1") >setuserlanguage("en") >setuseragent("mozilla/5 0 (windows nt 6 1; win64; x64; rv 47 0) gecko/20100101 firefox/47 0") >build(); $cardservice = new v2cardservice($config); $response = $cardservice >registration($parameter); var config nicepay? = nicepay builder() isproduction(false) clientsecret(testingconstants client secret) partnerid(testingconstants partner id) externalid(testingconstants external id) timestamp(testingconstants timestamp) privatekey(testingconstants private key) build() val request directv2card = directv2card builder() timestamp("20221202141217") imid("ionpaytest") paymethod("01") currency("idr") amt("5000") referenceno("ordno20221202141217") goodsnm("testing transaction") billingnm("john doe") billingphone("081288998899") billingemail("john doe\@example com") billingaddr("jln raya kasablanka kav 88") billingcity("south jakarta") billingstate("dki jakarta") billingpostcd("12800") billingcountry("indonesia") dbprocessurl("http //ptsv2 com/t/merchant/post") userip("127 0 0 1") useragent("mozilla/5 0 (windows nt 6 1; win64; x64; rv 47 0) gecko/20100101 firefox/47 0") userlanguage("en") instmnttype("1") instmntmon("1") recurropt("1") cartdata("{\\"count\\" \\"1\\",\\"item\\" \[{\\"goods id\\" \\"niceprdid1\\",\\"img url\\" \\"http //www merchant com/image goods1 jpg\\",\\"goods name\\" \\"goods for testing pre auth\\",\\"goods detail\\" \\"goods for testing pre auth details\\",\\"goods amt\\" \\"5000\\",\\"goods quantity\\" \\"1\\"}]}") merchantkey(default merchant key) build() val response nicepayresponsev2 = v2cardservice registration(request, config)!! codeigniter $timestamp = "20221202141217"; $configbuilder = nicepay builder(); $config = $configbuilder >setisproduction(false) >setiscloudserver(iscloudserver true) >build(); $reffno = "ordno20221202141217"; $amount = "5000"; $cardbuilder = card builder(); $parameter = $cardbuilder >settimestamp($timestamp) >setimid("ionpaytest") >setpaymethod("01") >setcurrency("idr") >setamt($amount) >setreferenceno($reffno) >setmerchanttoken($timestamp, "ionpaytest", $reffno, $amount, $this >merchantkey) >setdescription("testing registration credit card") >setgoodsnm("testing transaction") >setbillingnm("john doe") >setbillingphone("081288998899") >setbillingemail("john doe\@example com") >setbillingaddr("jln raya kasablanka kav 88") >setbillingcity("south jakarta") >setbillingstate("dki jakarta") >setbillingpostcd("12800") >setbillingcountry("indonesia") >setdbprocessurl("http //ptsv2 com/t/merchant/post") >setcartdata("{\\"count\\" \\"1\\",\\"item\\" \[{\\"goods id\\" \\"niceprdid1\\",\\"img url\\" \\"http //www merchant com/image goods1 jpg\\",\\"goods name\\" \\"goods for testing pre auth\\",\\"goods detail\\" \\"goods for testing pre auth details\\",\\"goods amt\\" \\"5000\\",\\"goods quantity\\" \\"1\\"}]}") >setuserip("127 0 0 1") >setinstmnttype("1") >setinstmntmon("1") >setrecurropt("1") >setuserlanguage("en") >setuseragent("mozilla/5 0 (windows nt 6 1; win64; x64; rv 47 0) gecko/20100101 firefox/47 0") >build(); $cardservice = new v2cardservice($config); $response = $cardservice >registration($parameter); response parameter sample response { "resultcd" "0000", "resultmsg" "success", "txid" "pactest00101202510081159303818", "referenceno" "ordno20221214111261", "paymethod" "01", "amt" "5000", "transdt" "20251008", "transtm" "115930", "description" null, "bankcd" null, "vacctno" null, "mitracd" null, "payno" null, "currency" null, "goodsnm" null, "billingnm" null, "vacctvaliddt" null, "vacctvalidtm" null, "payvaliddt" null, "payvalidtm" null, "requesturl" null, "paymentexpdt" null, "paymentexptm" null, "qrcontent" null, "qrurl" null }