- 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:
userTokenIdamountcurrencypaymentOption.alternativePaymentMethodclass containing:paymentMethod: “apmgw_VIP_Preferred_SDK“
deviceDetailsclass containing:ipAddressbillingAddressclass containing:firstName,lastName,country,emailuserDetailsclass containing:
Parameter Type Description firstNameString(30) Customer’s first name. lastNameString(40) Customer’s last name. addressString(60) Customer’s address. phoneString(18) Customer’s phone1. cityString(30) Customer’s city. stateString(20) Customer’s Country Subdivision Codes. zipString(10) Customer’s ZIP code. countryString(20) US dateOfBirthString(10) The date of birth of the registering user. (YYYY-MM-DD) emailString(100) Customer’s email address. identificationString (9) Customer's social security number. identificationTypeString (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 Country Subdivision Codes. 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
sessionTokenPress here for details.
2. Send a
/paymentRequestPerform the payment by sending a
/paymentrequest with its mandatory parameters including:userTokenIdamountcurrencypaymentOption.alternativePaymentMethodclass containing:paymentMethod: “apmgw_VIP_Preferred_SDK“
deviceDetailsclass containing:ipAddressbillingAddressclass containing:firstName,lastName,country,emailuserDetailsclass containing:
Parameter Type Description firstNameString(30) Customer’s first name. lastNameString(40) Customer’s last name. addressString(60) Customer’s address. phoneString(18) Customer’s phone1. cityString(30) Customer’s city. stateString(20) Customer’s Country Subdivision Codes. zipString(10) Customer’s ZIP code. countryString(20) US dateOfBirthString(10) The date of birth of the registering user. (YYYY-MM-DD) emailString(100) Customer’s email address. identificationString (9) Customer's social security number. identificationTypeString (2) SS
Example
/paymentRequest{ "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
/paymentResponse{ "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/paymentrequest. - 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 Country Subdivision Codes. 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:
userDetailsclass containing:
Parameter Type Description firstNameString(30) Customer’s first name. lastNameString(40) Customer’s last name. addressString(60) Customer’s address. phoneString(18) Customer’s phone1. cityString(30) Customer’s city. stateString(20) Customer’s Country Subdivision Codes. zipString(10) Customer’s ZIP code. countryString(20) US dateOfBirthString(10) The date of birth of the registering user. (YYYY-MM-DD) emailString(100) Customer’s email address. identificationString (9) Customer's social security number. identificationTypeString (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
userTokenIdA
userTokenIdis a field in the Nuvei system containing the user’s identifier in the merchant system.If you do not have a
userTokenIdregistered in the Nuvei system for this user, then register one by sending a/createUserrequest, includingemail,countryCode,firstName, andlastName.Example
/createUserRequest{ "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
/createUserResponse{ "userId":78403498, "internalRequestId":552360538, "status":"SUCCESS", "errCode":0, "reason":"", "merchantId":"2439523627382132721", "merchantSiteId":"224428", "version":"1.0", "clientRequestId":"20221108130736" }The request registers the
userTokenIdin the Nuvei system, which is needed to generate a UPO in the next step.2. Create the UPO
Create a UPO by sending an
/addUPOAPMrequest and include:userTokenId– Unique customer identifier in the merchant’s system.paymentMethodName: “apmgw_VIP_Preferred_SDK“
Example
/addUPOAPMRequest{ "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
/addUPOAPMResponse{ "internalRequestId": 34302991, "status": "SUCCESS", "errCode": 0, "reason": "", "merchantId": "4972436454212160565", "merchantSiteId": "209631", "version": "1.0", "clientRequestId": "20231016153027", "userPaymentOptionId": 2153048311 }3. Send a
/payoutRequestSend a
/payoutrequest that includes theuserPaymentOptionId, which contains the user’s previously stored APM account details, and its mandatory parameters, including:userDetailsclass containing:
Parameter Type Description firstNameString(30) Customer’s first name. lastNameString(40) Customer’s last name. addressString(60) Customer’s address. phoneString(18) Customer’s phone1. cityString(30) Customer’s city. stateString(20) Customer’s Country Subdivision Codes. zipString(10) Customer’s ZIP code. countryString(20) US dateOfBirthString(10) The date of birth of the registering user. (YYYY-MM-DD) emailString(100) Customer’s email address. identificationString (9) Customer's social security number. identificationTypeString (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/payoutrequest. - 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.
