1. Configure NICE Payments PG settings

Refer to the NICE Payments settings page to configure the PG settings.

2. Request payment

To open the payment window, call JavaScript SDK IMP.request_pay(param, callback).

In PC browsers, callback is invoked after calling IMP.request_pay(param, callback). In mobile browsers, the page is redirected to m_redirect_url .

Javascript SDK
IMP.request_pay( { pg: "nice", pay_method: "card", merchant_uid: "{Merchant created Order ID}", // Example: order_no_0001 name: "Order name: Test payment request", amount: 14000, buyer_email: "iamport@siot.do", buyer_name: "John Doe", buyer_tel: "010-1234-5678", buyer_addr: "Shinsa-dong, Gangnam-gu, Seoul", buyer_postcode: "123-456", m_redirect_url: "{Mobile only - URL to redirect to after payment approval}", // Example: https://www.my-service.com/payments/complete/mobile niceMobileV2: true, // Set to 'true' to enable new mobile version }, function (rsp) { // callback logic //* ...Omitted... *// }, );

Key parameter description

pg * string

PG code

  • If not specified and this is the only PG setting that exists, default PG is automatically set.
  • If there are multiple PG settings, set to nice.

pay_method * string

Payment method code

merchant_uid * string

Order ID

Must be unique for each request.

amount * integer

Payment amount

Must be an integer (not string).

niceMobileV2 boolean

Option to enable new NICE mobile version (default: false)

escrow boolean

Ecrow option

You can use i'mport REST API to request billing key, request payment, and schedule payment.

Request one-time payment

To request a one-time payment, use the key-in REST API POST /subscribe/payments/onetime. The card information is not saved during this process.

curl -H "Content-Type: application/json" \
     -X POST -d '{"merchant_uid":"order_id_8237352", "card_number":"1234-1234-1234-1234", "expiry":"2019-01", "birth":"123456", "amount":3000}' \
     https://api.iamport.kr/subscribe/payments/onetime

Request billing key

To request a billing key, use the billing key request REST API POST /subscribe/customers/{customer_uid}.

curl -H "Content-Type: application/json" \
     -X POST -d '{"card_number":"1234-1234-1234-1234", "expiry":"2025-12", "birth":"820213", "pwd_2digit":"00"}' \
     https://api.iamport.kr/subscribe/customers/your-customer-unique-id

Request billing key + initial payment

To request a billing key and initial payment, use the key-in REST API POST /subscribe/payments/onetime.

  • customer_uid : required for saving the billing key.
curl -H "Content-Type: application/json" \
     -X POST -d '{"customer_uid":"your-customer-unique-id", "merchant_uid":"order_id_8237352", "card_number":"1234-1234-1234-1234", "expiry":"2019-01", "birth":"123456", "amount":3000}' \
     https://api.iamport.kr/subscribe/payments/onetime

Request payment with billing key

After successfully getting the billing key and making the initial payment, the billing key is stored on the i'mport server mapped 1:1 with the specified customer_uid. For security reasons, the server cannot directly access the billing key. Subsequent payments can be requested by calling the repeat pay REST API (POST /subscribe/payments/again) with the customer_uid as follows:

curl -H "Content-Type: application/json" \
     -X POST -d '{"customer_uid":"your-customer-unique-id", "merchant_uid":"order_id_8237352", "amount":3000}' \
     https://api.iamport.kr/subscribe/payments/again

NICE Payments supports non-authenticated payments only through the API method.

To integrate non-authenticated payments, you need to provide a UI for accepting user's card information. For more information, refer to the REST API page.

3. Additional functions

javascript
{ "display": { "card_quota": [6] // Display up to 6 months installment plans } }

Parameters

  • card_quota :
    • []: Only immediate pay
    • 2,3,4,5,6: immediate, 2, 3, 4, 5, 6 month installment plans

Installment plan option is available only for KRW 50,000 or more.

javascript
{ "card": { "direct": { "code": "367", "quota": 3 } } }

Parameters

  • code: Credit card code (string)
  • quota: Installment plan. For immediate, set to 0. (integer)

Precautions

  • Some PGs do not support direct call to credit card company's payment windows for all Merchant IDs. You must check your Merchant ID with each PG for direct call support.
javascript
{ "card": { "detail": [ { "card_code": "*", "enabled": false }, // Disable all credit cards { "card_code": "366", "enabled": true } // Enable specific credit card ] } }

Parameters

  • card_code: Credit card code (string)
  • enabled: Option to enable the credit card (boolean)