- Introduction
- Supported Countries
- Supported Currencies
- Payment (Deposit) Flow
- Payout (Withdrawal) Flow
-
User Experience
- Deposit – First-Time User Manually Entering Bank Account Information
- Deposit – First-Time User Connecting Bank Account via Plaid
- Deposit – Previous User
- Withdrawal – First-Time User Manually Entering Bank Account Information
- Withdrawal – First-Time User Connecting Bank Account via Plaid
- Withdrawal – Previous User
- Testing
- METHOD TYPEBank Transfer
- PAYMENTS
- PAYOUTS
- REFUNDS
- RECURRING
Introduction
GlobalPay (Pavilion Payments) provides the VIP Preferred SDK APM, a payment processing solution that allows businesses to accept a wide range of electronic payments, including credit and debit cards, E-wallets, and bank transfers.
Users either manually enter bank account information for the VIP Preferred SDK APM or they use the Plaid platform to connect a bank account to the VIP Preferred SDK APM.
Supported Countries
- United States
Supported Currencies
- USD
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_VIP_Preferred_SDK“
deviceDetails
class containing:ipAddress
billingAddress
class containing:firstName
,lastName
,country
,email
userDetails
class containing:
Parameter Type Description firstName
String(30) Customer’s first name. lastName
String(40) Customer’s last name. address
String(60) Customer’s address. phone
String(18) Customer’s phone1. city
String(30) Customer’s city. state
String(20) Customer’s ISO county/province/state/territory/union territory code. zip
String(10) Customer’s ZIP code. country
String(20) US dateOfBirth
String(10) The date of birth of the registering user. (YYYY-MM-DD) email
String(100) Customer’s email address. identification
String (9) Customer's social security number. identificationType
String (2) SS
Example /payment
Request
{ "sessionToken": "<sessionToken from /getSessionToken>", "merchantId": "<your merchantId>", "merchantSiteId": "<your merchantSiteId>", "clientRequestId": "<unique request ID in merchant system>", "amount": "200", "currency": "USD", "userTokenId": "<unique customer identifier in merchant system>", "clientUniqueId": "<unique transaction ID in merchant system>", "paymentOption": { "alternativePaymentMethod": { "paymentMethod": "apmgw_VIP_Preferred_SDK" } }, "deviceDetails": { "ipAddress": "<customer's IP address>" }, "billingAddress": { "firstName": "John", "lastName": "Smith", "country": "US", "email": "[email protected]" }, "userDetails": { "firstName": "John", "lastName": "Smith", "address": "22 Main Street", "phone": "6175551414", "zip": "02460", "city": "Boston", "country": "US", "state": "MA", "email": "[email protected]", "county": "Suffolk", "language": "en", "dateOfBirth": "2000-06-30", "identification": "123456789", "identificationType": "SS" }, "timeStamp": "<YYYYMMDDHHmmss>", "checksum": "<calculated checksum>" }
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": 41462211, "status": "SUCCESS", "errCode": 0, "reason": "", "merchantId": "1102398682906145682", "merchantSiteId": "228311", "version": "1.0", "sessionToken": "05dfac30-ca93-4666-9fc7-7cbf711323b5", "orderId": "43181761", "userTokenId": "VIPPPR1", "paymentOption": { "redirectUrl": "https://cert.api-gaming.paviliononline.io/gaming/mobility/sdk?mode=deposit&redirectUrl=https%3A%2F%2Fjumpbox.safecharge.com%2Fdmz%2FApmConnectorNotify%2F649%2F665#c0ab9564-be6e-41d2-a164-aef9a917cc30", "userPaymentOptionId": "2153237021", "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.
- The merchant collects all of the required transaction input parameters and the following required customer details:
Parameter Type Description first_name String(30) Customer’s first name. last_name String(40) Customer’s last name. address1 String(60) Customer’s address. phone1 String(18) Customer’s phone1. city String(30) Customer’s city. state String(20) Customer’s ISO county/province/state/territory/union territory code. zip String(10) Customer’s ZIP code. country String(20) US dateOfBirth String(10) The date of birth of the registering user. (YYYY-MM-DD) email String(100) Customer’s email address. identification String (9) Customer's social security number. identificationType String (2) SS
For the Social Security Number (SSN), the merchant needs to collect the last four digits of the SSN and use a KYC tool for the remaining SSN data. - The merchant prepares the authentication request.
- The merchant submits an HTTPS request to the Nuvei Payment Page.
- The user is redirected to the VIP Preferred SDK page. For information about the possible VIP Preferred SDK page user experiences, see below.
- After the user completes the process on the VIP Preferred SDK page, the user is redirected to the Nuvei Payment Page.
Example Payment Page Request
After the transaction is processed, Nuvei sends a Direct Merchant Notification (DMN) that includes the result of the transaction to notify_url
, which Nuvei recommends including in the 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_VIP_Preferred_SDK“
deviceDetails
class containing:ipAddress
billingAddress
class containing:firstName
,lastName
,country
,email
userDetails
class containing:
Parameter Type Description firstName
String(30) Customer’s first name. lastName
String(40) Customer’s last name. address
String(60) Customer’s address. phone
String(18) Customer’s phone1. city
String(30) Customer’s city. state
String(20) Customer’s ISO county/province/state/territory/union territory code. zip
String(10) Customer’s ZIP code. country
String(20) US dateOfBirth
String(10) The date of birth of the registering user. (YYYY-MM-DD) email
String(100) Customer’s email address. identification
String (9) Customer's social security number. identificationType
String (2) SS
Example
/payment
Request{ "sessionToken": "<sessionToken from /getSessionToken>", "merchantId": "<your merchantId>", "merchantSiteId": "<your merchantSiteId>", "clientRequestId": "<unique request ID in merchant system>", "amount": "200", "currency": "USD", "userTokenId": "<unique customer identifier in merchant system>", "clientUniqueId": "<unique transaction ID in merchant system>", "paymentOption": { "alternativePaymentMethod": { "paymentMethod": "apmgw_VIP_Preferred_SDK" } }, "deviceDetails": { "ipAddress": "<customer's IP address>" }, "billingAddress": { "firstName": "John", "lastName": "Smith", "country": "US", "email": "[email protected]" }, "userDetails": { "firstName": "John", "lastName": "Smith", "address": "22 Main Street", "phone": "6175551414", "zip": "02460", "city": "Boston", "country": "US", "state": "MA", "email": "[email protected]", "county": "Suffolk", "language": "en", "dateOfBirth": "2000-06-30", "identification": "123456789", "identificationType": "SS" }, "timeStamp": "<YYYYMMDDHHmmss>", "checksum": "<calculated checksum>" }
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": 41462211, "status": "SUCCESS", "errCode": 0, "reason": "", "merchantId": "1102398682906145682", "merchantSiteId": "228311", "version": "1.0", "sessionToken": "05dfac30-ca93-4666-9fc7-7cbf711323b5", "orderId": "43181761", "userTokenId": "VIPPPR1", "paymentOption": { "redirectUrl": "https://cert.api-gaming.paviliononline.io/gaming/mobility/sdk?mode=deposit&redirectUrl=https%3A%2F%2Fjumpbox.safecharge.com%2Fdmz%2FApmConnectorNotify%2F649%2F665#c0ab9564-be6e-41d2-a164-aef9a917cc30", "userPaymentOptionId": "2153237021", "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. - Payment Page
-
- The merchant collects all of the required transaction input parameters and the following required customer details:
Parameter Type Description first_name String(30) Customer’s first name. last_name String(40) Customer’s last name. address1 String(60) Customer’s address. phone1 String(18) Customer’s phone1. city String(30) Customer’s city. state String(20) Customer’s ISO county/province/state/territory/union territory code. zip String(10) Customer’s ZIP code. country String(20) US dateOfBirth String(10) The date of birth of the registering user. (YYYY-MM-DD) email String(100) Customer’s email address. identification String (9) Customer's social security number. identificationType String (2) SS
For the Social Security Number (SSN), the merchant needs to collect the last four digits of the SSN and use a KYC tool for the remaining SSN data. - The merchant prepares the authentication request.
- The merchant submits an HTTPS request to the Nuvei Payment Page.
- The user is redirected to the VIP Preferred SDK page. For information about the possible VIP Preferred SDK page user experiences, see below.
- After the user completes the process on the VIP Preferred SDK page, the user is redirected to the Nuvei Payment Page.
Example Payment Page Request
After the transaction is processed, Nuvei sends a Direct Merchant Notification (DMN) that includes the result of the transaction to
notify_url
, which Nuvei recommends including in the request. - The merchant collects all of the required transaction input parameters and the following required customer details:
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=43181761&userid=VIPPPR1&merchant_unique_id=&customData=&productId=&first_name=John&last_name=Smith&email=john.smith%40email.com¤cy=USD&customField1=&customField2=&customField3=&customField4=&customField5=&customField6=&customField7=&customField8=&customField9=&customField10=&customField11=&customField12=&customField13=&customField14=&customField15=&invoice_id=&address1=22+Main+Street&address2=&country=United+States&state=GEORGIA&city=Atlanta&zip=30328&phone1=3126122250&phone2=&phone3=&client_ip=&nameOnCard=&cardNumber=&bin=&noCVV=&acquirerId=&acquirerBank=GlobalPaySDK-PI&expMonth=&expYear=&Token=&tokenId=&AuthCode=Bank+Of+America%2C+Na&AvsCode=&Cvv2Reply=&shippingCountry=US&shippingState=GEORGIA&shippingCity=Atlanta&shippingAddress=22+Main+Street&shippingZip=30328&shippingFirstName=John&shippingLastName=Smith&shippingPhone=3126122250&shippingCell=&shippingMail=john.smith%40email.com&total_discount=0.00&total_handling=0.00&total_shipping=0.00&total_tax=0.00&buyButtonProductBundleId=&merchant_site_id=228311&merchant_status=&action=&requestVersion=&message=APPROVED&merchantLocale=&unknownParameters=&payment_method=apmgw_VIP_Preferred_SDK&ID=&merchant_id=1102398682906145682&responseTimeStamp=2024-06-10.06%3A41%3A43&buyButtonProductId=&webMasterId=&appliedPromotions=&uniqueCC=&transactionType=Sale&externalEmail=&cardCompany=&eci=&user_token_id=VIPPPR1&userPaymentOptionId=2153237021&TransactionID=2610000000000033198&APMReferenceID=20FC33A1667BE809E966A85C4FAA1D83&orderTransactionId=24533301&totalAmount=10.00&dynamicDescriptor=Rank+Descriptor&item_name_1=NA&item_number_1=&item_amount_1=10.00&item_quantity_1=1&item_discount_1=0.00&item_handling_1=0.00&item_shipping_1=0.00&feeAmount=&amountWithoutFee=&houseNumber=&customCurrency=&upoRegistrationDate=20240610&shippingCounty=Suffolk&type=DEPOSIT&clientRequestId=&relatedTransactionId=&sessionId=e0d23604a8063389d6b678b3c90e&responsechecksum=558bdd6e6883be2f1c7c7253759998da&advanceResponseChecksum=25216b67b71817095c2c7d1f2b985873',
For the payment (deposit) user experience, press here.
Payout (Withdrawal) Flow
Press tab to open…
Follow these steps to perform a payout using Nuvei REST API integration:
1. Register a userTokenId
A userTokenId
is a field in the Nuvei system containing the user’s identifier in the merchant system.
If you do not have a userTokenId
registered in the Nuvei system for this user, then register one by sending a /createUser
request, including email
, countryCode
, firstName
, and lastName
.
Example /createUser
Request
{ "merchantId":"<your merchantId>", "merchantSiteId":"<your merchantSiteId>", "clientRequestId":"<unique request ID in merchant system>", "userTokenId":"<unique user identifier in merchant system>", "email":"[email protected]", "countryCode":"US", "firstName":"John", "lastName":"Smith", "timeStamp":"<YYYYMMDDHHmmss>", "checksum":"<calculated checksum>" }
Example /createUser
Response
{ "userId":78403498, "internalRequestId":552360538, "status":"SUCCESS", "errCode":0, "reason":"", "merchantId":"2439523627382132721", "merchantSiteId":"224428", "version":"1.0", "clientRequestId":"20221108130736" }
The request registers the userTokenId
in the Nuvei system, which is needed to generate a UPO in the next step.
2. Create the UPO
Create a UPO by sending an /addUPOAPM
request and include:
userTokenId
– Unique customer identifier in the merchant’s system.paymentMethodName
: “apmgw_VIP_Preferred_SDK“
Example /addUPOAPM
Request
{ "merchantSiteId": "<your merchantSiteId>", "merchantId": "<your merchantId>", "userTokenId": "<unique customer identifier in merchant system>", "clientRequestId": "<unique request ID in merchant system>", "timeStamp": "<YYYYMMDDHHmmss>", "paymentMethodName": "apmgw_VIP_Preferred_SDK", "checksum": "<calculated checksum>" }
The request returns an encrypted userPaymentOptionId
(UPO) representing the user’s APM account details.
Example /addUPOAPM
Response
{ "internalRequestId": 34302991, "status": "SUCCESS", "errCode": 0, "reason": "", "merchantId": "4972436454212160565", "merchantSiteId": "209631", "version": "1.0", "clientRequestId": "20231016153027", "userPaymentOptionId": 2153048311 }
3. Send a /payout
Request
Send a /payout
request that includes the userPaymentOptionId
, which contains the user’s previously stored APM account details, and its mandatory parameters, including:
userDetails
class containing:
Parameter Type Description firstName
String(30) Customer’s first name. lastName
String(40) Customer’s last name. address
String(60) Customer’s address. phone
String(18) Customer’s phone1. city
String(30) Customer’s city. state
String(20) Customer’s ISO county/province/state/territory/union territory code. zip
String(10) Customer’s ZIP code. country
String(20) US dateOfBirth
String(10) The date of birth of the registering user. (YYYY-MM-DD) email
String(100) Customer’s email address. identification
String (9) Customer's social security number. identificationType
String (2) SS
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 /payout
request.
- REST API
-
Follow these steps to perform a payout using Nuvei REST API integration:
1. Register a
userTokenId
A
userTokenId
is a field in the Nuvei system containing the user’s identifier in the merchant system.If you do not have a
userTokenId
registered in the Nuvei system for this user, then register one by sending a/createUser
request, includingemail
,countryCode
,firstName
, andlastName
.Example
/createUser
Request{ "merchantId":"<your merchantId>", "merchantSiteId":"<your merchantSiteId>", "clientRequestId":"<unique request ID in merchant system>", "userTokenId":"<unique user identifier in merchant system>", "email":"[email protected]", "countryCode":"US", "firstName":"John", "lastName":"Smith", "timeStamp":"<YYYYMMDDHHmmss>", "checksum":"<calculated checksum>" }
Example
/createUser
Response{ "userId":78403498, "internalRequestId":552360538, "status":"SUCCESS", "errCode":0, "reason":"", "merchantId":"2439523627382132721", "merchantSiteId":"224428", "version":"1.0", "clientRequestId":"20221108130736" }
The request registers the
userTokenId
in the Nuvei system, which is needed to generate a UPO in the next step.2. Create the UPO
Create a UPO by sending an
/addUPOAPM
request and include:userTokenId
– Unique customer identifier in the merchant’s system.paymentMethodName
: “apmgw_VIP_Preferred_SDK“
Example
/addUPOAPM
Request{ "merchantSiteId": "<your merchantSiteId>", "merchantId": "<your merchantId>", "userTokenId": "<unique customer identifier in merchant system>", "clientRequestId": "<unique request ID in merchant system>", "timeStamp": "<YYYYMMDDHHmmss>", "paymentMethodName": "apmgw_VIP_Preferred_SDK", "checksum": "<calculated checksum>" }
The request returns an encrypted
userPaymentOptionId
(UPO) representing the user’s APM account details.Example
/addUPOAPM
Response{ "internalRequestId": 34302991, "status": "SUCCESS", "errCode": 0, "reason": "", "merchantId": "4972436454212160565", "merchantSiteId": "209631", "version": "1.0", "clientRequestId": "20231016153027", "userPaymentOptionId": 2153048311 }
3. Send a
/payout
RequestSend a
/payout
request that includes theuserPaymentOptionId
, which contains the user’s previously stored APM account details, and its mandatory parameters, including:userDetails
class containing:
Parameter Type Description firstName
String(30) Customer’s first name. lastName
String(40) Customer’s last name. address
String(60) Customer’s address. phone
String(18) Customer’s phone1. city
String(30) Customer’s city. state
String(20) Customer’s ISO county/province/state/territory/union territory code. zip
String(10) Customer’s ZIP code. country
String(20) US dateOfBirth
String(10) The date of birth of the registering user. (YYYY-MM-DD) email
String(100) Customer’s email address. identification
String (9) Customer's social security number. identificationType
String (2) SS
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/payout
request. - Payment Page
For the payout (withdrawal) user experience, press here.
User Experience
Deposit – First-Time User Manually Entering Bank Account Information
- The user is redirected to the VIP Preferred SDK page.
- The user presses MANUALLY ENTER BANK INFO, provides the account number and the routing number, and then presses Done.
If the user already has linked a bank account using Plaid, this is not possible.
- The bank account is added. The user reads and accepts the terms and conditions, privacy notice, and GLBA notice.
- The user receives confirmation that the VIP Preferred SDK account was created.
- The user proceeds with the deposit.
- The user receives confirmation for the successful deposit.
Deposit – First-Time User Connecting Bank Account via Plaid
- The user is redirected to the VIP Preferred SDK page.
- The user presses CONNECT YOUR BANK ACCOUNT, and is redirected to Plaid.
- The user selects a banking institution; for example, Bank of America.
- The user is redirected to the banking institution and signs in for authentication.
In the Plaid sandbox environment, First Platypus Bank is used.
- The user chooses to verify their identity using their mobile phone.
- The user provides the code received on their mobile phone.
- After successful authentication, the user connects account information to Plaid.
- The user reads and accepts the bank’s terms and conditions.
- The user is redirected back to Plaid, where they select the account.
- The user receives confirmation the account was successfully linked.
- The bank account is added. The user reads and accepts the terms and conditions, privacy notice, and GLBA notice.
- The user receives confirmation that the VIP Preferred SDK account was created.
- The user proceeds with the deposit.
- The user receives confirmation for the successful deposit.
Deposit – Previous User
- The user is redirected to the VIP Preferred SDK page. The previously linked bank account is selected.
- The user receives confirmation for the successful deposit.
Withdrawal – First-Time User Manually Entering Bank Account Information
- The user is redirected to the VIP Preferred SDK page.
- The user presses MANUALLY ENTER BANK INFO, provides the account number and the routing number, and then presses Done.
If the user already has linked a bank account using Plaid, this is not possible.
- The bank account is added. The user reads and accepts the terms and conditions, privacy notice, and GLBA notice.
- The user receives confirmation that the VIP Preferred SDK account was created.
- The user proceeds with the withdrawal.
- The user receives confirmation that the withdrawal request was successfully submitted.
Withdrawal – First-Time User Connecting Bank Account via Plaid
- The user is redirected to the VIP Preferred SDK page.
- The user presses CONNECT YOUR BANK ACCOUNT, and is redirected to Plaid.
- The user selects a banking institution; for example, Bank of America.
- The user is redirected to the banking institution and signs in for authentication.
In the Plaid sandbox environment, First Platypus Bank is used.
- The user chooses to verify their identity using their mobile phone.
- The user provides the code received on their mobile phone.
- After successful authentication, the user connects account information to Plaid.
- The user reads and accepts the bank’s terms and conditions.
- The user is redirected back to Plaid, where they select the account.
- The user receives confirmation the account was successfully linked.
- The bank account is added. The user reads and accepts the terms and conditions, privacy notice, and GLBA notice.
- The user receives confirmation that the VIP Preferred SDK account was created.
- The user proceeds with the withdrawal.
- The user receives confirmation that the withdrawal request was successfully submitted.
Withdrawal – Previous User
Testing
Test credentials and testing scenarios can be provided by Nuvei if necessary. You can contact Nuvei support for assistance.