Credit Card
Transaction Flow:
- Request
onePassToken
. - Redirect to 3DS / MIGS page.
- Customer input
OTP
on 3DS page. - Merchant Register Transaction.
- NICEPay Send Notification
Request Token
Merchant need to request onePassToken
for each Credit Card
transaction using NICEPay Enterprise.
API Specifications - Request Token
API url | /nicepay/api/onePassToken.do |
Request Method application/x-www-form-urlencoded | POST |
Description | Request onePassToken for Credit Card Transaction. |
Merchant Token | SHA256(iMid +referenceNo +amt +merchantKey ) |
Payment Methods | 01 Credit Card |
Request Parameter - Request Token
Sample API Request
curl --location --request POST 'https://dev.nicepay.co.id/nicepay/api/onePassToken.do' \
--header 'Content-Type: application/x-www-form-urlencoded' \
--data-urlencode 'jsonData={"iMid":"IONPAYTEST","referenceNo":"99998","amt":"1000","cardNo":"1234567812345678","cardExpYymm":"2012","merchantToken":"0adb3b85d3d7e98b7d0b560bca3870a9b20552acaf3141263c467d1640a74530"}'
Parameter | Type | Size | Description | Example Value |
---|---|---|---|---|
iMid Required | AN | 10 | Merchant ID | IONPAYTEST |
merchantToken Required | AN | 255 | Merchant Token | c69fd0a2e36fb9d97fc8418f6b22699143a1177e570769dac2cf4d2008558946 |
cardNo Required | N | 16 | Card number | 5409123456789123 |
cardExpYYmm Required | N | 4 | Card expiry (YYMM) | 2012 |
cardHolderNm Required CIMB | AN | 50 | Card holder name | asdasdas |
amt Required | N | 12 | Payment amount | 10000 |
referenceNo Required | ANS | 40 | Merchant Order Number | ABC123 |
instmntType | N | 2 | Installment Type | 1 |
instmntMon | N | 2 | Installment month | 1 |
Response Parameter - Request Token
Sample JSON response
{
"resultCd": "0000",
"cardToken": "ed5ce66bf69926c52cfa237c56fb38601f7c08985d385e615971a268b510db75",
"resultMsg": "SUCCESS",
"paymentType": "3"
}
Parameter | Type | Size | Description |
---|---|---|---|
resultCd | N | 4 | result code |
resultMsg | AN | 255 | result message |
cardToken | AN | 64 | one time use transaction token |
paymentType | N | 1 | CC Authorization type |
paymentType | Description |
---|---|
1 | 3D Secure |
2 | KeyIn (Proceed to Registration without 3DS/MIGS) |
3 | MIGS |
3DS Request
Proceed with this API when you get paymentType = 1
from onePassToken.do
response.
3DS Steps:
- Send parameters to 3DS Request API.
- Popup to Bank 3D Secure Page.
- Customer input OTP.
- NICEPay will send response parameter to
callbackUrl
.
API Specifications - 3DS
API url | /nicepay/api/secureVeRequest.do |
Request Method application/x-www-form-urlencoded | POPUP or Redirect |
Description | Request 3DS page for paymentType = 1 |
Merchant Token | SHA256(iMid +referenceNo +amt +merchantKey ) |
Payment Methods | 01 Credit Card |
Request Parameter - 3DS
Sample Request
https://www.nicepay.co.id/nicepay/api/secureVeRequest.do?country=360&callbackUrl={callbackUrl}&onePassToken={onePassToken}
Parameter | Type | Size | Description | Sample Data |
---|---|---|---|---|
country Required | N | 3 | Country | 360 |
callbackUrl Required | ANS | 200 | Callback Url | http://merchant.com/callback |
onePassToken Required | AN | 64 | One time use transaction token | c5bd0b91bcc3d21358cd004c60e54 579441c23aa8e7553b41ce3402db1113fff |
3DS Response Parameter
Sample URL Parameter 3DS Response
http://merchant.com/callbackUrl?resultCd={resultCd}&resultMsg={resultMsg}&referenceNo={referenceNo}&merchantToken={merchantToken}
Parameter | Type | Size | Description |
---|---|---|---|
resultCd | N | 4 | Result Code |
resultMsg | AN | 255 | Result Message |
referenceNo | ANS | 40 | Merchant Order Number |
merchantToken | AN | 255 | Merchant Token |
MIGS Request
Proceed with this API when you get paymentType = 3
from onePassToken.do
response.
MIGS Steps:
- Send parameters to MIGS Request API.
- Popup to Bank MIGS Page.
- Customer input OTP.
- NICEPay will send response parameter to
callbackUrl
.
API Specifications - MIGS
API url | /nicepay/api/migsRequest.do |
Request Method application/x-www-form-urlencoded | POPUP or Redirect |
Description | Request MIGS page for paymentType = 3 |
Merchant Token | SHA256(iMid +referenceNo +amt +merchantKey ) |
Payment Methods | 01 Credit Card |
Request Parameter - MIGS
Sample URL Parameter MIGS Request
https://www.nicepay.co.id/nicepay/api/migsRequest.do?instmntType=1&instmntMon=1&referenceNo={referenceNo}&cardCvv={cardCvv}&callbackUrl={callbackUrl}&onePassToken={onePassToken}
Parameter | Type | Size | Description | Example Value |
---|---|---|---|---|
instmntType | N | 2 | Installment Type | 1 |
instmntMon | N | 2 | Installment Month | 1 |
referenceNo Required | ANS | 40 | Merchant Order Number | OrdNo-125315314 |
cardCvv | N | 3 | Card CVV | 123 |
callbackUrl Required | ANS | 200 | Callback Url for result | http://merchant.com/callbackUrl |
onePassToken Required | AN | 64 | One time use token | 92869482578275828fdvf432 |
Response Parameter - MIGS
Sample URL Parameter MIGS Response
http://merchant.com/callbackUrl?resultCd={resultCd}&resultMsg={resultMsg}&referenceNo={referenceNo}&merchantToken={merchantToken}
Parameter | Type | Size | Description |
---|---|---|---|
resultCd | N | 4 | Result code |
resultMsg | AN | 255 | Result message |
Credit Card Registration
API Specifications - CC Registration
API url | /nicepay/api/onePass.do |
Request Method application/x-www-form-urlencoded | POST |
Description | Register Transaction and Charge Credit Card using onePassToken |
Merchant Token | SHA256(iMid +referenceNo +amt +merchantKey ) |
Payment Methods | 01 Credit Card |
Request parameter - CC Registration
Sample API Request
// Payment Mandatory Field
nicePay.setPayMethod("01");
nicePay.setCurrency("IDR");
nicePay.setAmt("1000");
nicePay.setInstmntMon("1");
nicePay.setReferenceNo("MerchantReferenceNumber001");
nicePay.setGoodsNm("Merchant Goods 1");
nicePay.setBillingNm("John Doe");
nicePay.setBillingEmail("[email protected]");
nicePay.setBillingPhone("08123456789");
nicePay.setBillingAddr("Billing Address");
nicePay.setBillingCity("Jakarta");
nicePay.setBillingState("Jakarta");
nicePay.setBillingPostCd("12345");
nicePay.setBillingCountry("Indonesia");
nicePay.setDeliveryNm("John Doe Delivery");
nicePay.setDeliveryPhone("08123456789");
nicePay.setDeliveryAddr("Delivery Address");
nicePay.setDeliveryCity("Jakarta ");
nicePay.setDeliveryState("Jakarta ");
nicePay.setDeliveryPostCd("12345");
nicePay.setDeliveryCountry("Indonesia ");
nicePay.setCallBackUrl(merchantDomain + "callback");
nicePay.setDbProcessUrl(merchantDomain + "dbprocess");
nicePay.setVat("0");
nicePay.setFee("0");
nicePay.setNotaxAmt("0");
nicePay.setDescription("Description");
nicePay.setUserIP("127.0.0.1");
nicePay.setMerchantToken(nicePay.makeToken(nicePay.getAmt(), nicePay.getReferenceNo()));
nicePay.setCartData("{}");
nicePay.setInstmntMon("1");
nicePay.setInstmntType("1");
nicePay.setRecurrOpt(“0”); // for Recurring
nicePay.setCardCvv("123");
nicePay.setOnePassToken("9338d54573688ae18e175240b0257de48d89c6ef1c9c7b5c094dc4beed9e435f");
nicePay.setCardExpYymm("2012")
// Payment Optional Field
nicePay.setReqDt("20160301");
nicePay.setReqTm("135959");
nicePay.setReqDomain("merchant.com");
nicePay.setReqServerIP("127.0.0.1");
nicePay.setReqClientVer("1.0");
nicePay.setUserSessionID("userSessionID");
nicePay.setUserAgent("Mozilla");
nicePay.setUserLanguage("en-US");
nicePay.setMerFixAcctId("9999000000000001");
nicePay.setPaymentExpiryDt("20160303");
nicePay.setPaymentExpiryTm("135959");
// Payment Request
nicePay.payment();
// Payment Response
System.out.println("Response String : " + nicePay.getResponseString()); // JSON in String format
String resultCd = nicePay.Get("resultCd");
String resultMsg = nicePay.Get("resultMsg");
String tXid= nicePay.Get("tXid ");
String referenceNo= nicePay.Get("referenceNo");
String authNo= nicePay.Get("authNo");
String payMethod= nicePay.Get("payMethod");
String amount= nicePay.Get("amount");
String transDt = nicePay.Get("transDt ");
String transTm = nicePay.Get("transTm ");
String description= nicePay.Get("description");
String callbackUrl= nicePay.Get("callbackUrl");
protected void CheckOutCC(object sender, EventArgs e)
{
if (!string.IsNullOrEmpty(TbillingNm.Text) && !string.IsNullOrEmpty(onePassToken.Text) )
{
objNicepay.currency = "IDR";
//Populate Mandatory parameters to send
// payment type
objNicepay.PayMethod = "01";
// Total gross amount
objNicepay.amt = "100";
// Invoice Number or Referenc Number Generated by merchant
objNicepay.referenceNo = generateReference();
objNicepay.description = "Payment Invoice No. " + objNicepay.referenceNo;
// Transaction description
objNicepay.billingNm = "Donald Duck";
objNicepay.billingPhone = "021987456321";
objNicepay.billingEmail = "[email protected]";
objNicepay.billingAddr = "King of money street";
objNicepay.billingCity = "King";
objNicepay.billingState = "Money";
objNicepay.billingPostCd = "123654";
objNicepay.billingCountry = "Indonesia";
objNicepay.deliveryNm = "Donald Duck";
objNicepay.deliveryPhone = "021987456321";
objNicepay.deliveryEmail = "[email protected]";
objNicepay.deliveryAddr = "King of money street";
objNicepay.deliveryCity = "King";
objNicepay.deliveryState = "Money";
objNicepay.deliveryPostCd = "123654";
objNicepay.deliveryCountry = "Indonesia";
objNicepay.onePassToken = onePassToken.Text;
objNicepay.cardExpYymm = TcardExpYymm.Text;
objNicepay.cardCvv = TcardCvv.Text;
objResult = objNicepayClass.ChargeCard(objNicepay);
if (!string.IsNullOrEmpty(objResult.data.resultCd) & objResult.data.resultCd == "0000")
{
Tresult.InnerText = objResult.resultCd;
TtXid.InnerText = objResult.data.tXid;
TcallbackUrl.InnerText = objResult.callbackUrl;
Tdescription.InnerText = objResult.description;
TreferenceNo.InnerText = objResult.referenceNo;
TpayMethod.InnerText = objResult.payMethod;
//YYMMDD
TtransDT.InnerText = objResult.transDt;
//HH24MISS
TTranstm.InnerText = objResult.transTm;
TresultMsg.InnerText = objResult.resultMsg;
wrapper.Visible = false;
Myresult.Visible = true;
}
else if (objResult.resultCd != null)
{
EresultCd.InnerText = objResult.resultCd;
EresultMsg.InnerText = objResult.resultMsg;
wrapper.Visible = false;
ErrData.Visible = true;
}
else
{
//Timeout, you can redirect back to checkout page Or echo error message.
//In this sample, we echo error message
ERR_.InnerText = "Connection Timeout. Please Try again.";
wrapper.Visible = false;
ERR.Visible = true;
}
}
}
<?php
// Include Config File
include_once "lib/NicepayLib.php";
$nicepay = new NicepayLib();
function generateReference()
{
$micro_date = microtime();
$date_array = explode(" ",$micro_date);
$date = date("YmdHis",$date_array[1]);
$date_array[0] = preg_replace('/[^\p{L}\p{N}\s]/u', '', $date_array[0]);
return "Ref".$date.$date_array[0].rand(100,999);
}
/*
* ____________________________________________________________
*
* Credit Card Payment Method
* ____________________________________________________________
*/
if(isset($_POST['payMethod'])
&& $_POST['payMethod'] == '01'
&& isset($_POST['billingNm'])
&& $_POST['billingNm']
&& isset($_POST['onePassToken'])
&& $_POST['onePassToken']
)
{
$billingNm = $_POST['billingNm'];
$onePassToken = $_POST['onePassToken'];
$cardExpYymm = $_POST['cardExpYymm'];
$cardCvv = $_POST['cardCvv'];
$referenceNo = $_POST['referenceNo'];
// Populate Mandatory parameters to send
$nicepay->set('payMethod', '01');
$nicepay->set('currency', 'IDR');
$nicepay->set('amt', 10000); // Total gross amount
$nicepay->set('referenceNo', $referenceNo); // Invoice Number or Reference Number Generated by merchant
$nicepay->set('description', 'Payment of Invoice No '.$nicepay->get('referenceNo')); // Transaction description
$nicepay->set('billingNm', 'John Doe'); // Customer name
$nicepay->set('billingPhone', '02112345678'); // Customer phone number
$nicepay->set('billingEmail', '[email protected]'); //
$nicepay->set('billingAddr', 'Jl. Jend. Sudirman No. 28');
$nicepay->set('billingCity', 'Jakarta Pusat');
$nicepay->set('billingState', 'DKI Jakarta');
$nicepay->set('billingPostCd', '10210');
$nicepay->set('billingCountry', 'Indonesia');
$nicepay->set('deliveryNm', 'John Doe'); // Delivery name
$nicepay->set('deliveryPhone', '02112345678');
$nicepay->set('deliveryEmail', '[email protected]');
$nicepay->set('deliveryAddr', 'Jl. Jend. Sudirman No. 28');
$nicepay->set('deliveryCity', 'Jakarta Pusat');
$nicepay->set('deliveryState', 'DKI Jakarta');
$nicepay->set('deliveryPostCd', '10210');
$nicepay->set('deliveryCountry', 'Indonesia');
$nicepay->set('onePassToken', $onePassToken);
$nicepay->set('cardExpYymm', $cardExpYymm);
$nicepay->set('cardCvv', $cardCvv);
// Send Data
$response = $nicepay->chargeCard();
// Response from NICEPAY
if (isset($response->resultCd) && $response->resultCd == "0000") {
echo "<pre>";
echo "tXid : $response->tXid\n";
echo "callbackUrl : $response->callbackUrl\n";
echo "description : $response->description\n";
echo "payment date : $response->transDt\n"; // YYYYMMDD
echo "payment time : $response->transTm\n"; // HH24MISS
echo "result code : $response->resultCd\n";
echo "result message : $response->resultMsg\n";
echo "reference no : $response->referenceNo\n";
echo "payment method : $response->payMethod\n";
echo "recurring token : $response->recurringToken";
echo "</pre>";
} elseif(isset($response->resultCd)) {
// API data not correct or error happened in bank system, you can redirect back to checkout page or echo error message.
// In this sample, we echo error message
echo "<pre>";
echo "Oops! Something happened, please notice your system administrator.\n\n";
echo "result code : $response->resultCd\n";
echo "result message : $response->resultMsg\n";
echo "</pre>";
} else {
// Timeout, you can redirect back to checkout page or echo error message.
// In this sample, we echo error message
echo "<pre>Connection Timeout. Please Try again.</pre>";
}
}
?>
import json
from nicepay import NICEPay
#Set MID & Merchant Key
NICEPay.iMid = "BMRITEST01" #Set Merchant ID
NICEPay.merchantKey = "33F49GnCMS1mFYlGXisbUDzVf2ATWCl9k3R++d5hDd3Frmuos/XLx8XhXpe+LDYAbpGKZYSwtlyyLOtS/8aD7A==" #Set Merchant Key
#Set Mandatory Value
NICEPay.payMethod = "01" #Set Payment Method
NICEPay.amt = "100" #Total Gross Amount
NICEPay.referenceNo = "NiceTest00003" #Invoice Number By Merchant
NICEPay.goodsNm = NICEPay.referenceNo #Goods Name
NICEPay.billingNm = "John Doe"
NICEPay.billingPhone = "02112345678"
NICEPay.billingEmail = "[email protected]`m"
NICEPay.billingAddr = "Jl. Jend. Sudirman No. 28"
NICEPay.billingCity = "Jakarta Pusat"
NICEPay.billingState = "DKI Jakarta"
NICEPay.billingPostCd = "10210"
NICEPay.billingCountry = "Indonesia"
NICEPay.callBackUrl = "http://example.com/callback"
NICEPay.dbProcessUrl = "https://example.com/notification-handler.php"
NICEPay.description = "Payment Of Ref No." + NICEPay.referenceNo
NICEPay.merchantToken = NICEPay.getMerchantToken()
NICEPay.userIP = NICEPay.getUserIp()
NICEPay.cartData = "{}" #Json Array Value
NICEPay.instmntMon = "1"
NICEPay.instmntType = "1"
NICEPay.cardCvv = "321"
NICEPay.ccOnePassToken = "e76b6b65dbd4a854699ee8628f0cf62916a16216bb133902d75159593fc1ed08"
# // Payment Request
resultData = NICEPay.apiRequest()
result = json.loads(resultData)
#Payment Response String Format
try:
result['resultCd']
except NameError:
print "Connection Timeout. Please Try Again!"
else:
if result['resultCd'] == '0000':
print("resultCd : " + result['resultCd'])
print("resultMsg : " + result['resultMsg'])
print("tXid : " + result['tXid'])
print("referenceNo : " + result['referenceNo'])
print("payMethod : " + result['payMethod'])
print("amount : " + result['amount'])
print("transDt : " + result['transDt'])
print("transTm : " + result['transTm'])
print("description : " + result['description'])
print("callbackUrl : " + result['callbackUrl'])
print("authNo : " + result['authNo'])
else:
print("resultCd : " + result['resultCd'])
print("resultMsg : " + result['resultMsg'])
Parameter | Type | Size | Description | Sample Data |
---|---|---|---|---|
iMid Required | AN | 10 | Merchant ID | IONPAYTEST |
payMethod Required | N | 2 | Pay Method | 01 |
currency Required | A | 3 | Currency | IDR |
amt Required | N | 12 | Goods Amount | 1000 |
referenceNo Required | ANS | 40 | Merchant Order No | MerchantReferenceNumber001 |
goodsNm Required | AN | 100 | Goods Name | Merchant Goods 1 |
billingNm Required | A | 30 | Billing Name | Buyer Name |
billingPhone Required | N | 15 | Billing Phone Number | 02112345678 |
billingEmail Required | ANS | 40 | Billing Email | [email protected] |
billingCity Required | A | 50 | Billing City | Jakarta |
billingState Required | A | 50 | Billing State | Jakarta |
billingPostCd Required | N | 10 | Billing Post Number | 12345 |
billingCountry Required | A | 10 | Billing Country | Indonesia |
callBackUrl Required | ANS | 255 | Payment Result Forward Url (On Browser) | www.merchant.com/callback |
dbProcessUrl Required | ANS | 255 | Payment Result Receive Url (Server Side) | www.merchant.com/dbprocess |
description Required | AN | 100 | Description | Description |
merchantToken Required | AN | 255 | Merchant Token | 6cfccfc0046773c1b589d8e98... |
userIP Required | ANS | 15 | User IP | 127.0.0.1 |
cartData Required | ANS | 4000 | Cart Data (Json Format) | {} |
instmntType Required | N | 2 | Installment Type | 1 |
instmntMon Required | N | 2 | Installment Month | 1 |
cardCvv | N | 3 | Card CVV | 123 |
onePassToken Required | AN | One time use Token | 9338d54573688ae18e175240b0257 de48d89c6ef1c9c7b5c094dc4beed9e435f | |
recurrOpt Required For Recurring CC | N | 2 | 0 Automatic Cancel1 Do not cancel2 Do not make token | 1 |
billingAddr | AN | Billing Address | Billing Address | |
deliveryNm | A | 30 | Delivery Name | Buyer Name |
deliveryPhone | N | 15 | Delivery Phone | 02112345678 |
deliveryAddr | AN | 100 | Delivery Address | Billing Address |
deliveryEmail | AN | Delivery Email | [email protected] | |
deliveryCity | A | 50 | Delivery City | Jakarta |
deliveryState | A | 50 | Delivery State | Jakarta |
deliveryPostCd | N | 10 | Delivery Post Number | 12345 |
deliveryCountry | A | 10 | Delivery Country | Indonesia |
vat | N | 12 | Vat | 0 |
fee | N | 12 | Service Tax | 0 |
notaxAmt | N | 12 | Tax Free Amount | 0 |
reqDt | N | 8 | Request Date (YYYYMMDD) | 20160301 |
reqTm | N | 6 | Request Time (HH24MISS) | 135959 |
reqDomain | ANS | 100 | Request Domain | merchant.com |
reqServerIP | ANS | 15 | Request Server IP | 127.0.0.1 |
reqClientVer | ANS | 50 | Request Client Version | 1.0 |
userSessionID | AN | 100 | User Session ID | userSessionID |
userAgent | ANS | 100 | User Agent Information | Mozilla |
userLanguage | ANS | User Language | en-US |
Response Parameter - CC Registration
Sample JSON Response
{
"resultCd": "0000",
"amount": "1000",
"authNo": "005911",
"referenceNo": "Ref20170526111736065300000988",
"transTm": "112041",
"recurringToken": "",
"tXid": "BMRITEST0101201705261120395118",
"description": "Payment Of Ref No.Ref20170526111736065300000988",
"cardNo": "123456******3456",
"resultMsg": "SUCCESS",
"payMethod": "01",
"callbackUrl": "http://www.merchant.com/ExampleCallback",
"transDt": "20170526",
"issuBankCd": "CENA",
"issuBankNm": "PT Bank Central Asia, TBK",
"acquBankCd": "BMRI",
"acquBankNm": "PT Bank Mandiri (Persero)"
}
Parameter | Type | Size | Description |
---|---|---|---|
resultCd | N | 4 | Result Code |
resultMsg | AN | 255 | Result Message |
tXid | AN | 30 | Transaction ID |
referenceNo | ANS | 40 | Merchant Order No |
payMethod | N | 2 | Payment Method |
amount | N | 12 | Transaction Amount |
currency | AN | 3 | Currency |
goodsNm | N | 100 | Goods Name |
billingNm | N | 30 | Buyer Name |
transDt | N | 8 | Transaction date (YYYYMMDD) |
transTm | N | 6 | Transaction time (HH24MISS) |
description | AN | 100 | Transaction description |
callbackUrl | ANS | 100 | Callback Url |
authNo | N | 10 | Authorization Number |
issuBankCd | A | 4 | Issue Bank Code |
issuBankNm | A | Issue Bank Name. | |
acquBankCd | A | 4 | Acquire Bank Code |
acquBankNm | A | Acquire Bank Name. | |
cardNo | ANS | 20 | Card Number (Masked) |
instmntMon | N | 2 | Installment month |
instmntType | N | 2 | Installment type |
recurringToken | AN | 64 | Token for Recurring Payment |
preauthToken | AN | 64 | Token for Preauth Payment |
ccTransType | N | 2 | Credit Card Transaction Type |
vat | N | 12 | Vat number |
fee | N | 12 | Service fee |
notaxAmt | N | 12 | Tax free amount |
Recurring Token
When the merchant signs contract as a recurring merchant, NICEPay give a recurringToken
to the Payment API response.
(NICEPay calls this as recurring token making
) The Merchant can use this recurringToken to next Payment API request without cardNo, cardExpYymm (but cardCvv is mandatory)
API url | /nicepay/api/recurringToken.do |
Request Method application/x-www-form-urlencoded | POST |
Deskripsi | Request Credit Card One Time Use Transaction Token recurringToken.do is almost same onePassToken.do The difference is whether using card info or using recurringToknen |
Merchant Token | SHA256 (Merchant ID + Reference Number + Amount + Merchant Key) |
Request Parameter For Token
Parameter | Type | Size | Description | Remark |
---|---|---|---|---|
amt | N | 12 | Amount | 10000 |
referenceNo | AN | 40 | Merchant Order No | 20220623095906 |
merchantToken | AN | 255 | Payment Amount | 141fd2368aa80ea0e600b1b4d7a42c1e731e74a27a03521e8e28150cc00bc05b |
iMid | AN | 10 | Merchant ID | BMRITEST01 |
recurringToken | AN | 100 | RecurringToken | d4ef98b26f917a697691807cf737251cc15ef570a01457d15211a4f06e38ae64 |
instmntType | AN | 2 | Installment Type | 1.Customer charge 2.Merchant Charge |
instmntMon | N | 2 | Installment month | 1 |
Response Parameter For Token
Parameter | Type | Size | Description | Remark |
---|---|---|---|---|
resultCd | N | 4 | RESULT CODE | 0000 |
resultMsg | AN | 255 | RESULT MESSAGE | SUCCESS |
cardToken | AN | 64 | one time use transaction token | c954f03ef83a363f94fa26bef6ec4d08fa7693590a735386fcce6e2ef1caae8a |
paymentType | AN | 1 | CC Authorization type | 1. 3DS 2. KeyIn |
Virtual Account
NICEPay offers Virtual Account as a Payment Method. This method allows customer to make payment via ATM, SMS Banking, Internet Banking, or Mobile Banking. Real time Notification will be sent when customer has completed the payment.
Supported Bank by NICEPay:
- Bank Mandiri
- Bank International Indonesia Maybank
- Bank Permata
- Bank Permata Syariah
- Bank Central Asia (BCA)
- Bank Negara Indonesia 46 (BNI)
- Bank KEB Hana Indonesia
- Bank Rakyat Indonesia (BRI)
- Bank CIMB Niaga
- Bank DANAMON
We support Virtual Account payments for other Banks via ATM BERSAMA, ALTO, LINK, and PRIMA.
Transaction Flow:
- Merchant Request VA Registration to NICEPay.
- Merchant Display VA Details and How-To Pay Details.
- Customer Make Payment with Preferred Method (m-Banking, Atm, etc).
- NICEPay Send Notification to Merchant.
- Merchant Handle Notification.
VA Registration
API Specifications - VA Registration
API url | /nicepay/api/onePass.do |
Request Method application/x-www-form-urlencoded | POST |
Description | Request vacctNo for Virtual Account Payment |
Merchant Token | SHA256(iMid +referenceNo +amt +merchantKey ) |
Payment Methods | 02 Virtual Account |
Request Parameter - VA Registration
Sample API Request
// Payment Mandatory Field
nicePay.setPayMethod("02");
nicePay.setCurrency("IDR");
nicePay.setAmt("1000");
nicePay.setReferenceNo("MerchantReferenceNumber001");
nicePay.setBankCd("BMRI");
nicePay.setGoodsNm("Merchant Goods 1");
nicePay.setBillingNm("John Doe");
nicePay.setBillingEmail("[email protected]");
nicePay.setBillingPhone("08123456789");
nicePay.setBillingAddr("Billing Address");
nicePay.setBillingCity("Jakarta");
nicePay.setBillingState("Jakarta");
nicePay.setBillingPostCd("12345");
nicePay.setBillingCountry("Indonesia");
nicePay.setDeliveryNm("John Doe Delivery");
nicePay.setDeliveryPhone("081234567890");
nicePay.setDeliveryAddr("Billing Address ");
nicePay.setDeliveryCity("Jakarta ");
nicePay.setDeliveryState("Jakarta ");
nicePay.setDeliveryPostCd("12345");
nicePay.setDeliveryCountry("Indonesia ");
nicePay.setCallBackUrl(merchantDomain + "callback");
nicePay.setDbProcessUrl(merchantDomain + "dbprocess");
nicePay.setVat("0");
nicePay.setFee("0");
nicePay.setNotaxAmt("0");
nicePay.setDescription("Description");
nicePay.setUserIP("127.0.0.1");
nicePay.setMerchantToken(nicePay.makeToken(nicePay.getAmt(), nicePay.getReferenceNo()));
nicePay.setCartData("{}");
// Payment Optional Field
nicePay.setReqDt("20160301");
nicePay.setReqTm("135959");
nicePay.setReqDomain("merchant.com");
nicePay.setReqServerIP("127.0.0.1");
nicePay.setReqClientVer("1.0");
nicePay.setUserSessionID("userSessionID");
nicePay.setUserAgent("Mozilla");
nicePay.setUserLanguage("en-US");
nicePay.setMerFixAcctId("9999000000000001");
nicePay.setPaymentExpiryDt("20160303");
nicePay.setPaymentExpiryTm("135959");
nicePay.setVacctValidDt("20160303");
nicePay.setVacctValidTm("135959");
// Payment Request
nicePay.payment();
// Payment Response
System.out.println("Response String : " + nicePay.getResponseString()); // JSON in String format
String resultCd = nicePay.Get("resultCd");
String resultMsg = nicePay.Get("resultMsg");
String tXid= nicePay.Get("tXid ");
String referenceNo= nicePay.Get("referenceNo");
String bankVacctNo= nicePay.Get("bankVacctNo");
String payMethod= nicePay.Get("payMethod");
String amount= nicePay.Get("amount");
String transDt = nicePay.Get("transDt ");
String transTm = nicePay.Get("transTm ");
String description= nicePay.Get("description");
String callbackUrl= nicePay.Get("callbackUrl");
protected void CheckOut(object sender, EventArgs e)
{
if (!string.IsNullOrEmpty(BankCd.SelectedValue))
{
objNicepay.currency = "IDR";
objNicepay.BankCd = BankCd.SelectedValue;
objNicepay.DateNow = DateTime.Now.ToString("yyyymmdd");
// Set VA expiry date +1 day (optional)
objNicepay.vaExpDate = DateTime.Now.AddDays(1).ToString("yyyymmdd");
//Populate Mandatory parameters to send
// payment type Bank
objNicepay.PayMethod = "02";
// Total gross amount
objNicepay.amt = "100";
// Invoice Number or Referenc Number Generated by merchant
objNicepay.referenceNo = generateReference();
objNicepay.description = "Payment Invoice No. " + objNicepay.referenceNo;
// Transaction description
objNicepay.billingNm = "Donald Duck";
objNicepay.billingPhone = "021987456321";
objNicepay.billingEmail = "[email protected]";
objNicepay.billingAddr = "King of money street";
objNicepay.billingCity = "King";
objNicepay.billingState = "Money";
objNicepay.billingPostCd = "123654";
objNicepay.billingCountry = "Indonesia";
objNicepay.deliveryNm = "Donald Duck";
objNicepay.deliveryPhone = "021987456321";
objNicepay.deliveryEmail = "[email protected]";
objNicepay.deliveryAddr = "King of money street";
objNicepay.deliveryCity = "King";
objNicepay.deliveryState = "Money";
objNicepay.deliveryPostCd = "123654";
objNicepay.deliveryCountry = "Indonesia";
objNicepay.vacctValidDt = objNicepay.vaExpDate;
objNicepay.vacctValidTm = DateTime.Now.ToString("hhmmss");
objResult = objNicepayClass.CreateVA(objNicepay);
if (objResult.resultCd == "0000")
{
Tresult.InnerText = objResult.resultCd;
TtXid.InnerText = objResult.tXid;
TcallbackUrl.InnerText = objResult.callbackUrl;
Tdescription.InnerText = objResult.description;
TreferenceNo.InnerText = objResult.referenceNo;
TpayMethod.InnerText = objResult.payMethod;
//YYMMDD
TtransDT.InnerText = objResult.transDt;
//HH24MISS
TTranstm.InnerText = objResult.transTm;
tbankVacctNo.InnerText = objResult.bankVacctNo;
TresultMsg.InnerText = objResult.resultMsg;
wrapper.Visible = false;
Myresult.Visible = true;
}
else if (objResult.resultCd != null)
{
//API data Not correct, you can redirect back to checkout page Or echo error message.
//In this sample, we echo error message
EresultCd.InnerText = objResult.resultCd;
EresultMsg.InnerText = objResult.resultMsg;
wrapper.Visible = false;
ErrData.Visible = true;
}
else
{
//Timeout, you can redirect back to checkout page Or echo error message.
//In this sample, we echo error message
ERR_.InnerText = "Connection Timeout. Please Try again.";
wrapper.Visible = false;
ERR.Visible = true;
}
}
}
<?php
// Include Config File
include_once "lib/NicepayLib.php";
$nicepay = new NicepayLib();
function generateReference()
{
$micro_date = microtime();
$date_array = explode(" ",$micro_date);
$date = date("YmdHis",$date_array[1]);
$date_array[0] = preg_replace('/[^\p{L}\p{N}\s]/u', '', $date_array[0]);
return "Ref".$date.$date_array[0].rand(100,999);
}
if(isset($_POST['payMethod']) && $_POST['payMethod'] == '02'
&& isset($_POST['bankCd']) && $_POST['bankCd'])
{
$billingNm = $_POST['billingNm'];
$referenceNo = $_POST['referenceNo'];
$bankCd = $_POST['bankCd'];
// Populate Mandatory parameters to send
$nicepay->set('payMethod', '02');
$nicepay->set('currency', 'IDR');
$nicepay->set('amt', 10000); // Total gross amount
$nicepay->set('referenceNo', $referenceNo); // Invoice Number or Reference Number Generated by merchant
$nicepay->set('description', 'Payment of Invoice No '.$nicepay->get('referenceNo')); // Transaction description
$nicepay->set('bankCd', $bankCd);
$nicepay->set('billingNm', 'John Doe'); // Customer name
$nicepay->set('billingPhone', '02112345678'); // Customer phone number
$nicepay->set('billingEmail', '[email protected]'); //
$nicepay->set('billingAddr', 'Jl. Jend. Sudirman No. 28');
$nicepay->set('billingCity', 'Jakarta Pusat');
$nicepay->set('billingState', 'DKI Jakarta');
$nicepay->set('billingPostCd', '10210');
$nicepay->set('billingCountry', 'Indonesia');
$nicepay->set('deliveryNm', 'John Doe'); // Delivery name
$nicepay->set('deliveryPhone', '02112345678');
$nicepay->set('deliveryEmail', '[email protected]');
$nicepay->set('deliveryAddr', 'Jl. Jend. Sudirman No. 28');
$nicepay->set('deliveryCity', 'Jakarta Pusat');
$nicepay->set('deliveryState', 'DKI Jakarta');
$nicepay->set('deliveryPostCd', '10210');
$nicepay->set('deliveryCountry', 'Indonesia');
// Send Data
$response = $nicepay->requestVA();
// Response from NICEPAY
if (isset($response->resultCd) && $response->resultCd == "0000") {
echo "<pre>";
echo "tXid : $response->tXid\n";
echo "callbackUrl : $response->callbackUrl\n";
echo "description : $response->description\n";
echo "payment date : $response->transDt\n"; // YYYYMMDD
echo "payment time : $response->transTm\n"; // HH24MISS
echo "virtual account : $response->bankVacctNo\n";
echo "result code : $response->resultCd\n";
echo "result message : $response->resultMsg\n";
echo "reference no : $response->referenceNo\n";
echo "payment method : $response->payMethod\n";
echo "</pre>";
} elseif(isset($response->resultCd)) {
// API data not correct or error happened in bank system, you can redirect back to checkout page or echo error message.
// In this sample, we echo error message
echo "<pre>";
echo "Oops! Something happened, please notice your system administrator.\n\n";
echo "result code : $response->resultCd\n";
echo "result message : $response->resultMsg\n";
echo "</pre>";
} else {
// Timeout, you can redirect back to checkout page or echo error message.
// In this sample, we echo error message
echo "<pre>Connection Timeout. Please Try again.</pre>";
}
}
?>
import json
from nicepay import NICEPay
#Set MID & Merchant Key
NICEPay.iMid = "BMRITEST01" #Set Merchant ID
NICEPay.merchantKey = "33F49GnCMS1mFYlGXisbUDzVf2ATWCl9k3R++d5hDd3Frmuos/XLx8XhXpe+LDYAbpGKZYSwtlyyLOtS/8aD7A==" #Set Merchant Key
#Set Mandatory Value
NICEPay.payMethod = "02" #Set Payment Method
NICEPay.amt = "1000" #Total Gross Amount
NICEPay.referenceNo = "NiceTest00003" #Invoice Number By Merchant
NICEPay.goodsNm = NICEPay.referenceNo #Goods Name
NICEPay.billingNm = "John Doe"
NICEPay.billingPhone = "02112345678"
NICEPay.billingEmail = "[email protected]`m"
NICEPay.billingAddr = "Jl. Jend. Sudirman No. 28"
NICEPay.billingCity = "Jakarta Pusat"
NICEPay.billingState = "DKI Jakarta"
NICEPay.billingPostCd = "10210"
NICEPay.billingCountry = "Indonesia"
NICEPay.callBackUrl = "http://example.com/callback"
NICEPay.dbProcessUrl = "https://example.com/notification-handler.php"
NICEPay.description = "Payment Of Ref No." + NICEPay.referenceNo
NICEPay.merchantToken = NICEPay.getMerchantToken()
NICEPay.userIP = NICEPay.getUserIp()
NICEPay.cartData = "{}" #Json Array Value
NICEPay.bankCd = "BMRI"
NICEPay.vacctValidDt = "20160303"
NICEPay.vacctValidTm = "135959"
# // Payment Request
resultData = NICEPay.apiRequest()
result = json.loads(resultData)
#Payment Response String Format
try:
result['resultCd']
except NameError:
print "Connection Timeout. Please Try Again!"
else:
if result['resultCd'] == '0000':
print("resultCd : " + result['resultCd'])
print("resultMsg : " + result['resultMsg'])
print("tXid : " + result['tXid'])
print("referenceNo : " + result['referenceNo'])
print("payMethod : " + result['payMethod'])
print("amount : " + result['amount'])
print("transDt : " + result['transDt'])
print("transTm : " + result['transTm'])
print("description : " + result['description'])
print("callbackUrl : " + result['callbackUrl'])
print("bankVacctNo : " + result['bankVacctNo'])
else:
print("resultCd : " + result['resultCd'])
print("resultMsg : " + result['resultMsg'])
Parameter | Type | Size | Description | Example Value |
---|---|---|---|---|
iMid Required | AN | 10 | Merchant ID | IONPAYTEST |
payMethod Required | N | 2 | Pay Method | 02 |
currency Required | A | 3 | Currency | IDR |
amt Required | N | 12 | Goods Amount | 15000 |
referenceNo Required | ANS | 40 | Merchant Order No | ordNo123124 |
goodsNm Required | AN | 100 | Goods Name | Test Goods |
billingNm Required | A | 30 | Billing Name | John Doe |
billingPhone Required | N | 15 | Billing Phone Number | 081249195 |
billingEmail Required | ANS | 40 | Billing Email | [email protected] |
billingCity Required | A | 50 | Billing City | Jakarta |
billingState Required | A | 50 | Billing State | DKI Jakarta |
billingPostCd Required | N | 10 | Billing Post Number | 14350 |
billingCountry Required | A | 10 | Billing Country | Indonesia |
callBackUrl Required | ANS | 255 | Payment Result Url | https://merchant.com/callBackUrl |
dbProcessUrl Required | ANS | 255 | Payment Notif Url | https://merchant.com/dbProcessUrl |
description Required | AN | 100 | Description | test item |
merchantToken Required | AN | 255 | Merchant Token | 6cfccfc0046773c1b589d8e 98f8b596c284f3c70a4ecf8 6eba14c18944b74bcd |
userIP Required | ANS | 15 | User IP (Customer) | 127.0.0.1 |
cartData Required | JSON OBJECT | 4000 | Cart Data (Json Format) | {} |
bankCd Required | A | 4 | Bank Code | CENA |
billingAddr | AN | AN | Billing Address | Jln Cendrawasih |
deliveryNm | A | 30 | Delivery Name | JohnDoe |
deliveryPhone | N | 15 | Delivery Phone | 08125912342 |
deliveryAddr | AN | 100 | Delivery Address | Jln Merak |
deliveryEmail | ANS | Delivery Email | [email protected] | [email protected] |
deliveryCity | A | 50 | Delivery City | Jakarta |
deliveryState | A | 50 | Delivery State | DKI Jakarta |
deliveryPostCd | N | 10 | Delivery Post Code | 14350 |
deliveryCountry | A | 10 | Delivery Country | Indonesia |
vat | N | 12 | Vat | 0 |
fee | N | 12 | Service Tax | 0 |
notaxAmt | N | 12 | Tax Free Amount | 0 |
reqDt | N | 8 | Request Date (YYYYMMDD) | 20160301 |
reqTm | N | 6 | Request Time (HH24MISS) | 135959 |
reqDomain | ANS | 100 | Request Domain | merchant.com |
reqServerIP | ANS | 15 | Request Server IP | 127.0.0.1 |
reqClientVer | ANS | 50 | Request Client Version | 1.0 |
userSessionID | AN | 100 | User Session ID | userSessionID |
userAgent | ANS | 100 | User Agent | Mozilla |
userLanguage | ANS | User Language | en-US | |
vacctValidDt | N | 8 | VA expiry date (YYYYMMDD) | 20200303 |
vacctValidTm | N | 6 | VA expiry time (HH24MISS) | 135959 |
Response Parameter - VA Registration
Sample JSON Response
{
"resultCd": "0000",
"amount": "10000",
"goodsNm": "Test Transaction Nicepay",
"referenceNo": "99997",
"transTm": "104721",
"tXid": "TESTIDTEST02201803011047210789",
"description": "Payment of referenceNo 99997,This Description",
"bankVacctNo": "1047210789",
"resultMsg": "SUCCESS",
"billingNm": "Thomas Alfa Edison",
"vacctValidDt": "20180308",
"payMethod": "02",
"bankCd": "BMRI",
"callbackUrl": "http://www.merchant.com/callbackUrl",
"currency": "IDR",
"transDt": "20180301",
"vacctValidTm": "235959"
}
Parameter | Type | Size | Description |
---|---|---|---|
resultCd | N | 4 | Result Code |
resultMsg | AN | 255 | Result Message |
tXid | AN | 30 | Transaction ID |
referenceNo | ANS | 40 | Merchant Order No |
payMethod | N | 2 | Payment Method |
amount | N | 12 | Transaction Amount |
currency | A | 3 | Currency |
goodsNm | N | 100 | Goods Name |
billingNm | N | 30 | Buyer Name |
transDt | N | 8 | Transaction date (YYYYMMDD) |
transTm | N | 6 | Transaction time (HH24MISS) |
description | ANS | 100 | Transaction description |
callbackUrl | ANS | 100 | Callback Url |
bankCd | A | 4 | Bank Code |
bankVacctNo | N | 20 | Bank Virtual Account Number |
vacctValidDt | N | 8 | VA expiry date |
vacctValidTm | N | 6 | VA expiry time |
Convenience Store
NICEPay offers Convenience Store (CVS) as Payment Method. This method allows customer to make payment at their nearest Convenience Stores such as Alfamart and Indomaret. Real time Notification will be sent when customer has completed the payment.
Supported CVS by NICEPay:
- Alfamart
- Indomaret
- Lawson
- Alfamidi
- Dan+Dan Store
Transaction Flow:
- Merchant Request CVS Registration to NICEPay.
- Merchant Display CVS Details and How-To Pay Details.
- Customer pay through the nearest Mitra Store.
- NICEPay Send Notification to Merchant.
- Merchant Handle Notification.
CVS Registration
API Specifications - CVS Registration
API url | /nicepay/api/onePass.do |
Request Method application/x-www-form-urlencoded | POST |
Description | Request payNo for CVS Payment |
Merchant Token | SHA256(iMid +referenceNo +amt +merchantKey ) |
Payment Methods | 03 Convenience Store |
Request Parameter - CVS Registration
Sample Request
// Payment Mandatory Field
nicePay.setPayMethod("03");
nicePay.setCurrency("IDR");
nicePay.setAmt("1000");
nicePay.setReferenceNo("MerchantReferenceNumber001");
nicePay.setMitraCd("ALMA");
nicePay.setGoodsNm("Merchant Goods 1");
nicePay.setBillingNm("John Doe");
nicePay.setBillingEmail("[email protected]");
nicePay.setBillingPhone("081234567890");
nicePay.setBillingAddr("Billing Address");
nicePay.setBillingCity("Jakarta");
nicePay.setBillingState("Jakarta");
nicePay.setBillingPostCd("12345");
nicePay.setBillingCountry("Indonesia");
nicePay.setDeliveryNm("John Doe");
nicePay.setDeliveryPhone("081234567890");
nicePay.setDeliveryAddr("Billing Address ");
nicePay.setDeliveryCity("Jakarta ");
nicePay.setDeliveryState("Jakarta ");
nicePay.setDeliveryPostCd("12345");
nicePay.setDeliveryCountry("Indonesia ");
nicePay.setCallBackUrl(merchantDomain + "callback");
nicePay.setDbProcessUrl(merchantDomain + "dbprocess");
nicePay.setVat("0");
nicePay.setFee("0");
nicePay.setNotaxAmt("0");
nicePay.setDescription("Description");
nicePay.setUserIP("127.0.0.1");
nicePay.setMerchantToken(nicePay.makeToken(nicePay.getAmt(), nicePay.getReferenceNo()));
nicePay.setCartData("{}");
// Payment Optional Field
nicePay.setReqDt("20160301");
nicePay.setReqTm("135959");
nicePay.setReqDomain("merchant.com");
nicePay.setReqServerIP("127.0.0.1");
nicePay.setReqClientVer("1.0");
nicePay.setUserSessionID("userSessionID");
nicePay.setUserAgent("Mozilla");
nicePay.setUserLanguage("en-US");
nicePay.setMerFixAcctId("9999000000000001");
nicePay.setPaymentExpiryDt("20160303");
nicePay.setPaymentExpiryTm("135959");
nicePay.setPayValidDt("20160303");
nicePay.setPayValidTm("135959");
// Payment Request
nicePay.payment();
// Payment Response
System.out.println("Response String : " + nicePay.getResponseString()); // JSON in String format
String resultCd = nicePay.Get("resultCd");
String resultMsg = nicePay.Get("resultMsg");
String tXid= nicePay.Get("tXid ");
String referenceNo= nicePay.Get("referenceNo");
String payNo= nicePay.Get("payNo");
String payMethod= nicePay.Get("payMethod");
String amount= nicePay.Get("amount");
String transDt = nicePay.Get("transDt ");
String transTm = nicePay.Get("transTm ");
String description= nicePay.Get("description");
String callbackUrl= nicePay.Get("callbackUrl");
String mitraCd= nicePay.Get("mitraCd");
protected void CheckOut(object sender, EventArgs e)
{
if (!string.IsNullOrEmpty(BankCd.SelectedValue))
{
objNicepay.currency = "IDR";
objNicepay.DateNow = DateTime.Now.ToString("yyyymmdd");
// Set VA expiry date +1 day (optional)
objNicepay.vaExpDate = DateTime.Now.AddDays(1).ToString("yyyymmdd");
//Populate Mandatory parameters to send
// payment type Bank
objNicepay.PayMethod = "03";
// Total gross amount
objNicepay.amt = "10000";
// Invoice Number or Referenc Number Generated by merchant
objNicepay.referenceNo = generateReference();
objNicepay.description = "Payment Invoice No. " + objNicepay.referenceNo;
// Transaction description
objNicepay.billingNm = "Donald Duck";
objNicepay.billingPhone = "021987456321";
objNicepay.billingEmail = "[email protected]";
objNicepay.billingAddr = "King of money street";
objNicepay.billingCity = "King";
objNicepay.billingState = "Money";
objNicepay.billingPostCd = "123654";
objNicepay.billingCountry = "Indonesia";
objNicepay.deliveryNm = "Donald Duck";
objNicepay.deliveryPhone = "021987456321";
objNicepay.deliveryEmail = "[email protected]";
objNicepay.deliveryAddr = "King of money street";
objNicepay.deliveryCity = "King";
objNicepay.deliveryState = "Money";
objNicepay.deliveryPostCd = "123654";
objNicepay.deliveryCountry = "Indonesia";
objNicepay.MitraCd = "ALMA";
objNicepay.PayValidDt = "20170404";
objNicepay.PayValidTm = "131300";
objResult = objNicepayClass.CreateCVS(objNicepay);
if (objResult.resultCd == "0000")
{
Tresult.InnerText = objResult.resultCd;
TtXid.InnerText = objResult.tXid;
TcallbackUrl.InnerText = objResult.callbackUrl;
Tdescription.InnerText = objResult.description;
TreferenceNo.InnerText = objResult.referenceNo;
TpayMethod.InnerText = objResult.payMethod;
//YYMMDD
TtransDT.InnerText = objResult.transDt;
//HH24MISS
TTranstm.InnerText = objResult.transTm;
payNo.InnerText = objResult.payNo;
TresultMsg.InnerText = objResult.resultMsg;
mitraCd.InnerText = objResult.mitraCd;
amount.InnerText = objResult.amount;
wrapper.Visible = false;
Myresult.Visible = true;
}
else if (objResult.resultCd != null)
{
//API data Not correct, you can redirect back to checkout page Or echo error message.
//In this sample, we echo error message
EresultCd.InnerText = objResult.resultCd;
EresultMsg.InnerText = objResult.resultMsg;
wrapper.Visible = false;
ErrData.Visible = true;
}
else
{
//Timeout, you can redirect back to checkout page Or echo error message.
//In this sample, we echo error message
ERR_.InnerText = "Connection Timeout. Please Try again.";
wrapper.Visible = false;
ERR.Visible = true;
}
}
}
<?php
// Include Config File
include_once "lib/NicepayLib.php";
$nicepay = new NicepayLib();
function generateReference()
{
$micro_date = microtime();
$date_array = explode(" ",$micro_date);
$date = date("YmdHis",$date_array[1]);
$date_array[0] = preg_replace('/[^\p{L}\p{N}\s]/u', '', $date_array[0]);
return "Ref".$date.$date_array[0].rand(100,999);
}
if(isset($_POST['payMethod']) && $_POST['payMethod'] == '03'
&& isset($_POST['mitraCd']) && $_POST['mitraCd'])
{
$billingNm = $_POST['billingNm'];
$referenceNo = $_POST['referenceNo'];
$mitraCd = $_POST['mitraCd'];
// Populate Mandatory parameters to send
$nicepay->set('payMethod', '03');
$nicepay->set('currency', 'IDR');
$nicepay->set('amt', 10000); // Total gross amount
$nicepay->set('referenceNo', $referenceNo); // Invoice Number or Reference Number Generated by merchant
$nicepay->set('description', 'Payment of Invoice No '.$nicepay->get('referenceNo')); // Transaction description
$nicepay->set('mitraCd', $mitraCd);
$nicepay->set('billingNm', 'John Doe'); // Customer name
$nicepay->set('billingPhone', '02112345678'); // Customer phone number
$nicepay->set('billingEmail', '[email protected]'); //
$nicepay->set('billingAddr', 'Jl. Jend. Sudirman No. 28');
$nicepay->set('billingCity', 'Jakarta Pusat');
$nicepay->set('billingState', 'DKI Jakarta');
$nicepay->set('billingPostCd', '10210');
$nicepay->set('billingCountry', 'Indonesia');
$nicepay->set('deliveryNm', 'John Doe'); // Delivery name
$nicepay->set('deliveryPhone', '02112345678');
$nicepay->set('deliveryEmail', '[email protected]');
$nicepay->set('deliveryAddr', 'Jl. Jend. Sudirman No. 28');
$nicepay->set('deliveryCity', 'Jakarta Pusat');
$nicepay->set('deliveryState', 'DKI Jakarta');
$nicepay->set('deliveryPostCd', '10210');
$nicepay->set('deliveryCountry', 'Indonesia');
// Send Data
$response = $nicepay->requestCVS();
// Response from NICEPAY
if (isset($response->resultCd) && $response->resultCd == "0000") {
echo "<pre>";
echo "tXid : $response->tXid\n";
echo "callbackUrl : $response->callbackUrl\n";
echo "description : $response->description\n";
echo "payment date : $response->transDt\n"; // YYYYMMDD
echo "payment time : $response->transTm\n"; // HH24MISS
echo "pay number : $response->payNo\n";
echo "result code : $response->resultCd\n";
echo "result message : $response->resultMsg\n";
echo "reference no : $response->referenceNo\n";
echo "payment method : $response->payMethod\n";
echo "</pre>";
} elseif(isset($response->resultCd)) {
// API data not correct or error happened in bank system, you can redirect back to checkout page or echo error message.
// In this sample, we echo error message
echo "<pre>";
echo "Oops! Something happened, please notice your system administrator.\n\n";
echo "result code : $response->resultCd\n";
echo "result message : $response->resultMsg\n";
echo "</pre>";
} else {
// Timeout, you can redirect back to checkout page or echo error message.
// In this sample, we echo error message
echo "<pre>Connection Timeout. Please Try again.</pre>";
}
}
?>
import json
from nicepay import NICEPay
#Set MID & Merchant Key
NICEPay.iMid = "BMRITEST01" #Set Merchant ID
NICEPay.merchantKey = "33F49GnCMS1mFYlGXisbUDzVf2ATWCl9k3R++d5hDd3Frmuos/XLx8XhXpe+LDYAbpGKZYSwtlyyLOtS/8aD7A==" #Set Merchant Key
#Set Mandatory Value
NICEPay.payMethod = "03" #Set Payment Method
NICEPay.amt = "1000" #Total Gross Amount
NICEPay.referenceNo = "NiceTest00003" #Invoice Number By Merchant
NICEPay.goodsNm = NICEPay.referenceNo #Goods Name
NICEPay.billingNm = "John Doe"
NICEPay.billingPhone = "02112345678"
NICEPay.billingEmail = "[email protected]`m"
NICEPay.billingAddr = "Jl. Jend. Sudirman No. 28"
NICEPay.billingCity = "Jakarta Pusat"
NICEPay.billingState = "DKI Jakarta"
NICEPay.billingPostCd = "10210"
NICEPay.billingCountry = "Indonesia"
NICEPay.callBackUrl = "http://example.com/callback"
NICEPay.dbProcessUrl = "https://example.com/notification-handler.php"
NICEPay.description = "Payment Of Ref No." + NICEPay.referenceNo
NICEPay.merchantToken = NICEPay.getMerchantToken()
NICEPay.userIP = NICEPay.getUserIp()
NICEPay.cartData = "{}" #Json Array Value
NICEPay.mitraCd = "INDO"
NICEPay.payValidDt = "20160303"
NICEPay.payValidTm = "135959"
# // Payment Request
resultData = NICEPay.apiRequest()
result = json.loads(resultData)
#Payment Response String Format
try:
result['resultCd']
except NameError:
print "Connection Timeout. Please Try Again!"
else:
if result['resultCd'] == '0000':
print("resultCd : " + result['resultCd'])
print("resultMsg : " + result['resultMsg'])
print("tXid : " + result['tXid'])
print("referenceNo : " + result['referenceNo'])
print("payMethod : " + result['payMethod'])
print("amount : " + result['amount'])
print("transDt : " + result['transDt'])
print("transTm : " + result['transTm'])
print("description : " + result['description'])
print("callbackUrl : " + result['callbackUrl'])
print("payNo : " + result['payNo'])
print("mitraCd : " + result['mitraCd'])
else:
print("resultCd : " + result['resultCd'])
print("resultMsg : " + result['resultMsg'])
Parameter | Type | Size | Description | Example Value |
---|---|---|---|---|
iMid Required | AN | 10 | Merchant ID | IONPAYTEST |
payMethod Required | N | 2 | Pay Method | 03 |
currency Required | A | 3 | Currency | IDR |
amt Required | N | 12 | Goods Amount | 15000 |
referenceNo Required | ANS | 40 | Merchant Order No | ordNo123124 |
goodsNm Required | AN | 100 | Goods Name | Test Goods |
billingNm Required | A | 30 | Billing Name | John Doe |
billingPhone Required | N | 15 | Billing Phone Number | 081249195 |
billingEmail Required | ANS | 40 | Billing Email | [email protected] |
billingCity Required | A | 50 | Billing City | Jakarta |
billingState Required | A | 50 | Billing State | DKI Jakarta |
billingPostCd Required | N | 10 | Billing Post Number | 14350 |
billingCountry Required | A | 10 | Billing Country | Indonesia |
callBackUrl Required | ANS | 255 | Payment Result Page | https://merchant.com/callBackUrl |
dbProcessUrl Required | ANS | 255 | Payment Notif Url | https://merchant.com/dbProcessUrl |
description Required | AN | 100 | Description | test item |
merchantToken Required | AN | 255 | Merchant Token | 6cfccfc0046773c1b589d8e 98f8b596c284f3c70a4ecf8 6eba14c18944b74bcd |
userIP Required | ANS | 15 | User IP (Customer) | 127.0.0.1 |
cartData Required | JSON Object | 4000 | Cart Data (Json Format) | {} |
mitraCd Required | A | 4 | Mitra Code | ALMA |
billingAddr | AN | 100 | Billing Address | Jln Cendrawasih |
deliveryNm | A | 30 | Delivery Name | JohnDoe |
deliveryPhone | N | 15 | Delivery Phone | 08125912342 |
deliveryAddr | AN | 100 | Delivery Address | Jln Merak |
deliveryEmail | ANS | Delivery Email | [email protected] | |
deliveryCity | A | 50 | Delivery City | Jakarta |
deliveryState | A | 50 | Delivery State | DKI Jakarta |
deliveryPostCd | N | 10 | Delivery Post Code | 14350 |
deliveryCountry | A | 10 | Delivery Country | Indonesia |
vat | N | 12 | Vat | 0 |
fee | N | 12 | Service Tax | 0 |
notaxAmt | N | 12 | Tax Free Amount | 0 |
reqDt | N | 8 | Request Date (YYYYMMDD) | 20160301 |
reqTm | N | 6 | Request Time (HH24MISS) | 135959 |
reqDomain | ANS | 100 | Request Domain | merchant.com |
reqServerIP | ANS | 15 | Request Server IP | 127.0.0.1 |
reqClientVer | ANS | 50 | Request Client Version | 1.0 |
userSessionID | AN | 100 | User Session ID | userSessionID |
userAgent | ANS | 100 | User Agent | Mozilla |
userLanguage | ANS | 2 | User Language | en-US |
payValidDt | N | 8 | CVS expiry date (YYYYMMDD) | 20200303 |
payValidTm | N | 6 | CVS expiry time (HH24MISS) | 135959 |
Response Parameter - CVS Registration
Sample JSON Response
{
"resultCd": "0000",
"amount": "10000",
"goodsNm": "Test Transaction Nicepay",
"referenceNo": "99997",
"transTm": "110847",
"mitraCd": "ALMA",
"tXid": "TESTIDTEST03201803011108471311",
"description": "Payment of referenceNo 99997,This Description",
"resultMsg": "SUCCESS",
"billingNm": "Thomas Alfa Edison",
"payNo": "011108471311",
"payValidTm": "235959",
"payMethod": "03",
"callbackUrl": "http://www.merchant.com/callbackUrl",
"payValidDt": "20180308",
"currency": "IDR",
"transDt": "20180301"
}
Parameter | Type | Size | Description |
---|---|---|---|
resultCd | N | 4 | Result Code |
resultMsg | AN | 255 | Result Message |
tXid | AN | 30 | Transaction ID |
referenceNo | ANS | 40 | Merchant Order No |
payMethod | N | 2 | Payment Method |
amount | N | 12 | Transaction Amount |
transDt | N | 8 | Transaction date (YYYYMMDD) |
transTm | N | 6 | Transaction time (HH24MISS) |
mitraCd | A | 4 | Mitra Code |
payNo | N | 12 | CVS Payment No. |
ClickPay
NICEPay offers ClickPay as Payment Method. This method allows customer to use ClickPay channel from various banks. Real time Notification will be sent when customer completed the payment.
Supported ClickPay by NICEPay:
- CIMB Clicks
- BCA KlikPay
- Jenius Pay
Transaction Flow:
- Merchant Request ClickPay Registration to NICEPay.
- NICEPay will Redirect to Bank Page.
- Customer input payment details on the Bank Page.
- NICEPay Send notification
- Merchant Handle notification.
ClickPay Registration
API Specifications - ClickPay Registration
API url | /nicepay/api/onePass.do |
Request Method application/x-www-form-urlencoded | POST |
Description | Request ClickPay Transaction on Bank Page |
Merchant Token | SHA256(iMid +referenceNo +amt +merchantKey ) |
Payment Methods | 04 ClickPay |
Request Parameter - ClickPay Registration
Sample Request
// Payment Mandatory Field
nicePay.setPayMethod("04");
nicePay.setCurrency("IDR");
nicePay.setAmt("1000");
nicePay.setReferenceNo("MerchantReferenceNumber001");
nicePay.setMitraCd("MDRC");
nicePay.setGoodsNm("Merchant Goods 1");
nicePay.setBillingNm("John Doe");
nicePay.setBillingEmail("[email protected]");
nicePay.setBillingPhone("081234567890");
nicePay.setBillingAddr("Billing Address");
nicePay.setBillingCity("Jakarta");
nicePay.setBillingState("Jakarta");
nicePay.setBillingPostCd("12345");
nicePay.setBillingCountry("Indonesia");
nicePay.setDeliveryNm("John Doe");
nicePay.setDeliveryPhone("081234567890");
nicePay.setDeliveryAddr("Billing Address ");
nicePay.setDeliveryCity("Jakarta ");
nicePay.setDeliveryState("Jakarta ");
nicePay.setDeliveryPostCd("12345");
nicePay.setDeliveryCountry("Indonesia ");
nicePay.setCallBackUrl(merchantDomain + "callback");
nicePay.setDbProcessUrl(merchantDomain + "dbprocess");
nicePay.setVat("0");
nicePay.setFee("0");
nicePay.setNotaxAmt("0");
nicePay.setDescription("Description");
nicePay.setUserIP("127.0.0.1");
nicePay.setMerchantToken(nicePay.makeToken(nicePay.getAmt(), nicePay.getReferenceNo()));
nicePay.setCartData("{}");
nicePay.setClickPayNo("1234567890123456");
nicePay.setClickPayToken("000000");
nicePay.setDataField3("3");
// Payment Optional Field
nicePay.setReqDt("20160301");
nicePay.setReqTm("135959");
nicePay.setReqDomain("merchant.com");
nicePay.setReqServerIP("127.0.0.1");
nicePay.setReqClientVer("1.0");
nicePay.setUserSessionID("userSessionID");
nicePay.setUserAgent("Mozilla");
nicePay.setUserLanguage("en-US");
nicePay.setMerFixAcctId("9999000000000001");
nicePay.setPaymentExpiryDt("20160303");
nicePay.setPaymentExpiryTm("135959");
// Payment Request
nicePay.payment();
// Payment Response
System.out.println("Response String : " + nicePay.getResponseString()); // JSON in String format
String resultCd = nicePay.Get("resultCd");
String resultMsg = nicePay.Get("resultMsg");
String tXid= nicePay.Get("tXid ");
String referenceNo= nicePay.Get("referenceNo");
String receiptCode= nicePay.Get("receiptCode");
String payMethod= nicePay.Get("payMethod");
String amount= nicePay.Get("amount");
String transDt = nicePay.Get("transDt ");
String transTm = nicePay.Get("transTm ");
String description= nicePay.Get("description");
String callbackUrl= nicePay.Get("callbackUrl");
String mitraCd= nicePay.Get("mitraCd");
protected void CheckOut(object sender, EventArgs e)
{
if (!string.IsNullOrEmpty(BankCd.SelectedValue))
{
objNicepay.currency = "IDR";
objNicepay.DateNow = DateTime.Now.ToString("yyyymmdd");
// Set VA expiry date +1 day (optional)
objNicepay.vaExpDate = DateTime.Now.AddDays(1).ToString("yyyymmdd");
//Populate Mandatory parameters to send
// payment type Bank
objNicepay.PayMethod = "04";
// Total gross amount
objNicepay.amt = "10000";
// Invoice Number or Referenc Number Generated by merchant
objNicepay.referenceNo = generateReference();
objNicepay.description = "Payment Invoice No. " + objNicepay.referenceNo;
// Transaction description
objNicepay.billingNm = "Donald Duck";
objNicepay.billingPhone = "021987456321";
objNicepay.billingEmail = "[email protected]";
objNicepay.billingAddr = "King of money street";
objNicepay.billingCity = "King";
objNicepay.billingState = "Money";
objNicepay.billingPostCd = "123654";
objNicepay.billingCountry = "Indonesia";
objNicepay.deliveryNm = "Donald Duck";
objNicepay.deliveryPhone = "021987456321";
objNicepay.deliveryEmail = "[email protected]";
objNicepay.deliveryAddr = "King of money street";
objNicepay.deliveryCity = "King";
objNicepay.deliveryState = "Money";
objNicepay.deliveryPostCd = "123654";
objNicepay.deliveryCountry = "Indonesia";
objNicepay.MitraCd = "MDRC";
objNicepay.clickPayNo = "1234567890123456";
objNicepay.clickPayToken = "000000";
objNicepay.dataField3 = "3";
objResult = objNicepayClass.CreateCVS(objNicepay);
if (objResult.resultCd == "0000")
{
Tresult.InnerText = objResult.resultCd;
TtXid.InnerText = objResult.tXid;
TcallbackUrl.InnerText = objResult.callbackUrl;
Tdescription.InnerText = objResult.description;
TreferenceNo.InnerText = objResult.referenceNo;
TpayMethod.InnerText = objResult.payMethod;
//YYMMDD
TtransDT.InnerText = objResult.transDt;
//HH24MISS
TTranstm.InnerText = objResult.transTm;
receiptCode.InnerText = objResult.receiptCode;
TresultMsg.InnerText = objResult.resultMsg;
mitraCd.InnerText = objResult.mitraCd;
amount.InnerText = objResult.amount;
wrapper.Visible = false;
Myresult.Visible = true;
}
else if (objResult.resultCd != null)
{
//API data Not correct, you can redirect back to checkout page Or echo error message.
//In this sample, we echo error message
EresultCd.InnerText = objResult.resultCd;
EresultMsg.InnerText = objResult.resultMsg;
wrapper.Visible = false;
ErrData.Visible = true;
}
else
{
//Timeout, you can redirect back to checkout page Or echo error message.
//In this sample, we echo error message
ERR_.InnerText = "Connection Timeout. Please Try again.";
wrapper.Visible = false;
ERR.Visible = true;
}
}
}
<?php
// Include Config File
include_once "lib/NicepayLib.php";
$nicepay = new NicepayLib();
function generateReference()
{
$micro_date = microtime();
$date_array = explode(" ",$micro_date);
$date = date("YmdHis",$date_array[1]);
$date_array[0] = preg_replace('/[^\p{L}\p{N}\s]/u', '', $date_array[0]);
return "Ref".$date.$date_array[0].rand(100,999);
}
if(isset($_POST['payMethod']) && $_POST['payMethod'] == '04'
&& isset($_POST['mitraCd']) && $_POST['mitraCd'])
{
$billingNm = $_POST['billingNm'];
$referenceNo = $_POST['referenceNo'];
$mitraCd = $_POST['mitraCd'];
// Populate Mandatory parameters to send
$nicepay->set('payMethod', '04');
$nicepay->set('currency', 'IDR');
$nicepay->set('amt', 10000); // Total gross amount
$nicepay->set('referenceNo', $referenceNo); // Invoice Number or Reference Number Generated by merchant
$nicepay->set('description', 'Payment of Invoice No '.$nicepay->get('referenceNo')); // Transaction description
$nicepay->set('mitraCd', $mitraCd);
$nicepay->set('billingNm', 'John Doe'); // Customer name
$nicepay->set('billingPhone', '02112345678'); // Customer phone number
$nicepay->set('billingEmail', '[email protected]'); //
$nicepay->set('billingAddr', 'Jl. Jend. Sudirman No. 28');
$nicepay->set('billingCity', 'Jakarta Pusat');
$nicepay->set('billingState', 'DKI Jakarta');
$nicepay->set('billingPostCd', '10210');
$nicepay->set('billingCountry', 'Indonesia');
$nicepay->set('deliveryNm', 'John Doe'); // Delivery name
$nicepay->set('deliveryPhone', '02112345678');
$nicepay->set('deliveryEmail', '[email protected]');
$nicepay->set('deliveryAddr', 'Jl. Jend. Sudirman No. 28');
$nicepay->set('deliveryCity', 'Jakarta Pusat');
$nicepay->set('deliveryState', 'DKI Jakarta');
$nicepay->set('deliveryPostCd', '10210');
$nicepay->set('deliveryCountry', 'Indonesia');
// Send Data
$response = $nicepay->requestClickPay();
// Response from NICEPAY
if (isset($response->resultCd) && $response->resultCd == "0000") {
echo "<pre>";
echo "tXid : $response->tXid\n";
echo "callbackUrl : $response->callbackUrl\n";
echo "description : $response->description\n";
echo "payment date : $response->transDt\n"; // YYYYMMDD
echo "payment time : $response->transTm\n"; // HH24MISS
echo "receipt Code : $response->receiptCode\n";
echo "result code : $response->resultCd\n";
echo "result message : $response->resultMsg\n";
echo "reference no : $response->referenceNo\n";
echo "payment method : $response->payMethod\n";
echo "</pre>";
} elseif(isset($response->resultCd)) {
// API data not correct or error happened in bank system, you can redirect back to checkout page or echo error message.
// In this sample, we echo error message
echo "<pre>";
echo "Oops! Something happened, please notice your system administrator.\n\n";
echo "result code : $response->resultCd\n";
echo "result message : $response->resultMsg\n";
echo "</pre>";
} else {
// Timeout, you can redirect back to checkout page or echo error message.
// In this sample, we echo error message
echo "<pre>Connection Timeout. Please Try again.</pre>";
}
}
?>
import json
from nicepay import NICEPay
#Set MID & Merchant Key
NICEPay.iMid = "BMRITEST01" #Set Merchant ID
NICEPay.merchantKey = "33F49GnCMS1mFYlGXisbUDzVf2ATWCl9k3R++d5hDd3Frmuos/XLx8XhXpe+LDYAbpGKZYSwtlyyLOtS/8aD7A==" #Set Merchant Key
#Set Mandatory Value
NICEPay.payMethod = "04" #Set Payment Method
NICEPay.amt = "1000" #Total Gross Amount
NICEPay.referenceNo = "NiceTest00003" #Invoice Number By Merchant
NICEPay.goodsNm = NICEPay.referenceNo #Goods Name
NICEPay.billingNm = "John Doe"
NICEPay.billingPhone = "02112345678"
NICEPay.billingEmail = "[email protected]`m"
NICEPay.billingAddr = "Jl. Jend. Sudirman No. 28"
NICEPay.billingCity = "Jakarta Pusat"
NICEPay.billingState = "DKI Jakarta"
NICEPay.billingPostCd = "10210"
NICEPay.billingCountry = "Indonesia"
NICEPay.callBackUrl = "http://example.com/callback"
NICEPay.dbProcessUrl = "https://example.com/notification-handler.php"
NICEPay.description = "Payment Of Ref No." + NICEPay.referenceNo
NICEPay.merchantToken = NICEPay.getMerchantToken()
NICEPay.userIP = NICEPay.getUserIp()
NICEPay.cartData = "{}" #Json Array Value
NICEPay.mitraCd = "MDRC"
NICEPay.clickPayNo = "1234567890123456"
NICEPay.clickPayToken = "000000"
NICEPay.dataField3 = "3"
# // Payment Request
resultData = NICEPay.apiRequest()
result = json.loads(resultData)
#Payment Response String Format
try:
result['resultCd']
except NameError:
print "Connection Timeout. Please Try Again!"
else:
if result['resultCd'] == '0000':
print("resultCd : " + result['resultCd'])
print("resultMsg : " + result['resultMsg'])
print("tXid : " + result['tXid'])
print("referenceNo : " + result['referenceNo'])
print("payMethod : " + result['payMethod'])
print("amount : " + result['amount'])
print("transDt : " + result['transDt'])
print("transTm : " + result['transTm'])
print("description : " + result['description'])
print("callbackUrl : " + result['callbackUrl'])
print("receiptCode : " + result['receiptCode'])
print("mitraCd : " + result['mitraCd'])
else:
print("resultCd : " + result['resultCd'])
print("resultMsg : " + result['resultMsg'])
Parameter | Type | Size | Description | Example Value |
---|---|---|---|---|
iMid Required | AN | 10 | Merchant ID | IONPAYTEST |
payMethod Required | N | 2 | Pay Method | 04 |
currency Required | A | 3 | Currency | IDR |
amt Required | N | 12 | Goods Amount | 15000 |
referenceNo Required | ANS | 40 | Merchant Order No | ordNo123124 |
goodsNm Required | AN | 100 | Goods Name | Test Goods |
billingNm Required | A | 30 | Billing Name | John Doe |
billingPhone Required | N | 15 | Billing Phone Number | 081249195 |
billingEmail Required | ANS | 40 | Billing Email | [email protected] |
billingCity Required | A | 50 | Billing City | Jakarta |
billingState Required | A | 50 | Billing State | DKI Jakarta |
billingPostCd Required | N | 10 | Billing Post Number | 14350 |
billingCountry Required | A | 10 | Billing Country | Indonesia |
callBackUrl Required | ANS | 255 | Payment Result Page | https://merchant.com/callBackUrl |
dbProcessUrl Required | ANS | 255 | Payment Notif Url | https://merchant.com/dbProcessUrl |
description Required | AN | 100 | Description | test item |
merchantToken Required | AN | 255 | Merchant Token | 6cfccfc0046773c1b589d8e 98f8b596c284f3c70a4ecf8 6eba14c18944b74bcd |
userIP Required | ANS | 15 | User IP (Customer) | 127.0.0.1 |
cartData Required | JSON Object | 4000 | Cart Data (Json Format) | {} |
mitraCd Required | A | 4 | Mitra Code | JENC |
clickPayNo Required | N | 16 | ClickPay Card No | |
dataField3 Required | N | 16 | Token 3 for Clickpay | |
clickPayToken Required | N | 6 | Response Token | |
billingAddr | AN | 100 | Billing Address | Jln Cendrawasih |
deliveryNm | A | 30 | Delivery Name | JohnDoe |
deliveryPhone | N | 15 | Delivery Phone | 08125912342 |
deliveryAddr | AN | 100 | Delivery Address | Jln Merak |
deliveryEmail | ANS | Delivery Email | [email protected] | |
deliveryCity | A | 50 | Delivery City | Jakarta |
deliveryState | A | 50 | Delivery State | DKI Jakarta |
deliveryPostCd | N | 10 | Delivery Post Code | 14350 |
deliveryCountry | A | 10 | Delivery Country | Indonesia |
vat | N | 12 | Vat | 0 |
fee | N | 12 | Service Tax | 0 |
notaxAmt | N | 12 | Tax Free Amount | 0 |
reqDt | N | 8 | Request Date (YYYYMMDD) | 20160301 |
reqTm | N | 6 | Request Time (HH24MISS) | 135959 |
reqDomain | ANS | 100 | Request Domain | merchant.com |
reqServerIP | ANS | 15 | Request Server IP | 127.0.0.1 |
reqClientVer | AN | 50 | Request Client Version | 1.0 |
userSessionID | AN | 100 | User Session ID | userSessionID |
userAgent | ANS | 100 | User Agent | Mozilla |
userLanguage | ANS | 2 | User Language | en-US |
cashtag Required for Jenius | AN | 100 | cashtagId (with $) | $johndoe |
Response Parameter - ClickPay Registration
Sample JSON Response
{
"resultCd": "0000",
"amount": "10000",
"goodsNm": "Test Transaction Nicepay",
"referenceNo": "99997",
"transTm": "113152",
"mitraCd": "MDRC",
"tXid": "TESTIDTEST04201803011131521855",
"description": "Payment of referenceNo 99997",
"receiptCode": "1831B3127001",
"resultMsg": "SUCCESS",
"billingNm": "Customer Name",
"mRefNo": "201803011131521884",
"payMethod": "04",
"callbackUrl": "http://www.merchant.com/callbackUrl",
"currency": "IDR",
"transDt": "20180301"
}
Parameter | Type | Size | Description |
---|---|---|---|
resultCd | N | 4 | Result Code |
resultMsg | AN | 255 | Result Message |
tXid | AN | 30 | Transaction ID |
referenceNo | ANS | 40 | Merchant Order No |
payMethod | N | 2 | Payment Method |
amount | N | 12 | Transaction Amount |
currency | A | 3 | Currency |
goodsNm | N | 100 | Goods Name |
billingNm | N | 30 | Buyer Name |
transDt | N | 8 | Transaction date (YYYYMMDD) |
transTm | N | 6 | Transaction time (HH24MISS) |
description | N | 100 | Transaction description |
callbackUrl | ANS | 100 | Callback Url |
mitraCd | A | 4 | Mitra Code |
receiptCode | ANS | 20 | Authorization Number |
mRefNo | AN | 18 | Bank Reference No |
E-Wallet
NICEPay offers E-Wallet as Payment Method. This allows customer to make payment with OVO, LinkAja, DANA and Shopeepay (Jump App).
Real time Notification will be sent when customer has completed the payment.
Supported E-Wallet by NICEPay:
- OVO
- LinkAja
- DANA
- Shopeepay
Transaction Flow:
- Merchant Request E-Wallet Registration to NICEPay.
- NICEPay will redirect to Mitra Payment Page/App or Send Notification to App.
- Customer Make Payment on Mitra Payment Page/App
- NICEPay Send Notification to Merchant.
- Merchant Handle Notification.
E-Wallet Registration
API Specifications - E-Wallet Registration
API url | /nicepay/api/ewalletTrans.do |
Request Method application/x-www-form-urlencoded | POST |
Description | Request E-Wallet Transaction |
Merchant Token | SHA256(iMid +referenceNo +amt +merchantKey ) |
Payment Methods | 05 E-Wallet |
Request Parameter - E-Wallet Registration
Sample Request
iMid:IONPAYTEST
payMethod:05
currency:IDR
amt:10000
referenceNo:MerchantOrder001
goodsNm:Test Transaction Nicepay
billingNm:John Doe
billingPhone:081234567890
billingEmail:[email protected]
billingCity:Jakarta
billingState:DKI Jakarta
billingPostCd:14350
billingCountry:Indonesia
callBackUrl:https://merchant.com/api/callBackUrl
dbProcessUrl:https://merchant.com/api/dbProcessUrl/Notif
description:Payment of referenceNo 99997
merchantToken:2fb44db297849ec6e51204f4e19963517cac7aeea7883569e5a8e913e173d54b
cartData:{"count":1,"item":[{"img_url":"https://images.com/image.png","goods_name":"Shoe","goods_detail":"Shoe","goods_amt":1500}]}
mitraCd:OVOE
userIP:::1
Parameter | Type | Size | Description | Example Value |
---|---|---|---|---|
iMid Required | AN | 10 | Merchant ID | IONPAYTEST |
payMethod Required | N | 2 | Pay Method | 05 |
currency Required | A | 3 | Currency | IDR |
amt Required | N | 12 | Goods Amount | 15000 |
referenceNo Required | ANS | 40 | Merchant Order No | ordNo123124 |
goodsNm Required | AN | 100 | Goods Name | Test Goods |
billingNm Required | A | 30 | Billing Name | John Doe |
billingPhone Required | N | 15 | Billing Phone Number | 081249195 |
billingEmail Required | ANS | 40 | Billing Email | [email protected] |
billingCity Required | A | 50 | Billing City | Jakarta |
billingState Required | A | 50 | Billing State | DKI Jakarta |
billingPostCd Required | N | 10 | Billing Post Number | 14350 |
billingCountry Required | A | 10 | Billing Country | Indonesia |
callBackUrl Required | ANS | 255 | Payment Result Page | https://merchant.com/callBackUrl |
dbProcessUrl Required | ANS | 255 | Payment Notif Url | https://merchant.com/dbProcessUrl |
description Required | AN | 100 | Description | test item |
merchantToken Required | AN | 255 | Merchant Token | 6cfccfc0046773c1b589d8e 98f8b596c284f... |
userIP Required | ANS | 15 | User IP (Customer) | 127.0.0.1 |
cartData Required | JSON String | 4000 | Cart Data (Json Format) | {} |
mitraCd Required | A | 4 | Mitra Code | OVOE |
billingAddr | AN | 100 | Billing Address | Jln Cendrawasih |
deliveryNm | A | 30 | Delivery Name | JohnDoe |
deliveryPhone | N | 15 | Delivery Phone | 08125912342 |
deliveryAddr | AN | 100 | Delivery Address | Jln Merak |
deliveryEmail | ANS | Delivery Email | [email protected] | |
deliveryCity | A | 50 | Delivery City | Jakarta |
deliveryState | A | 50 | Delivery State | DKI Jakarta |
deliveryPostCd | N | 10 | Delivery Post Code | 14350 |
deliveryCountry | A | 10 | Delivery Country | Indonesia |
vat | N | 12 | Vat | 0 |
fee | N | 12 | Service Tax | 0 |
notaxAmt | N | 12 | Tax Free Amount | 0 |
reqDt | N | 8 | Request Date (YYYYMMDD) | 20160301 |
reqTm | N | 6 | Request Time (HH24MISS) | 135959 |
reqDomain | ANS | 100 | Request Domain | merchant.com |
reqServerIP | ANS | 15 | Request Server IP | 127.0.0.1 |
reqClientVer | ANS | 50 | Request Client Version | 1.0 |
userSessionID | AN | 100 | User Session ID | userSessionID |
userAgent | ANS | 100 | User Agent | Mozilla |
userLanguage | ANS | 2 | User Language | en-US |
returnJsonFormat Optional For Shopeepay to get URL redirect Shopeepay | AN | 100 | Return Json format | 1 : return redirect_Url_App and redirect_Url_Http or empty/0 : return HTML to redirect |
Registration Response - E-Wallet Registration
Sample Response
POST Parameters
amt: 1500
billingNm: Customer Name
currency: IDR
goodsNm: Test Transaction Nicepay
matchCl: 1
merchantToken: 56f27b89f3e6bb420828a051b10ae973d2e4621cc95a7589514df86f706a3ab4
mitraCd: OVOE
payMethod: 05
referenceNo: 9999
status: 1
tXid: OVOTEST00105202012021011274473
transDt: 20201202
transTm: 101127
Parameter | Description |
---|---|
amt | Transaction Amount |
billingNm | Customer Name |
currency | Currency used |
goodsNm | Goods Name |
matchCl | Transfer amount check |
merchantToken | Merchant Token |
payMethod | Payment Method |
referenceNo | Merchant Order No |
status | Transaction Status |
tXid | Transaction ID |
transDt | Transaction date (YYYYMMDD) |
transTm | Transaction time (HH24MISS) |
QRIS
NICEPay provides a new service in QRIS payment method from cooperation with ShopeePay. By using this method, the customer will have the option to make payment via E-wallet (ShopeePay, OVO, Gopay, and DANA). Realtime Notification will be sent when the customer has completed the payment.
Transaction Flow :
- Merchant Request QRIS Registration to NICEPay.
- Merchant Display QR Code and How-To-Pay to Customer.
- Customer will scan QR, and do authentication for payment.
- Nicepay will check the payment status, then Nicepay send Notification.
- Merchant Handle Notification
QRIS Registration
API Specifications - QRIS Registration
API url | /nicepay/api/onePass.do |
Request Method application/x-www-form-urlencoded | POST |
Description | QRIS payment API |
Merchant Token | SHA256(iMid +referenceNo +amt +merchantKey ) |
Payment Methods | 08 QRIS |
Request Parameter - QRIS Registration
Sample Request
iMid:IONPAYTEST
payMethod:08
currency:IDR
amt:1000
referenceNo:ORDER2909
goodsNm:Test Transaction Nicepay
billingNm:John Doe
billingPhone:081234567890
billingEmail:[email protected]
billingCity:Jakarta
billingState:DKI Jakarta
billingPostCd:14350
billingCountry:Indonesia
callBackUrl:https://merchant.com/api/callBackUrl
dbProcessUrl:https://merchant.com/api/dbProcessUrl/Notif
mitraCd:QSHP
merchantToken:4bfd36804a5ad4741256b64b3e0152b00de458ec8d75d04cc095f725cd14770c
cartData:{"count":1,"item":[{"img_url":"https://images.com/image.png","goods_name":"Shoe","goods_detail":"Shoe","goods_amt":1000}]}
shopId:NICEPAY
userIP:::127.0.0.1
Parameter | Type | Size | Description | Example Value |
---|---|---|---|---|
iMid Required | AN | 10 | Merchant ID | IONPAYTEST |
payMethod Required | N | 2 | Pay Method | 08 |
currency Required | A | 3 | Currency | IDR |
amt Required | N | 12 | Goods Amount | 15000 |
referenceNo Required | ANS | 40 | Merchant Order No | ordNo123124 |
goodsNm Required | AN | 100 | Goods Name | Test Goods |
billingNm Required | A | 30 | Billing Name | John Doe |
billingPhone Required | N | 15 | Billing Phone Number | 081249195 |
billingEmail Required | ANS | 40 | Billing Email | [email protected] |
billingCity Required | A | 50 | Billing City | Jakarta |
billingState Required | A | 50 | Billing State | DKI Jakarta |
billingPostCd Required | N | 10 | Billing Post Number | 14350 |
billingCountry Required | A | 10 | Billing Country | Indonesia |
callBackUrl Required | ANS | 255 | Payment Result Page | https://merchant.com/callBackUrl |
dbProcessUrl Required | ANS | 255 | Payment Notif Url | https://merchant.com/dbProcessUrl |
description Required | AN | 100 | Description | test item |
merchantToken Required | AN | 255 | Merchant Token | 6cfccfc0046773c1b589d8e 98f8b596c284f... |
userIP Required | ANS | 15 | User IP (Customer) | 127.0.0.1 |
cartData Optional | JSON String | 4000 | Cart Data (Json Format) | {} |
mitraCd Required | A | 4 | Mitra Code | QSHP |
shopId Required | AN | 32 | Shop Id | NICEPAY |
billingAddr | AN | 100 | Billing Address | Jln Cendrawasih |
deliveryNm | A | 30 | Delivery Name | JohnDoe |
deliveryPhone | N | 15 | Delivery Phone | 08125912342 |
deliveryAddr | AN | 100 | Delivery Address | Jln Merak |
deliveryEmail | ANS | Delivery Email | [email protected] | |
deliveryCity | A | 50 | Delivery City | Jakarta |
deliveryState | A | 50 | Delivery State | DKI Jakarta |
deliveryPostCd | N | 10 | Delivery Post Code | 14350 |
deliveryCountry | A | 10 | Delivery Country | Indonesia |
vat | N | 12 | Vat | 0 |
fee | N | 12 | Service Tax | 0 |
notaxAmt | N | 12 | Tax Free Amount | 0 |
reqDt | N | 8 | Request Date (YYYYMMDD) | 20160301 |
reqTm | N | 6 | Request Time (HH24MISS) | 135959 |
reqDomain | ANS | 100 | Request Domain | merchant.com |
reqServerIP | ANS | 15 | Request Server IP | 127.0.0.1 |
reqClientVer | ANS | 50 | Request Client Version | 1.0 |
userSessionID | AN | 100 | User Session ID | userSessionID |
userAgent | ANS | 100 | User Agent | Mozilla |
userLanguage | ANS | 2 | User Language | en-US |
Registration Response - QRIS Registration
Sample Response
{
"resultCd": "0000",
"resultMsg": "SUCCESS",
"tXid": "IONPAYTEST08202104011206088687",
"referenceNo": "ORDER2909",
"payMethod": "08",
"amount": "1000",
"transDt": "20210401",
"transTm": "120609",
"description": null,
"callbackUrl": "https://merchant.com/api/callBackUrl",
"paymentExpDt": "20210401",
"paymentExpTm": "121109",
"qrContent": "00020101021226580016ID.CO.SHOPEE.WWW01189360091800000169110205169110303UMI52041234530336054071000.005802ID5907NICEPAY6015KOTA JAKARTA PU61051234562360520082021040112060930000708T000000163041210",
"qrUrl": "https://api.uat.wallet.airpay.co.id/v3/merchant-host/qr/download?qr=9d0DmD3uqAVzLMNWz05b1ExK3GAX7yY07x3wg4OYKK",
"currency": "IDR",
"goodsNm": "Merchant Goods 1",
"billingNm": "John Doe"
}
Parameter | Type | Size | Description |
---|---|---|---|
resultCd | N | 4 | Result Code |
resultMsg | AN | 255 | Result Message |
tXid | AN | 30 | Transaction ID |
referenceNo | ANS | 40 | Merchant Order No |
payMethod | N | 2 | Payment Method |
amount | N | 12 | Transaction Amount |
transDt | N | 8 | Transaction date (YYYYMMDD) |
transTm | N | 6 | Transaction time (HH24MISS) |
description | AN | 100 | Transaction Description |
callbackUrl | AN | 100 | payment result forward url (on browser) |
paymentExpDt | N | 6 | QR Payment Expiry Date (YYYYMMDD) |
paymentExpTm | N | 6 | QR Payment Expiry Time (HH24MISS) |
qrContent | ANS | 360 | QR String in Plain Text |
qrUrl | ANS | 360 | URL for QR Image, Valid for 5 minutes |
currency | N | 3 | currency |
goodsNm | AN | 100 | Goods Name |
billingNm | A | 30 | Buyer name |
Check Transaction Status
API Specifications - Check Status
This API is intended for merchant to check the status of the transaction.
API url | /nicepay/api/onePassStatus.do |
Request Method application/x-www-form-urlencoded | POST |
Description | Inquires transaction status to NICEPAY server. |
Merchant Token | SHA256(iMid +referenceNo +amt +merchantKey ) |
Request Parameters - Check Status
Sample API Request
// Order Status Mandatory Field
nicePay.setTrxId("IONPAYTEST02201603091207051498");
nicePay.setReferenceNo("MerchantReferenceNumber001");
nicePay.setAmt("1000");
nicePay.setMerchantToken(nicePay.makeToken(nicePay.getAmt(), nicePay.getReferenceNo()));
// Order Status Request
nicePay.orderStatus();
// Order Status Response
System.out.println("Response String : " + nicePay.getResponseString()); // JSON in String format
nicePay.getHtResponse(); // JSON in HashTable<String, String> format
String resultCd = nicePay.Get("resultCd");
String resultMsg = nicePay.Get("resultMsg");
String tXid= nicePay.Get("tXid ");
String iMid= nicePay.Get("iMid");
String currency= nicePay.Get("currency");
String amount= nicePay.Get("amount");
String instmntMon= nicePay.Get("instmntMon");
String instmntType= nicePay.Get("instmntType");
String referenceNo= nicePay.Get("referenceNo");
String goodsNm = nicePay.Get("goodsNm");
String payMethod = nicePay.Get("payMethod");
String billingNm= nicePay.Get("billingNm");
String merchantToken= nicePay.Get("merchantToken");
String reqDt= nicePay.Get("reqDt");
String reqTm = nicePay.Get("reqTm");
String status = nicePay.Get("status");
String bankCd= nicePay.Get("bankCd");
String vacctValidDt= nicePay.Get("vacctValidDt");
String vacctValidTm= nicePay.Get("vacctValidTm");
String vacctNo= nicePay.Get("vacctNo");
public NotificationResult ChargcheckPaymentStatuseCard(string tXid, string referenceNo, string amt)
{
string RequestType = "checkPaymentStatus";
Nicepay Nicepay = new Nicepay();
Nicepay.iMid = NicepayConfig.NICEPAY_IMID;
Nicepay.tXid = tXid;
Nicepay.referenceNo = referenceNo;
Nicepay.amt = amt;
Nicepay.merchantToken = merchantToken(Nicepay, RequestType);
CheckParam(Nicepay.iMid, "01");
CheckParam(Nicepay.amt, "04");
CheckParam(Nicepay.referenceNo, "06");
CheckParam(Nicepay.merchantToken, "28");
CheckParam(Nicepay.tXid, "30");
string API_Url = GetApiRequest(RequestType);
string SingleString = BuildString(Nicepay);
string ResultString = WebRequestPostHttp.Post_Http(SingleString, API_Url);
JavaScriptSerializer JsonSerializer = new JavaScriptSerializer();
return JsonSerializer.Deserialize<NotificationResult>(ResultString);
}
<?php
$nicepay->set('tXid',$tXid);
$nicepay->set('referenceNo',$referenceNo);
$nicepay->set('amt',$amt);
$nicepay->set('iMid',$iMid);
$merchantToken = $nicepay->merchantTokenC();
$nicepay->set('merchantToken', $merchantToken);
//Request To Nicepay
$paymentStatus = $nicepay->checkPaymentStatus($tXid,$referenceNo, $amt);
//Response From Nicepay
if($pushedToken == $merchantToken){
if(isset($paymentStatus->status) && $paymentStatus->status == '0'){
echo "<pre>Success</pre>";
}elseif (isset($paymentStatus->status) && $paymentStatus->status == '1') {
echo "<pre>Void</pre>";
}elseif (isset($paymentStatus->status) && $paymentStatus->status == '2') {
echo "<pre>Refund</pre>";
}elseif (isset($paymentStatus->status) && $paymentStatus->status == '9') {
echo "<pre>Reversal</pre>";
}else {
echo "<pre>Status Unknown</pre>";
}
}
?>
import json
from library import NICEPay
#Set Parameters For Check Status
NICEPay.iMid = "IONPAYTEST" #Set Merchant ID
NICEPay.merchantKey = "33F49GnCMS1mFYlGXisbUDzVf2ATWCl9k3R++d5hDd3Frmuos/XLx8XhXpe+LDYAbpGKZYSwtlyyLOtS/8aD7A==" #Set Merchant Key
NICEPay.amt = "100"
NICEPay.referenceNo = "379072"
NICEPay.merchantToken = NICEPay.getMerchantToken()
NICEPay.tXid = "IONPAYTEST02201609161449136760"
#Check Status Request
resultCheckStatus = NICEPay.checkStatus()
#Check Status Response
result = json.loads(resultCheckStatus)
#Check Payment Response String Format
print("resultCd : " + result['resultCd'])
print("resultMsg : " + result['resultMsg'])
print("tXid : " + result['tXid'])
print("iMid : " + result['iMid'])
print("currency : " + result['currency'])
print("amount : " + result['amt'])
print("instmntMon : " + result['instmntMon'])
print("instmntType : " + result['instmntType'])
print("referenceNo : " + result['referenceNo'])
print("goodsNm : " + result['goodsNm'])
print("payMethod : " + result['payMethod'])
print("billingNm : " + result['billingNm'])
print("merchantToken : " + result['merchantToken'])
print("reqDt : " + result['reqDt'])
print("reqTm : " + result['reqTm'])
print("status : " + result['status'])
Parameter | Type | Size | Description | Example Value |
---|---|---|---|---|
iMid Required | AN | 10 | Merchant ID | IONPAYTEST |
merchantToken Required | AN | 255 | Merchant Token | 6cfccfc0046773c1b89d8e98c... |
tXid Required | AN | 30 | Transaction ID | IONPAYTEST02201607291027025291 |
amt Required | N | 12 | Amount | 15000 |
referenceNo Required | ANS | 40 | Reference No. | OrdNo20160525000 |
Response Object - Check Status
Sample response:
{
"tXid": "NORMALTEST01202002031344071337",
"iMid": "NORMALTEST",
"currency": "IDR",
"amt": "12000",
"instmntMon": "1",
"instmntType": "1",
"referenceNo": "ord20200203130299",
"goodsNm": "Testing Normal FULL PAYMENT CC Va",
"payMethod": "01",
"billingNm": "Customer Name",
"reqDt": "20200203",
"reqTm": "134407",
"status": "9",
"resultCd": "0000",
"resultMsg": "init",
"cardNo": null,
"preauthToken": null,
"acquBankCd": null,
"issuBankCd": null,
"vacctValidDt": null,
"vacctValidTm": null,
"vacctNo": null,
"bankCd": null,
"payNo": null,
"mitraCd": null,
"receiptCode": null,
"cancelAmt": null,
"transDt": null,
"transTm": null,
"recurringToken": null,
"ccTransType": null,
"payValidDt": null,
"payValidTm": null,
"mRefNo": null,
"acquStatus": null,
"cardExpYymm": null,
"acquBankNm": null,
"issuBankNm": null,
"depositDt": null,
"depositTm": null
}
Parameter | Type | Size | Description |
---|---|---|---|
resultCd | N | 4 | Result Code |
resultMsg | AN | 255 | Result Message |
tXid | AN | 30 | Transaction ID |
iMid | AN | 10 | Merchant ID |
referenceNo | ANS | 40 | Merchant Order No |
payMethod | N | 2 | Payment method |
amt | N | 12 | Payment amount |
reqDt | N | 8 | Transaction request date (YYYYMMDD) |
reqTm | N | 6 | Transaction request time (HH24MISS) |
currency | A | 3 | Currency |
goodsNm | AN | 100 | Goods name |
billingNm | AN | 30 | Billing name |
status | N | 1 | Transaction status |
instmntMon | N | 2 | Installment month |
instmntType | N | 2 | Installment Type |
Additional Response for Virtual Account
Parameter | Type | Size | Description |
---|---|---|---|
vacctValidDt | N | 8 | VA Expiry Date (YYYYMMDD) |
vacctValidTm | N | 6 | VA Expiry Time (HH24MISS) |
vacctNo | N | 16 | VA Number |
bankCd | A | 4 | Bank Code |
Additional Response for QRIS
Parameter | Type | Size | Description |
---|---|---|---|
mitraCd | A | 4 | Mitra Code (QRIS) |
cancelAmt | N | 12 | Cancel amount |
paymentTrxSn | AN | 32 | Payment Transaction Number |
paymentExpDt | N | 6 | QR Payment Expiry Date (YYYYMMDD) |
shopId | AN | 32 | Shop Id |
transTm | N | 6 | Transaction time (HH24MISS) |
paymentExpTm | N | 6 | QR Payment Expiry Time (HH24MISS) |
cancelTrxSn | AN | 32 | Cancel Transaction Number |
userId | AN | 128 | QRIS User ID Hash |
transDt | N | 8 | Transaction date (YYYYMMDD) |
depositDt | N | 8 | Transaction deposit date (YYYYMMDD) |
depositTm | N | 6 | Transaction deposit time (HH24MISS) |
Additional Response for Others Payment Method
Parameter | Type | Size | Description |
---|---|---|---|
mitraCd | A | 4 | Mitra Code (CVS, E-Wallet, Payloan) |
payNo | N | 12 | Payment Number (CVS) |
payValidDt | N | 8 | CVS Payment Expiry Date (YYYYMMDD) |
payValidTm | N | 6 | CVS Payment Expiry Time (HH24MISS) |
receiptCode | ANS | 18 | Auth Number |
Cancel Transaction
API Specifications - Cancel Order
This API is intended to cancel a registered transaction.
API url | /nicepay/api/onePassAllCancel.do |
Request Method application/x-www-form-urlencoded | POST |
Description | Request Transaction Cancellation to NICEPAY |
Merchant Token | SHA256(iMid +tXid +amt +merchantKey ) |
Request Parameters - Cancel Order
Sample API Request
nicePay.setCancelMsg("Cancel Message");
nicePay.setAmt("1000");
nicePay.setFee("0");
nicePay.setVat("0");
nicePay.setNotaxAmt("0");
nicePay.setReqServerIP("127.0.0.1");
nicePay.setCancelUserId("");
nicePay.setUserIP("127.0.0.1");
nicePay.setCancelUserInfo("Customer cancel transaction");
nicePay.setCancelRetryCnt("3");
nicePay.setWorker("");
// Cancel Mandatory Field
nicePay.setTrxId("IONPAYTEST02201603091207051498");
nicePay.setPayMethod("02");
nicePay.setCancelType("1");
nicePay.setMerchantToken(nicePay.makeToken(nicePay.getAmt(), nicePay.getTrxId()));
// Cancel request
nicePay.cancel();
// Cancel Response
System.out.println("Response String : " + nicePay.getResponseString()); // JSON in String format
nicePay.getHtResponse(); // JSON in HashTable<String, String> format
String resultCd = nicePay.Get("resultCd");
String resultMsg = nicePay.Get("resultMsg");
String tXid= nicePay.Get("tXid ");
String referenceNo= nicePay.Get("referenceNo");
String transDt= nicePay.Get("transDt");
String transTm= nicePay.Get("transTm");
String description= nicePay.Get("description");
String amount= nicePay.Get("amount");
string RequestType = "cancel";
Nicepay Nicepay = new Nicepay();
Nicepay.iMid = NicepayConfig.NICEPAY_IMID;
Nicepay.tXid = tXid;
Nicepay.amt = amt;
Nicepay.merchantToken = merchantToken(Nicepay, RequestType);
Nicepay.PayMethod = "02";
Nicepay.cancelType = "1";
objResult = objNicepayClass.Cancel (Nicepay);
Tresult.InnerText = objResult.resultCd;
TtXid.InnerText = objResult.tXid;
TcallbackUrl.InnerText = objResult.callbackUrl;
Tdescription.InnerText = objResult.description;
TreferenceNo.InnerText = objResult.referenceNo;
TpayMethod.InnerText = objResult.payMethod;
//YYMMDD
TtransDT.InnerText = objResult.transDt;
//HH24MISS
TTranstm.InnerText = objResult.transTm;
TresultMsg.InnerText = objResult.resultMsg;
<?php
$nicepay = new NicepayLib();
if(!emptyempty($_POST['tXid']) && !emptyempty($_POST['tXid']))
{
$iMid = $nicepay->iMid;
$tXid = $_POST['tXid'];
$amt = $_POST['amt'];
$nicepay->set('tXid', $tXid);
$nicepay->set('payMethod', '02');
$nicepay->set('amt', $amt);
$nicepay->set('iMid',$iMid);
$nicepay->set('cancelType', 1);
$merchantToken = $nicepay->merchantTokenC();
$nicepay->set('merchantToken', $merchantToken);
// <REQUEST to NICEPAY>
$response = $nicepay->cancel($tXid, $amt);
// <RESPONSE from NICEPAY>
echo '<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">';
echo "<pre>";
var_dump($response);
echo "</pre>";
}
?>
import json
from library import NICEPay
#Set MID & Merchant Key
NICEPay.iMid = "IONPAYTEST" #Set Merchant ID
NICEPay.merchantKey = "33F49GnCMS1mFYlGXisbUDzVf2ATWCl9k3R++d5hDd3Frmuos/XLx8XhXpe+LDYAbpGKZYSwtlyyLOtS/8aD7A==" #Set Merchant Key
#Set Mandatory Value
NICEPay.payMethod = "02"
NICEPay.amt = "1000"
NICEPay.tXid = "IONPAYTEST02201703301501243952"
NICEPay.cancelType = "1"
NICEPay.merchantToken = NICEPay.getMerchantTokenCancel()
#Set Optional Value
NICEPay.cancelMsg = "Cancel Message"
NICEPay.fee = "0"
NICEPay.vat = "0"
NICEPay.notaxAmt = "0"
NICEPay.reqServerIP = "127.0.0.01"
NICEPay.cancelUserId = "Admin"
NICEPay.userIP = "127.0.0.1"
NICEPay.cancelUserInfo = "Customer cancel transaction"
NICEPay.cancelRetryCnt = "5"
NICEPay.worker = "Worker"
#Cancel Request
resultCancel = NICEPay.cancel()
#Cancel Response
result = json.loads(resultCancel)
#Cancel Response String Format
print("resultCd : " + result['resultCd'])
print("resultMsg : " + result['resultMsg'])
print("tXid : " + result['tXid'])
print("referenceNo : " + result['referenceNo'])
print("transDt : " + result['transDt'])
print("transTm : " + result['transTm'])
print("description : " + result['description'])
print("amount : " + result['amount'])
Parameter | Type | Size | Description | Example Value |
---|---|---|---|---|
iMid Required | AN | 10 | Merchant ID | IONPAYTEST |
merchantToken Required | AN | 255 | Merchant Token | 6cfccfc0046773c1b89d8e98f8b596c 284f3c70a4ecf86eba14c18944b74bcd |
tXid Required | AN | 30 | Transaction ID | IONPAYTEST02201607291027025291 |
payMethod Required | N | 2 | Payment method | 01 |
cancelType Required | N | 2 | Cancellation type | 1 |
amt Required | N | 12 | Cancellation amount | 15000 |
cancelMsg | AN | 255 | Cancellation message | Cancel |
fee | N | 12 | Service fee | 0 |
vat | N | 12 | Vat number | 0 |
cancelServerIp | ANS | 15 | Server IP address | 127.0.0.1 |
cancelUserId | AN | 30 | User ID | Admin |
cancelUserIp | ANS | 15 | User IP address | 127.0.0.1 |
cancelUserInfo | AN | 100 | User Information | New customer |
cancelRetryCnt | N | 2 | Retry count for cancel | 2 |
worker | N | 10 | Worker | Worker |
Response Parameter - Cancel Order
Sample Response
{
"tXid": "IONPAYTEST02201603091207051498",
"referenceNo": "OrdNo20160525000-52104",
"resultCd": "0000",
"resultMsg": "SUCCESS",
"transDt": "20160303",
"transTm": "135959",
"description": "Payment of OrdNo20160525000-52104",
"amount": "1000",
"canceltXid": "IONPAYTEST02201603091207051499"
}
Parameter | Type | Size | Description |
---|---|---|---|
tXid | AN | 30 | Transaction ID |
referenceNo | ANS | 40 | Merchant order No |
resultCd | N | 4 | Result code |
resultMsg | AN | 255 | Result message |
transDt | N | 8 | Transaction date |
transTm | N | 6 | Transaction time |
description | AN | 255 | Description |
amount | N | 8 | Amount |
canceltXid | AN | 30 | Cancel transaction ID |
cancelTrxSn | AN | 32 | Cancel Transaction Number |
Notification
Sample POST for Notification
tXid={tXid}
referenceNo={referenceNo}
amt={amt}
merchantToken={merchantToken}
matchCl={matchCl}
status={status}
bankCd={bankCd}
vacctNo={vacctNo}
authNo={authNo}
cardNo={cardNo}
issuBankCd = {issuBankCd}
issuBankNm = {issuBankNm}
acquBankCd = {acquBankCd}
acquBankNm = {acquBankNm}
transDt = {depositDt}
transTm = {depositTm}
payNo={payNo}
NICEPAY provides push notification through merchant's dbProcessUrl
.
To Allow Push Notifications from NICEPAY Server, please add these details to your firewall whitelist:
Method | Merchant Token | IP | User-Agent |
---|---|---|---|
POST application/x-www-form-urlencoded | SHA256(iMid +tXid +amt +merchantKey ) | 103.20.51.0/24 103.117.8.0/24 | User-Agent: Jakarta Commons-HttpClient/3.1 |
Notification Parameter
Parameter | Type | Size | Description |
---|---|---|---|
tXid | N | 30 | Transaction ID |
merchantToken | AN | 255 | Merchant Token |
referenceNo | ANS | 40 | Merchant Order No |
payMethod | N | 2 | Payment method |
amt | N | 12 | Payment amount |
transDt | N | 8 | Transaction date |
transTm | N | 6 | Transaction time |
currency | A | 3 | Currency |
goodsNm | AN | 100 | Goods name |
billingNm | A | 30 | Billing name |
matchCl | N | 1 | Payment Flag |
status | A | 1 | Deposit Status:0 Deposit1 Reversal |
Additional Parameter for Credit Card Notification
Parameter | Type | Size | Description |
---|---|---|---|
authNo | N | 10 | Approval number |
IssueBankCd | A | 4 | Issue bank code |
IssueBankNm | A | Issue bank name. | |
acquBankCd | A | Acquire bank code | |
acquBankNm | A | Acquire bank name. | |
cardNo | ANS | 20 | Card no with masking |
cardExpYymm | N | Card expiry (YYMM) | |
instmntMon | N | 2 | Installment month |
instmntType | N | 2 | Installment Type |
preauthToken | AN | 255 | Preauth Token |
recurringToken | AN | 255 | Recurring token |
ccTransType | A | 2 | Credit Card Trans type1 Normal2 Recurring3 Pre-auth4 Captured |
vat | N | 12 | Vat number |
fee | N | 12 | Service fee |
notaxAmt | N | 12 | Tax free amount |
Additional Parameter for Virtual Account Notification
Parameter | Type | Size | Description |
---|---|---|---|
bankCd | A | 4 | Bank Code |
vacctNo | N | 16 | Bank VA Number |
vacctValidDt | N | 8 | VA Expiry Date (YYYYMMDD) |
vacctValidTm | N | 6 | VA Expiry Time (HH24MISS) |
Additional Parameter for QRIS Notification
Parameter | Type | Size | Description |
---|---|---|---|
paymentTrxSn | AN | 32 | Payment Transaction Number |
userId | AN | 128 | QRIS User ID Hash |
shopId | AN | 32 | Shop Id |
Additional Parameter for Others Payment Method Notification
Parameter | Type | Size | Description |
---|---|---|---|
mitraCd | A | 4 | Mitra Code |
payNo | N | 12 | Payment Number |
payValidDt | N | 8 | Expiry Date (YYYYMMDD) |
payValidTm | N | 6 | Expiry Time (HH24MISS) |
receiptCode | ANS | 20 | Authorization number |
mRefNo | AN | 18 | Reference No. |
Nicepay Code
Field Type
Value Code | Meaning |
---|---|
A | Alphabet |
AN | Alphabet Numeric |
N | Numeric |
ANS | Alphabet Numeric Symbol |
AOO | Array of Object |
Installment Type
Value Code | Meaning |
---|---|
1 | Customer charge |
2 | Merchant charge |
Payment Method
Value Code | Meaning |
---|---|
01 | Credit Card |
02 | Virtual Account |
03 | CVS (Convenience Store) |
04 | ClickPay |
05 | E-Wallet |
06 | Payloan |
08 | QRIS |
09 | GPN Card |
Payment Status Code
Credit Card | Meaning |
---|---|
0 | Success |
1 | Failed |
2 | Void/Refund |
9 | Initialization / Reversal |
Virtual Account | Meaning |
---|---|
0 | Paid |
3 | Unpaid |
4 | Expired |
CVS | Meaning |
---|---|
0 | Paid |
3 | Unpaid |
4 | Expired |
5 | Ready to Paid (for Alfamart) |
E-Wallet OVO | Meaning |
---|---|
0 | Paid |
1 | Void |
8 | Fail |
9 | Init |
E-Wallet Shopeepay | Meaning |
---|---|
0 | Paid |
1 | Void |
2 | Refund |
3 | Unpaid |
4 | Processing |
5 | Expired |
8 | Fail |
9 | Init |
E-Wallet DANA | Meaning |
---|---|
0 | Paid |
1 | Void |
2 | Refund |
3 | Unpaid |
5 | Expired |
8 | Fail |
9 | Init |
E-Wallet Linkaja | Meaning |
---|---|
0 | Paid |
1 | Void |
2 | Refund |
3 | Unpaid |
8 | Fail |
9 | Init |
E-Wallet AstraPay | Meaning |
---|---|
0 | Paid |
3 | Unpaid |
8 | Fail |
Payloan | Meaning |
---|---|
0 | Paid |
1 | Void |
2 | Refund |
3 | Unpaid |
4 | Expired |
5 | Preauth |
8 | Fail |
9 | Init |
QRIS | Meaning |
---|---|
0 | Success |
1 | Void |
2 | Refund |
3 | Unpaid |
4 | Processing |
5 | Not Found |
6 | Payment Failed |
Notification Status Code
Value Code | Meaning |
---|---|
0 | Deposit |
1 | Reversal |
Notification Match Amount Indicator
Value Code | Meaning |
---|---|
1 | Match |
2 | Over |
3 | Under |
Cancel Type
Value Code | Meaning |
---|---|
1 | Full Cancellation |
2 | Partial Cancellation |
Bank Code
Value Code | Meaning |
---|---|
BMRI | Bank Mandiri |
IBBK | Bank International Indonesia Maybank |
BBBA | Bank Permata |
BBBB | Bank Permata Syariah |
CENA | Bank Central Asia |
BNIN | Bank Negara Indonesia 46 |
HNBN | Bank KEB Hana Indonesia |
BRIN | Bank Rakyat Indonesia |
BNIA | Bank PT. BANK CIMB NIAGA, TBK. |
BDIN | Bank PT. BANK DANAMON INDONESIA, TBK |
PDJB | Bank BJB |
YUDB | Bank BNC |
BDKI | Bank DKI |
OTHR | etc, unknown |
Mitra Code
Value Code | Meaning |
---|---|
ALMA | CVS Alfamart |
INDO | CVS Indomaret |
MDRC | ClickPay Mandiri |
BCAC | ClickPay BCA |
CIMC | ClickPay CIMB |
JENC | Jenius Pay |
MDRE | E-Wallet Mandiri |
BCAE | E-Wallet BCA(Sakuku) |
AKLP | Akulaku |
KDVI | Kredivo |
IDNA | Indodana |
OVOE | OVO |
LINK | LinkAja |
DANA | DANA |
ESHP | E-Wallet Shopeepay |
QSHP | QRIS ShopeePay |
Error Code
Value | Description |
---|---|
Common | |
0000 | Success |
1001 | Connection error |
1002 | Socket error |
1003 | Server error |
1004 | Timeout error |
9501 | Invalid transaction number. |
9502 | Transaction not allowed. |
9503 | It has been stopped or terminated in its stores. |
9504 | No offus information. |
9505 | No bank information. |
9506 | No Merchant Paymethod information. |
9507 | Http timeout exception. |
Order | |
8001 | Order registration error. |
8002 | Order inquiry error. |
8003 | Order registration data error. |
8004 | The tXid error during the order inquiry. |
8005 | OrderAuthType API Response data null. |
9001 | Failed to register your order. Please check your HTTP Message. |
9002 | Server is busy. Please kindly try again in few minutes. |
9003 | Invalid Order. |
9004 | Error on inquiry of order confirmation. |
9005 | Failed to check status. Please contact NICEPay for further information. |
9006 | Transaction number generated error. |
9007 | Undefined: Amount. Please check your request parameter and make sure [amt] is defined. |
9008 | Invalid Request Amount. Amount should only number and do not includes decimal. |
9009 | Reference Number already exist. Please generate unique [referenceNo]. |
9010 | Invalid Merchant Token. Contact NICEPay for further information. |
9011 | Invalid MID, Merchant is not registered. Contact NICEPay for further information. |
9012 | This Payment method is currently not activated. Contact Nicepay for further information. |
9013 | Undefined: Currency Code. Please check your request parameter and make sure [currencyCode] is defined. |
9014 | Undefined: Reference No. Please check your request parameter and make sure [referenceNo] is defined. |
9015 | Undefined: Goods Name. Please check your request parameter and make sure [goodsNm] is defined. |
9016 | Undefined: Buyer Name. Please check your request parameter and make sure [billingNm] is defined. |
9017 | Undefined: Buyer Phone Number. Please check your request parameter and make sure [billingPhone] is defined. |
9018 | Undefined: Buyer Email Address. Please check your request parameter and make sure [billingEmail] is defined. |
9019 | Undefined: Callback URL. Please check your request parameter and make sure [callbackUrl] is defined. |
9020 | Undefined: Debit Process URL. Please check your request parameter and make sure [dbProcessUrl] is defined. |
9021 | Failed in inquiring the criterion information (BO_MER_MGNT ORD_NO_DUP_CHK_FLG). |
9022 | Invalid Card Data. Please check [cartData] parameter, and make sure you send valid JSON format. |
9023 | Invalid Cart Data. Amount is different with Cart Data total amount. Please make sure [amt] = sum of [amt] in [cartData] |
9024 | Undefined: Customer IP Address. Please check your request parameter and make sure [userIP] is defined. |
9025 | Undefined: Buyer City. Please check your request parameter and make sure [billingCity] is defined. |
9026 | Undefined: Buyer State. Please check your request parameter and make sure [billingState] is defined. |
9027 | Undefined: Buyer Postal Code. Please check your request parameter and make sure [billingPostCd] is defined. |
9028 | Undefined: Buyer Country. Please check your request parameter and make sure [billingCountry] is defined. |
9029 | Installment is not available for defined month |
9030 | Transaction Fail. Please check information. |
9031 | Date/Time check. |
Card | |
8021 | Card authorization error. |
8022 | The tXid error during the card authorization. |
8023 | The tXid error during the card net cancel. |
8024 | The MID error during the card net cancel. |
8026 | Failed card VISA 3D. |
8027 | Invalid Parameter (PAN or expiry or country_code) |
8028 | Invalid Parameter (callbackUrl) |
8029 | Invalid Parameter (onePassToken) |
8030 | Not Support Keyin Payment. |
9101 | Server is busy. Please kindly try again in few minutes. |
9102 | Server is busy. Please kindly try again in few minutes. |
9103 | Error in inquiring card ledger. |
9104 | Server is busy. Please kindly try again in few minutes. |
9105 | Server is busy. Please kindly try again in few minutes. |
9106 | Transaction failed. |
9107 | Server is busy. Please kindly try again in few minutes. |
9108 | This Payment method is currently not activated. Contact Nicepay for further information. |
9109 | Reference Number Maximum Length Exceed. [referenceNo] should have maximum 40 characters length. |
9110 | Transaction failed. Please check card information and try again. |
9111 | Transaction failed. Please check card information and try again. |
9112 | Transaction failed. Please check card information and try again. |
9113 | Transaction failed. Please check card information and try again. |
9114 | MERCHANT_CARDINFO query error. |
9115 | Invalid Amount: too low. Please increase amount. |
9116 | Transaction already exist. Please make new transaction. |
9117 | 3D Secure Failed. Please kindly check your card data and try again. |
9118 | Invalid Installment Type. |
9119 | Transaction failed: Invalid Terminal ID or Merchant ID |
9120 | Transaction failed: Invalid Terminal ID or Merchant ID |
9121 | This Payment method is currently not activated. Contact Nicepay for further information. |
9122 | Transaction failed. Please check settlement interval. |
9123 | Transaction failed. Transaction limit reached. |
9124 | Invalid Amount: too low. Please increase amount. |
9125 | Transaction failed. Please check card information and try again. |
9126 | Transaction already approved. |
9127 | Transaction already exist. Please make new transaction. |
9128 | Transaction failed. Please check card information and try again. |
9129 | Transaction failed: Expired transaction. Please make new transaction. |
9130 | Forbidden. You do not have permission to access this resource. |
9131 | Invalid Token. Please check [onePassToken] parameter |
9132 | Transaction failed. Please check Risk Management. |
9133 | Email not sent. |
9134 | Card Recurring Token Failed. |
9135 | Card Recurring Auto Void Failed. |
9136 | Card Recurring Token Unregistraion Failed. |
9137 | Card MIGS Transaction Number not found. (queryDR, vpc_DRExists : N) |
9138 | Card MIGS SecureHash not match. |
9139 | Card MIGS Amount not match. |
9140 | Recurring Payment Parameter CVV code is mandatary. |
9141 | Recurring Payment AuthType is '1' or '2'. |
9142 | Cards issued overseas can not be paymented. |
9143 | Card PreAuth Token Failed. |
9144 | Card PreAuth Token Unregistraion Failed. |
9145 | capture amount must be less than pre-authorised amount. |
9146 | Failed to card token inquiry |
9147 | Invalid parameters. |
9148 | Recurring Token is only available for 3DS. |
9149 | Recurring Payment Use Check : Fail. |
9150 | Recurring Payment CVV Check : Fail. |
9151 | cardBin Information exist in blackList. |
9152 | FDS Check : high risk score. |
9153 | FDS Check : binCountry is not local card. |
9154 | card daily transaction limit count over. |
9155 | card daily transaction limit amount over. |
9156 | FDS Check : server communication error. |
9157 | There is no valid authentication data. Please make new transaction. |
9158 | Card Holder Name is Mandatory. |
9159 | Transaction failed. please contact merchant. |
9160 | Invalid expired date format YYMM |
9161 | Token not found |
9162 | FDS Check : binCountry is not permit to payment. |
00 | Successful approval/completion or that V.I.P. PIN verification is valid |
01 | Refer to card issuer |
02 | Refer to card issuer, special condition |
03 | Invalid merchant or service provider |
04 | Pickup card |
05 | Do not honor |
06 | General Error |
07 | Pickup card, special condition (other than lost/stolen card) |
08 | Honor with identification |
09 | Request in progress |
10 | Partial Approval |
11 | V.I.P. approval |
12 | Invalid transaction |
13 | Invalid amount (currency conversion field overflow) or amount exceeds maximum for card program |
14 | Invalid account number (no such number) |
15 | No such issuer |
16 | Insufficient funds |
17 | Customer cancellation |
19 | Re-enter transaction |
20 | Invalid response |
21 | No action taken (unable to back out prior transaction) |
22 | Suspected Malfunction |
25 | Unable to locate record in file, or account number is missing from the inquiry |
28 | File is temporarily unavailable |
30 | Format Error |
41 | Pickup card (lost card) |
43 | Pickup card (stolen card) |
51 | Insufficient funds |
52 | No checking account |
53 | No savings account |
54 | Expired card |
55 | Incorrect PIN |
57 | Transaction not permitted to cardholder |
58 | Transaction not allowed at terminal |
59 | Suspected fraud |
61 | Activity amount limit exceeded |
62 | Restricted card (for example, in Country Exclusion table) |
63 | Security violation |
65 | Activity count limit exceeded |
68 | Response received too late |
75 | Allowable number of PIN - entry tries exceeded |
76 | Unable to locate previous message (no match on Retrieval Reference number) |
77 | Previous message located for a repeat or reversal, but repeat or reversal data are inconsistent with original message |
78 | ’Blocked, first used’ - The transaction is from a new cardholder, and the card has not been properly unblocked. |
80 | Visa transactions: credit issuer unavailable. Private label and check acceptance: Invalid date |
81 | PIN cryptographic error found (error found by VIC security module during PIN decryption) |
82 | Negative CAM, dCVV, iCVV, or CVV results |
83 | Unable to verify PIN |
85 | No reason to decline a request for account number verification, address verification, CVV2 verification, or a credit voucher or merchandise return |
91 | Issuer unavailable or switch inoperative (STIP not applicable or available for this transaction) |
92 | Destination cannot be found for routing |
93 | Transaction cannot be completed, violation of law |
94 | Duplicate Transmission |
95 | Reconcile error |
96 | System malfunction, System malfunction or certain field error conditions |
B1 | Surcharge amount not permitted on Visa cards (U.S. acquirers only) |
N0 | Force STIP |
N3 | Cash service not available |
N4 | Cashback request exceeds issuer limit |
N7 | Decline for CVV2 failure |
P2 | Invalid biller information |
P5 | PIN Change/Unblock request declined |
P6 | Unsafe PIN |
Q1 | Card Authentication failed |
R0 | Stop Payment Order |
R1 | Revocation of Authorization Order |
R3 | Revocation of All Authorizations Order |
XA | Forward to issuer |
XD | Forward to issuer |
Z3 | Unable to go online |
C101 | Error setting mandatory fields, TRANSACTION_TYPE is empty! |
C102 | Invalid value for TRANSACTION_TYPE! Acceptable Value : QUERY=1, SALES=2, AUTHORIZED=3, CAPTURE=4 |
C103 | This transaction is not authorized, cannot proceed to be captured. |
C104 | Error setting mandatory fields, MERCHANT_ACC_NO is empty! |
C105 | Invalid MERCHANT_ACC_NO! Unable to find merchant with provided MERCHANT_ACC_NO. |
C106 | The status of this MERCHANT_ACC_NO is suspended! All transactions are not allowed temporary. Please check with administrator for the status. |
C107 | The status of this MERCHANT_ACC_NO is still pending and not yet activated. Please check with administrator for the status. |
C108 | The status of this MERCHANT_ACC_NO is invalid! Please check the merchant setting. |
C109 | The setting of this MERCHANT_ACC_NO does not allow the requested transaction type. Please check the merchant setting. |
C110 | The setting of this MERCHANT_ACC_NO do not allow transaction request from this IP address. Please checks the merchant allow IP setting. |
C111 | Error setting mandatory fields, AMOUNT is empty! |
C112 | Invalid value for AMOUNT |
C113 | Error setting mandatory fields, CARD_NO is empty! |
C114 | Error setting mandatory fields, CARD_EXP_MM is empty! |
C115 | Error setting mandatory fields, CARD_EXP_YY is empty! |
C116 | Error setting mandatory fields, CARD_CVC is empty! |
C117 | Invalid value for CARD_NO. CARD_NO must be numeric and with valid length! |
C118 | Invalid value for CARD_EXP_MM. CARD_EXP_MM must be numeric and with valid length! |
C119 | Invalid value for CARD_EXP_YY. CARD_EXP_YY must be numeric and with valid length! |
C120 | Invalid value for CARD_CVC. CARD_CVC must be numeric and with valid length! |
C121 | Invalid payment method. Please call bank to check Merchant Settings. |
C122 | Amount has been over transaction limit for today. Please call bank to check Merchant Settings. |
C123 | Transaction not permitted through this merchant type. Please call bank to check Merchant Settings. |
C124 | Undefined Error. Error Code:1024 |
C301 | Error setting mandatory fields, TRANSACTION_ID is empty! TRANSACTION_ID is required for CAPTURE transaction type |
C302 | Error setting mandatory fields, RETURN_URL is empty! |
C303 | Error setting mandatory fields, RESPONSE_TYPE is empty! |
C304 | Error setting mandatory fields, TXN_URL is Null for RESPONSE_TYPE using HTTP! |
C305 | Invalid value for RESPONSE_TYPE for non-3D transaction! Acceptable Value : HTTP, XML, PLAIN |
C306 | Error setting mandatory fields, TXN_SIGNATURE is empty! |
C307 | Invalid value for TXN_SIGNATURE! Computed signature does not match one included in the request. |
C308 | Invalid format for TXN_SIGNATURE! TXN_SIGNATURE must be length of 32, and in hexadecimal format. |
C309 | Unable to find the transaction record! |
C310 | MERCHANT_ACC_NO not matched with previous submitted transaction request! To capture/query previous transaction, please ensure the MERCHANT_ACC_NO is the same MERCHANT_ACC_NO submitted during previous transaction. |
C311 | AMOUNT not matched with previous submitted transaction request! To capture/query previous transaction, please ensure the AMOUNT is the same AMOUNT submitted during previous transaction. |
C312 | CUSTOMER_ID not matched with previous submitted transaction request! To capture/query previous transaction, if this field is being used, please ensure the CUSTOMER_ID is the same CUSTOMER_ID submitted during previous transaction. |
C313 | MERCHANT_TRANID not matched with previous submitted transaction request! To capture/query previous transaction, please ensure the MERCHANT_TRANID is the same MERCHANT_TRANID submitted during previous transaction. |
C314 | Insecure mode for RETURN_URL. Please specify an URL which uses HTTPS protocol! |
C315 | Insecure mode for TXN_URL. Please specify an URL which uses HTTPS protocol! |
C401 | Error setting mandatory fields, CARD_HOLDER_NAME is empty! |
C402 | Error setting mandatory fields, MERCHANT_TRANID is empty! |
C403 | Duplicate MERCHANT_TRANID detected! Please ensure the MERCHANT_TRANID is always unique. |
C404 | Error setting mandatory fields, TXN_DESC is empty! |
C405 | Error setting mandatory fields for 3D transaction, MPI_CODE is empty! |
C406 | Error setting mandatory fields for 3D transaction, MPI_CAVV is empty! |
C407 | Error setting mandatory fields for 3D transaction, MPI_CAVV_ALG is empty! |
C408 | Error setting mandatory fields for 3D transaction, MPI_ECI is empty! |
C409 | Error setting mandatory fields for 3D transaction, MPI_MSG is empty! |
C501 | Error setting mandatory fields for fraud risk detection, FR_HIGHRISK_EMAIL is empty! |
C502 | Error setting mandatory fields for fraud risk detection, FR_HIGHRISK_COUNTRY is empty! |
C503 | Error setting mandatory fields for fraud risk detection, FR_BILLING_ADDRESS is empty! |
C504 | Error setting mandatory fields for fraud risk detection, FR_SHIPPING_ADDRESS is empty! |
C505 | Error setting mandatory fields for fraud risk detection, FR_SHIPPING_COST is empty! |
C506 | Error setting mandatory fields for fraud risk detection, CUSTOMER_IP is empty! |
C507 | Error setting mandatory fields for fraud risk detection, FR_PURCHASE_HOUR is empty! |
C508 | Transaction was blocked due to fraud level exceeded threshold limit. |
C509 | Transaction was blocked due to blacklisted card detected. |
C601 | Unable to get connection to MPI Server! |
C602 | Time out occurred during communication with MPI Server! |
C603 | Unable to update MPI Ref. No in system. Please try again. |
C604 | There was an error occurred during 3D authentication with MPI. Please check logs for details. |
C605 | Invalid message or response received from MPI. Please try again. |
C606 | MPI Settings are not configured correctly. Please check MPI_HOST and MPI_PORT in system configuration. |
C607 | Error occurred when trying to display ACS Form in web browser for 3D authentication. Please try again. |
C608 | Problem occurred on MPI side, cannot proceed to display ACS Form. Please check MPI message or try again. |
C609 | Unable to locate back transaction to update system after 3-D authentication process. Please try again. |
C610 | Empty response received from MPI, please try again. |
C611 | MPI Code received is not allowed to proceed to process the transaction. |
C612 | Transaction was aborted because 3-D authentication process is not completed. |
C613 | Attempted duplicate submission of 3-D authentication result. Please try with new transaction. |
C614 | MALL NAME is required for 3-D transaction. Please call bank to check Merchant Settings. |
C615 | MALL URL is required for 3-D transaction. Please call bank to check Merchant Settings. |
C616 | Invalid value for RESPONSE_TYPE for 3D transaction! Acceptable Value : HTTP only |
C801 | This MERCHANT_ACC_NO is not authorized to proceed with this transaction via website! Please check the merchant setting. |
C802 | This MERCHANT_ACC_NO is not authorized to proceed with this transaction via batch upload! Please check the merchant setting. |
C803 | Exception while query Payment Server! |
C804 | Exception while checking for fraud risk! |
C999 | Internal Exception. Please call bank to report. |
C988 | Server Time Out Exception. |
C977 | Bank Connection Error! |
C966 | Reply from bank is empty/incorrect! |
C967 | Bank rejected transaction! |
C955 | Error when trying to insert transaction table. Transaction ID is empty! |
C933 | Server interruption occurred during processing. Manual checking required. Please inform Administrator. |
C935 | Cancel payment by customer. |
C937 | Insufficient point to redeem in cardholder's account. Please enter another card number. |
1 | Transaction could not be processed |
2 | Transaction Declined - Contact Issuing Bank |
3 | Transaction Declined- No reply from Bank |
4 | Transaction Declined - Expired Card |
5 | Transaction Declined - Insufficient credit |
6 | Transaction Declined - Bank system error |
7 | Payment Server Processing Error - Typically caused by invalid input data such as an invalid credit card number. Processing errors can also occur. (This is only relevant for Payment Servers that enforce the uniqueness of this field) Processing errors can also occur. |
8 | Transaction Declined - Transaction Type Not Supported |
9 | Bank Declined Transaction (Do not contact Bank) |
A | Transaction Aborted |
B | Transaction Blocked - Returned |
C | Transaction Cancelled |
D | Deferred Transaction |
E | Transaction Declined - Refer to card issuer |
F | 3D Secure Authentication Failed |
I | Card Security Code Failed |
L | Shopping Transaction Locked (This indicates that there is another transaction taking place using the same shopping transaction number) |
N | Cardholder is not enrolled in 3D Secure (Authentication Only) |
P | Transaction is Pending |
R | Retry Limits Exceeded, Transaction Not Processed |
T | Address Verification Failed |
U | Card Security Code Failed |
V | Address Verification and Card Security Code Failed |
Virtual Account | |
8041 | Virtual account registration error. |
8042 | The tXid error during the vertual account registration. |
8045 | requestVacctCustomerInquiryAPI is null. |
9201 | Server is busy. Please kindly try again in few minutes. |
9202 | Server is busy. Please kindly try again in few minutes. |
9203 | Failed to generate virtual account. Pool is empty or reached maximum. |
9204 | Server is busy. Please kindly try again in few minutes. |
9205 | Failed to generate virtual account. Invalid Virtual Account. |
9206 | Server is busy. Please kindly try again in few minutes. |
9207 | Reference Number Maximum Length Exceed. [referenceNo] should have maximum 40 characters length. |
9208 | Error in non-usage of criterion information. |
9209 | the payment amount is too small. |
9210 | Error in expiration date of deposit, expiration time for deposit, and inclusion of letters. |
9211 | Expiration date and time for deposit length is not valid. |
9212 | Error of check for merchant ID, payment method. |
9213 | TB_TRANS_HISTORY registration error. |
9214 | Failed in inquiring settlement interval. |
9215 | Order number redundancy check (TB_MOID_VERIFY) updates error. |
9216 | Virtual account failure ledger (TB_VACCT_FAIL) registration error. |
9217 | Order number redundancy check (TB_MOID_VERIFY) delete error. |
9218 | Virtual account ledger inquiry failure. |
9219 | Server is busy. Please kindly try again in few minutes. |
9220 | Server is busy. Please kindly try again in few minutes. |
9221 | Error in non-usage of criterion information(VACCT_SET). |
9222 | Error in non-usage of criterion information(VACCT_CONT). |
9223 | Invalid customer id. |
9224 | Error of check for customerId. |
9225 | Invalid Merchant Token. Contact NICEPay for further information. |
9226 | VacctNo is exceeded limit digit. |
9227 | DB insert error. |
9228 | Transaction not found. |
9229 | Fix account accountType error. |
9230 | Not exist customerId. |
9231 | Data is null error. |
9232 | iMid is exist. |
9233 | vacctNo is duplicate. |
9234 | customerId already exist. |
9235 | Invalid customer name. |
9236 | Try check date. |
9237 | Invalid BankCd. |
Cancel | |
8061 | Full canceled error. |
8062 | Partial cancled error. |
8063 | The MID error during the full cancel. |
8064 | The tXID error during the full cancel. |
8065 | The MID error during the partial cancel. |
8066 | The tXID error during the partial cancel. |
8067 | The amount error during the partial cancel. |
8090 | Net canceled error. |
9301 | Invalid Cancel Type. |
9302 | Server is busy. Please kindly try again in few minutes. |
9303 | Server is busy. Please kindly try again in few minutes. |
9304 | TB_TRANS_HISTORY update error. |
9305 | Ledger card registration error. |
9306 | Ledger partial cancel registration error. |
9307 | Cards query error. |
9308 | Database connection error. |
9309 | Bank connection error. |
9310 | TB_TRANS HISTORY registration error. |
9311 | Transaction number generated error. |
9312 | No cancellation amount or cancellation amount includes the letter. |
9313 | Partial cancellation is only possible mandiri. |
9314 | Can not cancel your request transaction number. |
9315 | Cancel Ledger duplicate registration error. |
9316 | Bank code duplication errors. |
9317 | Bank Mandiri is available once a partial canceled. |
9318 | Virtual account can not request to cancel. |
9319 | The amount you entered is larger than the amount you want to cancel. |
9320 | Can not cancel the entire data already partially canceled. |
9321 | Please fill in the requested amount greater than zero. |
9322 | Merchant infomaition(CARD_BIN) query fail. |
9323 | Merchant infomaition(Merchant_INFO) query fail. |
9324 | MERCHANT_CARDINFO query error. |
9325 | B_MID,B_TID query error. |
9326 | It can not be canceled after purchase. |
9327 | It can not be partial cancelation before purchase. |
9328 | The information can not be canceled (Void Risk Check). |
9329 | The information can not be partial cancelation (Void Risk Check). |
9330 | Virtual account deposit has been completed can not be canceled. |
9331 | The merchant can not be canceled. |
9332 | The merchant can not be partial cancellation. |
9333 | The merchant can not be cancellation. (Debt cancellation prevent restrictions) |
9334 | Cancellation period exceeds(limit 90 days). |
One Pass | |
8200 | One Pass inquiry error. |
8201 | OnePass Token Duplicate. |
8202 | OnePass Invalid Amount. |
CVS | |
9501 | Server is busy. Please kindly try again in few minutes. |
9502 | Server is busy. Please kindly try again in few minutes. |
9503 | Failed to generate CVS Number. Pool is empty or reached maximum. |
9504 | Server is busy. Please kindly try again in few minutes. |
9505 | Failed to generate virtual account. Invalid CVS. |
9506 | Server is busy. Please kindly try again in few minutes. |
9507 | Reference Number Maximum Length Exceed. [referenceNo] should have maximum 40 characters length. |
9508 | Error in non-usage of criterion information. |
9509 | the payment amount is too small. |
9510 | Error in expiration date of deposit, expiration time for deposit, and inclusion of letters. |
9511 | Expiration date and time for deposit length is not valid. |
9512 | Error of check for merchant ID, payment method. |
9513 | TB_TRANS_HISTORY registration error. |
9514 | Failed in inquiring settlement interval. |
9515 | Order number redundancy check (TB_MOID_VERIFY) updates error. |
9516 | CVS NUmber failure ledger (TB_CVS_FAIL) registration error. |
9517 | Order number redundancy check (TB_MOID_VERIFY) delete error. |
9518 | CVS ledger inquiry failure. |
9519 | Server is busy. Please kindly try again in few minutes. |
9520 | Server is busy. Please kindly try again in few minutes. |
9521 | Error in non-usage of criterion information(CVS_SET). |
9522 | Error in non-usage of criterion information(MITRA_CONT). |
9523 | Invalid customer id. |
9524 | Error of check for customerId. |
9525 | Invalid Merchant Token. Contact NICEPay for further information. |
9526 | CVS Number is exceeded limit digit. |
9527 | DB insert error. |
9528 | Transaction not found. |
9529 | Fix account accountType error. |
9530 | Not exist customerId. |
9531 | Data is null error. |
9532 | iMid is exist. |
9533 | CVS Number is duplicate. |
9534 | customerId already exist. |
9535 | Invalid customer name. |
9536 | Try check date. |
EWALLET | |
9750 | E-Wallet Generate ID Fail. |
9751 | Invalid Parameter. |
9752 | E-Wallet Payment Fail. |
CLICKPAY | |
9801 | Internal system error |
9802 | Invalid parameter |
9803 | User registration error |
9804 | Invalid Token |
9805 | Invalid Card Number |
9806 | Transaction Payment Fail |
9807 | Transaction Reversal Fail |
9808 | TXID is duplicate |
9809 | Failed in inquiring settlement interval |
9810 | Other error |
CIMB Error Code
Value | Description |
---|---|
0 | APPROVED OR COMPLETED |
1001 | Error setting mandatory fields, TRANSACTION_TYPE is empty! |
1002 | Invalid value for TRANSACTION_TYPE! Acceptable Value : QUERY=1, SALES=2, AUTHORIZED=3, CAPTURE=4 |
1003 | This transaction is not authorized, cannot proceed to be captured. |
1004 | Error setting mandatory fields, MERCHANT_ACC_NO is empty! |
1005 | Invalid MERCHANT_ACC_NO! Unable to find merchant with provided MERCHANT_ACC_NO. |
1006 | The status of this MERCHANT_ACC_NO is suspended! All transactions are not allowed temporary. Please check with administrator for the status. |
1007 | The status of this MERCHANT_ACC_NO is still pending and not yet activated. Please check with administrator for the status. |
1008 | The status of this MERCHANT_ACC_NO is invalid! Please check the merchant setting. |
1009 | The setting of this MERCHANT_ACC_NO does not allow the requested transaction type. Please check the merchant setting. |
1010 | The setting of this MERCHANT_ACC_NO do not allow transaction request from this IP address. Please checks the merchant allow IP setting. |
1011 | Error setting mandatory fields, AMOUNT is empty! |
1012 | Invalid value for AMOUNT |
1013 | Error setting mandatory fields, CARD_NO is empty! |
1014 | Error setting mandatory fields, CARD_EXP_MM is empty! |
1015 | Error setting mandatory fields, CARD_EXP_YY is empty! |
1016 | Error setting mandatory fields, CARD_CVC is empty! |
1017 | Invalid value for CARD_NO. CARD_NO must be numeric and with valid length! |
1018 | Invalid value for CARD_EXP_MM. CARD_EXP_MM must be numeric and with valid length! |
1019 | Invalid value for CARD_EXP_YY. CARD_EXP_YY must be numeric and with valid length! |
1020 | Invalid value for CARD_CVC. CARD_CVC must be numeric and with valid length! |
1021 | Invalid payment method. Please call bank to check Merchant Settings. |
1022 | Amount has been over transaction limit for today. Please call bank to check Merchant Settings. |
1023 | Transaction not permitted through this merchant type. Please call bank to check Merchant Settings. |
1024 | Undefined Error. Error Code:1024 |
3001 | Error setting mandatory fields, TRANSACTION_ID is empty! TRANSACTION_ID is required for CAPTURE transaction type |
3002 | Error setting mandatory fields, RETURN_URL is empty! |
3003 | Error setting mandatory fields, RESPONSE_TYPE is empty! |
3004 | Error setting mandatory fields, TXN_URL is Null for RESPONSE_TYPE using HTTP! |
3005 | Invalid value for RESPONSE_TYPE for non-3D transaction! Acceptable Value : HTTP, XML, PLAIN |
3006 | Error setting mandatory fields, TXN_SIGNATURE is empty! |
3007 | Invalid value for TXN_SIGNATURE! Computed signature does not match one included in the request. |
3008 | Invalid format for TXN_SIGNATURE! TXN_SIGNATURE must be length of 32, and in hexadecimal format. |
3009 | Unable to find the transaction record! |
3010 | MERCHANT_ACC_NO not matched with previous submitted transaction request! To capture/query previous transaction, please ensure the MERCHANT_ACC_NO is the same MERCHANT_ACC_NO submitted during previous transaction. |
3011 | AMOUNT not matched with previous submitted transaction request! To capture/query previous transaction, please ensure the AMOUNT is the same AMOUNT submitted during previous transaction. |
3012 | CUSTOMER_ID not matched with previous submitted transaction request! To capture/query previous transaction, if this field is being used, please ensure the CUSTOMER_ID is the same CUSTOMER_ID submitted during previous transaction. |
3013 | MERCHANT_TRANID not matched with previous submitted transaction request! To capture/query previous transaction, please ensure the MERCHANT_TRANID is the same MERCHANT_TRANID submitted during previous transaction. |
3014 | Insecure mode for RETURN_URL. Please specify an URL which uses HTTPS protocol! |
3015 | Insecure mode for TXN_URL. Please specify an URL which uses HTTPS protocol! |
4001 | Error setting mandatory fields, CARD_HOLDER_NAME is empty! |
4002 | Error setting mandatory fields, MERCHANT_TRANID is empty! |
4003 | Duplicate MERCHANT_TRANID detected! Please ensure the MERCHANT_TRANID is always unique. |
4004 | Error setting mandatory fields, TXN_DESC is empty! |
4005 | Error setting mandatory fields for 3D transaction, MPI_CODE is empty! |
4006 | Error setting mandatory fields for 3D transaction, MPI_CAVV is empty! |
4007 | Error setting mandatory fields for 3D transaction, MPI_CAVV_ALG is empty! |
4008 | Error setting mandatory fields for 3D transaction, MPI_ECI is empty! |
4009 | Error setting mandatory fields for 3D transaction, MPI_MSG is empty! |
5001 | Error setting mandatory fields for fraud risk detection, FR_HIGHRISK_EMAIL is empty! |
5002 | Error setting mandatory fields for fraud risk detection, FR_HIGHRISK_COUNTRY is empty! |
5003 | Error setting mandatory fields for fraud risk detection, FR_BILLING_ADDRESS is empty! |
5004 | Error setting mandatory fields for fraud risk detection, FR_SHIPPING_ADDRESS is empty! |
5005 | Error setting mandatory fields for fraud risk detection, FR_SHIPPING_COST is empty! |
5006 | Error setting mandatory fields for fraud risk detection, CUSTOMER_IP is empty! |
5007 | Error setting mandatory fields for fraud risk detection, FR_PURCHASE_HOUR is empty! |
5008 | Transaction was blocked due to fraud level exceeded threshold limit. |
5009 | Transaction was blocked due to blacklisted card detected. |
6001 | Unable to get connection to MPI Server! |
6002 | Time out occurred during communication with MPI Server! |
6003 | Unable to update MPI Ref. No in system. Please try again. |
6004 | There was an error occurred during 3D authentication with MPI. Please check logs for details. |
6005 | Invalid message or response received from MPI. Please try again. |
6006 | MPI Settings are not configured correctly. Please check MPI_HOST and MPI_PORT in system configuration. |
6007 | Error occurred when trying to display ACS Form in web browser for 3D authentication. Please try again. |
6008 | Problem occurred on MPI side, cannot proceed to display ACS Form. Please check MPI message or try again. |
6009 | Unable to locate back transaction to update system after 3-D authentication process. Please try again. |
6010 | Empty response received from MPI, please try again. |
6011 | MPI Code received is not allowed to proceed to process the transaction. |
6012 | Transaction was aborted because 3-D authentication process is not completed. |
6013 | Attempted duplicate submission of 3-D authentication result. Please try with new transaction. |
6014 | MALL NAME is required for 3-D transaction. Please call bank to check Merchant Settings. |
6015 | MALL URL is required for 3-D transaction. Please call bank to check Merchant Settings. |
6016 | Invalid value for RESPONSE_TYPE for 3D transaction! Acceptable Value : HTTP only |
8001 | This MERCHANT_ACC_NO is not authorized to proceed with this transaction via website! Please check the merchant setting. |
8002 | This MERCHANT_ACC_NO is not authorized to proceed with this transaction via batch upload! Please check the merchant setting. |
8003 | Exception while query Payment Server! |
8004 | Exception while checking for fraud risk! |
9999 | Internal Exception. Please call bank to report. |
9988 | Server Time Out Exception. |
9977 | Bank Connection Error! |
9966 | Reply from bank is empty/incorrect! |
9967 | Bank rejected transaction! |
9955 | Error when trying to insert transaction table. Transaction ID is empty! |
9933 | Server interruption occurred during processing. Manual checking required. Please inform Administrator. |
9935 | Cancel payment by customer. |
9937 | Insufficient point to redeem in cardholder's account. Please enter another card number. |
F.A.Q
Q | What is the callback URL? |
> Answer | Callback URL is a URL that accepts the response data from NICEPAY. |
Q | What is the dbprocess URL? |
> Answer | DbProcess URL is a URL that is provided to receive and process Notifications. |
Q | Can merchant check payment status? |
> Answer | Yes, NICEPAY provides Status Inquiry API. |
Q | Can merchants use provided testing Merchant ID and Merchant Key to test in the Live Environment? |
> Answer | Yes, Merchant ID & Merchant Key provided for testing can be used in the Live Environment. |
Q | What merchant must do if customer payment has been rejected? |
> Answer | First, merchant can check Virtual Account Number, Expiry payment, and payment amount and match it with the invoice. If it is correct, and the payment was rejected, please use another payment channel, for example, initially customer make a payment at ATM and the result was rejected, please make payments with another channel options, such as; Mobile Banking. In case of rejection after changing a channel of payment, please contact NICEPAY Customer Service. |
Q | What if the customer has successfully pay the transaction, but they have not receive any email? |
> Answer | Normally, customer will receive a confirmation email within a maximum of 5 minutes. If customer do not receive a payment confirmation email within 5 minutes, please send an email to customer service along with proof of payment. |
Have any inquiry ?
Feel free contact us : [email protected].
Changelog
2.75
Add API E-wallet AstraPay
2.74
General info RecurringToken & PreauthToken Live integration check
2.73
add Handler Flow
2.72
06 Juni 2022
Add BankCd DKI
2.71
26 April 2022
- Update Guide Flow V1 Prof & CC Ent
- Update Guide Flow CC V2 Prof & Ent
2.70
23 Maret 2022
- New Page for API V2 Professional
- Fix : Remove mitraCd sample POST for Notification
- Fix : Remove Scroll bar in Page API V1 Professional and Enterprise
2.69
15 Maret 2022
- Add GPN payment method (09)
2.68
21 Januari 2022
- Update sample response Credit Card to callBackurl with parameter on V2 direct
2.67
20 Januari 2022
- add bank code BNC
- add parameter sellersUrl
- add flow ShopeePay and flow Indodana v2 direct
2.66
7 April 2021
- Add response parameter cancelReferenceNo Optional For CC, on V2 Cancel
- Fix: Parameter returnJsonFormat Optional For Shopeepay to get URL redirect Shopeepay
- Fix: Sample JSON Request and Response for QRIS Registration, on V1 direct
2.65
30 Maret 2021
- Add Request Parameters Required For Indodana, on V2 direct
- Add Indodana Mitra Code
- Fix: Sample JSON Request and Response for Payloan Registration, on V2 direct
- Fix: E-Wallet Status Code
2.64
19 Maret 2021
- Add Request Parameters Required For E-Wallet Shopeepay, on V1
- Add Request Parameters Required For E-Wallet Shopeepay, on V2 direct
- Fix: Sample JSON Request and Response for E-Wallet Registration, on V2 direct
2.63
10 Maret 2021
- Add Request Parameters Required For Jenius Pay, on V1
- Add Jenius option on payment page, on V1 Professional
2.62
3 Maret 2021
- Add Request Parameters Required For Jenius Pay, on V2
- Add Jenius Pay Mitra Code
- Fix: Sample JSON Request and Response for ClickPay Registration, on V2
2.61
2 December 2020
- Fix typo on payloan data V2.
- Fix: Request and Response type on Ewallet V1 Enterprise, from JSON to POST Parameter.
- Fix typo on ewallet data V2
2.60
5 November 2020
- Fix Permata Syariah Bank Code
- Add E-Wallet Status Code
- Add Payloan Status Code
- Fix QRIS Status Code
- Add Payment Response/Callback Parameter to V1 Professional
2.57
26 October 2020
- Fix Sample POST Parameter Request for Payloan
- Fix Request Method for Payloan
2.56
7 October 2020
- Add QRIS Documentation
- Update response parameter Registration
- Add parameter required for QRIS
2.55
18 September 2020
- Added Permata Syariah as Supported Bank
- Added ShopeePay as Supported Mitra
- Added DANA as Supported Mitra
- Added Details: LinkAja does not support special characters on cartData
- Update Sample Payload for V2 APIs
- Changed wording JSON OBJECT to JSON STRING for cartData
- Update New Parameters for API V2 Register for QRIS
- Fix API URL for Akulaku Confirm Receipt
- Fix wrong VA API V2 Diagram Flow
- Fix Details: API V2 Payment callBack does not use String Query but POST Parameter
2.51
4 June 2020
- Fix userAgent Requirement for CC
- Fix Seller and cartData for E-Wallet
- Remove Unused JSON Button
2.50
4 June 2020
- Online Docs UI and UX Update
- Update E-Wallet Documentation
- Update Payloan Documentation
- Minor Fixes on Parameter Length and Type
- Add Git Link for Plugins and Libraries
- Update New POSTMAN Collection
2.15
17 May 2018
- Update card error code
2.13
14 May 2018
- Add parameter payment API timeStamp, merchantToken
2.12
18 April 2018
- Update Error Code
2.07
01 February 2018
- Add parameter CardHolderNm on Payment API
2.06
01 january 2018
- Add parameter fee on Payment, Notification, and Inquiry
2.05
15 December 2017
- Update Error Code
2.04
14 November 2017
- Change url from WWW to API
2.03
10 October 2017
- Add parameter cardExpYymm on Payment, Notification, and Inquiry API
2.02
10 July 2017
- Update Registration API
- Update Notification API
- Update Inquiry API
- Update Credit Card Installation information API
2.01
10 July 2017
- Add parameter Timestamp
2.00
06 July 2017
- Initial Release API Version 2
1.18.9
18 April 2018
- Update Error Code
1.18.5
1 February 2018
- Add parameter cardHolderNm on Payment API
1.17.2
29 Mar 2017
- Add ClickPay Payment
1.17.1
24 Mar 2017
- Add card installment API
- Add notification parameter