- METHOD TYPEE-wallet
- PAYMENTS
- PAYOUTS
- REFUNDS
- RECURRING
Introduction
Skrill (formerly known as Moneybookers) is a well-known eWallet brand worldwide and highly popular in the gaming, forex and gambling industries. Skrill acquired Paysafecard in 2013 to extend its services with prepaid cards. This payment method is accessible in nearly 200 countries with over 40 million account holders. Skrill is part of the Paysafe Group that includes other companies, such as Neteller and Paysafecard.
Supported Countries
- Aland Islands
- Albania
- Algeria
- Andorra
- Angola
- Anguilla
- Antarctica
- Argentina
- Armenia
- Aruba
- Australia
- Austria
- Azerbaijan
- Bahamas
- Bahrain
- Bangladesh
- Barbados
- Belarus
- Belgium
- Benin
- Bermuda
- Bhutan
- Bolivia
- Bosnia-Herzegovina
- Botswana
- Brazil
- British Indian Ocean Territory
- Brunei
- Bulgaria
- Burkina Faso
- Burundi
- Cambodia
- Cameroon
- Canada
- Cape Verde
- Cayman Islands
- Chile
- China
- Christmas Island
- Colombia
- Comoros
- Cook Islands
- Costa Rica
- Croatia
- Cyprus
- Czech Republic
- Denmark
- Djibouti
- Dominica
- Dominican Republic
- Ecuador
- Egypt
- El Salvador
- Equatorial Guinea
- Eritrea
- Estonia
- Ethiopia
- Falkland Islands
- Faroe Islands
- Fiji
- Finland
- France
- French Guiana
- French Polynesia
- Gabon
- Gambia
- Georgia
- Germany
- Ghana
- Gibraltar
- Greece
- Greenland
- Grenada
- Guadeloupe
- Guam
- Guatemala
- Guernsey
- Guinea
- Guyana
- Honduras
- Hong Kong
- Hungary
- Iceland
- India
- Indonesia
- Iraq
- Ireland
- Isle of Man
- Israel
- Italy
- Jamaica
- Jersey
- Jordan
- Kazakhstan
- Kenya
- Kiribati
- Kuwait
- Kyrgyzstan
- Laos
- Latvia
- Lesotho
- Liberia
- Libya
- Liechtenstein
- Lithuania
- Luxembourg
- Macau
- Macedonia
- Madagascar
- Malawi
- Malaysia
- Maldives
- Mali
- Malta
- Marshall Islands
- Martinique
- Mauritania
- Mauritius
- Mexico
- Moldova
- Monaco
- Mongolia
- Montenegro
- Montserrat
- Morocco
- Mozambique
- Namibia
- Nauru
- Nepal
- Netherlands
- New Caledonia
- New Zealand
- Nicaragua
- Niger
- Nigeria
- Niue
- Norway
- Oman
- Pakistan
- Palau
- Panama
- Papua New Guinea
- Paraguay
- Peru
- Philippines
- Poland
- Portugal
- Puerto Rico
- Qatar
- Reunion
- Romania
- Russia
- Saint Kitts and Nevis
- Saint Pierre and Miquelon
- Saint Thomas
- Saint Vincent
- Samoa
- San Marino
- Saudi Arabia
- Senegal
- Serbia
- Singapore
- Slovakia
- Slovenia
- Solomon Islands
- South Africa
- South Georgia and South Sandwich Islands
- South Korea
- Spain
- Sri Lanka
- Suriname
- Svalbard and Jan Mayen Islands
- Swaziland
- Sweden
- Switzerland
- Taiwan
- Tajikistan
- Tanzania
- Thailand
- Timor-Leste
- Togo
- Trinidad and Tobago
- Tunisia
- Turkey
- Turkmenistan
- Uganda
- Ukraine
- United Arab Emirates
- United Kingdom
- Uruguay
- Uzbekistan
- Vanuatu
- Vietnam
- Zambia
Supported Currencies
- AED
- AUD
- BGN
- CAD
- CHF
- CZK
- DKK
- EEK
- EUR
- GBP
- HKD
- HUF
- ILS
- INR
- ISK
- JOD
- JPY
- KRW
- LTL
- LVL
- MAD
- MYR
- NOK
- NZD
- OMR
- PLN
- QAR
- RON
- RSD
- RUB
- SAR
- SEK
- SGD
- SKK
- THB
- TND
- TRY
- TWD
- USD
- ZAR
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_MoneyBookers“account_id
deviceDetails
class containing:ipAddress
billingAddress
class containing:firstName
,lastName
,country
,email
userDetails
class containing:firstName
,lastName
,country
,email
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_MoneyBookers", "account_id":"<Skrill account>" } }, "deviceDetails":{ "ipAddress":"<customer's IP address>" }, "billingAddress":{ "firstName": "John", "lastName": "Smith", "country":"US", "email":"[email protected]" }, "userDetails":{ "firstName": "John", "lastName": "Smith", "country":"US", "email":"[email protected]" }, "timeStamp":"<YYYYMMDDHHmmss>", "checksum":"<calculated checksum>" }
After the transaction is processed, Nuvei sends a Direct Merchant Notification (DMN) that includes the result of the transaction to the URL provided in 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_MoneyBookers“account_id
deviceDetails
class containing:ipAddress
billingAddress
class containing:firstName
,lastName
,country
,email
userDetails
class containing:firstName
,lastName
,country
,email
Example createPayment()
Request
sfc.createPayment({ sessionToken: '<sessiontoken>', paymentOption: { alternativePaymentMethod: { paymentMethod: 'apmgw_MoneyBookers', account_id: '<Skrill account>' }, subMethod: { subMethod: 'skrill1Tap' } }, deviceDetails: { ipAddress: "<customer's IP address>" }, billingAddress: { firstName: 'John', lastName: 'Smith', country: 'US', email: '[email protected]' }, userDetails: { firstName: 'John', lastName: 'Smith', country: 'US', 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 the URL provided in urlDetails.notificationUrl
, which Nuvei recommends including in the /openOrder
request.
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_MoneyBookers“account_id
deviceDetails
class containing:ipAddress
billingAddress
class containing:firstName
,lastName
,country
,email
userDetails
class containing:firstName
,lastName
,country
,email
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_MoneyBookers", "account_id":"<Skrill account>" } }, "deviceDetails":{ "ipAddress":"<customer's IP address>" }, "billingAddress":{ "firstName": "John", "lastName": "Smith", "country":"US", "email":"[email protected]" }, "userDetails":{ "firstName": "John", "lastName": "Smith", "country":"US", "email":"[email protected]" }, "timeStamp":"<YYYYMMDDHHmmss>", "checksum":"<calculated checksum>" }
After the transaction is processed, Nuvei sends a Direct Merchant Notification (DMN) that includes the result of the transaction to the URL provided in
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_MoneyBookers“account_id
deviceDetails
class containing:ipAddress
billingAddress
class containing:firstName
,lastName
,country
,email
userDetails
class containing:firstName
,lastName
,country
,email
Example
createPayment()
Requestsfc.createPayment({ sessionToken: '<sessiontoken>', paymentOption: { alternativePaymentMethod: { paymentMethod: 'apmgw_MoneyBookers', account_id: '<Skrill account>' }, subMethod: { subMethod: 'skrill1Tap' } }, deviceDetails: { ipAddress: "<customer's IP address>" }, billingAddress: { firstName: 'John', lastName: 'Smith', country: 'US', email: '[email protected]' }, userDetails: { firstName: 'John', lastName: 'Smith', country: 'US', 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 the URL provided in
urlDetails.notificationUrl
, which Nuvei recommends including in the/openOrder
request. - 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.
Payout (Withdrawal) Flow
Send a /payout
request and include the userPaymentOptionId
, which contains the user’s previously stored APM account details. Press here for an example.
After the transaction is processed, Nuvei sends a DMN that includes the result of the transaction to the URL provided in urlDetails.notificationUrl
, which Nuvei recommends including in the /payout
request.
User Experience
Payment
- The user is redirected to the Skrill payment page.
- The user logs in to their account and completes the deposit.
Configuration Requirements
To complete the addition of Skrill to your account:
- Enable secure
return_url
. Contact [email protected] to request secure return URL activation for your merchant account. - Configure the mandatory parameters in the Skrill back office:
- Log in to the Skrill merchant portal from here.
- Navigate to Settings>Developer settings> API / MQI / GSR / CVT Management page.
- Enable the Automated Payment Interface (API) toggle and add the IPs from which the service may be reached as follows:
- 194.247.167.0/24 (production)
- 195.28.166.0/24 (production)
- 195.28.167.0/24 (production)
- 87.120.10.1/24 (production)
- 87.120.11.1/24 (production)
- 91.220.189.1/24 (production)
- 52.16.211.57 (integration)
- 52.17.110.204 (integration)
- 52.112.39.133 (integration)
- 54.242.232.64 (integration)
- Set a new API/MQI password.
- Set a new Secret word value.
Required Details for Skrill MID Setup
- ClientId [per currency] – This is the merchant ID of your Skrill merchant account.
- PayoutPassword (MQI/API password) [per currency] – This is the md5 hash of the API/MQI password as set in your Skrill merchant account.
- SecretWord [per currency] – This is the md5 hash of the secret word as set in your Skrill merchant account.
- UserName [per currency] – This is the processing email of your merchant account in Skrill.
Skrill Customer Verification
Prior to redirecting the user to the Skrill page, Nuvei makes a “Skrill Customer Verification” call using the user’s email account as entered on the cashier or as supplied in the account information.
Nuvei checks with Skrill that all the information below is provided by the merchant:
- First Name
- Last Name
- Date of Birth
- Country
- Post Code
The verification call uses these client profile parameters:
APM_ClientId
(according to the correct currency)APM_Secret_Word
(according to the correct currency)
Example Verification Request
{ "merchantId":"276261218", "password":"9f535b6ae672f627e4e5f79f2b7c63fe", "customerId":"276261219", "firstName":"John", "lastName":"Smith", "postCode":"CR12BN" }
Skrill responds with “MATCH” / “NO MATCH” to the parameters that Nuvei sends and in addition they provide Nuvei the user verification level:
Example Verification Response
{ "firstName":"MATCH", "lastName":"NO_MATCH", "postCode":"NO_MATCH", "verificationLevel":"10" }
The result from Skrill should be sent to the Risk system, which according to the merchant rules, decides if the transaction continues or not.
Skrill 1‐Tap
Skrill 1‐Tap is a single‐press payment service that enables the merchants to automatically debit transactions from their customer’s Skrill account without having to log in to their account to authorize the request each time.
In the 1-Tap flow, the user is redirected to the Skrill payment page like any regular deposit, but they sign an agreement to use the 1-Tap service during their first deposit. All subsequent deposits are in Direct mode, with the user being redirected again to the Skrill payment page.
1-Tap can be used in 2 modes:
- Via the regular Moneybookers – Users can select if they wish to use the regular flow or the 1-Tap flow. (recommended)
- Via separate payment method, Skrill One-Tap – The flow is always 1-Tap. (not recommended)
Technical Requirements
The 1-Tap feature should be enabled for the merchant account by Skrill.
To initiate the first deposit for APM Recurring Billing, merchants need to send submethod
= “skrill1Tap“.
Example 1-Tap 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_MoneyBookers", "account_id":"<Skrill account>" }, "subMethod":{ "subMethod":"skrill1Tap" } }, "billingAddress":{ "country":"US", "email":"[email protected]" }, "deviceDetails":{ "ipAddress":"<customer's IP address>" }, "timeStamp":"<YYYYMMDDHHmmss>", "checksum":"<calculated checksum>" }