Recurring - Registration API Credit Card
About Recurring - Registration API Credit Card
Recurring payment type is a payment type option using Credit Card to perform periodic payments for a bill with the same amount as the bill amount from the initial payment.
API used on the registration stage is similar to the API for registering the Full Payment & Installment type, however, there are several differences on the sent parameter request.
Learn about the Credit Card Payment feature with the Recurring Credit Card Feature.
Please visit Credit Card page to learn common information related to Credit Card.
Recurring - Registration API Credit Card
API URL | /nicepay/direct/v2/registration |
|---|---|
Request Method | POST |
Description | Recurring |
Merchant Token | SHA256(timeStamp+iMid+referenceNo+amt+merchantKey) |
Request Format | application/json |
Request Parameter for Recurring - Registration API Credit Card
This following is a list of parameters to do recurring integration process for Credit Card payment method.
Parameter | Type | Size | Description | Example / Notes |
|---|---|---|---|---|
timeStamp Required | N | 14 | Request Timestamp (YYYYMMDDHH24MISS) | 20221202141217 |
iMid Required | AN | 10 | Merchant ID | IONPAYTEST |
payMethod Required | N | 2 | 01 (Credit Card) | |
currency Required | A | 3 | Currency | IDR |
amt Required | N | 12 | Amount (number not in float format) | 10000 (Sum amount total goods from cartData) |
referenceNo Required | ANS | 40 | Merchant's Reference Number | ordNo20221202141217 |
goodsNm Required | AN | 100 | Goods Name | Testing Transaction |
billingNm Required | A | 100 | Buyer Name | John Doe |
billingPhone Required | N | 15 | Buyer Phone Number | 2112345678 |
billingEmail Required | ANS | 40 | Buyer E-mail | |
billingAddr Required | AN | 100 | Buyer Address | Jln. Raya Kasablanka Kav.88 |
billingCity Required | A | 50 | Buyer City | South Jakarta |
billingState Required | A | 50 | Billing State | DKI Jakarta |
billingPostCd Required | N | 10 | Billing Post Number | 14350 |
billingCountry Required | A | 10 | Billing Country | Indonesia |
cartData Optional | JSONstring | 4000 | Cart Data | {} |
instmntType Required | N | 2 | 1 (For PreAuth & Recurring default 1) | |
instmntMon Required | N | 2 | Installment Month 1: 1 Month/Full Payment, ifinstmntType: null/1 | 1 (For PreAuth & Recurring default 1) |
recurrOpt Required | N | 2 | 0: Automatic Cancel 1: Do not cancel 2: Do not make token | 2 |
dbProcessUrl Required | ANS | 255 | Notification URL | https://merchant.com/dbProcessUrl |
userIP Required for CC, E-Wallet, Payloan, QRIS | AN | 15 | User IP | 127.0.0.1 |
merchantToken Required | AN | 255 | Merchant Token | c91e6531f6c84869439bc5ebe5389bd71e7752c054fc9dbfe193d087a1b797ae |
description | AN | 100 | Transaction Description | Test Transaction |
userSessionID | AN | 100 | User Session ID | userSessionID |
userAgent | ANS | 100 | User Agent | Mozilla |
userLanguage | A | 2 | User Language | en-US |
Cart Data for Full Payment & Installment - Registration API Credit Card
cartData on request parameter at Credit Card Registration uses to cover the goods or items will be paid to Your Customer including the item detail and each item price.
Parameter | Description | Example |
|---|---|---|
Count | Total sum from the whole cart data | 2 |
Item | Divide into 5 types of parameter such as img_url, goods_id, goods_name, goods_detail and goods_amt | - |
Detail explaination on Item parameter.
Parameter | Description | Example |
|---|---|---|
img_url | URL Item Picture (Size 50px x 50px) | htttps://www.merchant.com/image_goods1.jpg |
goods_id | Item ID | NICEPRDID1 |
goods_name | Item Name | Nama Item-1 |
goods_detail | Item Detail Description | Detail Item-1 |
goods_amt | Item Price | 1000 |
Sample JSON Cart Data
{
"count": "2",
"item": [
{
"img_url": "http://www.merchant.com/image_goods1.jpg",
"goods_id": "NICEPRDID1",
"goods_name": "Item 1 Name",
"goods_detail": "Item 1 Detail",
"goods_amt": "1000"
},
{
"img_url": "http://www.merchant.com/image_goods2.jpg",
"goods_id": "NICEPRDID1",
"goods_name": "Item 2 Name",
"goods_detail": "Item 2 Detail",
"goods_amt": "1000"
}
]
}
Response Parameter for Recurring - Registration API Credit Card
Following is the response parameter from the request parameter result for the recurring integration process on Credit Card .
Parameter | Type | Size | Description | Example / Notes |
|---|---|---|---|---|
resultCd | N | 4 | Result Code | 0000 |
resultMsg | AN | 255 | Result Message: Error Code | SUCCESS |
tXid | AN | 30 | Transaction ID | IONPAYTEST01202212151029182023 |
referenceNo | ANS | 40 | Merchant Reference Number | ordNo20221215101254 |
payMethod | N | 2 | 01 | |
amt | N | 12 | Payment Amount | 10000 |
transDt | N | 8 | Transaction Date (YYYYMMDD) | 20221212 |
transTm | N | 6 | Transction Time (HH24MISS) | 121212 |
description | AN | 100 | Transaction Description | Testing Transaction Credit Card |
bankCd | A | 4 | Bank Code | null |
vacctNo | N | 20 | Virtual Account | null |
mitraCd | A | 4 | Mitra Code | null |
payNo | N | 12 | CVS Payment Number | null |
currency | A | 3 | Currency | IDR |
goodsNm | AN | 100 | Goods Name | Goods For Testing Transaction |
billingNm | A | 100 | Buyer Name | John Doe |
vacctValidDt | N | 8 | VA Expiry Date (YYYYMMDD) | null |
vacctValidTm | N | 6 | VA Expiry Time (HH24MISS) | null |
payValidDt | N | 8 | Expiry Date (YYYYMMDD) | null |
payValidTm | N | 6 | Expiry Time (HH24MISS) | null |
requestURL | ANS | 360 | Request URL | null |
paymentExpDt | N | 6 | QR Payment Expiry Date (YYYYMMDD) | null |
paymentExpTm | N | 6 | QR Payment Expiry Time (HH24MISS) | null |
qrContent | ANS | 360 | QR String in Plain Text | null |
qrUrl | ANS | 360 | URL for QR Image, Valid for 5 minutes | null |
Sample Parameter for Recurring - Registration API Credit Card
Request Parameter
string merchantKey = config.MerKey;
string clientId = config.ClientId;
string timestamp = "20221213101276";
string refNo = "ordNo20221213101276";
string amount = "5000";
bool isProduction = false;
bool isCloudServer = false;
// 1️⃣ Generate merchant token
var merchantTokenBuilder = new MerchantTokenBuilder()
.SetTimeStamp(timestamp)
.SetIMid(clientId)
.SetRefNo(refNo)
.SetAmount(amount)
.SetMerchantKey(merchantKey);
string merchantToken = merchantTokenBuilder.BuildMerchantToken();
// 2️⃣ Build Cart Data
var cartItem = new Dictionary<string, object>
{
{"goods_id", "IONPAYTESTPRD1"},
{ "img_url", "http://www.merchant.com/image_goods1.jpg" },
{ "goods_name", "Goods For Testing" },
{ "goods_detail", "Goods For Testing Details" },
{ "goods_amt", "5000" }
};
var cartDataBuilder = new BuilderCartData()
.SetCount("1")
.SetItem(cartItem);
var cartData = cartDataBuilder.Build();
// 3️⃣ Build Credit Card Request Body
var bodyBuilder = new NicepayRequestBuilder()
.SetCommonFields(
iMid: "RECURRTEST",
timeStamp: timestamp,
payMethod: "01",
currency: "IDR",
amt: amount,
referenceNo: refNo,
goodsNm: "Goods For Testing",
merchantToken: merchantToken
)
.setCreditCard(
instmntType: "1",
instmntMon: "1",
recurrOpt: ""
)
.SetBillingInfo(
billingNm: "John Doe",
billingPhone: "081288998899",
billingEmail: "[email protected]",
billingAddr: "Jln. Raya Kasablanka Kav.88",
billingCity: "South Jakarta",
billingState: "DKI Jakarta",
billingPostCd: "12800",
billingCountry: "Indonesia"
)
.SetDbProcessUrl("http://ptsv2.com/t/merchant/post")
.SetCartData(cartData)
.SetUserIP("127.0.0.1")
.SetUserLanguage("en")
.SetUserAgent("Mozilla/5.0 (Windows NT 6.1; Win64; x64; rv:47.0) Gecko/20100101 Firefox/47.0");
ApiEndpoints apiEndpoints = new ApiEndpoints();
// 4️⃣ Build payload and send
Dictionary<string, object> payload = bodyBuilder.Build();
string jsonPayload = Newtonsoft.Json.JsonConvert.SerializeObject(payload, Newtonsoft.Json.Formatting.Indented);
var registrationService = new NicepayRegistrationService(apiEndpoints, isProduction, isCloudServer);
var result = await registrationService.SendPostAsync(apiEndpoints.RegistV2, payload);
Response Parameter
{
"resultCd": "0000",
"resultMsg": "SUCCESS",
"tXid": "RECURRTEST01202510081035159576",
"referenceNo": "ordNo20221213101276",
"payMethod": "01",
"amt": "5000",
"transDt": "20251008",
"transTm": "103515",
"description": null,
"bankCd": null,
"vacctNo": null,
"mitraCd": null,
"payNo": null,
"currency": null,
"goodsNm": null,
"billingNm": null,
"vacctValidDt": null,
"vacctValidTm": null,
"payValidDt": null,
"payValidTm": null,
"requestURL": null,
"paymentExpDt": null,
"paymentExpTm": null,
"qrContent": null,
"qrUrl": null
}