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.
- When the customer is ready to pay for goods or services on your website, they select a payment option on your website.
- You request a session identifier (SID) by passing customer and transaction details
- Skrill returns the generated SID.
- Redirect the customer to Quick Checkout and include the session identifier in the redirect URL. Skrill displays the Quick Checkout page.
We do not support iframes.
- The customer enters their payment information, plus any other details requested, and confirms the transaction.
- Skrill requests authorisation for the payment from the customer's bank, third party provider or card issuer.
- The bank/provider approves or rejects the transaction.
- Skrill displays the Quick Checkout confirmation page, containing the transaction result.
- 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:
Display logos of specific payment methods (Recommended)
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.
Display Pay by Skrill logo
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
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
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.
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:
- Your web server makes a standard POST request with the payment parameters, using the
prepare_only=1
parameter (see the table below). - The Skrill server prepares a session for the payment and returns a standard HTTP(S) response.
- Your web server takes the body of the response which contains a
SESSION_ID
value. - 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.
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:
- Note the IP addresses/address ranges to add to the whitelist.
- Log in to your merchant account.
- Go to Settings > Developer Settings
- 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.
- 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.
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 name | Description | Required | Max length | Example value |
---|---|---|---|---|
pay_to_email | Email address of your Skrill merchant account. | Yes | 50 | info@example.com |
recipient_description | A 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) | No | 30 | Your Company Name |
transaction_id | Your unique reference or identification number for the transaction. (Must be unique for each payment) | No | 100 | A205220 |
return_url | URL 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) | No | 240 | https://www.example.com/payment.html |
return_url _text | The text on the button when the customer finishes their payment. | No | 35 | Return to main website |
return_url_target | Specifies a target in which the return_url value is displayed upon successful payment from the customer. Default value is 1 .1 = _top 2 = _parent 3 = _sel f4= _blank | No | 1 | 3 |
cancel_url | URL to which the customer is returned if the payment is cancelled or fails. If none, Cancel button is hidden. | No | 240 | https://example.com/payment_cancelled.html |
cancel_url_target | Specifies 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 = _sel f4= _blank | No | 1 | 1 |
pending_url | URL to which the customer is returned if the transaction is not confirmed. | No | 240 | https://example.com/payment_pending.html |
status_url | URL to which the transaction details are posted after the payment process is complete. Alternatively, you may specify an email address where the results are sent. If the status_url is omitted, no 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. | No | 400 | https://example.com/process_payment.cqi mailto:info@example.com |
status_url2 | Second URL or email to which transaction details are posted. | No | 400 | https://example.com/process_payment2.cqi mailto:info@example.com |
language | 2-letter code of the language used for Skrill's pages. Can be any of the codes in Language support. | No (See Note 1) | 2 | EN |
psp_id | Identification of the shop originating the request. | No | 16 | A205220 |
submerchant_id | Identification 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. | No | 120 | Payment service provider name |
submerchant_name | The merchant name listed on the website for which payment is made. | No | 240 | Example LTD |
submerchant_url | URL of the website for which the payment is made (for resellers). | No | 240 | http://www.example.com |
logo_url | The 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. | No | 240 | https://www.example.com/logo.jpg |
prepare_only | Forces 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). | No | 1 | 1 |
dynamic_descriptor | When 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. |
sid | Optional Session ID returned by prepare_only call. Should not include other params if used. | No | 32 | 0eb5d0f6b94badfeae5b0364b26d0288 |
rid | You can pass a unique referral ID or email of an affiliate from which the customer is referred. The rid value must be included within the actual payment request. | No | 100 | 123456 |
ext_ref_id | You can pass additional identifier in this field in order to track your affiliates. You must inform your account manager about the exact value that will be submitted so that affiliates can be tracked. | No | 100 | Affiliate Name |
merchant_fields | A comma-separated list of field names that are passed back to your web server when the payment is confirmed (maximum 5 fields). | No | 240 | Field1, Field2 |
Field1 | An example merchant field | No | 240 | Value 1 |
Field2 | An example merchant field | No | 240 | Value 2 |
website_id | A 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. | Yes | 50 | 0000001 |
Customer details (used to speed up Registration or Payment):
Field name | Description | Required | Max length | Example value |
---|---|---|---|---|
pay_from_email | Email 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) | 100 | payer@skrill.com |
firstname | Customer's first name. | No (See Note 2) | 20 | John |
lastname | Customer's last name. | No (See Note 2) | 50 | Payer |
date_of_birth | Date 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. | No | 8 | 01121980 |
place_of_birth | Customer's place of birth (City). | No | 50 | Berlin |
address | Customer's address (street). | No | 100 | Payer street |
address2 | Customer's address (town). | No | 100 | Payer town |
phone_number | Customer's phone number, numeric only. | No | 20 | 0207123456 |
postal_code | Customer's postal/ZIP code, alphanumeric only (no punctuation/dashes). | No | 9 | EC45MQ |
city | Customer's city or postal area. | No | 50 | London |
state | Customer's state or region. | No | 50 | Central London |
country | Customer's country in the 3-digit ISO Code (see ISO country codes). | No | 3 | GBR |
nationality | The nationality of the customer. | No | 50 | German |
merchant_client_id | Unique identifier of the Client with the Merchant (customer id on the merchant's end). | No (See Note 3) | 50 | 123123 |
merchant_client_kyc_level | Verification level of the client with the merchant. 0 – not verified, 1 – verified with documents. | No (See Note 3) | 1 | 0 |
merchant_client_registration_date | Date 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 name | Description | Required | Max length | Example value |
---|---|---|---|---|
amount | The total amount payable. Note: Do not include the trailing zeroes if the amount is a natural number. For example: 23 (not 23.00 ). | Yes | 19 | 39.68 39.6 39 |
currency | 3-letter code of the currency of the amount according to ISO 4217 (see ISO 4217 currencies). | Yes | 3 | EUR |
iban | IBAN that will be passed to the provider. See Note 4 | No | 28 | DE1234567891011121314 |
account_num | Account number that will be passed to the provider. See Note 4 | No | 8 | 12345678 |
bank_code | Sort Code that will be passed to the provider. See Note 4 | No | 6 | 123456 |
bank_account_access_consent | Consent to access the bank account details. See Note 4 | No | 1 | 1 |
instrument_id | It 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 5 | No | 240 | 123456 |
amount2_description | You 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. | No | 240 | Product price: |
amount2 | This amount in the currency defined in the field currency will be shown next to amount2_description . | No | 19 | 29.90 |
amount3_description | See above | No | 240 | Handing fees & charges: |
amount3 | See above | No | 19 | 3.10 |
amount4_description | See above | No | 240 | VAT (20%): |
amount4 | See above | No | 19 | 6.60 |
detail1_description | Up to 5 additional product details in More information section. | No (See Note 1) | 240 | Product ID: |
detail1_text | The 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) | 240 | 4509334 |
detail2_description | See above, not shown in account history. | No | 240 | Description: |
detail2_text | See above, not shown in account history. | No | 240 | Romeo and Juliet (W. Shakespeare) |
detail3_description | See above, not shown in account history. | No | 240 | Special Conditions: |
detail3_text | See above, not shown in account history. | No | 240 | 5-6 days for delivery |
detail4_description | See above, not shown in account history. | No | 240 | |
detail4_text | See above, not shown in account history. | No | 240 | |
detail5_description | See above, not shown in account history. | No | 240 | |
detail5_text | See above, not shown in account history. | No | 240 | |
bank | Bank ID obtained from the Bank API (see Bank API). | No | — | INGBNL2A |
language
,detail1_text
anddetail1_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.- 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
. - Merchant Client fields used for additional risk screening.
- The passed details will be used for Rapid Transfer processing only.
- 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 account | MQI/API password and secret wo rd | Type |
---|---|---|
demoqco@sun-fish.com | MQI: skrill123 , secret word: skrill | Fixed Payment Options (Fixed Split Gateway) |
demoqcoflexible@sun-fish.com | MQI: skrill123 , secret word: skrill | Flexible Payment Options (Flexible Split Gateway) |
demoqcofixedhh@sun-fish.com | MQI: skrill123 , secret word: skrill | Fixed Payment Options (Fixed Split Gateway) with Reduced header option enabled. |
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.
Brand | Card number |
---|---|
Mastercard | 5438 3112 3456 7890 |
Visa | 4000 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}¤cy={currency}'
By merchant processing e-mail:
curl --location --globoff 'https://pay.skrill.com/banks?paymentOption={paymentOption}&merchantEmail={merchantEmail}&countryId={countryId}&amount={amount}¤cy={currency}'
Response:
200 OK
[
{
"id": "...",
"name": "..."
}
, ...
]
Bank API parameters:
Parameter | Description | Required | Example value |
---|---|---|---|
paymentOption | Payment option | Yes | MBK |
merchantId | Merchant ID | No | 1001 |
merchantEmail | Merchant processing e-mail | No | skrill@merchant.com |
currency | Payment amount currency | Yes | EUR |
countryId | Skrill country ID | Yes | ITA |
amount | Payment amount | Yes | 100 |
You should provide either merchantId
or merchantEmail
.
Bank API error codes:
Error code | Error message | Description |
---|---|---|
5068 | Field error(s) | Missing required field |
Invalid countryId: {countryId} | Provided Skrill country ID is invalid | |
Invalid merchant | Provided merchant ID or merchant processing e-mail does not exist | |
5003 | Invalid amount | Provided 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:
Parameters to prepopulate the Success and Fail Screens:
Field name | Description | Required | Max length | Example value |
---|---|---|---|---|
dynamic_descriptor | When 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_url | URL 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) | No | 240 | https://www.example.com/payment.html |
return_url _text | The text on the button when the customer finishes their payment. | No | 35 | Return to main website |
return_url_target | Specifies a target in which the return_url value is displayed upon successful payment from the customer. Default value is 1 .1 = _top 2 = _parent 3 = _sel f4= _blank | No | 1 | 3 |
cancel_url | URL to which the customer is returned if the payment is cancelled or fails. If none, Cancel button is hidden. | No | 240 | https://example.com/payment_cancelled.html |
cancel_url_target | Specifies 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 = _sel f4= _blank | No | 1 | 1 |
pending_url | URL to which the customer is returned if the transaction is not confirmed. | No | 240 | https://example.com/payment_pending.html |
status_url | URL to which the transaction details are posted after the payment process is complete. Alternatively, you may specify an email address where the results are sent. If the status_url is omitted, no 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. | No | 400 | https://example.com/process_payment.cqi mailto:info@example.com |
status_url2 | Second URL or email to which transaction details are posted. | No | 400 | https://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 name | Description | Required | Example value |
---|---|---|---|
pay_to_email | Your email address. | Yes | info@merchant.com |
pay_from_email | Email address of the customer who is making the payment. 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. | Yes | payer123@skrill.com |
merchant_id | Unique ID of your Skrill account. ONLY needed for the calculation of the MD5 signature (see MD5 signature). | Yes | 100005 |
customer_id | If 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_id | A unique reference or identification number provided by you in your HTML form. | No [^b] | A205220 |
mb_transaction_id | Skrill's internal unique reference ID for this transaction. | Yes | 170032056 |
mb_amount | The total amount of the payment in the currency of your merchant Skrill digital wallet account. | Yes | 25.46 25.4 25 |
mb_currency | Currency of mb_amount . Will always be the same as the currency of your merchant Skrill digital wallet account. | Yes | GBP |
status | Status of the transaction:-2 failed / 2 processed / 0 pending / -1 cancelled (see detailed explanation below). | Yes | 2 |
failed_reason_code | If 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 |
md5sig | MD5 signature. | Yes | 327638C253A4637199CEBA6642371F20 |
sha2sig | SHA2 signature. | No [^d] | dbb7101322257a311f08d1c527053058fc7e464e30bcfb4613f09053c22dd1f8 |
amount | Amount of the payment as posted in your HTML form. | Yes | 39.60 39.6 39 |
currency | Currency of the payment as posted in your HTML form. | Yes | EUR |
payment_type | The 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_fields | If you submitted a list of values in the merchant_fields parameter, they will be passed back with the status report. | No | field1=value1 |
instrument_id | The 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. | No | 123456 |
confirmed_by_provider | Indicates 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 |
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:
- Create a pending transaction or order for a fixed amount on your website.
- Redirect the customer to the Quick Checkout page, where they complete the transaction.
- Skrill will post the transaction confirmation to your
status_url
page. This will include the mb_amount (amount) parameter. - 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
. - 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.
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
Status | Description | Details |
---|---|---|
2 | Processed | Sent when the transaction is processed and the funds have been received in your Skrill account. |
0 | Pending | Sent 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. |
-1 | Cancelled | Pending 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. |
-2 | Failed | This 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. |
-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. |
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
:
Parameter | Description |
---|---|
payment_instrument_country | A 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. |
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 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_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:
status_url parameter | CSV column name |
---|---|
payment_instrument_country | Instrument Country |
country | Country |
IP_country | IP country |
Section of Account History CSV file with Sales Tax fields highlighted in red:
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.