Seamless - Registration API Paylater
About Seamless - Registration API Paylater
Seamless type transaction is a Paylater service owned by NICEPAY that provides a faster and more efficient paylater and installment payment experience. Through this service, users can link their accounts with Merchants without needing to performs transaction authentication beforehand, such as logging in, during the payment. Therefore, every transaction between Customers and Merchants can run efficiently without re-authenticating the user account login steps with security that remain protected and reliable by NICEPAY.
Currently, only Kredivo which already supports the Seamless feature.
There are 2 steps to activates a transaction with Seamless type, which are:
- Performs the Customer 's data tokenization by making a transaction first.
- Using the Registration & Notification - Account Binding Paylater API feature.
This page explain the Customer's data tokenization on first payment process deeper, so that the Seamless feature can be used on the next transaction.
Process Flow
Tokenize
Tokenize With Transaction

Flow description:
- The Customer does checkout.
- The Customer requests a checkout to the Merchant
- The Merchant requests a checkout to NICEPAY.
- NICEPAY requests a checkout to the Paylater Partner.
- The Paylater Partner registers the checkout.
- The Paylater Partner sends a response to NICEPAY.
- NICEPAY sends a redirect URL to the Merchant.
- The Merchant redirects the Customer to the Partner's page.
- The Customer do logins through the Partner Login Page.
- The Customer mengirimkan kredensial kepada the Paylater Partner.
- The Paylater Partner melakukan validasi pembayaran.
- During the transaction process:
- If the transaction is approved, then:
- The Paylater Partner processes the approval.
- The Paylater Partner sends an approval result to NICEPAY.
- NICEPAY receives the approval result.
- NICEPAY sends the approval result to the Merchant.
- The Merchant receives the approval result notification.
- The Merchant request a status to NICEPAY.
- NICEPAY checks the status.
- NICEPAY sends a status result to the Merchant.
- The Merchant receives the final status.
- The Merchant sends a notification status to the Customer.
- The Customer receives the approval result.
- If the transaction is still processing:
- The Paylater Partner directs the Customer to the Merchant/NICEPAY page.
- The Merchant/NICEPAY page will be shown to the Customer.
- The Customer waiting for approval.
Tokenize Without Transaction

Flow description:
- The Customer submits a phone number to the Merchant.
- The Merchant requests an account binding to NICEPAY.
- NICEPAY requests an account binding to the Paylater Partner.
- The Paylater Partner performs validation.
- The Paylater Partner sends a response to NICEPAY.
- NICEPAY returns the redirects URL to the Merchant.
- The Merchant redirects the Customer to the Partner's page.
- The Customer do logins through the Partner Login Page.
- The Customer sends a credential to the Paylater Partner.
- The Paylater Partner performs login validation.
- The Paylater Partner returns an OTP to the Customer.
- The Customer inputs the OTP to the Paylater Partner.
- The Paylater Partner generates a User Token.
- The Paylater Partner directs the Customer to the Merchant/NICEPAY page.
- During the account binding process:
- On the Customer's section:
- The Merchant/NICEPAY page will be shown to the Customer.
- The Customer waiting for approval.
- From the Notification section:
- Paylater Partner sends a notification to the NICEPAY.
- NICEPAY receives the notification.
- NICEPAY sends a notification to the Merchant.
- The Merchant receives the notification.
- The Merchant displays the account binding result to the Customer.
Deactivate Tokenize
Please visit the Deactivate - Account Binding Paylater API page for further informationabout the user token inactivation process with Seamless feature.
Tokenize - Registration API Paylater (First Payment)
API Endpoint | nicepay/direct/v2/registration |
|---|---|
Request Method | POST |
Description | Create user token |
Merchant Token | SHA256 (iMid + referenceNo + billingPhone + merchantKey) |
Request Format | application/JSON |
Request Parameter for Tokenize - Registration API Paylater (First Payment)
Parameter | Type | Length | Description | Example / Notes | |
|---|---|---|---|---|---|
timeStamp Required | N | 14 | Request Timestamp (YYYYMMDDHH24MISS) | 20220131125959 | |
iMid Required | AN | 10 | Merchant ID | PAYLOANTES | |
payMethod Required | N | 2 | 06 | | |
currency Required | A | 3 | Currency | IDR | |
amt Required | N | 12 | Amount | 10000 | |
referenceNo Required | ANS | 40 | Merchant's Reference Number | ORD12345 | |
callBackUrl | ANS | 255 | Payment Result URL | | |
goodsNm Required | AN | 100 | Goods Name | Test Transaction NICEPAY | |
billingNm Required | A | 100 | Buyer Name | John Doe | |
billingPhone Required | N | 15 | Buyer Phone Number | 08123456789 | |
billingEmail Required | ANS | 40 | Buyer E-Mail | | |
billingAddr Required | AN | 100 | Buyer Address | Jalan Bukit Berbunga 22 | |
billingCity Required | A | 50 | Buyer City | Jakarta | |
billingState Required | A | 50 | Billing State | DKI Jakarta | |
billingPostCd Required | N | 10 | Billing Post Number | 12345 | |
billingCountry Required | A | 10 | Billing Country | Indonesia | |
cartData Required | JSONstring | 4000 | Cart Data | {"count":3,"item":[{"goods_id":30,"goods_name":"Beanie","goods_type":"Accessories","goods_amt":5000,"goods_sellers_id":"NICEPAY-NamaMerchant","goods_sellers_name":"NICEPAYSHOP","goods_quantity":1,"goods_url":"http://www.nicestore.com/product/beanie/"},..]} | |
userIP Required for CC, E-Wallet, Paylater,QRIS | AN | 15 | User IP | 127.0.0.1 | |
dbProcessUrl Required | ANS | 255 | Notification URL | https://merchant.com/dbProcessUrl | |
merchantToken Required | AN | 255 | Merchant Token | 9b38b12e83b6ee124d4b549238f232c6179b168effc4ffb7f64d00c15f08e230 | |
deliveryNm Required | A | 30 | Delivery Name | | |
deliveryPhone Required | N | 15 | Delivery Phone | 08123456789 | |
deliveryAddr Required | AN | 100 | Delviery Address | Jalan Bukit Berbunga 22 | |
deliveryCity Required | A | 50 | Delivery City | Jakarta | |
deliveryState Required | A | 50 | Delivery State | DKI Jakarta | |
deliveryPostCd Required | N | 10 | Delivery Post Code | 12345 | |
deliveryCountry Required | A | 10 | Delivery Country | Indonesia | |
mitraCd Required | N | 2 | Mitra Code | KDVI | |
instmntType Required | N | 8 | 2 | | |
instmntMon Required | N | 6 | 1: 1 Month/Full Payment, if instmntType: null/1 3: 3 Months 6: 6 Months 12: 12 Months
| 3 | |
userSessionID | AN | 255 | ID User Session | 697D6922C961070967D3BA1BA5699C2C | |
userAgent | ANS | 255 | User Agent | Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML,like Gecko) Chrome/60.0.3112.101 Safari/537.36 | |
userLanguage | ANS | 255 | User Language | ko-KR,en-US;q=0.8,ko;q=0.6,en;q=0.4 | |
sellers Required | JSON String | 4000 | Seller Data | [{\"sellersId\":\"NICEPAY-NamaMerchant\",\"sellersNm\":\"NICEPAYSHOP\",\"sellersUrl\":\"http://nicestore.store/product/beanie/\",\"sellersEmail\":\"[email protected]\",\"sellersAddress\":{\"sellerNm\":\"NICEPAYSHOP\",\"sellerLastNm\":\"NICEPAYSHOP\",\"sellerAddr\":\"Jln. Kasablanka Kav 88\",\"sellerCity\":\"Jakarta\",\"sellerPostCd\":\"14350\",\"sellerPhone\":\"082111111111\",\"sellerCountry\":\"ID\"}}] | |
tokenizeUser Required | N | 1 | Seamless Paylater | Transaction Tokenize Type: 0: Normal 1: Tokenize (First Transaction) 2: Seamless (Next Payment) | 1 |
clientUserKey Required | AN | 100 | Seamless Paylater (Mandatory) | User Key, must be unique for each Customer. |
Response Parameter for Tokenize - Registration API Paylater (First Payment)
Parameter | Tipe | Ukuran | Deskripsi | Contoh / Catatan |
|---|---|---|---|---|
resultCd | N | 4 | Result Code | 0000 |
resultMsg | AN | 255 | Result Message: Error Code | SUCCESS |
tXid | AN | 30 | Transaction ID (Key from NICEPAY) | IONPAYTEST02201607291027025291 |
referenceNo | ANS | 40 | Merchant Order Number (Key from Merchant) | OrdNo20160525000-52104 |
payMethod | N | 2 | 06 | |
amt | N | 12 | Payment Amount | 1000 |
currency | AN | 3 | Currency | IDR |
goodsNm | AN | 100 | Goods Name | Merchant Goods 1 |
billingNm | A | 30 | Buyer Name | Buyer Name |
transDt | N | 8 | Transaction Date (YYYYMMDD) | 20160303 |
transTm | N | 6 | Transaction Time (HH24MISS) | 135959 |
description | AN | 100 | Transaction Description | Payment of OrdNo20160525000-52104 |
bankCd | A | 4 | Bank Code | BMRI |
vacctNo | N | 20 | Virtual Account Number | 123457891011 |
vacctValidDt | N | 8 | VA Expiry Date (YYYYMMDD) | 20160303 |
vacctValidTm | N | 6 | VA Expiry Time (HH24MISS) | 135959 |
mitraCd | AN | 4 | Mitra Code | KDVI |
payNo | N | 12 | CVS Number | 123456789012 |
payValidDt | N | 8 | CVS Expiry Date (YYYYMMDD) | 20170313 |
payValidTm | N | 6 | CVS Expiry Time (HH24MISS) | 135959 |
paymentExpDt | N | 6 | QR Payment Expiry Date (YYYYMMDD) | 20201005 |
paymentExpTm | N | 6 | QR Payment Expiry Time (HH24MISS) | 124354 |
qrContent | ANS | 360 | QR String in Plain Text | 00020101021226590016ID.CO.SHOPEE.WWW011893600918000041566602064156660303UME52045399530336054045.005802ID5913NICEPAY dummy6015KOTA JAKARTA SE61051287062360520082020100512385458400708T000000163044A04 |
qrUrl | ANS | 360 | URL for QR Image, Valid for 5 Minutes. | https://api.wallet.airpay.co.id/v3/merchant-host/qr/download?qr=wOCiKheIXwgyjnUUk6PhJLTS1e9Ros7zf0ESj6AavQ |
clientUserKey | AN | 100 | User Key, must be unique for each Customer. |
After the Customer successfully make transaction payment with tokenization, Merchant will obtain a userToken parameter from Notification - API Paylater regarding the success payment through a dbprocessUrl parameter URL during the registration of previous tokenized transaction. userToken will be used to activate the Seamless feature on the next transaction.
Sample Parameter for Tokenize - Registration API Paylater (First Payment)
{
"resultCd": "0000",
"resultMsg": "SUCCESS",
"tXid": "PAYLOANTES06202109130937199795",
"referenceNo": "ord20210913090977",
"payMethod": "06",
"amt": "25145",
"transDt": null,
"transTm": null,
"description": null,
"bankCd": null,
"vacctNo": null,
"mitraCd": "KDVI",
"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,
"clientUserKey": "[email protected]"
}
Seamless - Registration API Paylater
API Endpoint | nicepay/direct/v2/registration |
|---|---|
Request Method | POST |
Description | Create user token |
Merchant Token | SHA256 (iMid + referenceNo + billingPhone + merchantKey) |
Request Format | application/JSON |
Request Parameter for Seamless - Registration API Paylater
Parameter | Type | Length | Mandatory | Description | Example / Notes |
|---|---|---|---|---|---|
timeStamp | N | 14 | Mandatory | API Request Date | 20170708123456 |
iMid | AN | 10 | Mandatory | Merchant ID | PAYLOANTES |
payMethod | AN | 2 | Mandatory | Payment Method 06: Paylater | 06 |
currency | AN | 3 | Mandatory | Currency | IDR |
amt | N | 12 | Mandatory | Payment Amount | 1000 |
referenceNo | ANS | 40 | Mandatory | Merchant Order Number (Key from Merchant) | MerchantReferenceNumber001 |
goodsNm | AN | 100 | Mandatory | Goods Name | Merchant Goods 1 |
billingNm | A | 30 | Mandatory | Buyer Name | Buyer Name |
billingPhone | N | 15 | Mandatory | Buyer Phone Number | 02112345678 |
billingEmail | AN | 40 | Mandatory | Buyer Email | |
billingAddr | AN | 100 | | Buyer Address | Billing Address |
billingCity | A | 50 | Mandatory | Buyer City | Jakarta |
billingState | A | 50 | Mandatory | Billing State | Jakarta |
billingPostCd | N | 10 | Mandatory | Billing Post Number | 12345 |
billingCountry | A | 10 | Mandatory | Billing Country | Indonesia |
deliveryNm | A | 30 | Mandatory | Delivery Name | Buyer Name |
deliveryPhone | N | 15 | Mandatory | Delivery Phone Number | 02112345678 |
deliveryAddr | AN | 100 | Mandatory | Delivery Address | Billing Address |
deliveryCity | A | 50 | Mandatory | Delivery City | Jakarta |
deliveryState | A | 50 | Mandatory | Delivery State | Jakarta |
deliveryPostCd | N | 10 | Mandatory | Delivery Post Number | 12345 |
deliveryCountry | A | 10 | Mandatory | Delivery Country | Indonesia |
dbProcessUrl | AN | 255 | Mandatory | Payment Notification URL (Async Notification) | "http://www.merchant.com/notification” |
description | AN | 100 | | Transaction Description | Description |
merchantToken | AN | 255 | Mandatory | Merchant Token | 6cfccfc0046773c1b589d8e98f8b596c284f3c70a4ecf86eba14c18944b74bcd |
userIP | AN | 15 | Mandatory | User IP (Customer ) | 127.0.0.1 |
userSessionID | AN | 100 | | User Session ID | userSessionID |
userAgent | AN | 100 | | User Agent Information | Mozilla |
userLanguage | A | 2 | | User Language | en-US |
cartData | AN | 4000 | Mandatory | Cart Data | (JSON Format) |
sellers | AN | 4000 | Mandatory | Sellers | (JSON Format) |
instmntType | N | 2 | Mandatory | Installment Type: 1: Customer Charge 2: Merchant Charge | 2 |
instmntMon | N | 2 | Mandatory | Installment Month | 1 |
mitraCd | A | 4 | Mandatory | Mitra Code: KDVI: Kredivo | KDVI |
tokenizeUser | N | 1 | Seamless Paylater | Transaction Tokenize Type: 0: Normal 1: Tokenize (First Transaction) 2: Seamless (Next Payment) | 2 |
userToken | AN | 50 | Seamless Paylater | User Token for using Seamless Paylater feature. You can get this token from dbprocessUrl Notification after Tokenize is success. | 59bd0cc5-0b26-42ae-be0f-caeab9424f9y |
Response Parameter for Seamless - Registration API Paylater
Parameter | Type | Length | Description | Example / Notes |
|---|---|---|---|---|
resultCd | N | 4 | Result Code | 0000 |
resultMsg | AN | 255 | Result Message | SUCCESS |
tXid | AN | 30 | Transaction ID (Key from NICEPAY) | IONPAYTEST02201607291027025291 |
referenceNo | ANS | 40 | Merchant Order Number (Key from Merchant | OrdNo20160525000-52104 |
payMethod | N | 2 | 06 | |
amt | N | 12 | Payment Amount | 1000 |
currency | AN | 3 | Currency | IDR |
goodsNm | AN | 100 | Goods Name | Merchant Goods 1 |
billingNm | A | 30 | Buyer Name | Buyer Name |
transDt | N | 8 | Transaction Date (YYYYMMDD) | 20160303 |
transTm | N | 6 | Transaction Time (HH24MISS) | 135959 |
description | AN | 100 | Transaction Description | Payment of OrdNo20160525000-52104 |
bankCd | A | 4 | Bank Code | BMRI |
vacctNo | N | 20 | Virtual Account Number | 123457891011 |
vacctValidDt | N | 8 | VA Expiry Date (YYYYMMDD) | 20160303 |
vacctValidTm | N | 6 | VA Expiry Time (HH24MISS) | 135959 |
mitraCd | AN | 4 | Mitra Code | KDVI |
payNo | N | 12 | CVS Number | 123456789012 |
payValidDt | N | 8 | CVS Expiry Date (YYYYMMDD) | 20170313 |
payValidTm | N | 6 | CVS Expiry Time (HH24MISS) | 135959 |
paymentExpDt | N | 6 | QR Payment Expiry Date (YYYYMMDD) | 20201005 |
paymentExpTm | N | 6 | QR Payment Expiry Time (HH24MISS) | 124354 |
qrContent | ANS | 360 | QR String in Plain Text | 00020101021226590016ID.CO.SHOPEE.WWW011893600918000041566602064156660303UME52045399530336054045.005802ID5913NICEPAY dummy6015KOTA JAKARTA SE61051287062360520082020100512385458400708T000000163044A04 |
qrUrl | ANS | 360 | URL for QR Image, Valid for 5 Minutes. | https://api.wallet.airpay.co.id/v3/merchant-host/qr/download?qr=wOCiKheIXwgyjnUUk6PhJLTS1e9Ros7zf0ESj6AavQ |
clientUserKey | AN | 100 | User Key | |
userToken | AN | 50 | User Token for Seamless, only returned in the response body when the transaction is Seamless (tokenizeUser: 2) | 59bd0cc5-0b26-42ae-be0f-caeab9424f95 |
Sample Parameter for Seamless - Registration API Paylater
{
"resultCd": "0000",
"resultMsg": "SUCCESS",
"tXid": "PAYLOANTES06202109130955379813",
"referenceNo": "ord20210913090998",
"payMethod": "06",
"amt": "25145",
"transDt": null,
"transTm": null,
"description": null,
"bankCd": null,
"vacctNo": null,
"mitraCd": "KDVI",
"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,
"userToken": "e0478456-6b50-460c-85e0-627a1e22d2e0"
}