Skip to main content

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.

Skrill payment flow

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

Skrill transaction flow

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

We do not support iframes.

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

Displaying Skrill and other payment options

When a customer is on the checkout page of your website, there are a number of ways in which you can present the Skrill payment options to them:

In order to achieve best conversion rates from the Skrill Quick Checkout we recommend displaying the logos of the specific payment methods you want to offer your customers through Skrill. This is the so called Fixed layout of the Quick Checkout which is to be used in conjunction to the Straight through redirect for optimal user experience (check section 4.3.1.2. Straight Through Redirect). Your customers will select the desired payment method and seamlessly land there directly without seeing the Skrill Quick Checkout. If the desired payment option does not support the Straight Through Redirect then the option will be preselected when the customer lands on the Quick Checkout.

The simplest integration option is to present a generic Pay by Skrill logo on your website, and then redirect the customer to the Skrill Quick Checkout page. They can pay using a suitable method or log in to their Skrill account to pay from their account balance. This integration option ensures that your customers always have access to the full range of Skrill payment methods available in their country or region. You can send a specific payment method which will be displayed as Recommended option. If not supplied Skrill will automatically detect the customer's country (using Geolocation or the country parameter passed by the merchant) and displays a localized version of the Quick Checkout page with the most popular option displayed as Recommended. The order of the payment methods 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.

Logo restrictions for non-EU merchants Note

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.

Redirecting customers to Quick Checkout

You can use a standard HTML form to collect and pass payment and customer details to Quick Checkout. See Example HTML. When the customer selects the Skrill option, your website should post the HTML form containing their transaction details to: https://pay.skrill.com.

The HTML form should contain the mandatory hidden input fields listed in the table below.

You should use a secure method of obtaining a session ID before redirecting customers to Skrill, as described in Secure redirection method.

Tips for improving the customer experience

  • Any parameters that you pass through in your HTML form, such as customer first name, last name, email etc., will be automatically populated (or populated and hidden) as appropriate, on the Quick Checkout payment pages making it easier for the customer to complete these forms. In the case where the customer needs to register for a Skrill account all the parameters passed will be populated on the registration form.
  • You can customize the appearance of the Quick Checkout page using the options described in Chapter 4: Customizing the Quick Checkout Page.

Secure redirection method

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

note

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

The redirection process is as follows:

  1. Your web server makes a standard POST request with the payment parameters, using the prepare_only=1 parameter (see the table below).
  2. The Skrill server prepares a session for the payment and returns a standard HTTP(S) response.
  3. Your web server takes the body of the response which contains a SESSION_ID value.
  4. Using this SESSION_ID value the customer can be redirected to: https://pay.skrill.com/?sid=<SESSION_ID>

The normal flow of events continues. This redirect must happen within 15 minutes of the original request or the session will expire.

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.

For code examples of how to implement this, see Redirecting the customer to Skrill.

Secure redirection restriction

The Quick Checkout Secure Restriction service allows merchants to create a whitelist of IP addresses (including ranges) specific to them, so that Gateway transactions are generated only for the IP addresses in the list. When the service is enabled and the list is populated, any request that doesn't have a “SID” in Skrill will be blocked. By default, the service is disabled, and the Gateway allows all payment requests, with no restrictions. Configure the service as follows:

  1. Note the IP addresses/address ranges to add to the whitelist.
  2. Log in to your merchant account.
  3. Go to Settings > Developer Settings
  4. Under Quick Checkout Secure Restriction, set Enable service, and then, in the field below, type the IP addresses separated by spaces, or an address range in CIDR notation.
  5. Click Save

Parameters to be posted to Quick Checkout

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

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.

Skrill Quick Checkout parameters

Merchant details:

Field nameDescriptionRequiredMax lengthExample value
pay_to_emailEmail address of your Skrill merchant account.Yes50info@example.com
recipient_descriptionA description to be shown on the Skrill payment page in the logo area if there is no logo_url parameter. If no value is submitted and there is no logo, the pay_to_email value is shown as the recipient of the payment. (Max 30 characters)No30Your Company Name
transaction_idYour unique reference or identification number for the transaction. (Must be unique for each payment)No100A205220
return_urlURL to which the customer is returned once the payment is made. If this field is not filled, the Skrill Quick Checkout page closes automatically at the end of the transaction and the customer is returned to the page on your website from where they were redirected to Skrill. A secure return URL option is available. (See Secure Return URL parameter)No240https://www.example.com/payment.html
return_url_textThe text on the button when the customer finishes their payment.No35Return to main website
return_url_targetSpecifies 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
No13
cancel_urlURL to which the customer is returned if the payment is cancelled or fails. If none, Cancel button is hidden.No240https://example.com/payment_cancelled.html
cancel_url_targetSpecifies a target in which the cancel_url value is displayed upon successful payment from the customer. Default value is 1.
1 = _top
2 = _parent
3 = _self
4= _blank
No11
pending_urlURL to which the customer is returned if the transaction is not confirmed.No240https://example.com/payment_pending.html
status_urlURL 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 transaction details are sent. 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.No400https://example.com/process_payment.cqi
mailto:info@example.com
status_url2Second URL or email to which transaction details are posted.No400https://example.com/process_payment2.cqi
mailto:info@example.com
language2-letter code of the language used for Skrill's pages. Can be any of the codes in Language support.No (See Note 1)2EN
psp_idIdentification of the shop originating the request.No16A205220
submerchant_idIdentification of the shop which is the originator of the request. This is most likely used by the payment service providers who act as a proxy for other payment methods as well.No120Payment service provider name
submerchant_nameThe merchant name listed on the website for which payment is made.No240Example LTD
submerchant_urlURL of the website for which the payment is made (for resellers).No240http://www.example.com
logo_urlThe URL of the logo which you would like to appear in the top right of the Skrill page. The logo must be 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 minimize the page loading time.
No240https://www.example.com/logo.jpg
prepare_onlyForces only the SID to be returned without the actual page. Useful when using the secure method to redirect the customer to Quick Checkout. For details, see Secure redirection method. Accepted values are 0 (default) and 1 (prepare only).No11
dynamic_descriptorWhen a customer pays through Skrill, Skrill submits a preconfigured descriptor with the transaction, containing your business trading name/ brand name. The descriptor is typically displayed on the bank or credit card statement of the customer. For SOFORT and Direct Debit payment methods, you can submit a dynamic_descriptor, which will override the default value stored by Skrill. See Adding a descriptor for more details.No-ACME Solutions Ltd.
sidOptional Session ID returned by prepare_only call. Should not include other params if used.No320eb5d0f6b94badfeae5b0364b26d0288
ridYou 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.No100123456
ext_ref_idYou 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.No100Affiliate Name
merchant_fieldsA comma-separated list of field names that are passed back to your web server when the payment is confirmed (maximum 5 fields).No240Field1, Field2
Field1An example merchant fieldNo240Value 1
Field2An example merchant fieldNo240Value 2
website_idA unique identifier representing the combination of your merchant account and the website from which you're redirecting the customer to the Skrill Quick Checkout. Include this identifier in each payment request initiated from your website.
If you have more than one website you'll have separate website IDs for each of the websites you're operating. You can obtain your website ID(s) from your Account Manager or Merchant Services.
Note: website_id is required only for MyBank payments.
Yes500000001

Customer details (used to speed up Registration or Payment):

Field nameDescriptionRequiredMax lengthExample value
pay_from_emailEmail address of the customer who is making the payment. If provided, this field is hidden on the payment form. If left empty, the customer has to enter their email address.No (See Note 2)100payer@skrill.com
firstnameCustomer's first name.No (See Note 2)20John
lastnameCustomer's last name.No (See Note 2)50Payer
date_of_birthDate of birth of the customer in ddmmyyyy format, numeric only. If provided, prefilled in the Payment form, saving time for SEPA payments and Skrill Wallet sign-up.No801121980
place_of_birthCustomer's place of birth (City).No50Berlin
addressCustomer's address (street).No100Payer street
address2Customer's address (town).No100Payer town
phone_numberCustomer's phone number, numeric only.No200207123456
postal_codeCustomer's postal/ZIP code, alphanumeric only (no punctuation/dashes).No9EC45MQ
cityCustomer's city or postal area.No50London
stateCustomer's state or region.No50Central London
countryCustomer's country in the 3-digit ISO Code (see ISO country codes).No3GBR
nationalityThe nationality of the customer.No50German
merchant_client_idUnique identifier of the Client with the Merchant (customer id on the merchant's end).No (See Note 3)50123123
merchant_client_kyc_levelVerification level of the client with the merchant. 0 – not verified, 1 – verified with documents.No (See Note 3)10
merchant_client_registration_dateDate of account registration of the Client with the Merchant in a date-time format with a time-zone in the ISO-8601 standard.No (See Note 3)2016-08-22T14:30:24+02:00

Payment details:

Field nameDescriptionRequiredMax lengthExample value
amountThe total amount payable. Note: Do not include the trailing zeroes if the amount is a natural number. For example: 23 (not 23.00).Yes1939.68
39.6
39
currency3-letter code of the currency of the amount according to ISO 4217 (see ISO 4217 currencies).Yes3EUR
ibanIBAN that will be passed to the provider. See Note 4No28DE1234567891011121314
account_numAccount number that will be passed to the provider. See Note 4No812345678
bank_codeSort Code that will be passed to the provider. See Note 4No6123456
bank_account_access_consentConsent to access the bank account details. See Note 4No11
instrument_idIt will be sent after a successful transaction in the status response. It can be used with providers that support returning customer flows to make subsequent deposits faster. See Note 5No240123456
amount2_descriptionYou can include a calculation for the 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.No240Product price:
amount2This amount in the currency defined in the field currency will be shown next to amount2_description.No1929.90
amount3_descriptionSee aboveNo240Handing fees & charges:
amount3See aboveNo193.10
amount4_descriptionSee aboveNo240VAT (20%):
amount4See aboveNo196.60
detail1_descriptionUp to 5 additional product details in More information section.No (See Note 1)240Product ID:
detail1_textThe detail1_text is shown next to the detail1_description in the More Information section in the header of 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.
No (See Note 1)2404509334
detail2_descriptionSee above, not shown in account history.No240Description:
detail2_textSee above, not shown in account history.No240Romeo and Juliet (W. Shakespeare)
detail3_descriptionSee above, not shown in account history.No240Special Conditions:
detail3_textSee above, not shown in account history.No2405-6 days for delivery
detail4_descriptionSee above, not shown in account history.No240
detail4_textSee above, not shown in account history.No240
detail5_descriptionSee above, not shown in account history.No240
detail5_textSee above, not shown in account history.No240
bankBank ID obtained from the Bank API (see Bank API).NoINGBNL2A
note
  1. language, detail1_text and detail1_description is 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 isto be passed for a straight through redirect, the following parameters are mandatory: firstname, lastname, pay_from_email.
  3. Merchant Client fields used for additional risk screening.
  4. The passed details will be used for Rapid Transfer processing only.
  5. Available for specific payment options only.

Language Encoding for Text Parameters

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

Test Cards and Test Merchant

You may wish to test the Quick Checkout. You can use our test page at https://pay.skrill.com/app/demo/ to access the payment form parameters. Set the pay_to_email parameter under

Merchant Details to a test merchant account for example: demoqco@sun-fish.com. Set any other parameters as required and click Submit to load Quick Checkout.

Merchant accountMQI/API password and secret wo rdType
demoqco@sun-fish.comMQI: skrill123, secret word: skrillFixed Payment Options (Fixed Split Gateway)
demoqcoflexible@sun-fish.comMQI: skrill123, secret word: skrillFlexible Payment Options (Flexible Split Gateway)
demoqcofixedhh@sun-fish.comMQI: skrill123, secret word: skrillFixed Payment Options (Fixed Split Gateway) with Reduced header option enabled.
warning

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

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

BrandCard number
Mastercard5438 3112 3456 7890
Visa4000 0012 3456 7890

Bank API

For some payment methods in order to utilize the straight through redirect you would be required to supply the bank parameter. Please check the table below.

By merchant ID:

curl --location --globoff 'https://pay.skrill.com/banks?paymentOption={paymentOption}&merchantId={merchantId}&countryId={countryId}&amount={amount}&currency={currency}'

By merchant processing e-mail:

curl --location --globoff 'https://pay.skrill.com/banks?paymentOption={paymentOption}&merchantEmail={merchantEmail}&countryId={countryId}&amount={amount}&currency={currency}'

Response:

200 OK

[
{
"id": "...",
"name": "..."
}
, ...
]

Bank API parameters:

ParameterDescriptionRequiredExample value
paymentOptionPayment optionYesMBK
merchantIdMerchant IDNo1001
merchantEmailMerchant processing e-mailNoskrill@merchant.com
currencyPayment amount currencyYesEUR
countryIdSkrill country IDYesITA
amountPayment amountYes100
note

You should provide either merchantId or merchantEmail.

Bank API error codes:

Error codeError messageDescription
5068Field error(s)Missing required field
Invalid countryId: {countryId}Provided Skrill country ID is invalid
Invalid merchantProvided merchant ID or merchant processing e-mail does not exist
5003Invalid amountProvided amount is not valid
Unknown currency: {currency}Provided currency is not valid
Payment method not available: {paymentOption}Payment method is not supported for this payment

Skrill Transaction Status

Skrill Transaction Status Page

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

Payment success

Parameters to prepopulate the Success and Fail Screens:

Field nameDescriptionRequiredMax lengthExample value
dynamic_descriptorWhen a customer pays through Skrill, Skrill submits a preconfigured descriptor with the transaction, containing your business trading name/ brand name. The descriptor is typically displayed on the bank or credit card statement of the customer. For SOFORT and Direct Debit payment methods, you can submit a dynamic_descriptor, which will override the default value stored by Skrill. See Adding a descriptor for more details.No-ACME Solutions Ltd.
return_urlURL to which the customer is returned once the payment is made. If this field is not filled, the Skrill Quick Checkout page closes automatically at the end of the transaction and the customer is returned to the page on your website from where they were redirected to Skrill. A secure return URL option is available. (See Secure Return URL parameter)No240https://www.example.com/payment.html
return_url_textThe text on the button when the customer finishes their payment.No35Return to main website
return_url_targetSpecifies 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
No13
cancel_urlURL to which the customer is returned if the payment is cancelled or fails. If none, Cancel button is hidden.No240https://example.com/payment_cancelled.html
cancel_url_targetSpecifies a target in which the cancel_url value is displayed upon successful payment from the customer. Default value is 1.
1 = _top
2 = _parent
3 = _self
4= _blank
No11
pending_urlURL to which the customer is returned if the transaction is not confirmed.No240https://example.com/payment_pending.html
status_urlURL 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 transaction details are sent. 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.No400https://example.com/process_payment.cqi
mailto:info@example.com
status_url2Second URL or email to which transaction details are posted.No400https://example.com/process_payment2.cqi
mailto:info\@example.com

Skrill Status Response

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

Field nameDescriptionRequiredExample value
pay_to_emailYour email address.Yesinfo@merchant.com
pay_from_emailEmail address of the customer who is making the payment.
Note: If a Skrill wallet account exists with this email, and the Skrill Wallet is one of the available payment method tabs, it will be selected as the default payment method.
Yespayer123@skrill.com
merchant_idUnique ID of your Skrill account. ONLY needed for the calculation of the MD5 signature (see MD5 signature).Yes100005
customer_idIf the customer pays using a Skrill Wallet, this is the unique ID of their Skrill account.
If the customer pays with any other payment method, this is a unique ID for this payment generated by Skrill.
No [^a]200005
transaction_idA unique reference or identification number provided by you in your HTML form.No [^b]A205220
mb_transaction_idSkrill's internal unique reference ID for this transaction.Yes170032056
mb_amountThe total amount of the payment in the currency of your merchant Skrill digital wallet account.Yes25.46
25.4
25
mb_currencyCurrency of mb_amount. Will always be the same as the currency of your merchant Skrill digital wallet account.YesGBP
statusStatus of the transaction:
-2 failed / 2 processed / 0 pending / -1 cancelled (see detailed explanation below).
Yes2
failed_reason_codeIf the transaction has a status value -2 (failed), this field will contain a code detailing the reason for the failure.
Note: you will need to ask Skrill to enable this feature to receive the code.
No [^c]06
md5sigMD5 signature.Yes327638C253A4637199CEBA6642371F20
sha2sigSHA2 signature.No [^d]dbb7101322257a311f08d1c527053058fc7e464e30bcfb4613f09053c22dd1f8
amountAmount of the payment as posted in your HTML form.Yes39.60
39.6
39
currencyCurrency of the payment as posted in your HTML form.YesEUR
payment_typeThe payment method the customer used (see Payment method codes). Contact merchant services to enable this option.

You can choose to receive either:
• Consolidated values — WLT for Skrill account balance payments and MDB for any other payment type (e.g., card, alternative method).
• Detailed values — specific instrument used (e.g., VSA = Visa).
Note: If a customer logs into Skrill Wallet but pays by card, MDB is returned.
No [^e]WLT
merchant_fieldsIf you submitted a list of values in the merchant_fields parameter, they will be passed back with the status report.Nofield1=value1
instrument_idThe instrument_id will be sent after a successful transaction in the status response. It can be used with providers that support returning customer flows to make subsequent deposits faster. See Skrill Quick Checkout parameters, Payment Details.No123456
confirmed_by_providerIndicates if the returned data has been updated by the provider.
In cases where we have managed to obtain the instrument holder names from the provider, this parameter is set to True.
If the data is not available, the parameter is set to False.
No [^f]True
info

a. The customer_id parameter is enabled upon activation. If you don't receive it in the response status, 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. d. To enable the sha2sig parameter, contact merchant services. For more information, see SHA2 signature. e. The payment_type parameter is enabled upon activation. If you don't receive it in the response status, please contact Skrill Merchant Services. f. Please provide a list of payment options where we will be returning this parameter.

Language encoding for text parameters

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

Validating the status response

We recommend that you validate the transaction details in the status response. This can be done as follows:

  1. Create a pending transaction or order for a fixed amount on your website.
  2. Redirect the customer to the Quick Checkout page, where they complete the transaction.
  3. Skrill will post the transaction confirmation to your status_url page. This will include the mb_amount (amount) parameter.
  4. Your website should validate the parameters received by calculating the md5 signature (see MD5 signature). 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. For extra security you can also do a call to our Merchant Query Interface to fetch the transactions status. In this way you have double confirmation that the status is accurate.

Once you have validated the transaction data you can process the transaction, for example, by dispatching the goods ordered. You must implement measures to ensure that goods are not dispatched multiple times if you receive subsequent successful notifications for the same transaction ID (transaction_id or mb_transaction_id) to protect against replay attacks or other sources of duplicate status posts.

note

If you want to restrict the receipt of status response based on the posting IP address, you should use the full list of Skrill IP ranges as from time to time Skrill may change the IP address used. Any address within any of the following listed ranges could be used. The full list of Skrill IP ranges are:
91.208.28.0/24, 93.191.174.0/24, 193.105.47.0/24, 195.69.173.0/24
and
18.156.81.39, 3.64.161.98, 18.195.181.168, 52.16.193.112, 54.228.179.122, 34.249.111.249
If you are implementing a new integration, please use the second list, as the first one will be soon deprecated.

Using the Merchant Query Interface

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

Detailed status description

StatusDescriptionDetails
2ProcessedSent when the transaction is processed and the funds have been received in your Skrill account.
0PendingSent when the customer 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.
-1CancelledPending transactions can either be cancelled manually by the sender in their Skrill Digital Wallet account history, or they will auto-cancel after 14 days if still pending.
-2FailedThis status is typically sent when the customer tries to pay via Credit Card or Direct Debit but the provider declines the transaction. It can also be sent if the transaction is declined by Skrill's internal fraud engine (e.g., failed_reason_code 54 – Failed due to internal security restrictions). For a description of all failed reason codes, see Failed reason codes.
-3ChargebackWhenever 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.

Sales tax/VAT option

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

ParameterDescription
payment_instrument_countryA three-letter ISO 3166-1 alpha-3 code showing the country of origin of the 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.
countryA 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 the 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_countryA 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:

status_url parameterCSV column name
payment_instrument_countryInstrument Country
countryCountry
IP_countryIP country

Section of Account History CSV file with Sales Tax fields highlighted in red:

Account history CSV

Securing your Skrill merchant account

It is important to secure your Skrill merchant in case your account password is compromised. We recommend the following steps to to enhance the security of your account:

  • Restricting access to your merchant account to a specific IP address or a list of IP addresses.
  • If you are not planning to use the manual send money feature to transfer funds to other Skrill accounts, you can contact Skrill Merchant Services to ask them to disable this feature. Automated money transfers using the Skrill Automated Payment Interface are disabled by default.