You are on page 1of 51

Skrill Wallet Integration

Guide
For use by Skrill Wallet merchants
This guide describes how to connect to the Skrill Payment
Gateway. It is only applicable to Wallet merchants

www.skrill.com
Version 6.7

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

Skrill Wallet Guide 6.7

Copyright
2014. 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 Table


Date

Version

Description

13/09/2013

6.2

New guide template and updated content,


including new Gateway pages.

25/10/2013

6.3

Changes to description of Split Gateway and


Payment Method Codes appendix

25/11/2013

6.4

Removal of Latvian currency.

14/12/2013

6.5

Addition of credit card brands with Split Gateway,


plus new screenshots.

19/02/2014

6.6

Changes to Skrill 1-tap.

20/05/2014

6.7

Removal of Laser. Addition of Paysafecard.

Skrill 2014

Page 1

Skrill Wallet Guide 6.7

Contents
1

About this Guide................................................................................................................... 4


1.1

Objectives and target audience .............................................................................................. 4

1.2

Related documentation .......................................................................................................... 4

1.3

Conventions used in this guide ............................................................................................... 4

Introduction ......................................................................................................................... 5
2.1

Connecting to the Payment Gateway ..................................................................................... 6

2.1.1
2.2

The payment process ...................................................................................................... 7

Steps in the payment process ................................................................................................. 8

2.2.1

Redirecting customers to the Skrill Gateway (step 1)..................................................... 8

2.2.2

Passing the customer details to Skrill (Step 2) ............................................................. 13

2.2.3

Skrill Confirmation page (step 3) .................................................................................. 19

2.2.4

Skrill transaction status page (final step) ...................................................................... 20

2.2.5

Skrill Status report......................................................................................................... 21

2.2.6

Detailed status description ........................................................................................... 23

Additional Gateway options ................................................................................................ 24


3.1

Gateway Fast Registration (GWFR) ....................................................................................... 24

3.2

Split Gateway ........................................................................................................................ 26

3.2.1

Fixed Split Gateway ....................................................................................................... 27

3.2.2

Flexible Split Gateway ................................................................................................... 27

3.3

Recurring Billing .................................................................................................................... 29

3.4

Skrill 1-Tap payment ............................................................................................................. 31

3.5

Secure return_url parameter ................................................................................................ 33

3.6

Merchant refunds ................................................................................................................. 34

3.7

Chargeback notification ........................................................................................................ 34

3.8

Dynamic Descriptor............................................................................................................... 34

3.9

Iframe target ......................................................................................................................... 35

Appendices......................................................................................................................... 38
4.1

ISO 4217 currencies .............................................................................................................. 38

4.2

ISO country codes (3-digit).................................................................................................... 39

4.3

MD5 signature....................................................................................................................... 41

4.4

SHA2 signature ...................................................................................................................... 42

4.5

Example HTML forms ............................................................................................................ 42

4.6

Payment method codes ........................................................................................................ 44

4.7

Failed reason codes............................................................................................................... 45

Skrill 2014

Page 2

Skrill Wallet Guide 6.7


5

Glossary ............................................................................................................................. 47

Index .................................................................................................................................. 50

Skrill 2014

Page 3

Skrill Wallet Guide 6.7

1 ABOUT THIS GUIDE


1.1 Objectives and target audience
This guide provides details on how to connect your website to the Skrill Payment Gateway using the
Skrill Wallet service. 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.
This guide is only relevant to Skrill Wallet merchants.

1.2 Related documentation


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

Guide

Description

Automated Payments
Interface Guide

Describes how to connect to Skrill using the Automated Payments


Interface (API). This supports functionality such as merchant queries
against the system, sending money and processing refunds.

1.3 Conventions used in this guide


The table below lists some of the conventions used in this guide.
Table 1: List of conventions

Convention

Description

Reference

Indicates a reference to another section in this guide. For


example, refer to the Introduction on page 5.

File path

Used to indicate a file path or folder structure.

Glossary

Glossary term

Skrill 2014

Page 4

Skrill Wallet Guide 6.7

2 INTRODUCTION
The Skrill Payment Gateway is a secure Skrill site, where you redirect customers from your website
to make a Wallet payment through Skrill. The gateway collects customer payment details using
standard HTML forms.
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.

Requesting a test account


You may need a test account to test your integration to the Skrill Payment Gateway. Test accounts
work in a live environment, however funds cannot be sent from a test account to a live account.
To set up a test account:
1. Open an additional Skrill Digital Wallet account online via the Skrill website.
2. Inform Skrill of the email address of the new account and request that this be enabled as a
test account.

Who to contact for queries


For all support queries, contact the Merchant Services department:
Email: merchantservices@skrill.com
Phone: +44 870 383 0762 (Mon-Fri, 9am until 5pm UK time)

Skrill 2014

Page 5

Skrill Wallet Guide 6.7

2.1 Connecting to the Payment Gateway


Connecting to the Skrill Payment Gateway requires adding Skrill as a payment method on your
websites checkout or payment page. When your customer selects Skrill, you should ensure that
they are redirected to the Skrill Payment Gateway. At the same time you will need to submit
information about the payment, such as your account ID, amount to be paid and several other
hidden text fields.
You can use a standard HTML form to collect and pass payment and customer details to Skrill. An
example of an HTML form is shown in section 4.5.Example HTML form on page 42.
A simplified illustration of the transaction flow is shown in Figure 1 below.

Figure 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 (e.g.,
amount, currency and language) to the Skrill Payment Gateway.
3. Skrill returns the generated SID.
4. Using a light box or iframe you redirect the customer to the Skrill Payment Gateway and
include the session identifier in the redirect URL. Skrill displays the relevant payment page.
5. The customer enters their payment information, plus any other details requested, and
confirm the transaction.
6. Skrill requests authorisation for the payment from the customers bank, third party provider
or card issuer.
7. The bank/provider approves or rejects the transaction.
8. We display the confirmation page, containing the transaction result, on the Skrill Payment
Gateway.
9. Skrill provides you with an asynchronous notification to your status URL or IPN (instant
Payment Notification), confirming the transaction details and status.

Skrill 2014

Page 6

Skrill Wallet Guide 6.7

2.1.1 The payment process


Figure 2 below provides a more detailed view of the interaction between customer, merchant and Skrill
in a typical transaction.

Figure 2: Payment flow between customer, merchant and Skrill

Skrill 2014

Page 7

Skrill Wallet Guide 6.7

2.2 Steps in the payment process


Payment details are collected from the customer and you are notified of the results in three steps:

2.2.1 Redirecting customers to the Skrill Gateway (step 1)


When a customer is on the online checkout or payment page on your website, they should be
presented with a Pay by Skrill button (see example below).

You can download a copy of this button in different sizes from the Skrill website at:
https://www.skrill.com/en/business/brand-centre
When they select the Skrill button, your website should post the HTML form containing their
transaction details to https://www.moneybookers.com/app/payment.pl.
The HTML form should contain the hidden input fields listed in Table 2 below.
Note: To maximise conversion, Skrill recommends that you redirect customers to the Skrill Payment
Gateway in the same browser window or embed the Skrill page in an iframe (see section 3.9
on page 35). When using the standard Skrill page, the minimum width of the window or frame
should be at least 600 pixels.

Skrill Payment Gateway demonstration


If you want a demonstration of the Skrill Payment Gateway, you can access a test form at:
https://www.moneybookers.com/app/test_payment.pl.
Note: transactions are processed as real payments. To arrange for a test account where test data
can be processed, please contact merchantservices@skrill.com.

Download payment method logos


Skrill logos and payment method icons that can be displayed on your website are available at:
https://www.skrill.com/en/business/brand-centre

Skrill 2014

Page 8

Skrill Wallet Guide 6.7

Parameters to be posted to the Skrill Gateway


Table 2: Skrill Gateway parameters

Field name

Description

Merchant Details
pay_to_email

Email address of your Skrill account.

recipient_description

transaction_id

return_url

return_url_text
return_url_target

cancel_url

cancel_url_target

status_url

Skrill 2014

A description to be shown on the Skrill


Gateway page. If no value is submitted,
the pay_to_email value is shown as the
recipient of the payment. (Max 30
characters)
Your unique reference or identification
number for the transaction. (Must be
unique for each payment)
URL to which the customer is returned
once the payment is made. If this field is
not filled, the Skrill Gateway 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 section 3.5 on page 33.)
The text on the button when the
customer finishes their payment.
Specifies a target in which the
return_url value is displayed upon
successful payment from the customer.
Default value is 1.
1 = '_top'
2 = '_parent'
3 = '_self'
4= '_blank'
URL to which the customer is returned
if the payment is cancelled. If this field
is not filled, the Skrill Gateway page
closes automatically when the Cancel
button is selected, and customer is
returned to the page on your website
from where they were redirected to
Skrill.
Specifies a target in which the
cancel_url value is displayed upon
cancellation of payment by the
customer. Default value is 1.
1 = '_top'
2 = '_parent'
3 = '_self'
4= '_blank'
URL to which the transaction details are
posted after the payment process is
complete. Alternatively, you may
specify an email address where the
results are sent.
If the status_url is omitted, no

Required

Max
Example value
length

Yes

50

info@merchant.com

No

30

Your Company Name

No

100

A205220

No

240

http://www.merchant
.com/payment.htm

No

35

Return to main
website

No

No

240

http://www.merchant
.com/payment_cancel
led.htm

No

400

https://www.merchan
t.com/process_payme
nt.cqi
OR
mailto:
info@merchant.com

No

Page 9

Skrill Wallet Guide 6.7


Field name

Description

Required

Max
Example value
length

transaction details are sent.


status_url2

Second URL to which the transaction


details are posted after the payment
process is complete. Alternatively, you
may specify an email address where the No
results are sent.

new_window_redirect You can redirect customers a new


window instead of in the same browser
window (e.g., for online bank transfer
payment methods, such as
Sofortueberweisung).
The accepted values are 0 (default) and
1 (new window).
language
2-letter code of the language used for
Skrills pages. Can be any of EN, DE, ES,
FR, IT, PL, GR RO, RU, TR, CN, CZ, NL,
DA, SV or FI.
confirmation_note
This enables you to display a
confirmation message or other details
at the end of the payment process.
Line breaks <br> can be used for longer
messages.
logo_url
The URL of the logo which you would
like to appear at the top of the Skrill
page. The logo must be accessible via
HTTPS or it will not be shown.
For best results use logos with
dimensions up to 200px in width and
50px in height.
prepare_only
Forces only the SID to be returned
without the actual page. Useful when
using the secure method to redirect the
customer to the Gateway. For details,
see section 2.2.1.1on page 12.
Accepted values are 0 (default) and 1
(prepare only).
rid
You can pass a unique referral ID or
email of an affiliate from which the
customer is referred. The rid value must
be included within the actual payment
request.
ext_ref_id
You can pass additional identifier in 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 names
that are passed back to your web server
when the payment is confirmed
(maximum 5 fields).
field 1

An example merchant field

field 2

An example merchant field

Skrill 2014

400

https://www.merchan
t.com/process_payme
nt2.cqi
OR
mailto:
info2@merchant.com

No

Yes

EN

No

240

Sample merchant
wishes you pleasure
reading your new
book!

No

240

https://www.merchan
t.com/logo.jpeg

No

No

100

123456

No

100

Affiliate Name

No

240

Field1, Field2

No

240

Value 1

No

240

Value 2

Page 10

Skrill Wallet Guide 6.7


Field name
Customer Details
pay_from_email

Description

firstname

Email address of the customer who is


making the payment. If left empty, the
customer has to enter their email
address.
Customers title. Accepted values: Mr,
Mrs or Ms
Customers first name

lastname

Customers last name

title

date_of_birth
address
address2
phone_number
postal_code

city
state
country
Payment Details
amount

currency

Date of birth of the customer. The


format is ddmmyyyy. Only numeric
values are accepted
Customers address (e.g. street)
Customers address (e.g. town)
Customers phone number. Only
numeric values are accepted
Customers postal code/ZIP Code. Only
alphanumeric values are accepted
(e.g., no punctuation marks or dashes)
Customers city
Customers state or region.
Customers country in the 3-digit ISO
Code (see section 4.2 on page 39).
The total amount payable.
Note: do not include the trailing zeroes
if the amount is a natural number. For
example: 23 (not 23.00).

Required

Max
Example value
length

No

100

payer@skrill.com

No

Mr

No

20

John

No

50

Payer

No

01121980

No
No

100
100

Payer street
Payer town

No

20

0207123456

No

EC45MQ

No
No

50
50

London
Central London

No

GBR

Yes

19

39.68
OR
39.6
OR
39

Yes

EUR

No

240

Product price:

No

19

29.90

No

240

amount3_description

3-letter code of the currency of the


amount according to ISO 4217 (see
section 4.1 on page 38).
You can include a calculation for the
total amount payable, which is
displayed in the More information
section in the header of the Skrill page.
Note that Skrill does not check the
validity of this data.
This amount in the currency defined in
the field 'currency' will be shown next
to amount2_description.
See above

amount3
amount4_description

See above
See above

No

19

Handing fees &


charges:
3.10

No

240

VAT (20%):

amount4

See above

No

19

6.60

detail1_description

You can show up to five additional


details about the product in the More
information section in the header of
the Skrill Gateway page.
The detail1_text is shown next to the
detail1_description. The detail1_text is
also shown to the customer in their

Yes

240

Product ID:

Yes

240

4509334

amount2_description

amount2

detail1_text

Skrill 2014

Page 11

Skrill Wallet Guide 6.7


Field name

Description

Required

Max
Example value
length

No

240

Description:

No

240

Romeo and Juliet


(W. Shakespeare)

No

240

Special Conditions:

No

240

5-6 days for delivery

Skrill Digital Wallet account history.


detail2_description

See above

detail2_text

See above

detail3_description

See above

detail3_text

See above

detail4_description

See above

No

240

detail4_text

See above

No

240

detail5_description

See above

No

240

detail5_text

See above

No

240

2.2.1.1 Recommended secure method of redirecting the customer


This method can be used to ensure that details of the payment are communicated securely between
your server and Skrill.
Important! We strongly recommend that you use this method for 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.

How to implement
To ensure that details of the payment are communicated securely only between your server and
Skrill:
1. Your web server makes a standard POST request with the payment parameters, using the
prepare_only parameter (see Table 2 above).
2. The Skrill server prepares a session for the payment and returns a standard HTTP(S)
response.
3. Your web server takes the SESSION_ID cookie from the appropriate Set-Cookie HTTP header
of the response.
4. Using this SESSION_ID value the customer can be redirected to
https://www.moneybookers.com/app/payment.pl?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.
For code examples of how to implement this, see section 3.10 on page 37.

Skrill 2014

Page 12

Skrill Wallet Guide 6.7

2.2.2 Skrill customer registration


When the customer submits the HTML form from their web browser they are shown a Skrill page
that displays the payment details submitted to Skrill and enables them to register.
There are two scenarios:

Customer is registered with Skrill


Customer is not registered with Skrill

2.2.2.1 Customer is registered with Skrill


In this case, they are asked to enter their login credentials:

If the pay_from_email parameter is supplied and the email address is registered at Skrill,
the email address is pre-filled in the login form and the customer enters their password and
confirms (see Figure 2 below).
If no pay_from_email parameter is supplied, the customer is shown a registration form
with a link for registered Skrill customer to access the login pageError! Reference source not
ound.. Alternatively, the customer is shown the form in Figure 7.

Figure 3: Login page for registered user

The customer selects the Login button and is redirected to the next step.
If the balance in their Skrill account is sufficient to make the payment, the following page is
displayed:

Skrill 2014

Page 13

Skrill Wallet Guide 6.7

Figure 4: Customer click Pay

The customer reviews their payment details and click Pay. Alternatively, they can select the link
Choose another payment option to open a screen with other available payment methods.
If they do not have sufficient funds in their Skrill account, the following page is displayed:

Skrill 2014

Page 14

Skrill Wallet Guide 6.7

Figure 5: Customer selects a payment method and clicks Pay

The customer selects a payment method and clicks Pay. Alternatively, the customer can add a new
payment method by selecting the link Pay with new payment option at the bottom of the page. The
following screen is displayed:

Skrill 2014

Page 15

Skrill Wallet Guide 6.7

Figure 6: Customer selects a new payment method

The customer selects the new payment method and clicks Continue.

2.2.2.2 Customer is not registered with Skrill


If no email address is submitted or the mail address is not registered with Skrill, then the customer is
presented with a registration form (see Figure 7 below). The form has two steps and is used to
quickly register a customer for a Skrill Digital Wallet account.
To speed up the registration process, you can provide the following additional data that will be used
to pre-fill the registration form: address, firstname, lastname, postal_code, city, country
(see Table 2 above). If the pay_from_email parameter is supplied, it will be used as the primary
email address for the new Skrill account.
Step 1 Payment type selection and entry of personal details:

Skrill 2014

Page 16

Skrill Wallet Guide 6.7

Figure 7: Customer enters payment and personal details

If you have registered for Gateway Fast registration, you can provide a simpler form.
Step 2 Password submission and acceptance of Terms and Conditions and Privacy Policy:

Skrill 2014

Page 17

Skrill Wallet Guide 6.7

Figure 8: Customer creates a password

2.2.2.3 Skrill payment methods


Table 3 describes the payment methods available to customers through Skrill:
Table 3: Skrill Payment methods

Payment
method
Pay from ewallet
balance

Skrill Direct

Skrill 2014

How it works
If the customer has sufficient funds in their Skrill Digital
Wallet, the amount is directly deducted from the available
balance. This is the fastest way to pay and the customer is
sent directly to the confirmation page (Step 3).
Skrill Direct allows customers to make payments directly
to your account without having to pre-load their e-wallet.
Current payment options include credit/debit cards
(international and local), direct debit and instant bank
transfers such as Online Bank Transfer, GiroPay,
Sofortberweisung, Przelewy24 (Poland), POLi (Australia)
and iDEAL (The Netherlands). For a list of all available Skrill
Direct payment methods, see section 4.6 on page 44.

Special agreement
required

Duration

No enabled for all


merchants

Instant

No enabled for all


merchants

Instant
(subject
to signup)

Page 18

Skrill Wallet Guide 6.7

2.2.3 Skrill Confirmation page (step 3)


The customer selects the Pay button on the Skrill Payment confirmation page to proceed with the
payment. At any time before the final Pay 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 on
page 9).

Figure 9: Payment Confirmation

Note: if the customer has enough funds in their account to cover the transaction, the Payment
confirmation page is skipped and the payment is processed after they log in.

Skrill 2014

Page 19

Skrill Wallet Guide 6.7

2.2.4 Skrill transaction status page (final step)


When the payment process is completed the Transaction successful message appears (see Figure
10) and the customer is redirected to your website.

Figure 10: Transaction Status page

Skrill 2014

Page 20

Skrill Wallet Guide 6.7

2.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 (see Table 2 on page 9). This is done with a standard HTTP POST request. 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.
Table 4 shows the parameters sent to your status_url page:
Table 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


making the payment.

Yes

payer@skrill.com

merchant_id

Unique ID of your Skrill account.


ONLY needed for the calculation of
the MD5 signature (see section 4.3
on page 41).

Yes

100005

customer_id

Unique ID of the customers Skrill


account.

No*

200005

No**

A205220

Yes

25.46 / 25.4 / 25

Yes

GBP

Yes

No***

06

transaction_id

mb_amount

mb_currency

status

failed_reason_code
md5sig
sha2sig
amount
currency

merchant_fields

Skrill 2014

A unique reference or identification


number provided by you in your
HTML form.
The total amount of the payment in
the currency of your Skrill Digital
Wallet account.
Currency of mb_amount. Will always
be the same as the currency of your
Skrill Digital Wallet account.
Status of the transaction: -2 failed / 2
processed / 0 pending / -1 cancelled
(see detailed explanation below)
If the transaction is with status -2
(failed), this field will contain a code
detailing the reason for the failure.
MD5 signature (see section 4.3 on
page 41).
SHA2 signature (see section 4.4 on
page 42).
Amount of the payment as posted in
your HTML form.
Currency of the payment as posted in
your HTML form.
If you submitted a list of values in the
merchant_fields parameter, they will
be passed back with the status
report.

Yes
No****

327638C253A4637199CEB
A6642371F20
dbb7101322257a311f08d1
c527053058fc7e464e30bcf
b4613f09053c22dd1f8

Yes

39.60 / 39.6 / 39

Yes

EUR

No

field1=value1

Page 21

Skrill Wallet Guide 6.7

Field Name

Description

Required

Example value

No*****

WLT

The payment method the customer


used. You can choose to receive
either:

payment_type

Consolidated values (only the


method type, e.g. MBD Skrill
Direct or WLT - e-wallet )

Detailed values (the specific


instrument used, e.g. VSA Visa card, GIR GiroPay)

Notes

* The customer_id parameter is enabled upon activation. If you dont receive it in the response
status, please contact merchant services.
**If no transaction_id is submitted, the mb_transaction_id value will be posted in the
report.
*** 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 section 4.7 on page 45.
**** To enable the sha2sig parameter, contact merchant services. For more information,
see section 4.4 on page 42.
***** The payment_type parameter is enabled upon activation. If you dont receive it in the
response status, please contact merchant services.

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 Skrill Payment Gateway, 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
section 4.3 on page 41). 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.
5. Once you have validated the transaction data you can process the transaction, for example,
by dispatching the goods ordered.
Note: if you want to restrict the receipt of status reports based on the posting IP address, you should
use the full Skrill IP range. Skrill may from time to time change the IP address from which we
post the status report.

Skrill 2014

Page 22

Skrill Wallet Guide 6.7

Using the Merchant Query Interface


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

2.2.6 Detailed status description


Table 5: Transaction status

#
2

Status
Processed

Pending

-1

Cancelled

-2

Failed

-3

Chargeback

Skrill 2014

Description
Sent when the transaction is processed and the funds have been received in
your Skrill account.
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.
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.
Sent when the customer tries to pay via Credit Card or Direct Debit but our
provider declines the transaction. If you do not accept Credit Card or Direct
Debit payments via Skrill, then you will never receive the failed status.
Whenever a chargeback is received by Skrill, a -3 status is posted in the
status_url and Skrill automatically reverses the transaction.

Page 23

Skrill Wallet Guide 6.7

3 GATEWAY OPTIONS
3.1 Gateway Fast Registration (GWFR)
This option reduces the number of fields that customers must complete to make their first payment
through Skrill, making it easier and faster to pay. If this option is not enabled, please contact
merchantservices@skrill.com.
When using this service, you must include the following parameters in your HTML form:
Table 6: Parameters to include with GWFR

Field Name

Description

Max length

Example value

address

Customers address (e.g. street)

100

Payerstreet

postal_code

Customers postal code/ZIP Code

EC45MQ

city

Customers city

50

London

country

Customers country in the 3-digit ISO Code


(see Annex II for a list of allowed codes).

GBR

If one or more of the above parameters are either not submitted or the value is not valid, Skrill
shows these fields to the customer and they must amend the missing/invalid values to complete
registration.
If all necessary parameters have been provided with valid values, Skrill shows only the following
fields on the Skrill registration page (see section 2.2.2 on page 13):

First name pre-filled if the firstname value is submitted


Last name pre-filled if the lastname value is submitted
Date of birth pre-filled if the date_of_birth is submitted
Email pre-filled if the pay_from_email value if submitted
Password and password confirmation

The customer completes all of the above fields and the payment process continues as normal.

Skrill 2014

Page 24

Skrill Wallet Guide 6.7

Figure 11: Example of Gateway Fast Registration

Skrill 2014

Page 25

Skrill Wallet Guide 6.7

3.2 Split Gateway


This option allows you to select the payment methods you want to display to the customer when
using the Skrill Payment Gateway. For example, you can display Pay via Direct Debit (provided by
Skrill) as a payment option on your checkout page instead of just Pay via Skrill. These methods will
appear in the Payment method drop-down list and their logos will be displayed at the top of the
page. For a list of currently supported alternative payment methods, see section 4.6 on page 44 .

Available payment
methods, based on
selected Country.

Figure 12: Payment method selection box

To select individual payment methods to be presented to the customer on the gateway, the
following parameter must be included in the entry form:
Table 7: Parameters to include with Split Gateway

Parameter

Description

Max
length

Example
value

payment_methods

A comma-separated list of payment method codes,


indicating the payment methods to be presented to
the customer. For a list of codes, see section 4.6 on
page 44.

100

DID

If the payment_methods parameter is included in the redirection form, the customer is presented
with the selected payment methods and their corresponding logos.
If there is a discrepancy in the availability of the payment method, for example if a country-specific
option like iDEAL was chosen, but the customer is not a Dutch resident, then the full list of available
payment methods will be presented to the customer.

Important note
Before implementing this option, you should:

Confirm which payment methods have been authorised by Skrill


Request an updated list of payment methods and their respective values

There are two versions of the Split Gateway: Fixed or Flexible


If this feature is not activated, please send a request to merchantservices@skrill.com.

Skrill 2014

Page 26

Skrill Wallet Guide 6.7

3.2.1 Fixed Split Gateway


When the Fixed Split Gateway is activated and you submit a payment method using the
payment_methods parameter, only this payment method is shown to the customer upon
registration or login.
If the payment method is not supported by the registration country of the customer, then a message
will appear indicating this payment type is not supported and showing all other available payment
methods for their country. Registered customers who have sufficient balance in their Skrill account
can still pay from their account.

3.2.2 Flexible Split Gateway


When the Flexible Split Gateway type is activated and you have submitted a payment method using
the payment_methods parameter, this method is pre-selected for the customer upon registration or
login.
All other payment methods enabled for your account and for the customers registration country are
available. If the payment method is not supported by the registration country of the customer, then
a message will appear indicating this payment type is not supported and showing all other available
payment methods for their country.

Figure 13: Flexible Split Gateway with GWFR

Skrill 2014

Page 27

Skrill Wallet Guide 6.7

3.2.3 Displaying credit/debit card brands


By default all card brands are displayed on the Skrill payment page. When including the
payment_methods parameter with Split Gateway, the following applies:

If no credit/debit card method or all methods are specified, then the default list of
credit/debit card brands will be displayed.
You can override the default behaviour, by specifying the card brands you want to display on
the payment page. See Figure 14 below.
<input type="hidden"
name="payment_methods" value="VSA,">

Figure 14: Visa-only brand

When the customer selects the Credit/Debit card payment option in the Payment method field, and
enters their card number in the Card number field, the card type is automatically detected and the
card logo is displayed (see Figure 15 below).

Figure 15: Brand displayed under Card number field

Skrill 2014

Page 28

Skrill Wallet Guide 6.7

3.3 Recurring Billing


Skrill offers a tool for recurring payments, which is available as a stand-alone product or via the Skrill
Payment Gateway. In addition to the standard HTML form parameters (see Table 2 on page 9), you
can supply the following parameters to set up a recurring payment:
Table 8: Recurring billing parameters

Field Name
rec_amount
rec_start_date
rec_end_date
rec_period

rec_cycle

rec_grace_period

Description
Amount of the recurring payment
(to be taken at each recurring
period)
Start date of the period in
DD/MM/YYY format*
Final date of the period in
DD/MM/YYYY format
Period between payments
Time period measure you require
day/month/year. If this parameter
is not submitted, Skrill assumes that
the rec_cycle is days.
You can set a period of days during
which the customer can still process
the transaction if it originally failed.
The value submitted is always in
days.

Required
Yes/
No
No
No
Yes

Max
length
19

Example value
19.90

10
10
6

01/08/2013
31/08/2014
14

day

400

http://www.merchant.c
om/rec_payment_cancel
led.htm
http://www.merchant.c
om/rec_payment_cancel
led2.htm

No

No

rec_status_url

URL to which Skrill notifies you that


the recurring payment is cancelled.

No

rec_status_url2

Second URL to which Skrill notifies


you that the recurring payment is
cancelled.

No

400

Notes
*The rec_start_date parameter should not be set in the future for recurring credit card payments if
rec_amount = 0 (no amount is charged immediately)

Recurring billing setup options


You can set up a recurring billing payment using one of the following options:

Option 1 Take an initial payment, followed by recurring payments for a different amount:
Enter a specific amount (e.g., EUR 4.99) as the amount parameter in your HTML form and a
specific amount (e.g., EUR 19.90) as a rec_amount

Option 2 Do not take an initial payment. Only set up the recurring payments:
Leave the amount parameter empty and only enter the rec_amount value.

Skrill 2014

Page 29

Skrill Wallet Guide 6.7

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
Customers Skrill account balance

Example code
The code snippet below shows an example of the parameters included for a recurring payment:
<input type="hidden" name="rec_amount" value="19.90">
<input type="hidden" name="rec_start_date" value="01/08/2013">
<input type="hidden" name="rec_end_date" value="31/08/2014">
<input type="hidden" name="rec_period" value="14">
<input type="hidden" name="rec_cycle" value="day">
<input type="hidden" name="rec_grace_period" value="7">
<input type="hidden" name="rec_status_url"
value="http://www.merchant.com/rec_pay_cancel.htm">
<input type="hidden" name="rec_status_url2"
value="http://www.merchant.com/rec_pay_cancel2.htm">

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 9: Recurring billing status parameters

Field Name
merchant_id
transaction_id
status

Description
Unique ID of your Skrill account. ONLY needed
for the calculation of the MD5 signature (see
section 4.3 on page 41).
The reference or identification number you
provided.
Recurring payment status: 2 processed/ -2
failed

Required

Example value

Yes

100005

Yes

A205220

Yes

rec_payment_id

Recurring payment ID

Yes

200005

rec_payment_type

Type of payment: recurring or Skrill 1-Tap

Yes

recurring

md5sig

MD5 signature (see section 4.3 on page 41)

Yes

327638C253A46371
99CEBA6642371F20

merchant_fields

A comma-separated list of field names that


are passed back to your status page when the
payment is confirmed (see Table 2).

No

Field1, Field2

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 Interface Guide.

Skrill 2014

Page 30

Skrill Wallet Guide 6.7

3.4 Skrill 1-Tap payment


Skrill offers a single-click payment service which enables you to automatically debit transactions
from your customers Skrill account without the customer having to authorise each time. The setup
of the Skrill 1-Tap payment service must be made during the regular payment process. The customer
is prompted to choose a payment method when Skrill 1-Tap payment is enabled. To enable this
service, contact merchantservices@skrill.com.
The Skrill 1-Tap payment service is also available through Skrills Automated Payments Interface
(API). For more details, see the Automated Payments Interface Guide.
In addition to the standard parameters described in Table 2, you can supply the following
parameters to set up a Skrill 1-Tap payment via the Skrill Payment Gateway:
Table 10: Skrill 1-tap parameters

Field Name

Description

Required

Max
length

Example value

ondemand_max_amount

Maximum amount for future


payments that will be debited
from the customers account

Yes

11.50

Yes/
No

EUR

ondemand_max_currency

ondemand_note

ondemand_status_url

ondemand_status_url2

frn_trn_id

rec_payment_id

3-letter code of the currency


of the maximum amount
according to ISO 4217 (see
section 4.1 on page 38)
Text shown to the customer
on the confirmation page as
the reason for the Skrill 1-Tap
payment.
URL to which Skrill notifies you
that the Skrill 1-Tap payment
is cancelled.
Second URL to which Skrill
notifies you that the Skrill 1Tap payment is cancelled.
Your transaction ID, used for
the recurring payment. This is
your own unique reference for
this transaction
Recurring payment ID as sent
to your status_url and
rec_status_url pages upon
creating the Skrill 1-Tap
payment. This should be the
same as the original Skrill
transaction ID returned to
your systems with the original
transaction

Yes

1000
400

No
400
No

We will debit your


account so that you
can continue using
our services.
http://www.mercha
nt.com/od_payment
_cancelled.htm
http://www.mercha
nt.com/od_payment
_cancelled2.htm

Yes

100

A205220

Yes

100

200005

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 Table 2 on page 9).
A session identifier (SID) parameter is returned upon success.
The Skrill response includes a frn_trn_id and rec_payment_id. You should store the
rec_payment_id field so that you can reference the original 1-tap transaction.

Skrill 2014

Page 31

Skrill Wallet Guide 6.7

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

Using the Skrill 1-Tap Payment Interface


Once a Skrill 1-Tap payment has been set up, you must use the Skrill 1-Tap Payment Interface to
make individual requests to debit the customers Skrill account. For details, see the Automated
Payments Interface Guide. If you have provided a status_url value in your HTML form, Skrill will
post the transaction details of each payment to that URL.

Using the Merchant Query Interface


You can use Merchant Query Interface to execute, check the status or cancel a Skrill 1-Tap payment
authorisation. For details, see the Automated Payments Interface Guide.

Payment methods supported with Skrill 1-Tap payments


Payment methods for Skrill 1-Tap payments include:

Credit/debit card ( Visa and MasterCard)


Direct Debit
Customers Skrill account balance

Skrill 1-Tap button


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

This button is available in different sizes. For details, contact merchantservices@skrill.com.


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

Skrill 2014

Page 32

Skrill Wallet Guide 6.7

3.5 Secure return_url parameter


This option allows you to be certain that the customer has arrived at your return_url page by
completing the payment process and not 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 and not that the payment had been processed.
If this feature is not activated, please contact merchantservices@skrill.com.
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 page in your Skrill account).

Skrill will then add the following parameters to the return_url:


Table 11: 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:


merchant_id e.g. 123456
transaction_id e.g. A205220
uppercase MD5 value of the ASCII equivalent of your
secret word, e.g. F76538E261E8009140AF89E001341F17

730743ed4ef7ec631155f5e1
5d2f4fa0

Below are two examples of the secure return_url, using the values above:

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

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

Skrill 2014

Page 33

Skrill Wallet Guide 6.7

3.6 Merchant refunds


This option enables you to refund a payment back to the customers Skrill account, credit/debit card
or bank account (depending on the original payment method used). If this feature is not activated,
please contact merchantservices@skrill.com.
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 Skrills Automated Payments Interface (API). For details, see the
Automated Payments Interface Guide.

3.7 Chargeback notification


When Skrill receives a chargeback request from our provider, we will send a chargeback notification
to your status_url page. This is indicated by a status of -3. (For a description of transaction statuses,
see Table 5 on page 23.)

3.8 Adding a descriptor


When a customer pays through Skrill, Skrill submits a 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. If you want to change this descriptor, please contact
merchantservices@skrill.com. This functionality is only available for the following payment methods:

Visa
MasterCard
Online Bank Transfer (OBT)
Sofortueberweisung
Direct Debit

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

Skrill 2014

Page 34

Skrill Wallet Guide 6.7

3.9 Iframe target


This option enables you to display the Skrill Payment Gateway in an iframe on your website. 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.
Figure 16 shows an example of the gateway displayed in an iframe.

Figure 16: Display the Gateway in an Iframe

The size of the iframe should be 500 x 680 (including the Gateway header and footer).

Skrill 2014

Page 35

Skrill Wallet Guide 6.7


This option is implemented by submitting two additional parameters in your HTML form:
Table 12: Parameters submitted when using an iframe

Field Name

return_url_target

cancel_url_target

Description

Values

Specifies a target in which the


return_url value will be called
upon successful payment from
customer.
Specifies a target in which the
cancel_url value will be called
upon cancellation of payment
from customer.

1 = '_top'
2 = '_parent'
3 = '_self'
4= '_blank'
1 = '_top'
2 = '_parent'
3 = '_self'
4= '_blank'

Max
length

Default

Example

According to the W3C HTML specification submitting these values has the following result:
Table 13: iframe targets

Value

Equivalent

'_top'

'_parent'

'_self'

'_blank'

Skrill 2014

Description
Loads the linked document in the topmost frame - the new page fills the entire
window.
"_parent" is used in the situation where a frameset file is nested inside another
frameset file. A link in one of the inner frameset documents which uses "_parent"
will load the new document in the place of the inner frameset.
Loads the new document in the same window and frame as the current document.
Using "_self" has the same effect as not using iframe target at all.
Opens the new document in a new window.

Page 36

Skrill Wallet Guide 6.7

3.10 Code integration examples


You can use the examples below to generate your session ID from Skrill, which is the recommended
method for connecting to the Skrill Payment Gateway, as described in section 2.2.1.1 on page 12.

3.10.1 Generating the Session Identifier


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

CURL
curl -X POST https://www.moneybookers.com/app/payment.pl
-d "pay_to_email=merchant_email@mail.com"
-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://www.moneybookers.com/app/payment.pl')
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'=>'merchant_email@mail.com',
'amount'=>'10.99',
'currency'=>'EUR',
'language'=>'EN',
'prepare_only'=>'1'
})
res = http.request(req)
puts res.body

3.10.2 Redirecting the customer to Skrill


Once you have the session identifier (SID), you then have to redirect the customer to Skrill, including
the session identifier.
https://www.moneybookers.com/app/payment.pl?sid=<generated_sid>
Where <genereated_sid> is the SID returned by Skrill.
You can open the URL with the SID as a light box or in an iframe.

Skrill 2014

Page 37

Skrill Wallet Guide 6.7

4 APPENDICES
4.1 ISO 4217 currencies
Table 14: ISO 4217 Currencies accepted by Skrill

EUR
USD
GBP
HKD
SGD
JPY
CAD
AUD
CHF
DKK
SEK
NOK
ILS
MYR
NZD
TRY
AED
MAD
QAR
SAR

Euro
U.S. Dollar
British Pound
Hong Kong Dollar
Singapore Dollar
Japanese Yen
Canadian Dollar
Australian Dollar
Swiss Franc
Danish Krone
Swedish Krona
Norwegian Krone
Israeli Shekel
Malaysian Ringgit
New Zealand Dollar
New Turkish Lira
Utd. Arab Emir. Dirham
Moroccan Dirham
Qatari Rial
Saudi Riyal

Skrill 2014

TWD
THB
CZK
HUF
SKK
EEK
BGN
PLN
ISK
INR
KRW
ZAR
RON
HRK
LTL
JOD
OMR
RSD
TND

Taiwan Dollar
Thailand Baht
Czech Koruna
Hungarian Forint
Slovakian Koruna
Estonian Kroon
Bulgarian Leva
Polish Zloty
Iceland Krona
Indian Rupee
South-Korean Won
South-African Rand
Romanian Leu New
Croatian Kuna
Lithuanian Litas
Jordanian Dinar
Omani Rial
Serbian dinar
Tunisian Dinar

Page 38

Skrill Wallet Guide 6.7

4.2 ISO country codes (3-digit)


Skrill does not accept customers from the following countries: Afghanistan, Cuba, Myanmar, Nigeria,
North Korea, Sudan, Syria, Somalia, and Yemen.
Aland Islands
Albania

ALA
ALB

CXR
CCK

Guernsey
Guinea

GGY
HTI

COD

Guinea-Bissau

HMD

ASM
AND
AGO

Christmas Island
Cocos (Keeling)
Islands
Congo, the
Democratic Republic
Cook Islands
Costa Rica
Colombia

Algeria

DZA

American Samoa
Andorra
Angola

COK
CRI
COL

VAT
GIN
GNB

Anguilla

AIA

Comoros

COM

Antarctica
Antigua and Barbuda
Argentina
Armenia
Aruba
Australia
Austria
Azerbaijan
Bahamas
Bahrain
Bangladesh
Barbados
Belarus
Belgium
Belize
Benin
Bermuda

ATA
ATG
ARG
ARM
ABW
AUS
AUT
AZE
BHS
BHR
BGD
BRB
BLR
BEL
BLZ
BEN
BMU

COG
CIV
HRV
CYP
CZE
DNK
DJI
DMA
DOM
ECU
EGY
SLV
GNQ
ERI
EST
ETH
FLK

Bhutan
Bolivia
Bosnia and
Herzegovina
Botswana
Bouvet Island
Brazil

BTN
BOL
BIH

Congo, Republic of
Cot'e d'Ivoire
Croatia
Cyprus
Czech Republic
Denmark
Djibouti
Dominica
Dominican Republic
Ecuador
Egypt
El Salvador
Equatorial Guinea
Eritrea
Estonia
Ethiopia
Falkland Islands
(Malvinas)
Faroe Islands
Fiji
Finland

Guyana
Haiti
Heard Island and
McDonald Islands
Holy See (Vatican City
State)
Honduras
Hong Kong
Hungary
Iceland
India
Indonesia
Iran, Islamic Republic of
Iraq
Ireland
Isle of Man
Israel
Italy
Jamaica
Japan
Jersey
Jordan
Kazakhstan

FRO
FJI
FIN

Kenya
Kiribati
Korea, Republic of

KEN
KIR
KOR

BWA
BVT
BRA

France
French Guiana
French Polynesia

FRA
GUF
PYF

KWT
KGZ
LAO

Brunei Darussalam

BRN

ATF

Bulgaria
Burkina Faso
Burundi
Cambodia
Cameroon
Canada
Cape Verde
Cayman Islands
Central African
Republic
Chad
Chile
China

BGR
BFA
BDI
KHM
CMR
CAN
CPV
CYM
CAF

French Southern
Territories
Gabon
Gambia
Georgia
Germany
Ghana
Gibraltar
Greece
Greenland
Grenada

Kuwait
Kyrgyzstan
Lao People's
Democratic Republic
Latvia

GAB
GMB
GEO
DEU
GHA
GIB
GRC
GRL
GRD

Lebanon
Lesotho
Liberia
Libyan Arab Jamahiriya
Liechtenstein
Lithuania
Luxembourg
Macao
Macedonia

LBN
LSO
LBR
LBY
LIE
LTU
LUX
MAC
MKD

TCD
CHL
CHN

Guadeloupe
Guam
Guatemala

GLP
GUM
GTM

Madagascar
Malawi
Malaysia

MDG
MWI
MYS

Skrill 2014

GUY
HND
HKG
HUN
ISL
IND
IDN
IRN
IRQ
IRL
IMN
ISR
ITA
JAM
JPN
JEY
JOR
KAZ

LVA

Page 39

Skrill Wallet Guide 6.7

Maldives
Mali
Malta

MDV
MLI
MLT

Peru
Philippines
Pitcairn

PER
PHL
PCN

Marshall Islands
Martinique

MHL
MTQ

Poland
Portugal

POL
PRT

Mauritania
Mauritius
Mayotte
Mexico
Micronesia, Federated
States of
Moldova
Monaco
Mongolia
Montenegro
Montserrat

MRT
MUS
MYT
MEX
FSM

Puerto Rico
Qatar
Runion
Romania
Russian Federation

PRI
QAT
REU
ROU
RUS

MDA
MCO
MNG
MNE
MSR

RWA
SHN
KNA
LCA
MAF

Morocco

MAR

Mozambique

MOZ

Namibia
Nepal
Netherlands

NAM
NPL
NLD

Netherlands Antilles
New Caledonia

ANT
NCL

Rwanda
Saint Helena
Saint Kitts and Nevis
Saint Lucia
Saint Martin (French
part)
Saint Pierre and
Miquelon
Saint Vincent and the
Grenadines
Samoa
San Marino
Sao Tome and
Principe
Saudi Arabia
Senegal

New Zealand
Nicaragua
Niger
Niue
Norfolk Island
Northern Mariana
Islands
Norway
Oman
Pakistan

NZL
NIC
NER
NIU
NFK
MNP

Serbia
Seychelles
Sierra Leone
Singapore
Slovakia
Slovenia

NOR
OMN
PAK

Palau
Palestinian Territory,
Occupied
Panama
Papua New Guinea

PLW
PSE

Paraguay

PRY

Skrill 2014

PAN
PNG

Sweden
Switzerland
Taiwan, Province of
China
Tajikistan
Tanzania, United
Republic of
Thailand
Timor-Leste
Togo
Tokelau
Tonga

SWE
CHE
TWN

TTO
TUN
TUR
TKM
TCA

SPM

Trinidad and Tobago


Tunisia
Turkey
Turkmenistan
Turks and Caicos
Islands
Tuvalu

VCT

Uganda

UGA

WSM
SMR
STP

Ukraine
United Arab Emirates
United Kingdom

UKR
ARE
GBR

SAU
SEN

USA
UMI

SRB
SYC
SLE
SGP
SVK
SVN

United States
United States Minor
Outlying Islands
Uruguay
Uzbekistan
Vanuatu
Venezuela
Viet Nam
Virgin Islands, British

Solomon Islands
South Africa
South Georgia and
the South Sandwich
Islands
Spain
Sri Lanka

SLB
ZAF
SGS

Virgin Islands, U.S.


Wallis and Futuna
Western Sahara

VIR
WLF
ESH

ESP
LKA

Zambia
Zimbabwe

ZMB
ZWE

Suriname
Svalbard and
JanMayen
Swaziland

SUR
SJM

TJK
TZA
THA
TLS
TGO
TKL
TON

TUV

URY
UZB
VUT
VEN
VNM
VGB

SWZ

Page 40

Skrill Wallet Guide 6.7

4.3 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 Skrills 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 Merchants 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 in the same way as for
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 (e.g. @, %, $, etc.)

Note: if the Settings > Developer Settings section is not displayed in your account, contact
merchantservices@skrill.com.

Skrill 2014

Page 41

Skrill Wallet Guide 6.7

4.4 SHA2 signature


To improve the security of the status reports, Skrill post 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.
This new parameter is not available by default. To enable this option, send a request to
merchantservices@skrill.com.

4.5 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 the Skrill
Payment Gateway.
You can use these forms, ensuring that the values are replaced with your own values.
Note: For experimental purposes you can use our test form at
https://www.moneybookers.com/app/test_payment.pl.
To request a test account and test data, contact merchantservices@skrill.com.

Simple HTML form


<form action="https://www.moneybookers.com/app/payment.pl" method="post"
target="_blank">
<input type="hidden" name="pay_to_email" value="contact@merchant.com">
<input type="hidden" name="status_url" value="contact@merchant.com">
<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="hidden" name="confirmation_note" value="Samplemerchant
wishes you pleasure reading your new book!">
<input type="submit" value="Pay!">
</form>

Skrill 2014

Page 42

Skrill Wallet Guide 6.7

Advanced HTML form


<form action="https://www.moneybookers.com/app/payment.pl" method="post"
target="_blank">
<input type="hidden" name="pay_to_email" value="merchant@skrill.com">
<input type="hidden" name="transaction_id" value="A10005">
<input type="hidden" name="return_url"
value="http://www.moneybookers.com/payment_made.html">
<input type="hidden" name="cancel_url" value="http://www.
moneybookers.com/payment_cancelled.html">
<input type="hidden" name="status_url" value="https://www.
moneybookers.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="payer@skrill.com">
<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="hidden" name="confirmation_note" value="Sample merchant
wishes you pleasure reading your new book!">
<input type="submit" value="Pay!">
</form>

Skrill 2014

Page 43

Skrill Wallet Guide 6.7

4.6 Payment method codes


The table below details the codes required for each payment method when using the Split Gateway.
Table 15: Payment method codes

Payment Method

Value

Supported Countries

Skrill Wallet
Credit/Debit Cards
All Card Types
Visa
MasterCard
Visa Delta/Debit
Visa Electron
Maestro
American Express
Diners
JCB
Paysafecard
Carte Bleue
Dankort
PostePay
CartaSi
Instant Banking Options

WLT

ALL

ACC
VSA
MSC
VSD
VSE
MAE
AMX
DIN
JCB
PSC
GCB
DNK
PSP
CSI

ALL
ALL
ALL
United Kingdom
ALL
United Kingdom, Spain & Austria
ALL
ALL
ALL
ALL
France
Denmark
Italy
Italy

Skrill Direct (Online Bank Transfer)

OBT

Giropay
Direct Debit / ELV

GIR
DID

Sofortueberweisung

SFT

eNETS
Nordea Solo
Nordea Solo
iDEAL
EPS (Netpay)
POLi
All Polish Banks
ING Bank lski
PKO BP (PKO Inteligo)
Multibank (Multitransfer)
Lukas Bank
Bank BPH
InvestBank
PeKaO S.A.
Citibank handlowy
Bank Zachodni WBK (Przelew24)
BG
Millenium
mBank (mTransfer)
Pac z Inteligo
Bank Ochrony rodowiska
Nordea
Fortis Bank
Deutsche Bank PBC S.A.
ePay.bg

ENT
EBT
SO2
IDL
NPY
PLI
PWY
PWY5
PWY6
PWY7
PWY14
PWY15
PWY17
PWY18
PWY19
PWY20
PWY21
PWY22
PWY25
PWY26
PWY28
PWY32
PWY33
PWY36
EPY

Skrill 2014

Germany, United Kingdom, France, Italy, Spain,


Hungary and Austria
Germany
Germany
Germany, Austria, Belgium, Netherlands, Switzerland
& United Kingdom
Singapore
Sweden
Finland
Netherlands
Austria
Australia
Poland
Poland
Poland
Poland
Poland
Poland
Poland
Poland
Poland
Poland
Poland
Poland
Poland
Poland
Poland
Poland
Poland
Poland
Bulgaria

Page 44

Skrill Wallet Guide 6.7

4.7 Failed reason codes


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

Code
01
02
03
04
05
06
07
08
09
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
47

Skrill 2014

Description
Referred
Invalid merchant number
Pick-up card
Authorisation declined
Other error
CVV is mandatory, but not set or invalid
Approved authorisation, honour with identification
Delayed processing
Invalid transaction
Invalid currency
Invalid amount / available limit exceeded / amount too high
Invalid credit card or bank account
Invalid card Issuer
Annulation by client
Duplicate transaction
Acquirer error
Reversal not processed, matching authorisation not found
File transfer not available/unsuccessful
Reference number error
Access denied
File transfer failed
Format error
Unknown acquirer
Card expired
Fraud suspicion
Security code expired
Requested function not available
Lost/stolen card
Stolen card, pick up
Duplicate authorisation
Limit exceeded
Invalid Security Code
Unknown or Invalid Card/Bank account
Illegal Transaction
Transaction Not Permitted
Card blocked in local blacklist
Restricted card/bank account
Security rules violation
The transaction amount of the referencing transaction is higher than the transaction amount
of the original transaction
Transaction frequency limit exceeded, override is possible
Incorrect usage count in the Authorisation System exceeded
Card blocked
Rejected by Credit Card Issuer
Card Issuing Bank or Network is not available
The card type is not processed by the authorisation centre / Authorisation System has
determined incorrect routing
Processing temporarily not possible

Page 45

Skrill Wallet Guide 6.7


Code
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
99

Skrill 2014

Description
Security Breach
Date / time not plausible, trace-no. not increasing
Error in PAC encryption detected
System error
MB denied - potential fraud
Mobile verification failed
Failed due to internal security restrictions
Communication or verification problem
3D verification failed
AVS check failed
Invalid bank code
Invalid account code
Card not authorised
No credit worthiness
Communication error
Transaction not allowed for cardholder
Invalid data in request
Blocked bank code
CVV2/CVC2 failure
General error

Page 46

Skrill Wallet Guide 6.7

5 GLOSSARY
This section provides a description of key terms used in this guide.
Term
Automated Payments
Interface (API)

Browser

Chargeback

Concatenation
Credit card

Customer ID
Customer services
team
Debit card

Dynamic descriptor

Gateway Fast
Registration

HTML POST

iframe

Integration
Skrill 2014

Explanation
The API is a collection of tools that enables merchants to execute
requests to the Skrill Payment Gateway. For example: to send money,
make 1-tap payments, make refunds, check the status of transactions
and download reports.
Application that enables a customer or merchant to access web pages.
Examples include: Internet Explorer, Google Chrome and Mozilla
Firefox.
The return of funds, previously authorised in a transaction, to a
customer, which is initiated by their bank. The merchant may incur an
administration cost for Skrill processing the dispute, in addition to any
amount eventually credited back to the customer.
Combining of multiple fields or parameters into a single text string or
parameter.
A type of payment card that allows customers to pay for goods and
services using funds that are loaned. The loan must be paid back
within a specified period. Interest is typically charged on the balance
after a grace period (typically 20-55 days).
Examples: Visa, MasterCard, Diners and Amex.
See also Debit card.
Unique identifier for the customer or merchants Skrill digital wallet
account.
Skrill team responsible for end-customer support queries. Also
referred to as the Skrill Help Team. See also Merchant Services team.
A type of payment card that provides customers with instant access to
funds in their bank account. Unlike credit cards, payments using a
debit card are immediately taken from the customers account,
instead of being paid back at a later date. So, the customer must have
sufficient funds in their account or an agreed overdraft limit to cover
the payment.
An option that allows merchants to have their trading or brand name
shown on the bank or credit card statement of the customer. The
description can be changed on a per transaction basis. This option is
only supported for Visa, MasterCard, Online Bank Transfer (OBT),
Sofortberweisung and Direct Debit.
Option that enables customers to make a payment and simultaneously
register for a Skrill digital wallet account. To support this option, the
merchant must submit the necessary customer details, which are used
to prepopulate the Skrill account registration fields. The customer is
then asked to confirm and enter a password.
Integration method where the merchant sends details to the Skrill
Payment Gateway using a standard HTML form that posts this
information in the HTML header.
HTML feature that enables the Skrill Payment Gateway pages to be
displayed within a frame on the merchants website. The customer is
not aware that they have been redirected to a third party website.
Process undertaken by merchants to ensure that their website or
Page 47

Skrill Wallet Guide 6.7


Term
ISO country codes

ISO currency codes


Merchant Services
team
My Account
Online Bank Transfer
Payment option or
method

Payment page
Real-time

Reason code

Transaction
Skrill 1-Tap

Skrill Digital Wallet

Skrill Payment
Gateway
Slim Gateway

Sofort /
sofortberweisung

Split Gateway

Transaction

Skrill 2014

Explanation
shopping cart can connect to and communicate with Skrill.
3-digit country code of the International Standards organisation (ISO)
that identifies the country. For example, GBR for United Kingdom. ISO
country codes also exist in a 2-digit format.
3-digit currency code of the International Standards Organisation (ISO)
that identifies the currency. For example, GBP for British Pound.
Skrill team responsible for providing technical and service support to
merchants.
Merchant and customer account administration portal that enables
viewing of transactions and transferring funds.
A payment method enabling customers to transfer funds from their
bank accounts to their Skrill account in real-time. See also Skrill Direct.
The payment method used by the customer, such as debit card, credit
card and bank transfer. Note that in the payments industry, the terms
payment method, payment option and payment type are often used
interchangeably.
Page used to collected payment method details from the customer
during an online transaction.
An event that occurs instantly or within a short period, such as
seconds or minutes. For a real-time transaction, the customer,
merchant or Skrill receive a response to the transaction request while
the customer is still online.
Every transaction has a reason code, which indicates the status of the
transaction. Skrill receives a variety of reason codes from the bank or
scheme authorising the transaction and consolidates these before
providing them to merchants.
Each financial interaction on the system is referred to as a transaction.
Skrill product that enables customers to pay online with a single tap or
click. It enables merchants to automatically debit transactions from
the customer's Skrill account without the customer having to
authorise each time.
Skrills Digital Wallet, enabling customers to link cards and pay directly
from their wallet account using cards or bank transfer. Up to 4
payment cards and 10 bank accounts can be linked to a wallet
account.
Skrills secure page for processing transactions. Merchants connect to
the Payment Gateway, which will then process transactions from their
website.
Option in which the Skrill account Login fields are hidden from the
customer, providing a simplified user experience. Note that on the
new Gateway payment page we hide the login fields by default.
sofortberweisung is a real-time bank transfer payment method of
Sofort AG. Customers can initiate a credit transfer during their online
purchase - the transfer order is instantly confirmed to the merchant,
allowing an instant delivery of goods and services.
Option that allows merchants to define which payment methods they
want to display to customers on the payment page. For example,
merchants can use display the Split Gateway codes VSA and MSC to
display Visa and MasterCard brands.
Each financial interaction with the Skrill Payment Gateway is referred
to as a transaction. Transactions are linked to payments.

Page 48

Skrill Wallet Guide 6.7


Term
Transaction ID
Transaction status

Skrill 2014

Explanation
Unique ID assigned to a transaction by the Skrill Payment Gateway.
Each transaction on the Skrill Payment Gateway is given a status. This
includes: processed, pending, temporary, scheduled, cancelled, failed,
chargeback and successful.

Page 49

Skrill Wallet Guide 6.7

6 INDEX
Advanced HTML form, 40
Alternative method of redirecting the
customer, 12
Chargeback notification, 32
Connect to the Payment Gateway, 6
Contact for queries, 5
Customer is not registered with Skrill, 16
Customer is registered with Skrill, 13
Dynamic Descriptor, 32
Example HTML forms, 39
Failed reason codes, 42
Fixed Split Gateway, 26
Flexible Split Gateway, 26
Gateway demonstration, 8
Gateway options, 24
Iframe target, 33
ISO 4217 currencies, 35
ISO country codes (3-digit), 36
MD5 signature, 38
Merchant Query Interface, 22
Merchant refunds, 32

Skrill 2014

Parameters to be posted to the Skrill


Gateway, 9
Payment method codes, 41
Payment process, 7
Steps, 8
Payment process steps
Redirect to the Skrill Gateway, 8
Status page, 20
Confirmation page, 19
Recurring Billing, 27
Recurring billing status, 28
Secure return_url parameter, 31
SHA2 signature, 39
Simple HTML form, 39
Skrill 1-Tap button, 30
Skrill 1-Tap payment, 29
Skrill payment methods, 18
Skrill Status report, 20
Split Gateway, 25
Status description, 23
Test account, 5
Validating the status report, 22

Page 50

You might also like