- METHOD TYPEE-wallet
- PAYMENTS
- PAYOUTS
- REFUNDS
- RECURRING
Introduction
Payco is a highly popular payment method in South Korea, facilitating payments via E-wallets. With Payco’s digital E-wallet, consumers and business buyers can easily purchase items using a credit card, debit card, or linked bank account, all through their Payco account.
Payco supports multiple partial refunds.
Supported Countries
- Korea
Supported Currencies
- KRW
Payment (Deposit) Flow
Press tab to open…
Follow these steps to perform a payment using Nuvei REST API integration:
1. Generate a sessionToken
Press here for details.
2. Send a /payment
Request
Perform the payment by sending a /payment
request with its mandatory parameters, including:
userTokenId
amount
currency
paymentOption.alternativePaymentMethod
class containing:paymentMethod
: “apmgw_PAYCO“
deviceDetails
class containing:ipAddress
billingAddress
class containing:firstName
,lastName
,country
,email
,address
,city
,state
,phone
,zip
userDetails
class containing:firstName
,lastName
,country
,email
items
class containing:name
price
quantity
Example /payment
Request
{ "sessionToken": "<sessionToken from getSessionToken>", "merchantId": "<your merchantId>", "merchantSiteId": "<your merchantSiteId>", "clientRequestId": "<unique request ID in merchant system>", "amount": "200", "currency": "KRW", "userTokenId": "<unique customer identifier in merchant system>", "clientUniqueId": "<unique transaction ID in merchant system>", "paymentOption": { "alternativePaymentMethod": { "paymentMethod": "apmgw_PAYCO" } }, "billingAddress": { "firstName": "John", "lastName": "Smith", "address": "65, Overlea str", "email": "[email protected]", "phone": "2432432", "city": "Seoul", "country": "KR", "zip": "K0A 0A2", "state": "KR-41", "identification": "ABCDE1234F", "dateOfBirth": "1999-01-01" }, "deviceDetails": { "ipAddress": "<customer's IP address>" }, "userDetails": { "firstName": "John", "lastName": "Smith", "email": "[email protected]", "country": "KR" }, "timeStamp": "<YYYYMMDDHHmmss>", "checksum": "<calculated checksum>", "items": [ { "name": "FIFA", "price": "50", "quantity": "1" }, { "name": "GTA", "price": "50", "quantity": "1" } ] }
The response generates and returns a redirect URL (redirectUrl
) to redirect the customer to the payment page, as well as a UPO (userPaymentOptionId
) for use in future transactions.
Example /payment
Response
{ "internalRequestId": 34773871, "status": "SUCCESS", "errCode": 0, "reason": "", "merchantId": "5634436935940029474", "merchantSiteId": "242181", "version": "1.0", "sessionToken": "4aa9d47a-a8f5-419f-ac3a-c23cf8ad01db", "orderId": "41421681", "userTokenId": "test5634436935940029474", "paymentOption": { "redirectUrl": "https://gfp-test.erompay.com/v3/ui/payment.html?eromtoken=871810de31bd17d7c7a16f1d18a06522", "userPaymentOptionId": "2153078001", "card": {} }, "transactionStatus": "REDIRECT" }
After the transaction is processed, Nuvei sends a Direct Merchant Notification (DMN) that includes the result of the transaction to urlDetails.notificationUrl
, which Nuvei recommends including in the /payment
request.
Follow these steps to perform a payment using Nuvei Web SDK integration.
1. Initiate a Session
Before you can submit payment using the client-side Nuvei Web SDK, you need to send the /openOrder
API call.
2. Initialize the Web SDK
Instantiate the Web SDK with the sessionToken
received from the server call to /openOrder
.
3. Create an APM Payment
Send a createPayment()
request with its mandatory parameters including:
paymentOption.alternativePaymentMethod
class containing:paymentMethod
: “apmgw_PAYCO“
deviceDetails
class containing:ipAddress
billingAddress
class containing:firstName
,lastName
,country
,email
,address
,city
,state
,phone
,zip
userDetails
class containing:firstName
,lastName
,country
,email
Example createPayment()
Request
sfc.createPayment({ sessionToken: "<sessiontoken>", paymentOption: { alternativePaymentMethod: { paymentMethod: "apmgw_PAYCO", } }, deviceDetails:{ ipAddress:"<customer's IP address>" }, billingAddress: { firstName: "John", lastName: "Smith", address: "65, Overlea str", email: "[email protected]", phone: "2432432", city: "Seoul", country: "KR", zip: "K0A 0A2", state: "KR-41", identification: "ABCDE1234F", dateOfBirth: "1999-01-01" }, userDetails: { firstName: "John", lastName: "Smith", country: "KR", email: "[email protected]" }, }, function (res) { console.log(res); });
After the transaction is processed, Nuvei sends a Direct Merchant Notification (DMN) that includes the result of the transaction to urlDetails.notificationUrl
, which Nuvei recommends including in the /openOrder
request.
- REST API
-
Follow these steps to perform a payment using Nuvei REST API integration:
1. Generate a
sessionToken
Press here for details.
2. Send a
/payment
RequestPerform the payment by sending a
/payment
request with its mandatory parameters, including:userTokenId
amount
currency
paymentOption.alternativePaymentMethod
class containing:paymentMethod
: “apmgw_PAYCO“
deviceDetails
class containing:ipAddress
billingAddress
class containing:firstName
,lastName
,country
,email
,address
,city
,state
,phone
,zip
userDetails
class containing:firstName
,lastName
,country
,email
items
class containing:name
price
quantity
Example
/payment
Request{ "sessionToken": "<sessionToken from getSessionToken>", "merchantId": "<your merchantId>", "merchantSiteId": "<your merchantSiteId>", "clientRequestId": "<unique request ID in merchant system>", "amount": "200", "currency": "KRW", "userTokenId": "<unique customer identifier in merchant system>", "clientUniqueId": "<unique transaction ID in merchant system>", "paymentOption": { "alternativePaymentMethod": { "paymentMethod": "apmgw_PAYCO" } }, "billingAddress": { "firstName": "John", "lastName": "Smith", "address": "65, Overlea str", "email": "[email protected]", "phone": "2432432", "city": "Seoul", "country": "KR", "zip": "K0A 0A2", "state": "KR-41", "identification": "ABCDE1234F", "dateOfBirth": "1999-01-01" }, "deviceDetails": { "ipAddress": "<customer's IP address>" }, "userDetails": { "firstName": "John", "lastName": "Smith", "email": "[email protected]", "country": "KR" }, "timeStamp": "<YYYYMMDDHHmmss>", "checksum": "<calculated checksum>", "items": [ { "name": "FIFA", "price": "50", "quantity": "1" }, { "name": "GTA", "price": "50", "quantity": "1" } ] }
The response generates and returns a redirect URL (
redirectUrl
) to redirect the customer to the payment page, as well as a UPO (userPaymentOptionId
) for use in future transactions.Example
/payment
Response{ "internalRequestId": 34773871, "status": "SUCCESS", "errCode": 0, "reason": "", "merchantId": "5634436935940029474", "merchantSiteId": "242181", "version": "1.0", "sessionToken": "4aa9d47a-a8f5-419f-ac3a-c23cf8ad01db", "orderId": "41421681", "userTokenId": "test5634436935940029474", "paymentOption": { "redirectUrl": "https://gfp-test.erompay.com/v3/ui/payment.html?eromtoken=871810de31bd17d7c7a16f1d18a06522", "userPaymentOptionId": "2153078001", "card": {} }, "transactionStatus": "REDIRECT" }
After the transaction is processed, Nuvei sends a Direct Merchant Notification (DMN) that includes the result of the transaction to
urlDetails.notificationUrl
, which Nuvei recommends including in the/payment
request. - Web SDK
-
Follow these steps to perform a payment using Nuvei Web SDK integration.
1. Initiate a Session
Before you can submit payment using the client-side Nuvei Web SDK, you need to send the
/openOrder
API call.2. Initialize the Web SDK
Instantiate the Web SDK with the
sessionToken
received from the server call to/openOrder
.3. Create an APM Payment
Send a
createPayment()
request with its mandatory parameters including:paymentOption.alternativePaymentMethod
class containing:paymentMethod
: “apmgw_PAYCO“
deviceDetails
class containing:ipAddress
billingAddress
class containing:firstName
,lastName
,country
,email
,address
,city
,state
,phone
,zip
userDetails
class containing:firstName
,lastName
,country
,email
Example
createPayment()
Requestsfc.createPayment({ sessionToken: "<sessiontoken>", paymentOption: { alternativePaymentMethod: { paymentMethod: "apmgw_PAYCO", } }, deviceDetails:{ ipAddress:"<customer's IP address>" }, billingAddress: { firstName: "John", lastName: "Smith", address: "65, Overlea str", email: "[email protected]", phone: "2432432", city: "Seoul", country: "KR", zip: "K0A 0A2", state: "KR-41", identification: "ABCDE1234F", dateOfBirth: "1999-01-01" }, userDetails: { firstName: "John", lastName: "Smith", country: "KR", email: "[email protected]" }, }, function (res) { console.log(res); });
After the transaction is processed, Nuvei sends a Direct Merchant Notification (DMN) that includes the result of the transaction to
urlDetails.notificationUrl
, which Nuvei recommends including in the/openOrder
request.
Example /payment
DMN with status=APPROVED
...'ppp_status=OK&Status=APPROVED&ExErrCode=0&ErrCode=0&errApmCode=0&errApmDescription=&errScCode=0&errScDescription=&Reason=&ReasonCode=0&PPP_TransactionID=40739681&userid=Ela3331121&merchant_unique_id=&customData=&productId=&first_name=John&last_name=Doe&email=ivanp%40abv.bg¤cy=KRW&customField1=&customField2=&customField3=&customField4=&customField5=&customField6=&customField7=&customField8=&customField9=&customField10=&customField11=&customField12=&customField13=&customField14=&customField15=&invoice_id=&address1=65%2C+Overlea+str&address2=&country=Korea%2C+Republic+of&state=Gyeonggi&city=Toronto&zip=K0A+0A2&phone1=2432432&phone2=&phone3=&client_ip=&nameOnCard=&cardNumber=&bin=&noCVV=&acquirerId=&acquirerBank=EromnetMS-PI&expMonth=&expYear=&Token=&tokenId=&AuthCode=&AvsCode=&Cvv2Reply=&shippingCountry=&shippingState=&shippingCity=&shippingAddress=&shippingZip=&shippingFirstName=&shippingLastName=&shippingPhone=&shippingCell=&shippingMail=&total_discount=0.00&total_handling=0.00&total_shipping=0.00&total_tax=0.00&buyButtonProductBundleId=&merchant_site_id=242181&merchant_status=&action=&requestVersion=&message=APPROVED&merchantLocale=&unknownParameters=&payment_method=apmgw_PAYCO&ID=&merchant_id=5634436935940029474&responseTimeStamp=2023-09-14.07%3A02%3A10&buyButtonProductId=&webMasterId=&appliedPromotions=&uniqueCC=&transactionType=Sale&externalEmail=&cardCompany=&eci=&user_token_id=Ela3331121&userPaymentOptionId=2153007881&TransactionID=2110000000010897969&externalTransactionId=20230914832774613564&APMReferenceID=8ADC8669537EA50522056E1F149CBEB3&orderTransactionId=22374161&totalAmount=100.00&dynamicDescriptor=static+test&item_name_1=NA&item_number_1=&item_amount_1=100.00&item_quantity_1=1&item_discount_1=0.00&item_handling_1=0.00&item_shipping_1=0.00&feeAmount=&amountWithoutFee=&houseNumber=&customCurrency=&externalToken_blockedCard=&externalToken_cardAcquirerId=&externalToken_cardAcquirerName=&externalToken_cardBin=&externalToken_cardBrandId=&externalToken_cardBrandName=&externalToken_cardExpiration=&externalToken_cardLength=&externalToken_cardMask=&externalToken_cardName=&externalToken_cardTypeId=&externalToken_cardTypeName=&externalToken_clubName=&externalToken_creditCompanyId=&externalToken_creditCompanyName=&externalToken_extendedCardType=&externalToken_Indication=&externalToken_tokenValue=&externalToken_tokenProvider=&ECIRaw=&cryptogram=&upoRegistrationDate=20230911&type=DEPOSIT&clientRequestId=&relatedTransactionId=&sessionId=27d3a232a0bdda1105ccc3b81ef7&responsechecksum=1edcce976d52b6f5f59347b6b55cf540&advanceResponseChecksum=0ebb4c4e4d350d6ceeebcc822f0e5e4e',
User Experience
- The user is redirected to the Payco website.
- Using the Payco app, the user eithers scans the QR code or enters the authentication code.
- The user confirms the order information.
- The user enters their PIN.
- The payment is confirmed.
Testing
Test credentials and testing scenarios can be provided by Nuvei if necessary. You can contact Nuvei support for assistance.