Skrill Quick Checkout Guide v7.10
Skrill Quick Checkout Guide v7.10
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
Registered office: Skrill Limited, 25 Canada Square, Canary Wharf, London, E14 5LQ, UK.
Version Control
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.
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
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.
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.
December 2018 7.9 Added new sections to the Skrill 1-Tap Payments chapter.
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
© Skrill 2019 V
Skrill Quick Checkout Integration Guide 7.10
© Skrill 2019 VI
Skrill Quick Checkout Integration Guide 7.10
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.
Convention Description
Reference Indicates a reference to another section in this guide. For example,
see Pre-populating payment fields on page 4-1.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
Max
Field name Description Required Example value
length
Merchant details
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)
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
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).
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.
Max
Field name Description Required Example value
length
state Customer’s state or region. No 50 Central London
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.
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_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.
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.
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.
AVAILABLE CARD
BRANDS
CUSTOMER
COMPLETES
MANDATORY FIELDS
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.
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.
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.
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.
# 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.
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
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:
country Country
IP_country IP country
Figure 2-4: Section of Account History CSV file with Sales Tax fields highlighted in red
ENTER PASSWORD
PROCEED TO LOGIN
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.
Alternatively, customer’s can or log in/sign-up for a Skrill Wallet account from the introductory
screen.
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:
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.
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.
Note: You will still need to enter your standard account password.
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.
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.
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">
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.
Alternatively, customers can choose to pay with their Skrill Balance. They can click the Skrill Balance
tab to display the following screen:
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.
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:
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
SELECT LANGUAGE
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.
CUSTOMER SELECTS TO
VIEW PAYMENT DETAILS
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.
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.
To use either option, the following parameter must be included in your payment request:
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.
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.
AliPay ALI
Przelewy24 PWY
Trustly GLU
Paysafecard PSC
Paysafecash PCH
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.
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.
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:
Max
Field Name Description Values Default Example
length
1 '_top' Opens the target URL in the full body of the window - the URL contents fills the
entire browser window.
3 '_self' Opens the target URL in the same frame as the payment form.
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.
Figure 4-11: Reduced header and footer Quick Checkout page, embedded on a merchant’s website
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:
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">
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)
Note: Code integration examples on page 5-3 describes how to generate a session identifier and
redirect the customer to Skrill.
The following are two examples of the secure return_url, using the values above.
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
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.
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.
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
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
Note: You must set up a separate merchant account for taking Skrill 1-Tap payments.
Note: If the Settings > Developer Settings section is not displayed in your account, contact Skrill
Merchant Services.
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.
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
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.
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.
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.
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
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.
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.
frn_trn_id Your transaction ID, used for the payment. Yes A205220
This is your own unique reference for this
transaction
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.
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>
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¤c
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>
Error Description
SESSION_EXPIRED The session has expired. Session IDs are only valid for 15 minutes.
Error Description
REQUEST_FAILED A generic response for the transaction failing for any other reason
Table 6-4: Errors when making Skrill 1-Tap payment requests (Continued)
Error Description
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.
Error Description
Error Description
Upon success, Skrill returns the details of the transaction as an XML response. This response contains
the following fields:
currency 3-letter currency code of the amount, according to ISO 4217 EUR
id Transaction ID 500123
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.
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>
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>
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
amount The amount of the request for a debit transaction Yes 10.50
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
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
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)
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.
Note: The arrows above represent tab characters. There are two spaces between the Status value
and the word Last.
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
Note: The above response still returns a 200 HTTP response status code
401 Unauthorised/ Cannot log in Authentication is required and has failed or has not yet been
provided.
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.
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.
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.
Figure 7-1: Enter the name and ID number and select a bank
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.
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.
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.
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.
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.
Figure 7-16: Redirect to the bank or payment network website for confirmation
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.
Note: This list may change. Contact Skrill before implementing this payment method for an up-to-
date list.
Bank Type
Santander Rio Direct bank transfer
Bank Type
Itau Direct bank transfer
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.
Bank Type
webpay Manual bank transfer
Servipag Cash
Bank Type
Unionpay Direct bank transfer
Bank Type
Bancolombia Manual bank transfer
Efecty Cash
Davivienda Cash
Carulla Cash
Surtimax Cash
Bank Type
OXXO Cash
Banamex Cash
Santander Cash
Bank Type
BBVA Cash
BCP Cash
InterBank Cash
ScotiaBank Cash
Bank Type
Red Pagos Cash
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.
have to handle underpaid/overpaid amounts. See the figure below for an overview of the payment
process.
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.
2. The customer enters their Notification email address, which is the address to which BitPay
sends notifications about payments and any refund instructions.
3. The customer clicks the PROCEED TO PAY WITH BITCOIN button and is redirected to the
BitPay website.
4. The customer is able to pay with their Bitcoin wallet (any type of Bitcoin wallet is allowed).
OPEN IN BITCOIN
WALLET ACCOUNT
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
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.
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.
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
3. The system identifies the Bitcoin transaction and displays the following dialogue box:
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.
9. APPENDIX
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
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].
Note: This new parameter is not available by default. To enable this option, send a request to
[email protected].
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
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.
or
Content-Type: application/json; charset="UTF8"
Example request:
{
"email" : "[email protected]",
"password" : "1bw8e40ebe9759b55948bbce8aaa460d",
"transactionId" : "166462653",
"outRequestNumber" : "9193457120563834",
"amount" : "32.89",
"merchantCustomsCode" : "hanguo",
"merchantCustomsName" : "jwyhanguo_card",
"customsPlace" : "HANGZHOU"
}
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.
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).
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.
Note: Both successful and failed responses return a HTTP 200 Status code.
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.
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
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
Example:
https://api.skrill.com/mqi/customs/alipay/1705513403?email=merchant@sun-
fish.com&password=1bw8e40ebe9759b55948bbce8aaa460d
Note: Both successful and failed responses return a HTTP 200 Status code.
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
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
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