0% found this document useful (0 votes)
206 views118 pages

Skrill Quick Checkout Guide v7.10

Skrill integration guide

Uploaded by

IbrarAsad
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
206 views118 pages

Skrill Quick Checkout Guide v7.10

Skrill integration guide

Uploaded by

IbrarAsad
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
You are on page 1/ 118

Skrill Quick Checkout

Integration Guide
For use by Skrill merchants using Quick Checkout
This guide describes how to integrate with Skrill Quick Checkout.

www.skrill.com

Version 7.10

Skrill Limited, 25 Canada Square, Canary Wharf, London, E14 5LQ, UK


Copyright

© 2019. Skrill Ltd. All rights reserved.


The material contained in this guide is copyrighted and owned by Skrill Ltd together with any other
intellectual property in such material. Except for personal and non-commercial use, no part of this
guide may be copied, republished, performed in public, broadcast, uploaded, transmitted,
distributed, modified or dealt with in any manner at all, without the prior written permission of Skrill
Ltd, and, then, only in such a way that the source and intellectual property rights are acknowledged.
To the maximum extent permitted by law, Skrill Ltd shall not be liable to any person or organisation,
in any manner whatsoever from the use, construction or interpretation of, or the reliance upon, all or
any of the information or materials contained in this guide.
The information in these materials is subject to change without notice and Skrill Ltd. assumes no
responsibility for any errors.
Skrill Ltd.

Registered office: Skrill Limited, 25 Canada Square, Canary Wharf, London, E14 5LQ, UK.

Version Control

Date Version Description


September 2013 6.2 New guide template and updated content, including new Quick
Checkout pages.
October 2013 6.3 Changes to description of Payment Method Codes appendix.

November 2013 6.4 Removal of Latvian currency.

December 2013 6.5 Addition of credit card brands when passing payment methods,
plus new screenshots.
February 2014 6.6 Changes to Skrill 1-tap.

May2014 6.7 Removal of Laser. Addition of Paysafecard.

September 2014 6.8 New Quick Checkout pages and functionality. New structure to
the guide. Addition of Trustly payment method code.
November 2014 6.9 Addition of mobile wallet payment service and changes to
screens, guide rewrite.
January 2015 7.0 Changes made to the coverage of Visa Electron, JCB & Diners

April 2015 7.1 Updated the URL for merchants to post transactions to https://
www.skrill.com/app/payment.pl
Removed Slovakian Koruna, Estonian Kroon and Lithuanian Litas
currencies from ISO 4217 currency table.
Removed individual bank payment method codes for Poland and
other minor updates to payment method codes.
June 2015 7.2 Updated the Skrill Wallet section to show the new mobile
optimised Wallet Checkout User Interface

Skrill Limited, 25 Canada Square, Canary Wharf, London, E14 5LQ, UK


Version Control

Date Version Description


November 2015 7.3 Described the new feature to allow merchants to calculate VAT/
Sales Tax.
Added the Resurs and Alipay payment methods.
Updated the URL for merchants to post transactions to https://
pay.skrill.com
March 2016 7.4 Updated the Failed Reason Code table
Added Neteller to the list of available payment methods.
Added Alipay Customs Declaration call.
June 2016 7.5 Added Straight Through Redirect support for Neteller payment
method. Changed the list of supported countries based on the
new Paysafe market presence policy.
Added Astropay and Unionpay payment methods.
ELV payment method renamed to SEPA. Payment logo changed.
Skrill Direct method renamed Rapid Transfer. Payment logo
changed. Poland added to list of supported countries.
October 2016 7.6 Added the BitCoin payment method. Removal of Japan from list
of supported countries.
December 2016 7.7 Updated Astropay details.

January 2017 7.8 Updated Trustly and Rapid Transfer supported countries.

March 2017 7.9 Added MQI/API password and secret word to Table 2-2 on
page 12. Added Peru Astropay information. Added failed reason
code 67.
July 2017 7.9 Added Denmark, Finland and Sweden to Rapid Transfer
supported countries.
Updated brand-centre URL and added failed reason codes 20, 68
and 69. Updated other failed reason codes.
August 2017 7.9 Added Norway to list of countries supporting Rapid Transfer.

September 2017 7.9 Changed Sofort icon to Klarna.

October 2017 7.9 Removed Banco de Occidente from Colombia.

December 2017 7.9 Added iDEAL payment method GCI.

January 2018 7.9 Added language support appendix. Corrected failure code 99.

February 2018 7.9 Added Recurring Billing and Secure Restriction. Added Rapid
Transfer mandatory field.
March 2018 7.9 Added Colombian Peso as a handled currency.

April 2018 7.9 Added Paysafecash as a payment method.

December 2018 7.9 Added new sections to the Skrill 1-Tap Payments chapter.

August 2019 7.10 Removed Resurs Payment method.


Removed Bitcoin underpayment and overpayment sections.
Updated supported countries for paysafecash and Rapid Transfer.

Skrill Limited, 25 Canada Square, Canary Wharf, London, E14 5LQ, UK


Publication number: GW-ECOM-H3-REL-10/22/19

Skrill Limited, 25 Canada Square, Canary Wharf, London, E14 5LQ, UK


Skrill Quick Checkout Integration Guide 7.10

Contents
1. About this Guide ................................................................................................ 1-1
1.1. Objectives and target audience..................................................................................... 1-1
1.2. PCI disclaimer ............................................................................................................... 1-1
1.3. Related documentation................................................................................................. 1-1
1.4. Conventions used in this guide...................................................................................... 1-1
1.5. Who to contact for queries ........................................................................................... 1-2
2. Introduction ....................................................................................................... 2-1
2.1. Skrill payment flow ........................................................................................................ 2-1
2.2. Displaying Skrill as a payment option on your website ................................................. 2-2
2.2.1 Display Pay by Skrill logos....................................................................................... 2-2
2.2.2 Display logos of specific payment methods ........................................................... 2-3
2.2.3 Logo restrictions for non-EU merchants ................................................................ 2-3
2.3. Redirecting customers to Quick Checkout .................................................................... 2-4
2.3.1 Secure redirection method .................................................................................... 2-4
2.3.2 Secure redirection restriction................................................................................. 2-5
2.3.3 Parameters to be posted to Quick Checkout ......................................................... 2-5
2.3.4 Test Cards and Test Merchant.............................................................................. 2-12
2.4. The Quick Checkout page ............................................................................................ 2-13
2.4.1 Skrill transaction status ........................................................................................ 2-14
2.5. Skrill status response ................................................................................................... 2-15
2.5.1 Detailed status description................................................................................... 2-18
2.5.2 Sales tax/VAT option ............................................................................................ 2-18
2.6. Process for customers who are registered with Skrill ................................................. 2-20
2.7. Quick Checkout for out-of-region merchants.............................................................. 2-21
2.8. Securing your Skrill merchant account ........................................................................ 2-22
2.8.1 Restricting access to your merchant account by IP address ................................ 2-23
2.8.2 Google two-factor authentication........................................................................ 2-23
2.8.3 Skrill Security Token ............................................................................................. 2-24
2.8.4 Additional security measures ............................................................................... 2-24
3. Skrill Digital Wallet Payments............................................................................. 3-1
3.1. Existing customers accessing their Skrill Wallet account .............................................. 3-1
3.2. Customers who want to register for a Skrill account .................................................... 3-3
4. Customizing the Quick Checkout Page ................................................................ 4-1
4.1. Pre-populating payment fields ...................................................................................... 4-1
4.2. Displaying payment and order details........................................................................... 4-3
4.3. Preselecting or displaying payment methods ............................................................... 4-4
4.3.1 Fixed payment methods ....................................................................................... 4-5
4.3.1.1 Displaying specific credit/debit card brands .................................................. 4-6
4.3.1.2 Straight Through Redirect .............................................................................. 4-8
4.3.2 Flexible payment methods ..................................................................................... 4-9
4.4. Integrating Quick Checkout into your website ............................................................ 4-10
4.4.1 Displaying your company logo or brand............................................................... 4-10
4.4.2 Embedding the Quick Checkout page .................................................................. 4-11
4.4.3 Removing or reducing the header and reducing the footer................................. 4-13
4.4.4 Recurring billing.................................................................................................... 4-14

© Skrill 2019 IV
Skrill Quick Checkout Integration Guide 7.10

5. Account and Integration Options........................................................................ 5-1


5.1. Secure return_url parameter ........................................................................................ 5-1
5.2. Merchant refunds.......................................................................................................... 5-2
5.3. Chargeback notification................................................................................................. 5-2
5.4. Adding a descriptor ...................................................................................................... 5-2
5.5. Code integration examples............................................................................................ 5-3
5.5.1 Generating the Session Identifier.......................................................................... 5-3
5.5.2 Redirecting the customer to Skrill .......................................................................... 5-3
6. Skrill 1-Tap Payment........................................................................................... 6-1
6.1. Enabling 1-Tap ............................................................................................................... 6-1
6.2. Enable the MQI and API................................................................................................. 6-1
6.3. Skrill 1-Tap button ......................................................................................................... 6-3
6.4. Call flows........................................................................................................................ 6-4
6.5. Setting up an initial 1-Tap payment .............................................................................. 6-6
6.5.1 Example of a Skrill 1-Tap payment form ................................................................ 6-7
6.6. Taking subsequent 1-Tap payments.............................................................................. 6-7
6.6.1 Prepare payment step............................................................................................ 6-8
6.6.2 Execute payment step .......................................................................................... 6-12
6.7. Checking or cancelling 1-Tap payments ...................................................................... 6-14
6.7.1 Cancel Skrill 1-Tap payment ................................................................................. 6-14
6.7.2 Get Skrill 1-Tap payment status ........................................................................... 6-15
6.7.3 MQI Error Messages ............................................................................................. 6-17
7. Astropay and Unionpay...................................................................................... 7-1
7.1. Bank transfer ................................................................................................................. 7-2
7.2. Cash/Invoice ................................................................................................................ 7-11
7.3. Refunds........................................................................................................................ 7-14
7.4. Astropay payment method codes ............................................................................... 7-16
7.5. List of banks supported by country ............................................................................. 7-16
8. Bitcoin Payment Method.................................................................................... 8-1
8.1. Introduction................................................................................................................... 8-1
8.1.1 Supported countries............................................................................................... 8-1
8.2. Bitcoin Integration......................................................................................................... 8-1
8.2.1 Merchant prerequisites.......................................................................................... 8-1
8.2.2 Customer prerequisites.......................................................................................... 8-1
8.2.3 Bitcoin payment method code ............................................................................... 8-1
8.3. Bitcoin payment process ............................................................................................... 8-1
8.3.1 Quick Checkout – regular flow (correct amount is paid)........................................ 8-2
8.4. Bitcoin Refunds.............................................................................................................. 8-7
8.4.1 Refunds from BitPay............................................................................................... 8-8
9. Appendix............................................................................................................ 9-1
9.1. ISO 4217 currencies ....................................................................................................... 9-1
9.2. Language support .......................................................................................................... 9-2
9.3. ISO country codes (3-digit) ............................................................................................ 9-3
9.4. MD5 signature ............................................................................................................... 9-6
9.5. SHA2 signature .............................................................................................................. 9-7
9.6. Example HTML forms..................................................................................................... 9-7

© Skrill 2019 V
Skrill Quick Checkout Integration Guide 7.10

9.7. Payment method codes................................................................................................. 9-9


9.7.1 Alipay ................................................................................................................... 9-11
9.7.2 Alipay customs declaration .................................................................................. 9-12
9.8. Failed reason codes ..................................................................................................... 9-17
Index

© Skrill 2019 VI
Skrill Quick Checkout Integration Guide 7.10

1. ABOUT THIS GUIDE

1.1. Objectives and target audience


This guide provides details on how to connect your website to Skrill Quick Checkout. It is intended for
users who have a working knowledge of HTML. The guide covers the steps in the payment process
and the information that needs to be passed from your web servers to Skrill, to enable Skrill to
process payments.

1.2. PCI disclaimer


In accordance with the Payment Card Industry Data Security Standard in force as updated from time
to time (“PCI-DSS”), Skrill will be responsible for the security of all Sensitive User Data (as defined in
the Merchant Agreement) processed, stored or transmitted by Skrill when providing the Skrill
Services.

1.3. Related documentation


You should use this guide together with the additional Skrill documents described below.

Table 1-1: Other guides

Guide Description
Automated Payments and Describes how to connect to Skrill using the Automated Payments
Merchant Query Interfaces Interface (API) and Merchant Query Interface (MQI). This supports
Guide functionality such as merchant queries against the system, sending
money and processing refunds.
To download a copy of the Automated Payments and Merchant
Query Interfaces Guide, click here.

1.4. Conventions used in this guide


The table below lists some of the conventions used in this guide.

Table 1-2: List of conventions

Convention Description
Reference Indicates a reference to another section in this guide. For example,
see Pre-populating payment fields on page 4-1.

Code example Used to illustrate example code, functions and commands.

File path Used for emphasis or to indicate a file path or field label.

Menu1 > Menu option2 Indicates keys or controls that must be used during procedures. A
chevron between items indicates that it is a menu path that you
should select.

© Skrill 2019 1-1


Skrill Quick Checkout Integration Guide 7.10

1.5. Who to contact for queries


For all support queries, contact the Merchant Services department at [email protected]

© Skrill 2019 1-2


Skrill Quick Checkout Integration Guide 7.10

2. INTRODUCTION

Skrill Quick Checkout is a secure hosted payment page, where you can redirect customers from your
website to make a payment through Skrill. Quick Checkout provides customers with access to a range
of payment methods, based on their location and your account and integration settings.
Integration to Quick Checkout is simple and requires collecting customer payment information on
your website in a standard HTML form and submitting this to Skrill. Quick Checkout then collects the
customer payment details needed to complete the payment, and sends these details to the relevant
bank or alternative payment provider for authorisation.
After the payment is complete, the customer is returned to your website and you receive a real-time
notification of the payment, which includes details of the transaction.

2.1. Skrill payment flow


A simplified illustration of the Skrill payment flow is shown in the figure below.

Figure 2-1: Skrill transaction flow

1. When the customer is ready to pay for goods or services on your website, they select the
Skrill payment option on your website.
2. You request a session identifier (SID) by passing customer and transaction details (for
example: amount, currency and language) to Quick Checkout.
3. Skrill returns the generated SID.
4. Using a light box or iframe you redirect the customer to Quick Checkout and include the
session identifier in the redirect URL. Skrill displays the Quick Checkout page.

© Skrill 2019 2-1


Skrill Quick Checkout Integration Guide 7.10

5. The customer enters their payment information, plus any other details requested, and
confirms the transaction.
6. Skrill requests authorisation for the payment from the customer’s bank, third party provider
or card issuer.
7. The bank/provider approves or rejects the transaction.
8. Skrill displays the Quick Checkout confirmation page, containing the transaction result.
9. Skrill provides you with an asynchronous notification, sent to your status URL or IPN (Instant
Payment Notification), confirming the transaction details and status.

2.2. Displaying Skrill as a payment option on your website


When a customer is on the checkout page of your website, there are a number of ways in which you
can present the Skrill payment options to them:
• Display Pay by Skrill logos
• Display logos of specific payment methods

2.2.1. Display Pay by Skrill logos


The simplest integration option is to present a generic Pay by Skrill logo or button on your website,
and then redirect the customer to the Skrill Quick Checkout page, where they can pay using a suitable
method or log in to their Skrill account to pay from their account balance. This integration option
ensures that your customers always have access to the full range of Skrill payment methods available
in their country or region.
See the example logos below.

You can download a copy of these logos in different sizes from the Skrill Website at:
https://www.skrill.com/en/merchants/brand-centre

Note: You will need your Skrill Account customer ID to use this section of Skrill.com, see https://
help.skrill.com/en/Article/my-money/deposits/how-do-i-locate-my-customer-id-number for
details.

© Skrill 2019 2-2


Skrill Quick Checkout Integration Guide 7.10

2.2.2. Display logos of specific payment methods


An alternative option is to present only the logos of the specific payment methods you want to offer
your customers through Skrill. For example:

You can then define, in your HTML code, which payment method to display on the Skrill Quick
Checkout page when the customer selects this logo. There are two ways in which this feature can be
implemented:
• Fixed - only the selected payment method (or methods) is (are) displayed to the customer on
Quick Checkout. The first method supplied is preselected (set as the default option).
• Flexible - the selected payment method is displayed as the default option (preselected). Skrill
automatically detects the customer’s country (using Geolocation or the country parameter
passed by the merchant) and displays a localized version of the Quick Checkout page. Only
the payment methods available in the customer’s country are displayed. The order of the
payment methods tabs is based on the popularity and conversion rate for each method in the
customer’s country.
Co-branded payment method logos for display on your website are available at:
https://www.skrill.com/en/merchants/brand-centre

Note: The Payment methods you want to support are specified by including the relevant payment
method codes in the payment request submitted to Skrill. Alternatively, it is also possible to
request that only specific payment methods be enabled. For details, please contact Skrill
Merchant Services.

2.2.3. Logo restrictions for non-EU merchants

Note: Read this section carefully if your business is located outside of the EU/EEA or the US.

For Skrill merchants based outside of the US and EU/EEA, Visa and MasterCard logos or brand names
must not be used in the payment button that links to Skrill.
The Skrill processing agreement does not give you rights to display Visa and MasterCard acceptance
marks on your site, and these logos should not be displayed unless you have obtained the rights to do
so under a separate processing agreement.
Our compliance team conduct regular checks to ensure that this rule is enforced and failure to
comply may result in suspension of your account.
For more information, see Quick Checkout for out-of-region merchants on page 2-21.

© Skrill 2019 2-3


Skrill Quick Checkout Integration Guide 7.10

2.3. Redirecting customers to Quick Checkout


You can use a standard HTML form to collect and pass payment and customer details to Quick
Checkout. See Example HTML forms on page 9-7. When the customer selects the Skrill option, your
website should post the HTML form containing their transaction details to:
https://pay.skrill.com .
The HTML form should contain the mandatory hidden input fields listed in Table 2-1 on page 2-5.
You should use a secure method of obtaining a session ID before redirecting customers to Skrill, as
described in Secure redirection method on page 2-4.

Tips for improving the customer experience


• Any parameters that you pass through in your HTML form, such as customer first name, last
name, and email, will be automatically populated (or populated and hidden) as appropriate,
on the Quick Checkout payment pages making it easier for the customer to complete these
forms.
• You can customize the appearance of the Quick Checkout page using the options described in
Chapter 4: Customizing the Quick Checkout Page.
• To maximise conversion, Skrill recommends that you redirect customers to the Quick
Checkout page in the same browser window or embed the Skrill page in an iframe (see
Embedding the Quick Checkout page on page 4-11).

2.3.1. Secure redirection method


This method can be used to ensure that details of the payment are communicated securely between
your server and Skrill.

Note: Important! We strongly recommend that you use this method when redirecting your
customers to Skrill, as it does not require sending any payment parameters to their browser.
This prevents customers from being able to view or modify any hidden parameters in your
source code.

The redirection process is as follows:


1. Your web server makes a standard POST request with the payment parameters, using the
‘prepare_only=1’ parameter (see Table 2-1 below).
2. The Skrill server prepares a session for the payment and returns a standard HTTP(S) response.
3. Your web server takes the body of the response which contains a SESSION_ID value.
4. Using this SESSION_ID value the customer can be redirected to:
https://pay.skrill.com/?sid=<SESSION_ID>
The normal flow of events continues. This redirect must happen within 15 minutes of the original
request or the session will expire.

© Skrill 2019 2-4


Skrill Quick Checkout Integration Guide 7.10

Note: The Skrill Payment Platform treats GET/POST requests to the payment URL identically. As a
result, you can also use an HTTP GET operation in place of POST in step 1 above and pass the
payment parameters as name/value pairs in the query string. Similarly, in Step 4 above you
could use a HTTP POST operation and pass the SESSION_ID value from Step 3 as the sid
parameter in the message body. POST and GET should not be combined in the same request.

For code examples of how to implement this, see Redirecting the customer to Skrill on page 5-3.

2.3.2. Secure redirection restriction


The Quick Checkout Secure Restriction service allows merchants to create a whitelist of IP addresses
(including ranges) specific to them, so that Gateway transactions are generated only for the IP
addresses in the list. When the service is enabled and the list is populated, any request that doesn’t
have a “SID” in Skrill will be blocked. By default, the service is disabled, and the Gateway allows all
payment requests, with no restrictions.
Configure the service as follows:
1. Note the IP addresses/address ranges to add to the whitelist.
2. Log in to your merchant account.
3. Go to Settings > DEVELOPER SETTINGS.
4. Under Quick Checkout Secure Restriction, set Enable service, and then, in the field below,
type the IP addresses separated by spaces, or an address range in CIDR notation.
5. Click Save.

2.3.3. Parameters to be posted to Quick Checkout


Please review the table below for details of the required and optional parameters that need to be
included in your form. For implementation examples, see Example HTML forms on page 9-7.

Note: All URL parameters must include the scheme at the front of the URL for example: https://. For
example instead of www.google.co.uk you would need to use https://www.google.co.uk.

Table 2-1: Skrill Quick Checkout parameters

Max
Field name Description Required Example value
length
Merchant details

pay_to_email Email address of your Skrill Yes 50 [email protected]


merchant account.

recipient_description A description to be shown on the No 30 Your Company Name


Skrill payment page in the logo area
if there is no logo_url parameter. If
no value is submitted and there is no
logo, the pay_to_email value is
shown as the recipient of the
payment. (Max 30 characters)

© Skrill 2019 2-5


Skrill Quick Checkout Integration Guide 7.10

Table 2-1: Skrill Quick Checkout parameters (Continued)

Max
Field name Description Required Example value
length
transaction_id Your unique reference or No 100 A205220
identification number for the
transaction. (Must be unique for
each payment)

return_url URL to which the customer is No 240 https://


returned once the payment is made. www.example.com/
If this field is not filled, the Skrill payment.htm
Quick Checkout page closes
automatically at the end of the
transaction and the customer is
returned to the page on your
website from where they were
redirected to Skrill. A secure return
URL option is available. (See Secure
return_url parameter on page 5-1.)

return_url_text The text on the button when the No 35 Return to main


customer finishes their payment. website

return_url_target Specifies a target in which the No 1 3


return_url value is displayed upon
successful payment from the
customer. Default value is 1.
1 = '_top'
2 = '_parent'
3 = '_self'
4= '_blank'

cancel_url URL to which the customer is No 240 https://example.com


returned if the payment is cancelled /payment_
or fails. If no cancel URL is provided cancelled.htm
the Cancel button is not displayed.

cancel_url_target Specifies a target in which the No 1 1


cancel_url value is displayed upon
cancellation of payment by the
customer. Default value is 1.
1 = '_top'
2 = '_parent'
3 = '_self'
4= '_blank'

© Skrill 2019 2-6


Skrill Quick Checkout Integration Guide 7.10

Table 2-1: Skrill Quick Checkout parameters (Continued)

Max
Field name Description Required Example value
length
status_url URL to which the transaction details No 400 https://
are posted after the payment example.com/
process is complete. Alternatively, process_
you may specify an email address payment.cqi
where the results are sent.
If the status_url is omitted, no OR
transaction details are sent. mailto:
[email protected]
Only the following ports are
supported:
80, 81, 82, 83, 88, 90, 178, 419, 433,
443, 444, 448, 451, 666, 800, 888,
1025, 1430, 1680, 1888, 1916, 1985,
2006, 2221, 3000, 4111, 4121, 4423,
4440, 4441, 4442, 4443, 4450, 4451,
4455, 4567, 5443, 5507, 5653, 5654,
5656, 5678, 6500, 7000, 7001, 7022,
7102, 7777, 7878, 8000, 8001, 8002,
8011, 8014, 8015, 8016, 8027, 8070,
8080, 8081, 8082, 8085, 8086, 8088,
8090, 8097, 8180, 8181, 8443, 8449,
8680, 8843, 8888, 8989, 9006, 9088,
9443, 9797, 10088, 10443, 12312,
18049, 18079, 18080, 18090, 18443,
20202, 20600, 20601, 20603, 20607,
20611, 21301, 22240, 26004, 27040,
28080, 30080, 37208, 37906, 40002,
40005, 40080, 50001, 60080, 60443
These port restrictions apply to all
Skrill status urls

status_url2 Second URL to which the transaction No 400 https://example.


details are posted after the payment com/process_
process is complete. Alternatively, payment 2.cqi
you may specify an email address
where the results are sent. The OR
same port restrictions apply as for mailto:
the status_url parameter above. [email protected]

language 2-letter code of the language used No * 2 EN


for Skrill’s pages. Can be any of the See Note
codes in Language support on 1
page 9-2.

© Skrill 2019 2-7


Skrill Quick Checkout Integration Guide 7.10

Table 2-1: Skrill Quick Checkout parameters (Continued)

Max
Field name Description Required Example value
length
logo_url The URL of the logo which you No 240 https://
would like to appear in the top right www.example.com/
of the Skrill page. The logo must be logo.jpg
accessible via HTTPS or it will not be
shown.
The logo will be resized to fit. To
avoid scaling distortion, the
minimum size should be as follows:
• If the logo width > height - at
least 107px width.
• If logo width > height - at least
65px height
Avoid large images (much greater
than 256 by 256px) to minimise the
page loading time.
prepare_only Forces only the SID to be returned No 1 1
without the actual page. Useful
when using the secure method to
redirect the customer to Quick
Checkout. For details, see Secure
redirection method on page 2-4.
Accepted values are 0 (default) and
1 (prepare only).

dynamic_descriptor When a customer pays through No ACME Solutions Ltd.


Skrill, Skrill submits a preconfigured
descriptor with the transaction,
containing your business trading
name/ brand name. The descriptor
is typically displayed on the bank or
credit card statement of the
customer. For Klarna and Direct
Debit payment methods, you can
submit a dynamic_descriptor, which
will override the default value
stored by Skrill. See Adding a
descriptor on page 5-2 for more
details.

sid This is an optional parameter No 32 0eb5d0f6b94badfeae


containing the Session ID returned 5b0364b26d0288
by the prepare_only call. If you use
this parameter you should not
supply any other parameters.

rid You can pass a unique referral ID or No 100 123456


email of an affiliate from which the
customer is referred. The rid value
must be included within the actual
payment request.

© Skrill 2019 2-8


Skrill Quick Checkout Integration Guide 7.10

Table 2-1: Skrill Quick Checkout parameters (Continued)

Max
Field name Description Required Example value
length
ext_ref_id You can pass additional identifier in No 100 Affiliate Name
this field in order to track your
affiliates. You must inform your
account manager about the exact
value that will be submitted so that
affiliates can be tracked.

merchant_fields A comma-separated list of field No 240 Field1,Field2


names that are passed back to your
web server when the payment is
confirmed (maximum 5 fields).

Field1 An example merchant field No 240 Value 1

Field2 An example merchant field No 240 Value 2

Customer details (used to speed up Registration or Payment)

pay_from_email Email address of the customer who No * 100 [email protected]


is making the payment. If provided, See Note
this field is hidden on the payment 2
form. If left empty, the customer has
to enter their email address.

firstname Customer’s first name. No * 20 John


See Note
2

lastname Customer’s last name No * 50 Payer


See Note
2

date_of_birth Date of birth of the customer. The No 8 01121980


format is ddmmyyyy. Only numeric
values are accepted.
If provided this field will be prefilled
in the Payment form. This saves time
for SEPA payments and Skrill Wallet
sign-up which require the customer
to enter a date of birth.

address Customer’s address (for example: No 100 Payer street


street)

address2 Customer’s address (for example: No 100 Payer town


town)

phone_number Customer’s phone number. Only No 20 0207123456


numeric values are accepted

postal_code Customer’s postal code/ZIP Code. No 9 EC45MQ


Only alphanumeric values are
accepted
(for example:, no punctuation marks
or dashes)

city Customer’s city or postal area No 50 London

© Skrill 2019 2-9


Skrill Quick Checkout Integration Guide 7.10

Table 2-1: Skrill Quick Checkout parameters (Continued)

Max
Field name Description Required Example value
length
state Customer’s state or region. No 50 Central London

country Customer’s country in the 3-digit ISO No 3 GBR


Code (see ISO country codes (3-
digit) on page 9-3).

neteller_account Neteller customer account email or No 150 netellertest_GBP@n


account ID eteller.com

neteller_secure_id Secure ID or Google Authenticator No 411392


One Time Password for the
customer’s Neteller account
Payment details

amount The total amount payable. Yes 19 39.68


Note: Do not include the trailing OR
zeroes if the amount is a natural 39.6
number. For example: “23” (not OR
“23.00”). 39

currency 3-letter code of the currency of the Yes 3 EUR


amount according to ISO 4217 (see
ISO 4217 currencies on page 9-1).

amount2_description You can include a calculation for the No 240 Product price:
total amount payable, which is
displayed in the More information
section in the header of the Skrill
payment form.
Note that Skrill does not check the
validity of this data.

amount2 This amount in the currency defined No 19 29.90


in the field 'currency' will be shown
next to amount2_description.
amount3_description See above No 240 Handing fees &
charges:

amount3 See above No 19 3.10

amount4_description See above No 240 VAT (20%):

amount4 See above No 19 6.60

detail1_description You can show up to five additional No * 240 Product ID:


details about the product in the See Note
More information section in the 1
header of Quick Checkout.

© Skrill 2019 2-10


Skrill Quick Checkout Integration Guide 7.10

Table 2-1: Skrill Quick Checkout parameters (Continued)

Max
Field name Description Required Example value
length
detail1_text The detail1_text is shown next to No * 240 4509334
the detail1_description in the More See Note
Information section in the header of 1
the payment form with the other
payment details. The
detail1_description combined with
the detail1_text is shown in the
more information field of the
merchant account history CSV file.
Using the example values, this
would be Product ID: 4509334.
Note: If a customer makes a
purchase using Skrill Wallet this
information will also appear in the
same field in their account history.

detail2_description See above. Note not shown in the No 240 Description:


account history.

detail2_text See above. Note not shown in the No 240 Romeo and Juliet
account history. (W. Shakespeare)

detail3_description See above. Note not shown in the No 240 Special Conditions:
account history.

detail3_text See above. Note not shown in the No 240 5-6 days for delivery
account history.

detail4_description See above. Note not shown in the No 240


account history.

detail4_text See above. Note not shown in the No 240


account history.

detail5_description See above. Note not shown in the No 240


account history.

detail5_text See above. Note not shown in the No 240


account history.

Note: 1.) language, detail1_text and detail1_description are not mandatory but are highly
recommended for a good user experience. English is used as the default language if no
Language is provided.
2.) When using Rapid Transfer, if a customer is to be passed for a straight through redirect, the
following parameters are mandatory: firstname, lastname, pay_from_email.

Language Encoding for Text Parameters


All text fields use UTF-8 encoding. Note however that the Quick Checkout payment form can only
display Latin-1 characters.

© Skrill 2019 2-11


Skrill Quick Checkout Integration Guide 7.10

2.3.4. Test Cards and Test Merchant


You may wish to test the Quick Checkout. You can use our test page at https://www.skrill.com/app/
test_payment.pl to access the payment form parameters. Set the pay_to_email parameter under
Merchant Details to a test merchant account for example: [email protected]. Set any other
parameters as required and click Submit to load Quick Checkout.

Table 2-2: Test merchant accounts

Merchant account MQI/API password and secret word Type

[email protected] mqi: skrill123, secretword: skrill Fixed Payment Options (Fixed


Split Gateway)

[email protected] mqi: skrill123, secretword: skrill Flexible Payment Options


(Flexible Split Gateway)

[email protected] mqi: skrill123, secretword: skrill Fixed Payment Options (Fixed


Split Gateway) with Reduced
header option enabled.

Warning: This is the live production payment form. If you use a standard (non-test) pay_to_email
merchant account and a valid credit card or standard Skrill account the payments will be
processed and deducted from your card or Skrill wallet.

We provide three test cards shown in the table below for use with the test merchant. When using
these card numbers enter an expiry date in the future and a random CVV number. Note that Amex
requires a four digit CVV.

Table 2-3: Test cards

Brand Card number


Mastercard 5438311234567890
Visa 4000001234567890
Amex 371234500012340

© Skrill 2019 2-12


Skrill Quick Checkout Integration Guide 7.10

2.4. The Quick Checkout page


The Skrill Quick Checkout page displays the payment details submitted to Skrill, as shown in the
example below.

AMOUNT AND MERCHANT LOGO


CURRENCY

PAYMENT CUSTOMER CAN SEE


METHODS IN TABS OTHER PAYMENT
METHODS

AVAILABLE CARD
BRANDS

CUSTOMER
COMPLETES
MANDATORY FIELDS

Figure 2-2: Example of Skrill payment page

The customer enters their credit card details and email address, and selects Pay Now to confirm the
payment.
At any time before the Pay Now button is selected, the customer can cancel the payment process and
return to your website (to the URL provided in the 'cancel_url' field; see Table 2-1 on page 2-5).

Notes
• The Quick Checkout payment page can be customized, as described in Chapter 4:
Customizing the Quick Checkout Page.
• Customers who have an existing Skrill account can log in to their account to make payments,
as described in Chapter 3: Skrill Digital Wallet Payments.
• Credit and debit card brands are not displayed on Quick Checkout for merchants who are
based outside of Skrill’s standard region (USA and EU/EEA). For more information, see Quick
Checkout for out-of-region merchants on page 2-21.

© Skrill 2019 2-13


Skrill Quick Checkout Integration Guide 7.10

2.4.1. Skrill transaction status


When the payment process is completed the ‘Successful payment’ message is displayed:

Figure 2-3: Transaction status

© Skrill 2019 2-14


Skrill Quick Checkout Integration Guide 7.10

2.5. Skrill status response


When the payment process is complete Skrill sends the details of the transaction to the status_url
page you provided in your payment request (see Table 2-1 on page 2-5). This is done with a standard
HTTP POST. The Skrill server continues to post the status until a response of HTTP OK (200) is received
from your server or the number of posts exceeds 10.
The table below shows the parameters sent to your status_url page:

Table 2-4: Status URL parameters

Field name Description Required Example value

pay_to_email Your email address. Yes info@merchant. com

pay_from_email Email address of the customer who is Yes [email protected]


making the payment.
Note: If a Skrill wallet account exists
with this email, and the Skrill Wallet is
one of the available payment method
tabs, it will be selected as the default
payment method)

merchant_id Unique ID of your Skrill account. ONLY Yes 100005


needed for the calculation of the MD5
signature (see MD5 signature on
page 9-6).

customer_id If the customer pays using a Skrill No a 200005


Wallet, this is the unique ID of their
Skrill account.
If the customer pays with any other
payment method, this is a unique ID
for this payment generated by Skrill
transaction_id A unique reference or identification No b A205220
number provided by you in your HTML
form.
mb_transaction_id Skrill’s internal unique reference ID for Yes 170032056
this transaction

mb_amount The total amount of the payment in Yes 25.46 / 25.4 / 25


the currency of your merchant Skrill
digital wallet account.

mb_currency Currency of mb_amount. Will always Yes GBP


be the same as the currency of your
merchant Skrill digital wallet account.

status Status of the transaction: -2 failed / 2 Yes 2


processed / 0 pending / -1 cancelled
(see detailed explanation below)

failed_reason_code If the transaction has a status value -2 No c 06


(failed), this field will contain a code
detailing the reason for the failure.
Note that you will need to ask Skrill to
enable this feature to receive the
code.

© Skrill 2019 2-15


Skrill Quick Checkout Integration Guide 7.10

Table 2-4: Status URL parameters (Continued)

Field name Description Required Example value

md5sig MD5 signature (see MD5 signature on Yes 327638C253A4637199CEBA


page 9-6). 6642371F20

sha2sig SHA2 signature (see SHA2 signature No d dbb7101322257a311f08d1c


on page 9-7). 527053058fc7e464e30bcfb
4613f09053c22dd1f8

amount Amount of the payment as posted in Yes 39.60 / 39.6 / 39


your HTML form.

currency Currency of the payment as posted in Yes EUR


your HTML form.

neteller_id If the Neteller payment method is No netellertest_GBP@neteller.


used this parameter contains the com
Neteller customer’s account id or
email depending on the details
entered by the Neteller customer or
the value supplied in the
neteller_account parameter.

payment_type The payment method the customer No e WLT


used (see Payment method codes on
page 9-9). Contact merchant services
to enable this option. You can choose
to receive either:
• Consolidated values - there are
two values that can be shown:
WLT for Skrill account balance
payments and MDB for any other
payment type for example:
credit/debit card or alternative
payment method. Note that if
the customer logs in to their Skrill
Wallet but pays by Card the MDB
value will be used.
• Detailed values - this shows the
specific instrument used, for
example, VSA - Visa card, GIR –
giropay, and so on. WLT stands
for Skrill account balance in this
context. Note that if the
customer logs in to their Skrill
Wallet but pays using a saved
Visa Card the VSA payment code
will be returned.
merchant_fields If you submitted a list of values in the No field1=value1
merchant_fields parameter, they will
be passed back with the status report.

a. The customer_id parameter is enabled upon activation. If you don’t receive it in the response sta-
tus, please contact Skrill Merchant Services.
b. If no transaction_id is submitted, the mb_transaction_id value will be posted in the report.
c. The failed_reason_code parameter is enabled upon activation and is part of the response status.
For a description of all failed reason codes, see Failed reason codes on page 9-17.

© Skrill 2019 2-16


Skrill Quick Checkout Integration Guide 7.10

d. To enable the sha2sig parameter, contact merchant services. For more information, see SHA2 sig-
nature on page 9-7.
e. The payment_type parameter is enabled upon activation. If you don’t receive it in the response sta-
tus, please contact Skrill Merchant Services.

Language encoding for text parameters


All text fields use UTF-8 encoding. Note however that the Quick Checkout can only display Latin-1
characters.

Validating the status response


We recommend that you validate the transaction details in the status response. This can be done as
follows:
1. Create a pending transaction or order for a fixed amount on your website.
2. Redirect the customer to the Quick Checkout page, where they complete the transaction.
3. Skrill will post the transaction confirmation to your status_url page. This will include the
mb_amount (amount) parameter.
4. Your website should validate the parameters received by calculating the md5 signature (see
MD5 signature on page 9-6). If successful, it should compare the value in the confirmation
post (amount parameter) to the one from the pending transaction or order on your website.
You can also compare other parameters such as transaction id and pay_from_email.
Once you have validated the transaction data you can process the transaction, for example, by
dispatching the goods ordered. You must implement measures to ensure that goods are not
dispatched multiple times if you receive subsequent successful notifications for the same transaction
ID (transaction_id or mb_transaction_id) to protect against replay attacks or other sources of
duplicate status posts.

Note: If you want to restrict the receipt of status response based on the posting IP address, you
should use the full list of Skrill IP ranges as from time to time Skrill may change the IP address
used. Any address within any of the following listed ranges could be used. The full list of Skrill IP
ranges are: 91.208.28.0/24, 93.191.174.0/24, 193.105.47.0/24, 195.69.173.0/24.

Using the Merchant Query Interface


You can use the Merchant Query Interface to repost a status report, to automatically check the status
of a transaction, and to issue a refund to a customer. For details, see the Automated Payments and
Merchant Query Interfaces Guide.

© Skrill 2019 2-17


Skrill Quick Checkout Integration Guide 7.10

2.5.1. Detailed status description


Table 2-5: Transaction status

# Status Description

‘2’ Processed Sent when the transaction is processed and the funds have been received in
your Skrill account.

‘0’ Pending Sent when the customers pays via an offline bank transfer option. Such
transactions will auto-process if the bank transfer is received by Skrill.
Note: We strongly recommend that you do not process the order or transaction
in your system upon receipt of this status from Skrill.

‘-1’ Cancelled Pending transactions can either be cancelled manually by the sender in their
online Skrill Digital Wallet account history or they will auto-cancel after 14 days
if still pending.

‘-2’ Failed This status is typically sent when the customer tries to pay via Credit Card or
Direct Debit but our provider declines the transaction. It can also be sent if the
transaction is declined by Skrill’s internal fraud engine for example:
failed_reason_code 54 - Failed due to internal security restrictions. For a
description of all failed reason codes, see Failed reason codes on page 9-17.
‘-3’ Chargeback Whenever a chargeback is received by Skrill, a ‘-3’ status is posted in the
status_url and an email is sent to the primary email address linked to the
Merchant’s account. Skrill also creates a new debit transaction to debit the
funds from your merchant account.

2.5.2. Sales tax/VAT option


Skrill provides a configuration setting to assist merchants to calculate sales/value added tax (VAT).
Contact merchant services to enable this option. Once enabled, the following three additional
parameters are sent as part of the status response to the status_urls:

Table 2-6: Sales tax status_url parameters

Parameter Description
payment_instrument_ A three letter ISO 3166-1 alpha-3 code showing the country of origin of the
country payment instrument the customer used. For example, a Visa card for a bank in
Germany would return DEU. This value will be blank if no country can be
determined for the payment method. If the customer pays using their Skrill wallet
balance the payment_instrument_country will be the same as the country
registered for their Skrill account

country A three letter ISO 3166-1 alpha-3 country code. If a country parameter is passed to
the payment form this value will be used. If customer pays using a Skrill Wallet the
country they selected when registering their Skrill account is returned. If none of
these situations apply geolocation (using the customer’s IP) is used to return a 3
character country code.

IP_country A two letter ISO 3166-1 alpha-2 code showing the customer's country as
determined by Geolocation using the customer's IP.

These values are also added to the CSV account history report. This report can be obtained using the
view account history Merchant Query Interface option or via the All Transactions > Export CSV option

© Skrill 2019 2-18


Skrill Quick Checkout Integration Guide 7.10

in the My account section after logging in to your merchant Skrill account. The following table shows
the column names for these parameters in the CSV file:

Table 2-7: CSV parameters

Status_url parameter CSV column name

payment_instrument_country Instrument Country

country Country

IP_country IP country

Figure 2-4: Section of Account History CSV file with Sales Tax fields highlighted in red

© Skrill 2019 2-19


Skrill Quick Checkout Integration Guide 7.10

2.6. Process for customers who are registered with Skrill


Customers who have already registered for a Skrill Digital Wallet account can log in to their account
and pay from the available balance in their account. They can also pay using one of the payment
methods linked to their account, or access additional Skrill payment methods and options.
• To log in to their account the customer selects the Pay by Skrill tab. The following page is
displayed:

ENTER EMAIL ADDRESS

ENTER PASSWORD

PROCEED TO LOGIN

Figure 2-5: Pay by Skrill tab

The customer enters their Skrill account email address and password; they then select the Login
button.
For more information on how customers can access their Skrill Digital Wallet account, and the options
available through the Skrill Digital Wallet, see Chapter 3: Skrill Digital Wallet Payments.

© Skrill 2019 2-20


Skrill Quick Checkout Integration Guide 7.10

2.7. Quick Checkout for out-of-region merchants


Please read this note carefully if your business is based outside of the USA and the EEA (all EU
Member States, Iceland, Liechtenstein and Norway) or in Andorra, Gibraltar, Monaco, San Marino,
Switzerland, Turkey, Vatican. Skrill’s standard payment processing region). The Skrill processing
agreement does not give you the rights to display Visa and MasterCard acceptance marks on your
website.
To comply with card scheme regulations, Skrill has removed the credit card brands displayed to
customers on the Quick Checkout payment form and added an additional introductory screen as
shown below. However, customers are still able to click Pay as a Guest and enter their credit or debit
card details and pay.

Figure 2-6: Out-of-region Quick Checkout introductory screen

Alternatively, customer’s can or log in/sign-up for a Skrill Wallet account from the introductory
screen.

© Skrill 2019 2-21


Skrill Quick Checkout Integration Guide 7.10

The Out of Region Quick Checkout payment form also features an additional text description above
the PAY NOW button, which links to the Skrill Guest and Skrill Privacy policy. See the example below:

Figure 2-7: Quick Checkout for out-of-region merchants

2.8. Securing your Skrill merchant account


It is important to secure your Skrill merchant in case your account password is compromised. Skrill
provides three main methods to enhance the security of your account:
• Restricting access to your merchant account to a specific IP address or a list of IP addresses.
• Google two-factor authentication using a mobile device (Android or Apple devices are
supported).
• The Skrill hardware security token.

© Skrill 2019 2-22


Skrill Quick Checkout Integration Guide 7.10

Skrill recommends that you use methods 1 and 2 to secure your account. Alternatively, you can use
methods 1 and 3. You cannot use the hardware token together with Google two-factor
authentication. These methods are described in detail in the following pages.

2.8.1. Restricting access to your merchant account by IP address


This is only useful if your ISP provides you with a static IP address or addresses. If the machine(s) that
you use to log in have dynamically allocated IP addresses you will not be able to use this method to
secure your account.
Configure this option as follows:
1. Locate your IP address/addresses/address range used by the machines you wish to use to
access your Skrill merchant account
1. Log in to your merchant account
2. Go to Settings > Developer Settings > Website login restriction
3. Set Enable service
4. Enter an IP address, or multiple IP addresses separated by spaces, or an address range in CIDR
notation in the Restrict website login field
5. Click Save
6. Log out of your account. The restrictions are now active.
7. Test that you can log in to your account from the machine/machines that you wish to use and
that you are unable to log in from a machine with a different IP address.

Warning: If you choose to restrict login to an IP range, use the smallest possible address range. Do
not specify a range large than 256 IP addresses.

2.8.2. Google two-factor authentication


Google two-factor authentication pairs your account with Google's Authenticator app running on
your personal mobile device. This app generates one-time codes to use when logging into your
account.

Note: You will still need to enter your standard account password.

Setup Google two-factor authentication as follows:


1. Install the Google Authenticator app from the Apple App store or Google Play store on your
personal device.

© Skrill 2019 2-23


Skrill Quick Checkout Integration Guide 7.10

2. Enable two-factor authentication for your account in My Account > Settings > Account
Settings.
3. Scan the QR code to pair your device with your Skrill Account.
4. Enter the code displayed by the app.
Two-factor authentication is now enabled. Launch Google Authenticator each time you need to log in
to generate a new one-time code.

Note: You cannot use Google two-factor authentication with the Skrill security token. You must
choose one of these authentication methods and disable the other.

These steps are described in detail in the following help hub article. There is no charge for using
Google two-factor authentication.

2.8.3. Skrill Security Token


The Skrill Security Token is a device that generates one-time, unique passwords to provide two-factor
authentication. Once the security token is enabled, you will be prompted to use the token to
generate a new one-time password when logging in to your account. You can have more than one
token per account to allow multiple users in different locations to access the merchant account.

Note: You will still need to enter your standard account password.

See this linked help hub article for more details, including information about ordering the token.

2.8.4. Additional security measures


If you are not planning to use the manual send money feature to transfer funds to other Skrill
accounts, you can contact Skrill Merchant Services to ask them to disable this feature. Automated
money transfers using the Skrill Automated Payment Interface are disabled by default.

© Skrill 2019 2-24


Skrill Quick Checkout Integration Guide 7.10

3. SKRILL DIGITAL WALLET PAYMENTS

Additional payment options are available to customers who choose to register for or pay with their
existing Skrill Digital Wallet account. You can enable the Skrill Wallet payment option using the WLT
payment code as part of the payment_methods value field. For example:
<input type="hidden" name="payment_methods" value="WLT,ACC">

3.1. Existing customers accessing their Skrill Wallet account


A registered customer can click the Pay by Skrill tab, enter their user name and password, and select
the Login button (see Pay by Skrill tab on page 2-20).
If the customer already has credit or debit cards configured in their Skrill account, they are given the
option to select one of these cards to pay as follows:

Figure 3-1: Initial Skrill Wallet page

Select a card, enter the CVV number, then click Pay Now to process the payment. Customers can also
add then pay with a new card using the + New card button.

© Skrill 2019 3-1


Skrill Quick Checkout Integration Guide 7.10

Alternatively, customers can choose to pay with their Skrill Balance. They can click the Skrill Balance
tab to display the following screen:

Figure 3-2: Pay using Skrill Balance

The customer can now review the payment details and click Pay Now to complete the payment. If the
customer does not have a sufficient balance, the Skrill Balance will be greyed out, the Pay Now option
will not show, and an insufficient funds message will be displayed.

© Skrill 2019 3-2


Skrill Quick Checkout Integration Guide 7.10

3.2. Customers who want to register for a Skrill account


New customers do not need to register for a Skrill account, but if they want they can click the Pay by
Skrill tab or button and select the Sign Up link (see Pay by Skrill tab on page 2-20). Customer login or
sign up is mandatory for certain Skrill payment options, such as Skrill 1-Tap and Recurring Billing.
Selecting Sign Up will display the following screen:

Figure 3-3: Create Skrill account (long version of the form)

© Skrill 2019 3-3


Skrill Quick Checkout Integration Guide 7.10

The customer can now enter their personal details including date of birth, email address, and
password and click Create Account. All the parameters provided by the merchant website are
prefilled. The rest of the process is the same as that detailed in Existing customers accessing their
Skrill Wallet account on page 3-1.
If the merchant website provides the address, country, postcode, and city parameters, a short version
of the sign-up form is used instead:

Figure 3-4: Create Skrill account (short version of the form)

© Skrill 2019 3-4


Skrill Quick Checkout Integration Guide 7.10

4. CUSTOMIZING THE QUICK CHECKOUT PAGE

You can customize the Skrill Quick Checkout page in the following ways:
• Pre-populating payment fields
• Displaying payment and order details
• Preselecting or displaying payment methods
• Displaying specific credit/debit card brands
• Straight Through Redirect
• Displaying your company logo or brand
• Embedding the Quick Checkout page
• Removing or reducing the header and reducing the footer
• Recurring billing

4.1. Pre-populating payment fields


To speed up the payment process for the customer, you can supply the following parameters with
each transaction:

Table 4-1: Parameters to pre-populate payment fields

Field name Description Max length Example value

pay_from_email Email address of the customer who is making 100 [email protected]


the payment. If provided, this field is pre-
populated (or pre-populated and hidden) as
appropriate, on the payment form. It will be
pre-populated and hidden for the following
payment methods:
WCO, Nordea Solo, eNETS, POLi, eps
(Netpay), credit/debit card payment, and
ePay.
If this field is omitted or left empty, the
customer has to enter their email address.

firstname First name of the customer. This value will be 20 John


prefilled if the Merchant submits it via the
`firstname’ parameter

lastname Last name of the customer. This value will be 50 Payer


prefilled if the Merchant submits it via the
`lastname’ parameter

© Skrill 2019 4-1


Skrill Quick Checkout Integration Guide 7.10

The following figure shows an example of the Quick Checkout page.

SELECT LANGUAGE

NAME FIELDS ARE


PREFILLED

Figure 4-1: Skrill page with pre-populated fields

Note: You can include additional parameters, such as the customer’s address, city, country, language,
postal code, and date of birth. If the customer selects the sign-up link to open a new Skrill
Digital Wallet account, these fields will be prefilled on the registration form. If they are all
prefilled (address, city, country, and postal code), they will be hidden to simplify the sign-up
form. See Chapter 3: Skrill Digital Wallet Payments for more details.

© Skrill 2019 4-2


Skrill Quick Checkout Integration Guide 7.10

4.2. Displaying payment and order details


Your payment request can include your own itemised payment details, such as an order description
and amount breakdown. The customer can view these payment details by selecting the information
icon displayed next to the amount and currency.

CUSTOMER SELECTS TO
VIEW PAYMENT DETAILS

Figure 4-2: Top of payment form shows total amount

Click the icon to display the Payment details overlay screen.

CUSTOMER SEES THE ORDER


DETAILS YOU INCLUDED IN
YOUR REQUEST

Figure 4-3: Payment details screen

You can include up to five additional description fields and three amount fields (see Payment details
in Table 2-1 on page 2-5). For an example of HTML form, which implements these fields, see Example
HTML forms on page 9-7.

© Skrill 2019 4-3


Skrill Quick Checkout Integration Guide 7.10

4.3. Preselecting or displaying payment methods


Which payment methods are displayed depends on the configuration setting for your merchant
account; there are two options: Fixed or Flexible (also known as Fixed Split Gateway or Flexible Split
Gateway). This feature is set up for your account by Skrill. For details, please contact Skrill Merchant
Services.
The Fixed option is used to specify the payment methods to display to customers in the Quick
Checkout payment form (if these payment methods are available in the customer’s country). For
example, you can display only Paysafecard, Klarna, and Rapid Transfer on the payment form instead
of the generic Skrill options for the customer’s country. These methods will appear in the Payment
method tabs where their logos will be displayed. For a list of currently supported alternative payment
methods and their codes, see Payment method codes on page 9-9.

AVAILABLE PAYMENT CLICK TO VIEW


METHODS BASED ON ADDITIONAL
SELECTED COUNTRY PAYMENT
OPTIONS

Figure 4-4: Payment method tabs

The Flexible option is used to preselect a payment method and display it in the first payment method
tab (if this payment method is available in the customer’s country). The other payment methods
available in this country are displayed in the other tabs.

Note: The customer’s country is determined by the country parameter passed to the Skrill Payment
platform. If no country parameter is provided, Geolocation is used instead.

© Skrill 2019 4-4


Skrill Quick Checkout Integration Guide 7.10

To use either option, the following parameter must be included in your payment request:

Table 4-2: Parameters to include when specifying the payment method

Max Example
Parameter Description
length value

payment_methods This parameter has a different effect depending on the 100 VSA,WLT,
configuration of your Skrill merchant account (fixed or PSC
flexible).
For the flexible option, only a single payment method
code is used.
For the fixed option, you can supply one or more
Payment method codes separated by commas.
Note: If you do not provide a value all the payment
methods available in the customer’s country are
displayed.
For a full list of codes, see Payment method codes on
page 9-9.

Note: Before implementing this option, you should also confirm which payment methods are
available for your account. Restrictions apply for merchants who are based outside of Skrill’s
standard region (USA and Europe). For details, see Quick Checkout for out-of-region
merchants on page 2-21.

4.3.1. Fixed payment methods


With the Fixed payment option, when you submit a payment method using a single
payment_methods parameter, only that payment method is shown to the customer on the payment
form. If the payment method is not supported by the customer’s country, the form shows all other
available payment methods for this country. If you provide more than one payment method code
separated by commas, the first payment method listed is preselected and shown in the first tab. The
subsequent payment methods are then shown by order of their popularity in the customer’s country.
Note that this is used instead of the order they are listed in the payment_methods parameter.
If a single payment code is used and this payment method is not available in the customer’s country,
the full list of available payment methods is presented to the customer. For example, if iDEAL was
chosen, but the customer is not a Dutch resident. If multiple payment method codes are used, any
unavailable payment methods are ignored. The following example shows the fixed payment method
option with a single code:
<input type="hidden" name="payment_methods" value="ACC">

© Skrill 2019 4-5


Skrill Quick Checkout Integration Guide 7.10

ONLY CARDS TAB IS


SHOWN

Figure 4-5: Fixed payment methods - Cards only

4.3.1.1. Displaying specific credit/debit card brands


By default, all card brands are displayed on Quick Checkout. You can override the default behaviour,
by specifying the card brand you want to display on the payment form. This option only works with
the Fixed payment method option. Use the ACC payment method code to display all available card
brands. Only one card payment tab is permitted. See the example below.
<input type="hidden" name="payment_methods" value="VSA">

© Skrill 2019 4-6


Skrill Quick Checkout Integration Guide 7.10

ONLY VISA BRAND IS SHOWN

Figure 4-6: Visa-only brand

Note: Restrictions apply for merchants who are based outside of Skrill’s standard region (USA and
Europe). For details, see Quick Checkout for out-of-region merchants on page 2-21.

When the customer selects the Credit/Debit Card payment tab and enters their card number in the
Card number field, the card type is automatically validated and the card logo is displayed, as shown in
the example below.

VISA LOGO IS SHOWN

Figure 4-7: Card logo displayed next to the card number

© Skrill 2019 4-7


Skrill Quick Checkout Integration Guide 7.10

4.3.1.2. Straight Through Redirect


Straight Through Redirect is used with a single payment method code to automatically redirect
customers to the Payment Method provider’s website without showing the Quick Checkout payment
form. Once redirected, the customer provides their name and any other details required and then
confirms the payment. Straight Through Redirect reduces the number of steps to complete the
payment.
This option is only available if the following conditions apply:
• Your merchant account is set to use Fixed payment methods
• You pass a single payment method code in the payment_methods parameter
• You provide a customer email address using the pay_from_email parameter. If no email
address is provided, the Quick Checkout payment form will display to allow the customer to
enter their email address. The customer will then need to click Proceed to <Payment
Method> to continue. For example: Proceed to ALIPAY.
The following table lists the payment methods which support Straight Through Redirect:

Table 4-3: Payment methods which support Straight Through Redirect

Payment method Method code

AliPay ALI

Przelewy24 PWY

Trustly GLU

Paysafecard PSC

Paysafecash PCH

Neteller * (See Note below) NTL

Klarna SFT

Note: * The process for the Neteller payment method is slightly different. The first two conditions
above apply as normal. You must also provide a neteller_secure_id containing the Secure ID or
Google Authenticator One-Time Password for the customer’s Neteller account and the Neteller
customer account email or account ID in the neteller_account parameter. However, you do not
need to provide a customer email address in the pay_from_email parameter if you use the
Neteller customer’s email address in neteller_account. If you provide email addresses in both
parameters, neteller_account overrides pay_from_email.

The Resurs payment method (payment code RSB) also supports Straight Through Redirect but the
implementation is different. See the Resurs chapter for more details.

© Skrill 2019 4-8


Skrill Quick Checkout Integration Guide 7.10

4.3.2. Flexible payment methods


With the Flexible payment option, when you submit a payment method using the payment_methods
parameter, that method is preselected for the customer. All other payment methods enabled for
your account and for the customers’ country are shown in the other payment tabs. If the chosen
payment method is not supported in the customer’s country, the payment tabs show all other
available payment methods for this country, listed by popularity.
See the example below.
<input type="hidden" name="payment_methods" value="OBT">

RAPID TRANSFER (OBT)


TAB IS SHOWN AS
DEFAULT OPTION

Figure 4-8: Flexible payment methods - OBT preselected

© Skrill 2019 4-9


Skrill Quick Checkout Integration Guide 7.10

4.4. Integrating Quick Checkout into your website


These options enable you to customize the appearance of the Skrill Quick Checkout page, by either
adding your own logo/brand or embedding the page in your website.

4.4.1. Displaying your company logo or brand


You can display your company logo on Quick Checkout. To do this your payment request should
include the logo parameter, with a secure HTTPS link to the logo on your website. See the example
below.
<input type="hidden" name="logo" value="https://www.skrill.com/fileadmin/content/
pdf/acme.png">

YOUR LOGO APPEARS


HERE AND IS
AUTOMATICALLY
RESIZED TO FIT

Figure 4-9: Skrill Quick Checkout with merchant logo

© Skrill 2019 4-10


Skrill Quick Checkout Integration Guide 7.10

4.4.2. Embedding the Quick Checkout page


You can embed the Quick Checkout page in your website using an iframe. You can define in which
frameset the return_url and cancel_url pages should be opened upon a successful payment or
cancellation by the customer.

Note: If you are embedding Quick Checkout in your website, you can request a version of Quick
Checkout which has the header removed and the footer reduced in size, enabling a more
seamless and integrated appearance on your website. For details, see Removing or reducing
the header and reducing the footer on page 4-13.

Below is an example of the Quick Checkout page displayed in an iframe.

Figure 4-10: Display the Quick Checkout page in an iframe

© Skrill 2019 4-11


Skrill Quick Checkout Integration Guide 7.10

To prevent scroll bars appearing, the minimum sizes of the iframe for card payment is:
• 400px horizontally by 530px vertically - reduced header and footer option
• 400px horizontally by 550px vertically - reduced header option
The iframe option is implemented by submitting two additional parameters in your HTML form:

Table 4-4: Parameters submitted when using an iframe

Max
Field Name Description Values Default Example
length

return_url_target Specifies a target in which the 1 = '_top' 1 1 3


return_url value will be called 2 = '_parent'
upon successful payment from 3 = '_self'
customer. 4= '_blank'

cancel_url_target Specifies a target in which the 1 = '_top' 1 1 3


cancel_url value will be called 2 = '_parent'
upon cancellation of payment 3 = '_self'
from customer. 4= '_blank'

These values have the following results:

Table 4-5: iframe targets

Value Equivalent Description

1 '_top' Opens the target URL in the full body of the window - the URL contents fills the
entire browser window.

2 '_parent' Opens the target URL in the parent frame.

3 '_self' Opens the target URL in the same frame as the payment form.

4 '_blank' Opens the target URL in a new browser window.

Note: The iframe option works well with card and SEPA payments. However, it may not be suitable if
you are offering any alternative payments methods through Skrill, which typically redirect to
third party websites of varying sizes.

© Skrill 2019 4-12


Skrill Quick Checkout Integration Guide 7.10

4.4.3. Removing or reducing the header and reducing the footer


You can request a version of the Quick Checkout page without the Skrill header and amount fields.
The security logo is also removed from the footer, to reduce its size. You can enable this option at any
time by contacting Skrill Merchant Services. However, we recommend that you request this feature
when integrating to ensure a good UI experience.
See the example below.
CUSTOMER SHOPPING CART SKRILL QUICK CHECKOUT PAGE WITH
ORDER SUMMARY HEADER AND FOOTER TRUNCATED

Figure 4-11: Reduced header and footer Quick Checkout page, embedded on a merchant’s website

© Skrill 2019 4-13


Skrill Quick Checkout Integration Guide 7.10

You can also reduce the size of the header by removing the payment details and merchant logo but
leaving the language selector and footer unchanged as shown below:

Figure 4-12: Reduced header Quick Checkout page

4.4.4. Recurring billing


Skrill Quick Checkout enables merchants to receive recurring credit card and direct debit payments
from customers without a Skrill Wallet registration.
In addition to the standard HTML form parameters, you can supply the following parameters to set
up recurring payments:

Table 4-6: Recurring payment parameters

Field name Description Required Max. length Example value

rec_amount Amount of the recurring payment Yes 19 19.90


(to be taken at each recurring
period)

rec_start_date* Start date of the period in DD/ No 10 01/01/2018


MM/YYYY format

rec_end_date Final date of the period in DD/ No 10 31/03/2018


MM/YYYY format

© Skrill 2019 4-14


Skrill Quick Checkout Integration Guide 7.10

Table 4-6: Recurring payment parameters (Continued)

Field name Description Required Max. length Example value

rec_period Number of rec_cycles between Yes 6 14 (without a rec_cycle


payments defined this results in 14
days between payments)

rec_cycle The time period e.g., day/month/ No 5 day


year. If this parameter is not
submitted, Skrill assumes that the
rec_cycle is days.

rec_status_url URL to which Skrill notifies you No 400 http://


that the recurring payment is www.example.com/
canceled rec_pay_cancelled.htm

rec_status_url2 Second URL to which Skrill No 400 http://


notifies you that the recurring www.example.com/
payment is canceled. rec_pay_cancelled2.htm

Note: * Future start dates are not allowed unless accompanied by a third-party deposit (amount).

Example code
<input type="hidden" name="rec_amount" value="19.90">
<input type="hidden" name="rec_start_date" value="01/02/2018">
<input type="hidden" name="rec_end_date" value="31/01/2020">
<input type="hidden" name="rec_period" value="1">
<input type="hidden" name="rec_cycle" value="month">
<input type="hidden" name="rec_status_url" value="http://www.example.com/
rec_pay_cancel.htm">
<input type="hidden" name="rec_status_url2" value="http://www.example.com/
rec_pay_cancel2.htm">

Supported recurring payment types


You can set up the following types of recurring payments:

Table 4-7: Recurring payment types

Payment type Description Example

Pay third-party deposit Normal third-party deposit is available Pay now = $3.00

Third-party deposit + Recurring payment starting now, Pay now = $3.00 + Rec Pay ($2.00
initial recurring now accompanied by a third-party deposit every x days; start: today; end =
ddmmyyy)

Third-party deposit + Recurring payment starting in the Pay now = $3.00 + Rec Pay ($2.00
initial recurring future future, accompanied by a third-party every x days; start: future; end =
deposit ddmmyyyy)

No third-party deposit + Recurring payment starting now, Rec Pay ($2.00 every x days; start:
initial recurring now without a third-party deposit today; end = ddmmyyyy)

© Skrill 2019 4-15


Skrill Quick Checkout Integration Guide 7.10

Payment methods used with recurring billing


A recurring billing payment can be set up with one of the following payment methods:
• Credit/debit card (Visa and Mastercard)
• Direct Debit

Recurring billing status


If a recurring billing has been set up and you have provided a rec_status_url in your HTML form, Skrill
posts the transaction details of each payment to your rec_status_url page. The following table shows
the parameters to be received on your page:

Table 4-8: Recurring payment billing parameters

Field name Description Required Example value

merchant_id Unique ID of your Skrill account. ONLY Yes 100005


needed for the calculation of the MD5
signature

transaction_id The reference or identification number Yes A205220


you provided
status Recurring payment status: 2 processed/ Yes 2
-2 failed

rec_payment_id Recurring payment ID Yes 200005

rec_payment_type Type of payment: ‘QCO’ Yes recurring

md5sig MD5 signature Yes 327638C253A4637199CEBA6


642371F20

sha2sig SHA2 signature No dbb7101322257a311f08d1c5


27053058fc7e464e30bcfb461
3f09053c22dd1f8
merchant_fields A comma-separated list of field names No Field1, Field2
that are passed back to your status page
when the payment is confirmed

Using the Merchant Query Interface


You can use the Merchant Query Interface to check the status, cancel, or extend the end date of a
recurring payment. For details, see the Automated Payments and Merchant Query Interfaces Guide.

© Skrill 2019 4-16


Skrill Quick Checkout Integration Guide 7.10

5. ACCOUNT AND INTEGRATION OPTIONS

You can use the following account and integration options:


• Secure return_url parameter
• Merchant refunds
• Chargeback notification
• Adding a descriptor

Note: Code integration examples on page 5-3 describes how to generate a session identifier and
redirect the customer to Skrill.

5.1. Secure return_url parameter


A secure return_url parameter allows you to be certain that the customer has arrived at your
return_url page by completing the payment process, rather than by looking up the return_url value in
the page source code and entering it into their browser. However, this function only guarantees that
the customer has completed the payment process, not that the payment had been processed.
If this feature is not activated, please contact Skrill Merchant Services.
You must submit the following parameters with each transaction:
• return_url
• transaction_id
• secret word (this will be automatically submitted if entered in the Settings > Developer
Settings section in your Skrill account).
Skrill will then add the following parameters to the return_url:

Table 5-1: Parameters returned with the return URL

Parameter Description Example value


transaction_id The transaction_id you submitted. A205220

msid The MD5 signature, with the following values: 730743ed4ef7ec631155f5e


15d2f4fa0
• merchant_id, for example: 123456
• transaction_id, for example: A205220
• upper-case MD5 value of the ASCII
equivalent of your secret word, for
example:
F76538E261E8009140AF89E001341F17

The following are two examples of the secure return_url, using the values above.

© Skrill 2019 5-1


Skrill Quick Checkout Integration Guide 7.10

Example 1
Merchant submits return_url without additional parameters. For example:
https://example.com/return_url.cgi
In this case Skrill will redirect the customer to:
https://example.com/
return_url.cgi?transaction_id=A205220&msid=730743ed4ef7ec631155f5e15d2f4fa0

Example 2
Merchant submits the return_url with additional parameters. For example:
https://example.com/return_url.cgi?par1=val1&par2=val2
In this case Skrill will redirect the customer to:
https://example.com/return_url.cgi?par1=val1&par2=val2&transaction_id=A205220&msid=
730743ed4ef7ec631155f5e15d2f4fa0

5.2. Merchant refunds


This option enables you to refund a payment to the customer’s Skrill account, credit/debit card or
bank account (depending on the original payment method used). If this feature is not activated,
please contact [email protected].

Note: If your account is configured to allow refunds, you will have an additional action link in the
transaction history next to each entry that will trigger a refund to the customer.

You can also make refunds through Skrill’s Automated Payments Interface (API). For details, see the
Automated Payments and Merchant Query Interfaces Guide.

5.3. Chargeback notification


When Skrill receives a chargeback request from the provider, a chargeback notification is sent to your
status_url page and an email is sent to the primary email address linked to your merchant Skrill
account. The status code sent to the status_url page is -3. (For a description of transaction status
values, see Transaction status on page 2-18.)

5.4. Adding a descriptor


When a customer pays through Skrill, Skrill submits a descriptor with the transaction, containing your
business trading/brand name. The descriptor is typically displayed on the bank or credit card
statement of the customer. If you want to change this descriptor, please contact
[email protected]. This functionality is only available for the following payment methods:
• Visa
• Mastercard
• Klarna
• Direct Debit
• iDEAL

© Skrill 2019 5-2


Skrill Quick Checkout Integration Guide 7.10

Note: This feature is not available for cards from out-of-region banks.

For Klarna and Direct Debit, you can also submit an additional payment form parameter,
dynamic_descriptor, which will override the default value stored by Skrill.

5.5. Code integration examples


You can use the examples below to generate your session ID from Skrill, which is the recommended
method for connecting to Quick Checkout, as described in Secure redirection method on page 2-4.

5.5.1. Generating the Session Identifier


Below are examples of how to generate a SID using different programming methods.

cURL
curl -X POST https://pay.skrill.com
-d "[email protected]"
-d "amount=10.99"
-d "currency=EUR"
-d "language=EN"
-d "prepare_only=1"

Ruby
require 'net/http'
require 'net/https'
require 'uri'

uri = URI('https://pay.skrill.com')
http = Net::HTTP.new(uri.host, uri.port)
http.use_ssl = true
req = Net::HTTP::Post.new(uri.path)
req.set_form_data({
'pay_to_email'=>'[email protected]',
'amount'=>'10.99',
'currency'=>'EUR',
'language'=>'EN',
'prepare_only'=>'1'

})
res = http.request(req)
puts res.body

5.5.2. Redirecting the customer to Skrill


Once you have the session identifier (SID), you have to redirect the customer to Skrill, and include the
session identifier.
https://pay.skrill.com?/sid=<generated_sid>
Where <generated_sid> is the SID returned by Skrill.
You can open the URL with the SID as a light box or in an iframe.

© Skrill 2019 5-3


Skrill Quick Checkout Integration Guide 7.10

6. SKRILL 1-TAP PAYMENT

Skrill offers a single-click payment service which enables you to automatically debit transactions from
your customer’s Skrill account without the customer having to authorise the payment each time.

Customers are sent an email notification after each 1-Tap payment and they can view the status of all
their Skrill 1-Tap payments in the History section of their Skrill Wallet account.

Customers can pay using Skrill 1-Tap with any of the following payment methods linked to their Skrill
account:
• Credit/debit card (Visa and Mastercard)
• Direct Debit

6.1. Enabling 1-Tap


To enable this service, contact Skrill Merchant Services.

Note: You must set up a separate merchant account for taking Skrill 1-Tap payments.

6.2. Enable the MQI and API


You will need to enable the MQI (merchant query interface) and API (automated payment interface)
and set up an MQI/API password to use 1-Tap.
To enable the MQI and/or API:
1. Log in to your Skrill account at www.skrill.com.
2. Go to Settings > Developer Settings.
3. Check the Enable service checkbox next to the API and MQI.
4. Specify at least one IP address from which requests will be made. All requests from other IP
addresses are denied. Access can be granted to:
• A single IP address (e.g. 192.168.0.2)
• Multiple IP addresses, separated by a space (e.g. 192.168.0.2 10.0.0.2)
• A subnet in CIDR notation (e.g. 175.10.10.252/30).

Warning: CIDR ranges should be no longer than 256 IP addresses.

Note: If the Settings > Developer Settings section is not displayed in your account, contact Skrill
Merchant Services.

5. To apply your changes, click Save.

© Skrill 2019 6-1


Skrill Quick Checkout Integration Guide 7.10

Figure 6-1: Enable the API and MQI and set up a password and IP range for these services

You must use a separate password for API or MQI requests. This ensures that the password you use to
access your Skrill Digital Wallet account can be changed without affecting the API or MQI.
To enable an API/MQI password:
1. Locate the Settings > Developer Settings > Change MQI/API password area.
2. Enter a new password, then confirm it in the Re-type password field.
3. To apply your changes, click Save. The MQI and API are now enabled.

Note: The password must be at least 8 characters long and must contain at least one alphabetic and
one non-alphabetic character.

The MQI is used for the following functions:


• Repost transaction status information for payment transactions (Wallet Checkout, Quick
Checkout, and 1-Tap subsequent payments)
• View transaction status (payment and send money transactions)
• View account history
• Cancel a recurring payment
• View the status of a recurring payment

© Skrill 2019 6-2


Skrill Quick Checkout Integration Guide 7.10

• Extend the end date of a recurring payment


• Cancel a 1-Tap payment
• View the status of a 1-Tap payment
The API is used for the following functions:
• Refund Quick Checkout, Wallet Checkout, or 1-Tap payments (Note: This functionality is not
available for Gambling and FOREX Merchants)
• Transfer money to another Skrill Account
• Take subsequent 1-Tap payments after the initial setup payment

6.3. Skrill 1-Tap button


The Skrill 1-Tap button must be displayed on your website when setting up Skrill 1-Tap mandates and
with any subsequent transactions performed through Skrill 1-Tap.

Figure 6-2: Skrill 1-Tap button

This button is available in different sizes. For details, see:


https://www.skrill.com/en/business/merchants/brand-centre

© Skrill 2019 6-3


Skrill Quick Checkout Integration Guide 7.10

6.4. Call flows


Initial payment request
The following figure provides an overview of the 1‐Tap payment setup process.

Figure 6-3: Initial Skrill 1‐Tap payment flow

1. When the customer is ready to pay for goods or services on your website, they select the
payment button on your website.
2. You request a session identifier (SID) by passing customer and transaction details (e.g.,
amount, currency, and language) to the Skrill Quick Checkout. You also include the required
1‐Tap parameters.
3. Skrill returns the generated SID.
4. Using a light box or iframe you redirect the customer to the Skrill Quick Checkout and include
the session identifier in the redirect URL. Skrill displays the payment page.
5. The customer pays using the preferred payment method and confirms the transaction.
6. Skrill requests authorisation for the payment from the customer’s bank, third party provider,
or card issuer.
7. The bank/provider approves or rejects the transaction.
8. Skrill displays the confirmation page, containing the transaction result, on the Skrill Quick
Checkout.
9. Skrill provides you with an asynchronous notification, sent to your status URL or IPN (instant
Payment Notification), confirming the transaction details and status. These details include

© Skrill 2019 6-4


Skrill Quick Checkout Integration Guide 7.10

the rec_payment_id of the 1‐Tap payment, which can be used for future 1‐Tap debits from
the customer’s account.

Note: You should keep track of the status of 1‐Tap payment and update your records if notified of a
status change at the ondemand_status_url you submitted for the 1‐Tap payment.

Subsequent payments
The following figure provides an overview of the 1‐Tap payment process after the initial setup is
complete.

Figure 6-4: Subsequent Skrill 1‐Tap payment flow

1. The customer clicks the Skrill 1‐Tap button.


2. The merchant checks the status of the 1‐Tap mandate using their records or the Merchant
Query Interface (MQI).
3. If the customer is already set up for 1‐Tap, the merchant makes the prepare request. Both
frn_trn_id and rec_payment_id should be provided.

Note: If the customer is not set up for 1‐Tap, then the merchant makes a normal Quick Checkout
payment request and optionally submits 1‐Tap payment details to set up the 1‐Tap service, as
described previously in Initial Skrill 1‐Tap payment flow on page 6-4.

4. The Skrill 1‐Tap Payment Interface returns the session identifier (SID).
5. The merchant sends the execution request with the returned SID.
6. The Skrill 1‐Tap Payment Interface validates the request.
7. Skrill requests authorisation for the payment from the customer’s bank, third party provider,
or card issuer (if required).
8. The bank/provider approves or rejects the transaction.

© Skrill 2019 6-5


Skrill Quick Checkout Integration Guide 7.10

9. The Skrill 1‐Tap Payment interface sends a response with the transaction status.
10. The transaction status notification is also posted to the merchant’s status URL.
11. The merchant notifies the customer of the status of the 1‐Tap payment.

6.5. Setting up an initial 1-Tap payment


In addition to the standard parameters described in Skrill Quick Checkout parameters on page 2-5,
you can supply the following parameters to set up a Skrill 1-Tap payment via the Skrill Wallet
Checkout:

Table 6-1: Skrill 1-Tap parameters

Max
Field name Description Required Example value
length
ondemand_max_amount Maximum amount for future Yes 9 11.50
payments that will be debited
from the customer’s account

ondemand_max_currency 3-letter code of the currency of Yes/No 3 EUR


the maximum amount according
to ISO 4217 (see ISO 4217
currencies on page 9-1)

ondemand_note Text shown to the customer in Yes 1000 credit topped up


the payment confirmation email
as the reason for the Skrill 1-Tap
payment.

ondemand_status_url URL to which Skrill notifies you No 400 http://


that the Skrill 1-Tap payment is www.example.com/
cancelled. od_payment_cancel
This URL is restricted to the same led.htm
ports as the status_url

ondemand_status_url2 URL to which Skrill notifies you No 400 http://


that the Skrill 1-Tap payment is www.example.com/
cancelled. od_payment_cancel
This URL is restricted to the same led2.htm
ports as the status_url

Notes:
• If ‘ondemand_max_currency’ is not provided, the currency value will be the one provided as the
‘currency’ in the standard HTML form (see Skrill Quick Checkout parameters on page 2-5).
• A session identifier (SID) parameter is returned upon success.
• The Skrill response includes a rec_payment_id. You should store the rec_payment_id field so that you
can reference the original 1-Tap transaction.
• You can track the status of any 1-Tap transaction and perform refunds using your own unique
transaction_id for that transaction.

© Skrill 2019 6-6


Skrill Quick Checkout Integration Guide 7.10

6.5.1. Example of a Skrill 1-Tap payment form


See the example below. The included 1-Tap payment fields are highlighted.
<form action="https://pay.skrill.com" method="post" target="_blank">
<input type="hidden" name="pay_to_email" value="[email protected]">
<input type="hidden" name="status_url" value="https://www.example.com/status">
<input type="hidden" name="language" value="EN">
<input type="hidden" name="amount" value="39.60">
<input type="hidden" name="currency" value="GBP">
<input type="hidden" name="detail1_description" value="Description:">
<input type="hidden" name="detail1_text" value="Romeo and Juliet">
<input type="hidden" name="recipient_description" value="ACME Solutions">
<input type="hidden" name="ondemand_max_amount" value="150.00">
<input type="hidden" name="ondemand_max_currency" value="EUR">
<input type="hidden" name="ondemand_note" value="Your 1-Tap Payment">
<input type="hidden" name="ondemand_status_url"
value="www.example.com/ondemandstatus1">
<input type="hidden" name="ondemand_status_url2"
value="www.example.com/ondemandstatus2">
<input type="submit" value="Pay!">
</form>

6.6. Taking subsequent 1-Tap payments


Once a Skrill 1-Tap payment has been set up, you must use the Skrill 1-Tap Payment Interface (part of
Skrill’s Automated Payment Interface) to make individual requests to debit the customer’s Skrill
account. If you have provided a status_url value in your HTML form, Skrill will post the transaction
details of each payment to that URL.

Connecting to the 1-Tap interface


You can connect to the Skrill 1-Tap interface by sending HTTPS GET/POST requests to:
https://www.skrill.com/app/ondemand_request.pl

Notes:
• You must enable the Skrill Automated Payment Interface (API) and setup an MQI/API
password
• Skrill recommend using POST for maximum security.
• Do not mix GET and POST requests. Choose which method to use and apply consistently.
• POST parameters are encoded using Content-Type: application/x-www-form-urlencoded
• GET parameters are encoded in the URI query string using & delimiters (e.g. GET parameters
are sent as part of the URL query string https://www.skrill.com/app/query.pl?action=status
_trn&[email protected]&password=53903d217504eb37f3fdb0ce77610558&mb_trn_id
=104627261)
Taking subsequent 1-Tap Payments is a two-step process:
1. Send a first request with action set to prepare to receive a session ID for step 2
2. Send a second request with action set to request using the session ID from step 1 to execute
the payment.
These steps are described in more detail below.

© Skrill 2019 6-7


Skrill Quick Checkout Integration Guide 7.10

6.6.1. Prepare payment step


Action parameter: action=prepare
This action prepares the transaction that will be executed later using the request action. The
following parameters are required:

Table 6-2: Parameters to include with the prepare request

Field name Description Required Example value

email The email address linked to your Skrill Yes [email protected]


account

password The lowercase hex MD5 of your API/MQI Yes 9f535b6ae672f627e


password 4e5f79f2b7c63fe

action The required action Yes prepare

amount The amount of the request for a debit Yes 10.50


transaction

currency 3-letter code of the currency you wish to Yes EUR


debit according to ISO 4217

ondemand_note Text shown to the customer in the No Credit topped up


payment confirmation email as the reason
for the Skrill 1-Tap payment

frn_trn_id Your transaction ID, used for the payment. Yes A205220
This is your own unique reference for this
transaction

rec_payment_id Recurring payment ID (rec_payment_id Yes 200005


value) sent to your status_url page when
you created the Skrill 1-Tap payment

merchant_fields A comma-separated list of field names that No Field1, Field2


are passed back to your Web server when
the Skrill 1-Tap payment is confirmed
(maximum 5 fields)

Field1 An additional field you can include, No Value1


containing your own unique parameters.

Field2 An additional field you can include, No Value2


containing your own unique parameters.

© Skrill 2019 6-8


Skrill Quick Checkout Integration Guide 7.10

Notes:
• Both frn_trn_id and rec_payment_id should be provided. You should use the rec_payment_id field to
reference the original 1-Tap transaction and provide a unique frn_trn_id as the reference for the
current transaction.
• If ondemand_note is not provided, the one that is submitted when creating the Skrill 1-Tap payment
will be used.
• A session identifier (SID) parameter is returned upon success.

You can track the status of any 1-Tap transaction and perform refunds using the unique frn_trn_id for
that transaction.

Skrill response
Skrill returns an XML response to your prepare request which contains a <response> tag with one of
the following elements:
• sid element - returned if the authorisation and payment preparation is successful. The SID
(session identifier) must be submitted in your transfer execution request.
• error element - included if an error occurs. It includes an <error_msg> tag, which contains the
error message description.

Example 1: Successful prepare request


Below is an example of a successful prepare request.

Request
POST https://www.skrill.com/app/ondemand_request.pl

Header
Content-Type: application/x-www-form-urlencoded

Body
email=sample.merchant%40sun-
fish.com&password=fb0dc09bd0989fe975afd3e4ddabb926&action=prepare&amount=1.23&curre
ncy=EUR&ondemand_note=ondemand+note&frn_trn_id=12341990&rec_payment_id=1668618647

Response
<?xml version="1.0" encoding="UTF-8"?>
<response>
<sid>4414c2a969c744c27bd674a0b0a5ba8a</sid>
</response>

© Skrill 2019 6-9


Skrill Quick Checkout Integration Guide 7.10

Example 2: Failed prepare request


This example shows a request that failed, due to an invalid merchant email.

Request
POST https://www.skrill.com/app/ondemand_request.pl

Header
Content-Type: application/x-www-form-urlencoded

Body
email=&password=fb0dc09bd0989fe975afd3e4ddabb926&action=prepare&amount=1.23&currenc
y=EUR&ondemand_note=ondemand+note&frn_trn_id=12341990&rec_payment_id=1668618647

Response
<?xml version="1.0" encoding="UTF-8"?>
<response>
<error>
<error_msg>LOGIN_INVALID</error_msg>
</error>
</response>

Table 6-3: General errors

Error Description

SESSION_EXPIRED The session has expired. Session IDs are only valid for 15 minutes.

Table 6-4: Errors when making Skrill 1-Tap payment requests

Error Description

CUSTOMER_IS_LOCKED The customer's account is locked for outgoing payments

BALANCE_NOT_ENOUGH The customer's account balance is insufficient

RECIPIENT_LIMIT_EXCEEDED The customer's account limits are insufficient

CARD_FAILED The customer's credit or debit card failed

REQUEST_FAILED A generic response for the transaction failing for any other reason

ONDEMAND_CANCELLED The customer has cancelled this Skrill 1-Tap payment

© Skrill 2019 6-10


Skrill Quick Checkout Integration Guide 7.10

Table 6-4: Errors when making Skrill 1-Tap payment requests (Continued)

Error Description

ONDEMAND_INVALID The Skrill 1-Tap payment requested does not exist

MAX_REQ_REACHED Too many failed Skrill 1-Tap payment requests to the API. For security
reasons, only two failed attempts per user per 24 hours are allowed

MAX_AMOUNT_REACHED The payment amount is greater than the maximum amount configured
when 1-Tap payments were set up for this user.

Table 6-5: Errors when validating parameters

Error Description

INVALID_OR_MISSING_ACTION Wrong action or no action is provided

LOGIN_INVALID Email address and/or password were not provided

INVALID_REC_PAYMENT_ID Invalid recurring payment ID is submitted by the merchant

MISSING_EMAIL Provide registered email address of merchant account

MISSING_PASSWORD Provide correct API/MQI password

MISSING_AMOUNT Provide amount you wish to send

MISSING_CURRENCY Provide currency you wish to send

MISSING_BNF_EMAIL Provide email address of the beneficiary

MISSING_SUBJECT Provide subject of the payment

© Skrill 2019 6-11


Skrill Quick Checkout Integration Guide 7.10

Table 6-5: Errors when validating parameters (Continued)

Error Description

MISSING_NOTE Provide notes for the payment

6.6.2. Execute payment step


Action parameter: action=request
Now that you have received a session ID you can execute the actual payment transaction using the
request action. The URL is the same as before. The following parameters are required:

Table 6-6: Parameters to include with the request

Field name Description Required Example value

sid Session identifier returned in response to the Yes 7783bfa23641a627


prepare request. e4a5f79f2b7c6

action The required action (i.e., prepare). Yes request

Upon success, Skrill returns the details of the transaction as an XML response. This response contains
the following fields:

Table 6-7: Fields provided in the XML response

Field name Description Example value

amount Amount requested 10.50

currency 3-letter currency code of the amount, according to ISO 4217 EUR

id Transaction ID 500123

status Skrill 1-Tap payment status: 2


2 – processed
-2 – failed

status_msg Text description of the status. processed

© Skrill 2019 6-12


Skrill Quick Checkout Integration Guide 7.10

Notes:
• If a request fails, you are not allowed to make more than two requests for a debit of a customer’s
account using a Skrill 1-Tap payment per customer per 24 hours.
• The customer is notified via email for every Skrill 1-Tap payment request executed.

Example 1: Successful request


Below is an example of a successful request.

Request
POST https://www.skrill.com/app/ondemand_request.pl

Header
Content-Type: application/x-www-form-urlencoded

Body
sid=84034fe3e5c9f6ef54e51efbbe9f2767&action=request

Response
<?xml version="1.0" encoding="UTF-8"?>
<response>
<transaction>
<amount>10.34</amount>
<currency>EUR</currency>
<id>1668624876</id>
<status>2</status>
<status_msg>processed</status_msg>
</transaction>
</response>

Example 2: Failed request


This example shows a request that failed, due to an expired session ID.

Request
POST https://www.skrill.com/app/ondemand_request.pl

Header
Content-Type: application/x-www-form-urlencoded

Body
sid=123&action=request

Response
<?xml version="1.0" encoding="UTF-8" ?>
<response>
<error>
<error_msg>SESSION_EXPIRED</error_msg>
</error>
</response>

© Skrill 2019 6-13


Skrill Quick Checkout Integration Guide 7.10

6.7. Checking or cancelling 1-Tap payments


You can use the Merchant Query Interface (MQI) to review the status of a 1-Tap payment or to cancel
it so that no more 1-Tap payments can be taken.
You can access the MQI by posting an HTTPS GET/POST query to:
https://www.skrill.com/app/query.pl
The MQI requires three general parameters to be included in your query (email, password, and
action) and a number of parameters specific to the requested action (see the Additional Parameters
table for each action below)

Table 6-8: General parameters

Field name Description Required Example value

email The email address linked to your Skrill account Yes [email protected]

password The lowercase hex MD5 of your API/MQI password Yes 9f535b6ae672f627e
4e5f79f2b7c63fe

action The required action (i.e., prepare). Yes request

amount The amount of the request for a debit transaction Yes 10.50

6.7.1. Cancel Skrill 1-Tap payment


Action parameter: action=cancel_od
This action allows you to cancel a Skrill 1-Tap payment. The following additional parameter is
required:

Table 6-9: Additional parameters - Cancel a 1-Tap payment

Field name Description Required Example value

trn_id Your transaction ID. This is the transaction_id value Yes 500123
you provided for the initial setup 1-Tap payment. If
you did not provide a transaction_id parameter this
will be the transaction_id parameter returned to
your status_url page once the initial setup 1-Tap
payment is complete

Request
POST https://www.skrill.com/app/query.pl

Header
Content-Type: application/x-www-form-urlencoded

© Skrill 2019 6-14


Skrill Quick Checkout Integration Guide 7.10

Body
action=cancel_od&[email protected]&password=9f535b6ae672f627e4a5f79f2b7c63fe&t
rn_id=500123

Response
200 → → OK
Where an arrow symbolises a tab character.
Using escape sequences to represent special characters:
200\t\tOK\n\n

6.7.2. Get Skrill 1-Tap payment status


Action parameter: action=status_od
This action allows you to cancel a Skrill 1-Tap payment. The following additional parameter is
required:

Table 6-10: Additional parameters - Check 1-Tap payment status

Field name Description Required Example value

trn_id Your transaction ID. This is the transaction_id value Yes 500123
you provided for the initial setup 1-Tap payment. If
you did not provide a transaction_id parameter this
will be the transaction_id parameter returned to
your status_url page once the initial setup 1-Tap
payment is complete

If a transaction with the supplied ID is found, the response will contain the following parameters on
the second line of the response:
• Status: 0 – active; -1 – cancelled
• Last execution date in dd-mm-yyyy format or '--' if no subsequent payments have been taken
(payments after the initial setup)

© Skrill 2019 6-15


Skrill Quick Checkout Integration Guide 7.10

Example 1: Check status of a cancelled 1-Tap payment

Request
POST https://www.skrill.com/app/query.pl

Header
Content-Type: application/x-www-form-urlencoded

Body
action=status_od&[email protected]&password=9f535b6ae672f627e4a5f79f2b7c63fe&t
rn_id=500123

Response
200 → → OK
Status: -1 Last execution date: 08-01-2017

Note: The arrows above represent tab characters. There are two spaces between the Status value
and the word Last.

Using escape sequences to represent special characters:


200\t\tOK\nStatus: -1 Last execution date: 08-01-2017\n

Note: The arrows above represent tab characters. There are two spaces between the Status value
and the word Last.

Example 2: Check status of an active 1-Tap payment with invalid transaction

Request
POST https://www.skrill.com/app/query.pl

Header
Content-Type: application/x-www-form-urlencoded

Body
action=status_od&[email protected]&password=9f535b6ae672f627e4a5f79f2b7c63fe&t
rn_id=123

Response
403 → → Transaction not found: 123

Using escape sequences to represent special characters:


403\t\tTransaction not found: 123\n

Note: The above response still returns a 200 HTTP response status code

© Skrill 2019 6-16


Skrill Quick Checkout Integration Guide 7.10

6.7.3. MQI Error Messages


The following error messages can be returned by the Merchant Query Interface (MQI):

Table 6-11: MQI error messages

Error Description Reason for error

401 Unauthorised/ Cannot log in Authentication is required and has failed or has not yet been
provided.

402 Payment Required Reserved for future use.

403 Forbidden The request was a valid request, but the server is refusing to
respond to it. For example, the provided credentials were
successfully authenticated but do not grant the client
permission to access the resource.

404 Not Found The requested resource could not be found.

405 Method not Allowed A request was made of a resource using a request method
not supported. For example, using GET on a method which
requires data to be presented via POST.

© Skrill 2019 6-17


Skrill Quick Checkout Integration Guide 7.10

7. ASTROPAY AND UNIONPAY

This section explains the Skrill payment flow for the Astropay payment method available in Argentina,
Brazil, Chile, Colombia, Mexico, Peru, and Uruguay. We also support Unionpay via Astropay in China.
Astropay is composed of two subcategories:
• Bank Transfer (two transfer types are available: Direct or Manual)
• Cash/Invoice

Note: Astropay is only available for payments greater than or equal to 10 USD. Contact Skrill
Merchant Services to enable each of the different Astropay payment methods listed above.
Unionpay is also enabled separately.

These categories are described in more detail below. Not all categories are supported in all the
countries where Astropay is available, see List of banks supported by country on page 7-16 for a list
of all the banks or cash payment networks that Astropay supports in each country and which
payment category they support. If a country is not listed, it does not support Astropay.
Astropay integration is the same as the standard Skrill integration, however, the merchant’s
integration code must handle interim pending payment status notifications and be prepared to
receive the final payment success notification some days, weeks, or months later (in the case of cash/
invoice payment).
The Skrill Quick Checkout payment form can show two Astropay tabs: Cash and Bank Transfer. The
Bank Transfer tab is used for both Direct and Manual bank transfers. You can restrict which tabs are
shown by using the Fixed Split Gateway option and the payment method codes listed in Astropay
payment method codes on page 7-16.
When a customer selects the appropriate tab they will see the logos of all supported banks (or in the
case of Cash, supported payment networks) and a drop-down menu where they can select the bank
or payment network they wish to use. If only one bank or payment network is supported in the
customer's country, this logo will appear instead of Cash or Bank Transfer to increase conversion.
If the merchant passes a payment method code, they can restrict the Bank Transfer page to only
show Direct or Manual banks in the drop-down menu on the Bank Transfer tab, as appropriate.
Finally, this section includes a description of the refund process which differs from the standard
refund process as user action is required.

© Skrill 2019 7-1


Skrill Quick Checkout Integration Guide 7.10

7.1. Bank transfer


Direct bank transfer
Direct bank transfer is the simplest method for customers. The payment flow is as follows:
1. The customer clicks Pay by Bank Transfer on the merchant website and is redirected to the
Skrill Quick Checkout payment form. The payment form can also be displayed in an iframe.
2. The customer enters their first and last name (if these are not supplied by the merchant).
3. The customer enters their National Identity number (this field has a different name
depending on the country, e.g., CPF, RUT, ID, DNI).
4. The customer selects a local bank in the Skrill payment form and clicks Proceed to Online
Bank. The list of available banks depends on the country selected. If the bank supports Direct
Bank Transfer the payment flow continues, otherwise, the flow will be as described in
Manual bank transfer below.
5. The customer is redirected to the chosen bank’s website where they can log in and approve a
bank transfer to make payment.
6. Once payment is complete, Skrill shows a successful payment form and sends a response
containing the payment status to the merchant’s status_url.
7. The customer clicks the button on the success form to return to the merchant website. The
merchant website should check the payment status received at the status_url for the
payment to determine the message to show to the customer.
8. When the merchant receives a valid payment confirmation with a status value of 2 at the
merchant’s status_url they can release the goods to the customer.

Figure 7-1: Enter the name and ID number and select a bank

© Skrill 2019 7-2


Skrill Quick Checkout Integration Guide 7.10

Figure 7-2: Select business or personal bank account

Figure 7-3: Log in to the bank to make a transfer

© Skrill 2019 7-3


Skrill Quick Checkout Integration Guide 7.10

Figure 7-4: Re-enter your password

Figure 7-5: Review payment details and confirm payment

© Skrill 2019 7-4


Skrill Quick Checkout Integration Guide 7.10

Figure 7-6: Successful payment

Manual bank transfer


The manual bank transfer payment flow is as follows:
1. The customer clicks Pay by Bank Transfer on the merchant website and is redirected to the
Skrill Quick Checkout payment form. Note that the payment form can also be displayed in an
iframe.
2. The customer selects a local bank from a drop-down menu in the payment form (the list of
available banks depends on the country selected). If the bank supports Manual Bank Transfer
the payment flow continues, otherwise, the flow will be as described in Direct Bank Transfer
above.
3. The customer clicks Proceed to Online Bank. A form is displayed showing the manual bank
transfer details required to complete the payment. Note that the amount will always be
displayed in the local currency in that country rather than the currency selected in the
merchant website. The transfer details will always be displayed in the local language.
4. The customer clicks on Do Transfer (Realizar Transferencia in Spanish) to be redirected to the
selected bank’s website where they can manually complete the payment.
5. Once the transfer is complete, the customer clicks Already Deposited (Ya Desposité in
Spanish) in the Skrill payment form and a pending notice is shown on the Skrill payment form.
This informs customer that payment is pending.
6. The customer can now click the Continue button to return to the merchant website. The
merchant website should check the payment status received at the status_url for the
payment to determine the message to show to the customer.
7. Once payment is complete, Skrill receives confirmation and sends a payment success
notification to the merchant’s status_url. Note that this may take 1-2 days after the customer

© Skrill 2019 7-5


Skrill Quick Checkout Integration Guide 7.10

has made the bank transfer. When the merchant receives a valid payment confirmation with
a status value of 2 at their status_url they can release the goods to the customer.

Figure 7-7: Enter a name and ID and select a bank

© Skrill 2019 7-6


Skrill Quick Checkout Integration Guide 7.10

Figure 7-8: Bank account details for manual transfer

Figure 7-9: Log in to bank to make a manual transfer (not shown)

© Skrill 2019 7-7


Skrill Quick Checkout Integration Guide 7.10

Figure 7-10: Pending payment shown after clicking Already Paid

UnionPay
UnionPay is a special type of Direct Bank Transfer only offered in China. The UnionPay payment flow
is as follows:
1. The customer clicks Pay by Union Pay on the merchant website and is redirected to the Skrill
Quick Checkout payment form. Note that the payment form can also be displayed in an
iframe.
2. The customer enters their first and last name (if these are not supplied by the merchant).
3. The customer enters their National Identity number in the ID field.
4. The customer clicks Proceed to epaylinks.
5. The user selects their bank and is redirected to the selected bank’s website.
6. The user logs in to their bank and authorizes the payment.
7. Once payment is complete, Skrill receives the confirmation. Skrill sends a payment success
notification to the merchant’s status_url. Once the merchant receives a valid payment
confirmation with status value 2 at the merchant’s status_url they can release the goods to
the customer.

© Skrill 2019 7-8


Skrill Quick Checkout Integration Guide 7.10

8. The Skrill payment form shows successful payment. The user can now click a button to return
to the merchant website. The merchant website should check the latest payment status
received at the status_url for the payment to determine the message to show to the
customer.

Figure 7-11: Enter a name and ID

Figure 7-12: Select a bank

© Skrill 2019 7-9


Skrill Quick Checkout Integration Guide 7.10

Figure 7-13: Log in to bank and authorise payment

Figure 7-14: Successful payment

© Skrill 2019 7-10


Skrill Quick Checkout Integration Guide 7.10

7.2. Cash/Invoice
The cash payment flow is as follows:
1. The customer clicks Pay by Cash/ Invoice on the merchant website. They are then redirected
to the Skrill Quick Checkout Payment form (or this form is displayed in an iframe/lightbox).
2. The customer selects a local bank/payment network from the drop-down menu (the list of
available banks depends on the country selected).
3. The customer enters their first and last name (if these are not supplied by the merchant).
4. The customer enters their National Identity number (This field has a different name
depending on the country, for example: CPF, RUT, ID, DNI, etc.)
5. The customer is redirected to the bank/payment network website for confirmation.
6. The bank/payment network website displays a bar code that the customer must print.
7. The customer goes to the bank or a store which belongs to the payment network and pays in
cash using the bar code they were given in step 6. Alternatively, they can pay the invoice
using their online banking.
8. Once payment is complete, Skrill receives the confirmation. Skrill sends a payment success
notification to the merchant’s status_url.
9. Once the merchant receives a valid payment confirmation with a status value of 2 at the
merchant’s status_url they can release the goods to the customer.

Figure 7-15: Select bank and enter name and ID number

Note: If only a single cash method is supported for the customer’s country instead of a list of banks to
select from, only the option and logo of the single payment method is shown. For details of
countries supporting cash payments, see List of banks supported by country on page 7-16.

© Skrill 2019 7-11


Skrill Quick Checkout Integration Guide 7.10

Figure 7-16: Redirect to the bank or payment network website for confirmation

Figure 7-17: Customer confirmation (Continued)

© Skrill 2019 7-12


Skrill Quick Checkout Integration Guide 7.10

Figure 7-18: Bar code for payment

© Skrill 2019 7-13


Skrill Quick Checkout Integration Guide 7.10

Figure 7-19: Pending payment

7.3. Refunds
Astropay supports full and partial refunds. Customers receive an email when the merchant triggers a
refund. This email contains a link to a form on the Astropay website with a Skrill logo where
customers specify their name, bank account, and the security code contained in the email. Astropay
will then send a refund to the customer’s bank. Refunds take up to two working days from receipt of
these details.
When the refund is executed by the merchant, an email is sent to the customer and the refund is set
to pending. The refund status changes to processed when the customer provides their bank account
details and Astropay sends the payment to their bank. Note that payment will still take up to two
working days to reach the customer’s account.

Warning: If you use the refund call in the Skrill Automated Payment Interface you must ensure that
your provide a refund_status_url to record the change from pending to processed.

© Skrill 2019 7-14


Skrill Quick Checkout Integration Guide 7.10

Figure 7-20: Customer receives refund email

Figure 7-21: Customer completes refund form

© Skrill 2019 7-15


Skrill Quick Checkout Integration Guide 7.10

7.4. Astropay payment method codes


The following table lists the Payment Method Codes for Astropay and their effects. These codes can
be used with the Fixed Split Gateway option to launch the payment form with a single Astropay tab.
They are also returned in the payment_type parameter in both Gateway types (Fixed or Flexible,
where enabled) to show which Astropay payment type the customer used.

Table 7-1: Payment method codes

Transfer Type Fixed Split Gateway Effect Payment Method


Direct Bank Shows the Bank Transfer payment tab. The bank ADB
Transfer selector only shows those banks in the customer’s
country which support Direct Bank Transfer rather
than all banks.
Manual Bank Shows the Bank Transfer payment tab. The bank AOB
Transfer selector only shows those banks in the customer’s
country which support Manual Bank Transfer rather
than all banks.
Cash/Invoice Shows the Cash payment tab. ACI

Unionpay Shows the Unionpay payment tab AUP

7.5. List of banks supported by country

Note: This list may change. Contact Skrill before implementing this payment method for an up-to-
date list.

Table 7-2: Argentina

Bank Type
Santander Rio Direct bank transfer

Red Link Cash

Pago Fácil Cash

Table 7-3: Brazil

Bank Type
Itau Direct bank transfer

Banco do Brasil Direct bank transfer

Bradesco Direct bank transfer

HSBC Manual bank transfer

Caixa Manual bank transfer

Santander Manual bank transfer

© Skrill 2019 7-16


Skrill Quick Checkout Integration Guide 7.10

Table 7-3: Brazil (Continued)

Bank Type
Boleto Cash

Note: The Quick Checkout payment form does not currently support Portuguese. Customers must
use another supported language such as English or Spanish.

Table 7-4: Chile

Bank Type
webpay Manual bank transfer

Servipag Cash

Table 7-5: China

Bank Type
Unionpay Direct bank transfer

Table 7-6: Colombia

Bank Type
Bancolombia Manual bank transfer

PSE Manual bank transfer

Efecty Cash

Davivienda Cash

Almancenes Éxito Cash

Carulla Cash

Empresa de Energía del Quindio Cash

Surtimax Cash

Table 7-7: Mexico

Bank Type
OXXO Cash

BBVA Bancomer Cash

Banamex Cash

Santander Cash

© Skrill 2019 7-17


Skrill Quick Checkout Integration Guide 7.10

Table 7-8: Peru

Bank Type
BBVA Cash

BCP Cash

InterBank Cash

Pago Efectivo Cash

ScotiaBank Cash

Western Union Cash

Table 7-9: Uruguay

Bank Type
Red Pagos Cash

© Skrill 2019 7-18


Skrill Quick Checkout Integration Guide 7.10

8. BITCOIN PAYMENT METHOD

8.1. Introduction
Bitcoin (BTC) is a type of electronic currency that customers who have a Bitcoin wallet can use for
their purchases. Bitcoin is available on Skrill via the BitPay payment service provider, which converts
any given currency to Bitcoins using the currency BTC. BitPay provides the currency conversion (for
example, from EUR to BTC) and the FX rate at the time of transaction is fixed. Merchants can display
prices in any given currency and customers can pay with their Bitcoin wallet once redirected to
BitPay. Once funds are confirmed by BitPay, actual funds (in real currency, not Bitcoins) will be
transferred to the merchant.

8.1.1. Supported countries


Bitcoin is available anywhere where a user has a Bitcoin wallet and makes a purchase through a
merchant that supports Bitcoin wallets. However, there are restricted countries where Bitcoins
cannot take place. These countries include the following:
• OFAC countries: Cuba, Sudan, Syria, North Korea, and Iran
• Countries where Bitcoins are illegal: Kyrgyzstan, Bolivia, Ecuador, and Bangladesh
• Other countries not supported: Canada, US, and TurkeyBitcoin integration

8.2. Bitcoin Integration

8.2.1. Merchant prerequisites


Skrill must grant the merchant permission to accept Bitcoin before this payment option can be
supported.

8.2.2. Customer prerequisites


To use the Bitcoin option, customers must have a Bitcoin wallet account or sign up for an account
during the online transaction process.

8.2.3. Bitcoin payment method code


If you are using the Split Gateway method to pass through the payment methods to display on the
Skrill Wallet page, the following payment method should be included in your payment form: BTC

8.3. Bitcoin payment process


When using Bitcoin payments with Quick Checkout, Skrill does not accept underpayments or
overpayments. This guarantees that the merchant always receives the exact amount and does not

© Skrill 2019 8-1


Skrill Quick Checkout Integration Guide 7.10

have to handle underpaid/overpaid amounts. See the figure below for an overview of the payment
process.

Figure 8-1: Bitcoin payment process overview

1. The customer selects the Bitcoin payment option on the Quick Checkout page.
2. The customer is redirected to BitPay.
3. The customer is asked to pay with their Bitcoin wallet.
4. Once payment has been received from the customer, BitPay sends the funds to Skrill (in the
requested currency, not Bitcoin) and redirects the customer back to the Skrill Quick Checkout
page.
5. Skrill settles the exact amount, in the requested currency, to the merchant’s Skrill account.
6. Skrill informs the customer of the status of the payment.
7. BitPay informs the customer about the payment status and of any refunds for overpayments.
8. Skrill updates the status of the transaction on the merchant’s status_url page and in My
Account.
Further details of the payment flow for regular, overpayments, and underpayments are described
below.

8.3.1. Quick Checkout – regular flow (correct amount is paid)


If all the prerequisites are completed (the customer is enabled for this type of payment and the
merchant accepts Bitcoins), the regular payment flow will be as follows:

© Skrill 2019 8-2


Skrill Quick Checkout Integration Guide 7.10

1. The customer selects the Bitcoin payment option:

Figure 8-2: Choosing Bitcoin as a payment option

2. The customer enters their Notification email address, which is the address to which BitPay
sends notifications about payments and any refund instructions.

Figure 8-3: Customer inserts notification email address

© Skrill 2019 8-3


Skrill Quick Checkout Integration Guide 7.10

3. The customer clicks the PROCEED TO PAY WITH BITCOIN button and is redirected to the
BitPay website.

Figure 8-4: Customer is redirected to BitPay

4. The customer is able to pay with their Bitcoin wallet (any type of Bitcoin wallet is allowed).

PAYMENT MUST BE FOR THE


EXACT BITCOIN AMOUNT.
UNDERPAYMENTS WILL BE
REJECTED

CUTOMERS CAN PAY VIA


SMARTPHONE BY SCANNING THE QR
CODE

OPEN IN BITCOIN
WALLET ACCOUNT

Figure 8-5: Customer pays in Bitcoins

© Skrill 2019 8-4


Skrill Quick Checkout Integration Guide 7.10

5. Customers have 15 minutes to complete the Bitcoin transaction. Once completed, the
customer is informed of the status of the payment and is provided with an option to return to
the Skrill website.

Figure 8-6: Customer completed Bitcoin transfer and is able to return to merchant’s site

© Skrill 2019 8-5


Skrill Quick Checkout Integration Guide 7.10

6. The customer is redirected back to the Skrill Quick Checkout payment page, where the status
of the transaction is displayed.

Figure 8-7: Customer is redirected back to Quick Checkout and can see status of the payment

7. The customer is notified about the status of the payment via email.
8. Skrill sends a payment success notification to the merchant’s status_url page.
The payment status can be either Failed, Pending, or Successful, as described below.

Table 8-1: Bitcoin status codes

Status code Status Description


-2 Failed Bitcoin transaction failed.
0 Pending Bitcoin transaction is pending.
2 Successful Bitcoin transaction successfully processed.

Note: If a payment is initially underpaid or overpaid, the transaction status will be pending. This will
later be updated to successful or failed once the customer has completed the online payment
process or it has expired. You should therefore not treat the payment as completed until you
receive a successful (i.e. 2) status notification.

9. Once the merchant receives a valid payment confirmation they can release the goods to the
customer.

© Skrill 2019 8-6


Skrill Quick Checkout Integration Guide 7.10

10. Once the Bitcoin transaction has been successfully processed, the merchant is able to view
the transaction on My Account.

Note: A refund cannot be made on the Bitcoin transaction until after the payment is settled.Bitcoin
refunds

8.4. Bitcoin Refunds


Once the transaction has been completed and funds have been transferred to the merchant’s wallet
account, merchants can issue a full or partial refund to the customer’s Bitcoin wallet, as follows:
1. Log in to My Account and search for the transaction based on the order number or
transaction ID provided by the customer.
2. Select the Bitcoin transaction and click Refund.

Figure 8-8: My Account refunds

© Skrill 2019 8-7


Skrill Quick Checkout Integration Guide 7.10

3. The system identifies the Bitcoin transaction and displays the following dialogue box:

Figure 8-9: Bitcoin receiving address required for refund

4. To process the refund, you must contact the customer and ask for the receiving address of
their Bitcoin wallet, for example: 19ew3Xcaht3qTx9dD8XyMyZDX1UCpDCHeM.

Note: The customer’s receiving address is only valid for a period of 30 minutes, after which it expires.
It is therefore essential to process the receiving address immediately or as soon as possible
after receiving it from the customer.

5. The customer’s receiving address field is mandatory and once entered, funds will be refunded
to the customer’s Bitcoin wallet.

8.4.1. Refunds from BitPay


Customers should contact BitPay to request refunds for any amounts that are held by BitPay.

© Skrill 2019 8-8


Skrill Quick Checkout Integration Guide 7.10

9. APPENDIX

This appendix contains the following information:


• ISO 4217 currencies
• Language support
• ISO country codes (3-digit)
• MD5 signature
• SHA2 signature
• Example HTML forms
• Payment method codes
• Failed reason codes

9.1. ISO 4217 currencies


Table 9-2: ISO 4217 currencies accepted by Skrill

EUR Euro KRW South-Korean Won


USD U.S. Dollar KWD Kuwaiti Dinar
AED Utd. Arab Emir. Dirham MAD Moroccan Dirham
AUD Australian Dollar MYR Malaysian Ringgit
BGN Bulgarian Leva NOK Norwegian Krone
BHD Bahraini Dinar NZD New Zealand Dollar
CAD Canadian Dollar OMR Omani Rial
CHF Swiss Franc PEN Peru Sol
COP Colombian Peso PLN Polish Zloty
CZK Czech Koruna QAR Qatari Rial
DKK Danish Krone RON Romanian Leu New
GBP British Pound RSD Serbian Dinar
HKD Hong Kong Dollar SAR Saudi Riyal
HRK Croatian Kuna SEK Swedish Krona
HUF Hungarian Forint SGD Singapore Dollar
ILS Israeli Shekel THB Thailand Baht
INR Indian Rupee TND Tunisian Dinar
ISK Iceland Krona TRY New Turkish Lira
JOD Jordanian Dinar TWD Taiwan Dollar
JPY Japanese Yen ZAR South-African Rand

© Skrill 2019 9-1


Skrill Quick Checkout Integration Guide 7.10

9.2. Language support


Skrill supports the following languages (2-character ISO codes):

Table 9-3: 2-digit ISO language codes

BG Bulgarian JA Japanese
CS Czech NL Dutch
DA Danish PL Polish
EL Greek PT Portuguese
EN English RO Romanian
ES Spanish RU Russian
FI Finnish SV Swedish
FR French TR Turkish
IT Italian ZH Chinese

© Skrill 2019 9-2


Skrill Quick Checkout Integration Guide 7.10

9.3. ISO country codes (3-digit)


Skrill does not accept customers from the following countries: Afghanistan, Cuba, Eritrea, Iran, Iraq,
Japan, Kyrgyzstan, Libya, North Korea, Sudan, South Sudan, and Syria.

Table 9-4: 3-digit ISO country codes

ABW Aruba GHA Ghana NIU Niue


AGO Angola GIB Gibraltar NLD Netherlands
AIA Anguilla GIN Haiti NOR Norway
ALA Aland Islands GLP Guadeloupe NPL Nepal
ALB Albania GMB Gambia NZL New Zealand
Andorra Heard Island and Oman
AND GNB OMN
McDonald Islands
ANT Netherlands Antilles GNQ Equatorial Guinea PAK Pakistan
ARE United Arab Emirates GRC Greece PAN Panama
ARG Argentina GRD Grenada PCN Pitcairn
ARM Armenia GRL Greenland PER Peru
ASM American Samoa GTM Guatemala PHL Philippines
ATA Antarctica GUF French Guiana PLW Palau
French Southern Guam Papua New Guinea
ATF GUM PNG
Territories
Antigua and Barbuda Holy See (Vatican City Poland
ATG GUY POL
State)
AUS Australia HKG Hong Kong PRI Puerto Rico
AUT Austria HMD Guinea-Bissau PRT Portugal
AZE Azerbaijan HND Honduras PRY Paraguay
BDI Burundi HRV Croatia PSE Palestinian Territory
BEL Belgium HTI Guinea PYF French Polynesia
BEN Benin HUN Hungary QAT Qatar
BFA Burkina Faso IDN Indonesia REU Reunion
BGD Bangladesh IMN Isle of Man ROU Romania
BGR Bulgaria IND India RUS Russian Federation
BHR Bahrain IRL Ireland RWA Rwanda
BHS Bahamas ISL Iceland SAU Saudi Arabia
Bosnia and Israel Senegal
BIH ISR SEN
Herzegovina
BLR Belarus ITA Italy SGP Singapore

© Skrill 2019 9-3


Skrill Quick Checkout Integration Guide 7.10

Table 9-4: 3-digit ISO country codes (Continued)

Belize Jamaica South Georgia and the


BLZ JAM SGS
South Sandwich Islands
BMU Bermuda JEY Jersey SHN Saint Helena
Bolivia Jordan Svalbard and
BOL JOR SJM
JanMayen
BRA Brazil JPN Japan SLB Solomon Islands
BRB Barbados KAZ Kazakhstan SLE Sierra Leone
BRN Brunei Darussalam KEN Kenya SLV El Salvador
BTN Bhutan KHM Cambodia SMR San Marino
BVT Bouvet Island KIR Kiribati SOM Somalia
Botswana Saint Kitts and Nevis Saint Pierre and
BWA KNA SPM
Miquelon
Central African Korea, Republic of Serbia
CAF KOR SRB
Republic
CAN Canada KWT Kuwait STP Sao Tome and Principe
Cocos (Keeling) Islands Lao People's Suriname
CCK LAO SUR
Democratic Republic
CHE Switzerland LBN Lebanon SVK Slovakia
CHL Chile LBR Liberia SVN Slovenia
CHN China LCA Saint Lucia SWE Sweden
Cote d'Ivoire Liechtenstein Swaziland
CIV LIE SWZ
(Ivory Coast)
CMR Cameroon LKA Sri Lanka SYC Seychelles
Congo, the Democratic Lesotho Turks and Caicos
COD LSO TCA
Republic Islands
COG Congo, Republic of LTU Lithuania TCD Chad
COK Cook Islands LUX Luxembourg TGO Togo
COL Colombia LVA Latvia THA Thailand
COM Comoros MAC Macao TJK Tajikistan
Cape Verde Saint Martin (French Tokelau
CPV MAF TKL
part)
CRI Costa Rica MAR Morocco TKM Turkmenistan
CXR Christmas Island MCO Monaco TLS East Timor
CYM Cayman Islands MDA Moldova TON Tonga
CYP Cyprus MDG Madagascar TTO Trinidad and Tobago
CZE Czech Republic MDV Maldives TUN Tunisia

© Skrill 2019 9-4


Skrill Quick Checkout Integration Guide 7.10

Table 9-4: 3-digit ISO country codes (Continued)

DEU Germany MEX Mexico TUR Turkey


DJI Djibouti MHL Marshall Islands TUV Tuvalu
DMA Dominica MKD Macedonia TWN Taiwan
DNK Denmark MLI Mali TZA Tanzania
DOM Dominican Republic MLT Malta UGA Uganda
DZA Algeria MMR Myanmar UKR Ukraine
Ecuador Montenegro United States Minor
ECU MNE UMI
Outlying Islands
EGY Egypt MNG Mongolia URY Uruguay
Eritrea Northern Mariana United States
ERI MNP USA
Islands
ESH Western Sahara MOZ Mozambique UZB Uzbekistan
ESP Spain MRT Mauritania VAT Guyana
Estonia Montserrat Saint Vincent and the
EST MSR VCT
Grenadines
ETH Ethiopia MTQ Martinique VEN Venezuela
FIN Finland MUS Mauritius VGB Virgin Islands, British
FJI Fiji MWI Malawi VIR Virgin Islands, U.S.
FLK Falkland Islands MYS Malaysia VNM Viet Nam
FRA France MYT Mayotte VUT Vanuatu
FRO Faroe Islands NAM Namibia WLF Wallis and Futuna
Micronesia, Federated New Caledonia Samoa
FSM NCL WSM
States of
GAB Gabon NER Niger YEM Yemen
GBR United Kingdom NFK Norfolk Island ZAF South Africa
GEO Georgia NGA Nigeria ZMB Zambia
GGY Guernsey NIC Nicaragua ZWE Zimbabwe

© Skrill 2019 9-5


Skrill Quick Checkout Integration Guide 7.10

9.4. MD5 signature


A hidden text field called md5sig is included in the form submitted to your server. The value of this
field is a 128-bit message digest, expressed as a string of thirty-two hexadecimal digits in UPPERCASE.
The md5sig is constructed by performing an MD5 calculation on a string built up by concatenating the
fields returned to your status_url page. This includes:
• merchant_id
• transaction_id
• the uppercase MD5 value of the ASCII equivalent of the secret word submitted in the Settings
> Developer Settings section of your online Skrill account.
• mb_amount
• mb_currency
• status
The purpose of the md5sig field is to ensure the integrity of the data posted back to your server. You
should always compare the md5sig field's value posted by Skrill's servers with the one you calculated.
To calculate the md5sig, you need to take the values of the fields listed above exactly as they were
posted back to you, concatenate them, and perform a MD5 calculation on this string.

Cancelled payment
The MD5 hash posted on the ondemand_status_url when a Skrill 1-Tap payment has been cancelled
is a concatenation of the following fields:
• MERCHANT_ID = merchant_id
• MERCHANT_TRN_ID = transaction_id
• The uppercase MD5 value of the ASCII equivalent of the secret word submitted in the
Settings > Developer Settings section of the Merchant’s online Skrill account
• REC_PMT_STATUS = status
• TRN_ID = rec_payment_id
The MD5 hash for 1-Tap payments, posted on the status_url is calculated the same way as normal
payments/refunds.

Secret word
The secret word must be submitted in the Settings > Developer Settings section of your Skrill Digital
Wallet account before the md5sig can be used. The following restrictions apply when submitting your
secret word:
• All characters must be in lowercase
• The length should not exceed 10 characters
• Special characters are not permitted (for example @, %, $, etc.)

Note: If the Settings > Developer Settings section is not displayed in your account, contact
[email protected].

© Skrill 2019 9-6


Skrill Quick Checkout Integration Guide 7.10

9.5. SHA2 signature


To improve the security of the status reports, Skrill posts an additional parameter with the report
called sha2sig. This is constructed in the same way as the md5 signature, but with a different hashing
algorithm, Sha2 (256 bits).

Note: This new parameter is not available by default. To enable this option, send a request to
[email protected].

9.6. Example HTML forms


Below are two examples of HTML forms that can be submitted to Skrill. The first one is a basic
example. The second example uses several additional features currently available with Quick
Checkout.
You can use these forms, ensuring that the values are replaced with your own values.

Note: To request a test account and test data, contact [email protected].

Simple HTML form


<form action="https://pay.skrill.com" method="post" target="_blank">
<input type="hidden" name="pay_to_email" value="[email protected]">
<input type="hidden" name="status_url" value="https://example.com/
process_payment.cgi">
<input type="hidden" name="language" value="EN">
<input type="hidden" name="amount" value="39.60">
<input type="hidden" name="currency" value="GBP">
<input type="hidden" name="detail1_description" value="Description:">
<input type="hidden" name="detail1_text" value="Romeo and Juliet (W.
Shakespeare)">
<input type="submit" value="Pay!">
</form>

© Skrill 2019 9-7


Skrill Quick Checkout Integration Guide 7.10

Advanced HTML form


<form action="https://pay.skrill.com" method="post" target="_blank">
<input type="hidden" name="pay_to_email" value="[email protected]">
<input type="hidden" name="transaction_id" value="A10005">
<input type="hidden" name="return_url" value="https://example.com/
payment_finished.html">
<input type="hidden" name="cancel_url" value="https://example.com/
payment_cancelled.html">
<input type="hidden" name="status_url" value="https://example.com/
process_payment.cgi">
<input type="hidden" name="language" value="EN">
<input type="hidden" name="merchant_fields" value="customer_number,session_id">
<input type="hidden" name="customer_number" value="C1234">
<input type="hidden" name="session_ID" value="A3DFA2234">
<input type="hidden" name="pay_from_email" value="[email protected]">
<input type="hidden" name="amount2_description" value="Product Price:">
<input type="hidden" name="amount2" value="29.90">
<input type="hidden" name="amount3_description" value="Handling Fees & Charges:">
<input type="hidden" name="amount3" value="3.10">
<input type="hidden" name="amount4_description" value="VAT (20%):">
<input type="hidden" name="amount4" value="6.60">
<input type="hidden" name="amount" value="39.60">
<input type="hidden" name="currency" value="GBP">
<input type="hidden" name="firstname" value="John">
<input type="hidden" name="lastname" value="Payer">
<input type="hidden" name="address" value="Payerstreet">
<input type="hidden" name="postal_code" value="EC45MQ">
<input type="hidden" name="city" value="Payertown">
<input type="hidden" name="country" value="GBR">
<input type="hidden" name="detail1_description" value="Product ID:">
<input type="hidden" name="detail1_text" value="4509334">
<input type="hidden" name="detail2_description" value="Description:">
<input type="hidden" name="detail2_text" value="Romeo and Juliet (W.
Shakespeare)">
<input type="hidden" name="detail3_description" value="Special Conditions:">
<input type="hidden" name="detail3_text" value="5-6 days for delivery">
<input type="submit" value="Pay!">
</form>

© Skrill 2019 9-8


Skrill Quick Checkout Integration Guide 7.10

9.7. Payment method codes


The table below describes the codes required for each payment method if passing specific payment
methods in your payment request.

Table 9-5: Payment method codes

Payment method Value Supported countries


Skrill Digital Wallet WLT All in table ISO country codes (3-digit) on
page 9-3
Neteller * † NTL All except for:
Afghanistan, Armenia, Bhutan, Bouvet Island,
Myanmar, China, (Keeling) Islands, Democratic
Republic of Congo, Cook Islands, Cuba, Eritrea,
South Georgia and the South Sandwich Islands,
Guam, Guinea, Territory of Heard Island and
McDonald Islands, Iran, Iraq, Cote d'Ivoire,
Kazakhstan, North Korea, Kyrgyzstan, Liberia,
Libya, Mongolia, Northern Mariana Islands,
Federated States of Micronesia, Marshall
Islands, Palau, Pakistan, East Timor, Puerto Rico,
Sierra Leone, Somalia, Zimbabwe, Sudan, Syria,
Tajikistan, Turkmenistan, Uganda, United
States, US Virgin Islands, Uzbekistan, and Yemen
Paysafecard * PSC American Samoa, Austria, Belgium, Canada,
Croatia, Cyprus, Czech Republic, Denmark,
Finland, France, Germany, Guam, Hungary,
Ireland, Italy, Latvia, Luxembourg, Malta,
Mexico, Netherlands, Northern Mariana Islands,
Norway, Poland, Portugal, Puerto Rico,
Romania, Slovakia, Slovenia, Spain, Sweden,
Switzerland, Turkey, United Kingdom, United
States Of America, and US Virgin Islands
Paysafecash * PCH Austria, Belgium, Canada, Croatia, Czech
Republic, Denmark, France, Hungary, Italy,
Ireland, Luxembourg, Malta, Netherlands,
Poland, Portugal, Romania, Slovakia, Slovenia,
Spain, Switzerland, United Kingdom
Resurs RSB Sweden, Norway, Finland, and Denmark
Note: This
code
cannot be
used with
any other
payment
method
code)
Credit/Debit Cards

© Skrill 2019 9-9


Skrill Quick Checkout Integration Guide 7.10

Table 9-5: Payment method codes (Continued)

Payment method Value Supported countries


All card types available in the ACC All in table ISO country codes (3-digit) on
customer’s country page 9-3
Visa VSA All in table ISO country codes (3-digit) on
page 9-3
Mastercard MSC All in table ISO country codes (3-digit) on
page 9-3
Visa Electron VSE All in table ISO country codes (3-digit) on
page 9-3 (excluding US)
Maestro MAE United Kingdom, Spain, Ireland, and Austria
American Express AMX All in table ISO country codes (3-digit) on
page 9-3 (excluding US). Additional restrictions
may apply.
Carte Bleue GCB France
Dankort DNK Denmark
PostePay PSP Italy
CartaSi CSI Italy
Instant Banking Options
Rapid Transfer (Online Bank OBT/NGP Austria, Belgium, Bulgaria, Denmark, Estonia,
Transfer) Finland, France, Germany, Hungary, Italy, Latvia,
Netherlands, Norway, Poland, Portugal, Spain,
(Previously called Skrill Direct)
Sweden, UK, USA.
Note: NGP is returned in payment_type for this
payment method only if detailed payment type
information is enabled for your account.
giropay GIR Germany
Direct Debit/SEPA DID Germany
Klarna (was Sofort previously, SFT Germany, Austria, Belgium, Netherlands, Italy,
supports straight through France, Poland, Hungary, Slovakia, Czech
redirect)* Republic and United Kingdom
Nordea Solo EBT Sweden
iDEAL IDL/GCI Netherlands
*Note: IDL is the only value allowed for this
payment_method in a request. GCI is returned
in payment_type for this payment method after
a gaming payment through GlobalConnect, but
only if detailed payment type information is
enabled for your account.
EPS (Netpay) NPY Austria
POLi PLI Australia

© Skrill 2019 9-10


Skrill Quick Checkout Integration Guide 7.10

Table 9-5: Payment method codes (Continued)

Payment method Value Supported countries


Przelewy24 * PWY Poland
ePay.bg EPY Bulgaria
Trustly * GLU Austria, Belgium, Bulgaria, Czech Republic,
Denmark, Estonia, Finland, Germany, Hungary,
Ireland, Latvia, Lithuania, Netherlands, Poland,
Romania, Slovakia, Slovenia, Spain, Sweden.
Alipay * ALI Customer location: China only.
This is available for merchants in all countries in
table ISO country codes (3-digit) on page 9-3
except China.
Astropay - Online bank transfer ADB Argentina, Brazil
(Direct Bank Transfer)
Astropay - Offline bank transfer AOB Brazil, Chile, China, Colombia
Astropay - Cash (Invoice) ACI Argentina, Brazil, Chile, China, Colombia,
Mexico, Peru, Uruguay
Unionpay (via Astropay) AUP China

* - Payment method that supports Straight Through Redirect.


†- For the best user experience for the Neteller payment method, Skrill recommends that you
provide a pay_from_email. However, you do not need to provide the pay_from_email if you use the
Neteller customer’s email address in the neteller_account parameter.

9.7.1. Alipay
The Alipay payment method is restricted to customers from China.

Note: Only merchants outside China can offer this payment method

The following currencies are supported: EUR, USD, GBP, HDK, and SGD. Other currencies will be
processed but Skrill will convert the payment amount to Euros and charge the merchant a conversion
fee, see https://www.skrill.com/en/fees/ for details.
There are two integration options for Alipay:
• Straight through redirect.
• Payment tab selection.
These methods are described in more detail below.

Straight-through redirect
A straight-through redirect bypasses the Quick Checkout form and sends the payment details direct
to Alipay. To use this method you need to first ensure your merchant account is configured for the
Fixed payment option. The next step is to provide the customer’s email in the pay_from_email

© Skrill 2019 9-11


Skrill Quick Checkout Integration Guide 7.10

parameter and pass a single payment_method code, ALI as part of the payment request. If you don’t
pass the pay_from_email parameter, the Quick Checkout payment form will be displayed. The
customer will see a prompt asking them to enter their email before continuing to Alipay.

Payment tab selection


If you use the Fixed payment option and pass more than one payment method code including the ALI
code Alipay will appear as a standard payment tab on the form for Chinese customers. Alipay will also
appear as a standard payment tab for Chinese customers if the merchant account is configured to use
the Flexible payment option.

9.7.2. Alipay customs declaration


If you are shipping physical goods to customers in China paying with Alipay, you will need to make a
customs declaration. This declaration should be made immediately after a successful payment. Skrill
provide two MQI API calls for this purpose: one call to submit a customs declaration and a second call
to check the status of an existing declaration.
Before continuing, you must first enable the MQI, set up an API/MQI password, and specify an IP
range from which MQI calls can be made. Refer to the introductory section of the Skrill Automated
Payment Interface Guide for information about enabling and configuring the MQI.
Once you have enabled the MQI, you can use the two calls. These calls are described in detail below.

Send a customs declaration


This call sends a customs declaration about an Alipay purchase to Chinese customs. The request
contains the merchant’s Skrill account email and MQI/API password (in MD5 form) along with
information about the payment such as transaction reference, amount, the merchant’s identification
details and the selected customs to which the purchased item will be shipped. Alipay verifies the
request details to check that they match a successful payment registered in their system and then
sends them on to Chinese customs. Finally, Alipay returns a response to the merchant (via Skrill) with
the associated transaction ID for the payment (Alipay’s transaction ID) and a customs declaration
number.

Method Endpoint Description


POST https://api.skrill.com/mqi/customs/ Send customs declaration to Alipay
alipay/ customs API

You should add the following header to your HTTP request:


Content-Type: application/json;

or
Content-Type: application/json; charset="UTF8"

if you are including UTF8 characters in the request.

© Skrill 2019 9-12


Skrill Quick Checkout Integration Guide 7.10

Example request:
{
"email" : "[email protected]",
"password" : "1bw8e40ebe9759b55948bbce8aaa460d",
"transactionId" : "166462653",
"outRequestNumber" : "9193457120563834",
"amount" : "32.89",
"merchantCustomsCode" : "hanguo",
"merchantCustomsName" : "jwyhanguo_card",
"customsPlace" : "HANGZHOU"
}

Table 9-6: Request parameters

Maximum
Parameter length Required Description
(bytes)
email n/a Yes The email address of your merchant
account.
password n/a Yes MD5 of the MQI/API password for your
merchant account.
transactionId n/a Yes The Skrill IDof the transaction for which
you are making a customs declaration.
This is the mb_transaction_id value
received in the payment status response.
outRequestNumber 32 Yes Unique customs transaction ID. You must
ensure that you generate a unique value
for this field each time you make a
request.
amount n/a Yes Indicates the declared amount for
customs in Yuan (CNY) to 2 decimal
places, for example 20.00. This is the
value of the goods and excludes all taxes
and shipping costs.
Note: This value should not exceed the
payment transaction amount.
merchantCustomsCode 20 Yes The merchant’s registration code at
customs.
merchantCustomsName 256 Yes The merchant’s registration name at
customs.

© Skrill 2019 9-13


Skrill Quick Checkout Integration Guide 7.10

Table 9-6: Request parameters (Continued)

Maximum
Parameter length Required Description
(bytes)
customsPlace N/A Yes The customs location at which the
package is expected to arrive. Accepts the
following values:
• HANGZHOU - Hangzhou Customs Dis-
trict People’s Republic of China.
• ZHENGZHOU - Zhengzhou Customs
District of People’s Republic of China
(bonded logistics center).
• GUANGZHOU - Guangzhou Customs
District People’s Republic of China
• CHONGQING - Chongqing Customs
District People’s Republic of China.
• NINGBO - Ningbo Customs District
People’s Republic of China.
• HENAN - Customs in Henan (compre-
hensive bonded zone).

Example of a successful response:


{
"alipayTrnId": "2013111511001004390000105126",
"alipayDeclarationNumber": "2013112611001004680073956707",
}

Table 9-7: Successful response parameters

Parameter Description
alipayTrnId The ID of the Alipay transaction.
alipayDeclarationNumber The customs declaration serial number from Alipay.

A response of this form indicates that a successful customs declaration has been made.

© Skrill 2019 9-14


Skrill Quick Checkout Integration Guide 7.10

Example showing a failed response from Alipay:


{
"alipayTrnId": "2013111511001004390000105126",
"error": {
"code": "INVALID_TRANSACTION_STATUS",
"message": "Customs declaration is not allowed for transactions which are
not yet completed or have been refunded."
}
}

Note: Both successful and failed responses return a HTTP 200 Status code.

Example of a response with invalid parameters:


{
"error": {
"code": "INVALID_PARAMETER",
"message": "outRequestNumber must not exceed specified length"
}
}

Table 9-8: Unsuccessful response parameters

Parameter Description
code The error code. See Table 9-9 below for a list of values.
message The detailed description of the error. See Table 9-9 below for a list of
values.

Table 9-9: Error codes

Code Message
INVALID_TRANSACTION_S Customs declaration is not allowed for transactions which are not yet
TATUS completed or have been refunded.
INVALID_PARAMETER Different descriptions are possible, based on which parameter is
invalid. Here are some variants:
• Invalid parameter format.
• outRequestNumber must not exceed the specified length.
OUT_REQUEST_NUMBER The same request number (out_request_number) is used for multiple
_ALREADY_USED requests.
ALREADY_DECLARED Customs declaration has already been registered.
REQUEST_AMOUNT_EXCE The declared amount exceeds the transaction amount.
EDED
TRANSACTION_NOT_FOU This transaction is not found in Alipay's system.
ND
ALIPAY_COMMUNICATIO Error occurred during the communication with Alipay.
N_ERROR
MISSING_PARAMETER <parameter> must not be null or empty

© Skrill 2019 9-15


Skrill Quick Checkout Integration Guide 7.10

Table 9-9: Error codes (Continued)

Code Message
CANNOT_LOGIN No associated error message - this is used for incorrect password/
email errors
BAD_REQUEST Shows the line and column where the error occurred in the request

Check the status of a customs declaration


This call is used to return details about a customs declaration for a specific Skrill transaction. If a
customs declaration exists for this transaction, the call returns a response with the associated
transaction ID for the payment in Alipay’s system and a customs declaration number.

Method Endpoint Description


GET https://api.skrill.com/mqi/customs/ Check the status of a customs
alipay/{id} declaration
/mqi/customs/alipay/
{id}?email={email}&password={password
}

Example:
https://api.skrill.com/mqi/customs/alipay/1705513403?email=merchant@sun-
fish.com&password=1bw8e40ebe9759b55948bbce8aaa460d

The parameters for this call are as follows:


• email (required) - The email address of the merchant’s Skrill account
• password (required) - The MD5 of the merchant’s password
• id (required) - the Skrill transaction ID of the transaction that you want to query. This is the
mb_transaction_id status response parameter.

Note: Both successful and failed responses return a HTTP 200 Status code.

Example of a successful response:


{
"alipayTrnId": "2013111511001004390000105126",
"alipayDeclarationNumber": "2013112611001004680073956707",
}

Example of a failed response:


{
"error": {
"code": "NOT_FOUND"
"message": "No transaction found with the specified id."
}
}

© Skrill 2019 9-16


Skrill Quick Checkout Integration Guide 7.10

9.8. Failed reason codes


The table below contains all possible values of the failed_reason_code parameter and their
corresponding meanings. Failed reason codes are mappings of codes Skrill receives from external
processors and failures due to internal procedures.

Table 9-10: Failed reason codes

Code Description
01 Referred by Card Issuer
02 Invalid Merchant. Merchant account inactive.
03 Pick-up card
04 Declined by Card Issuer
05 Insufficient funds
06 Merchant/NETELLER/Processor declined
07 Incorrect PIN
08 PIN tries exceed - card blocked
09 Invalid Transaction
10 Transaction frequency limit exceeded
11 Invalid Amount format. Amount too high. Amount too low. Limit Exceeded.
12 Invalid credit card or bank account
13 Invalid card Issuer
15 Duplicate transaction reference
19 Authentication credentials expired/disabled/locked/invalid. Cannot authenticate.
Request not authorized.
20 Neteller member is in a blocked country/state/region/geolocation
22 Unsupported Accept header or Content type
24 Card expired
27 Requested API function not supported (legacy function)
28 Lost/stolen card
30 Format Failure
32 Card Security Code (CVV2/CVC2) Check Failed
34 Illegal Transaction
35 Member/Merchant not entitled/authorized. Account closed. Unauthorized access.
37 Card restricted by Card Issuer
38 Security violation
42 Card blocked by Card Issuer

© Skrill 2019 9-17


Skrill Quick Checkout Integration Guide 7.10

Table 9-10: Failed reason codes (Continued)

Code Description
44 Card Issuing Bank or Network is not available
45 Processing error - card type is not processed by the authorization centre
51 System error
58 Transaction not permitted by acquirer
63 Transaction not permitted for cardholder
64 Invalid accountId/country/currency/customer/email/field/merchant reference/
merchant account currency/term length/verification code. Account not found/
disabled. Entity not found. URI not found. Existing member email. Plan already
exists. Bad request.
67 BitPay session expired
68 Referenced transaction has not been settled
69 Referenced transaction is not fully authenticated
70 Customer failed 3DS verification
80 Fraud rules declined
98 Error in communication with provider
99 Other

© Skrill 2019 9-18


Skrill Quick Checkout Integration Guide 7.10

INDEX
A T
advanced HTML form, 8 test account, 12

C V
chargeback notification, 2 validating the status report, 17
connect to Quick Checkout, 1
contact for queries, 2
customer completes details, 12
customer experience, improving, 4
customers who want to register for a Skrill
account, 3

D
display credit/debit card brands, 6
display your company logo or brand, 10

E
example HTML forms, 7

F
fixed payment methods, 5
flexible payment methods, 9

H
HTML form, simple, 7

I
Iframe target, 11
improving the customer experience, 4
ISO country codes (3-digit), 3

M
MD5 signature, 6
Merchant Query Interface, 17
merchant refunds, 2

P
payment process steps, redirect to Skrill, 4
process for customers registered with Skrill, 20

R
removing header and reducing footer, 13

S
secure redirection method, 4
secure redirection restriction, 5
session Identifier, 3
Skrill Quick Checkout parameters, 5

© Skrill 2019 Index-1

You might also like