Customization Options
Payment methods
The payment_method parameter can be used to pass a payment method code to pre-select the default payment method for your customers (shown in the second payment tab) after login. Most of these codes are three characters long — for example DID — but the parameter can accept up to 100 characters. If more than one payment_method code is supplied, all except the first are ignored.
Once a customer has logged in, all payment methods available in the country associated with their Skrill wallet account are displayed, ordered by popularity in the customer's country.
Recurring billing
Skrill offers a tool for recurring payments, which is available as a stand-alone product or via the Skrill Wallet Checkout. In addition to the standard HTML form parameters, you can supply the following parameters to set up a recurring payment:
| Field Name | Description | Required | Max Length | Example Value |
|---|---|---|---|---|
rec_amount | Amount of the recurring payment (to be taken at each recurring period) | Yes / No | 19 | 19.90 |
rec_start_date | Start date of the period in DD/MM/YYYY format* | No | 10 | 01/08/2013 |
rec_end_date | Final date of the period in DD/MM/YYYY format | No | 10 | 31/08/2014 |
rec_period | Period between payments | Yes | 6 | 14 |
rec_cycle | Time period measure you require - day/month/year. If not submitted, Skrill assumes day. | No | 5 | day |
rec_grace_period | Period of days during which the customer can still process the transaction if it originally failed (value is always in days). | No | 5 | 7 |
rec_status_url | URL to which Skrill notifies you that the recurring payment is cancelled. | No | 400 | http://www.example.com/rec_payment_cancelled.htm |
rec_status_url2 | Second URL to which Skrill notifies you that the recurring payment is cancelled. | No | 400 | http://www.example.com/rec_payment_cancelled2.htm |
The rec_start_date parameter should not be set in the future for recurring credit card payments if amount is empty (no amount is charged immediately).
Recurring billing setup options
You can set up a recurring billing payment using one of the following options:
Option 1 - Take an initial payment, followed by recurring payments for a different amount
Enter a specific amount (e.g., EUR 4.99) as the amount parameter in your HTML form, and a specific amount (e.g., EUR 19.90) as rec_amount.
Option 2 - Do not take an initial payment; only set up recurring payments
Leave the amount parameter empty (empty, not zero) and only enter the rec_amount value.
Payment methods used with recurring billing
A recurring billing payment can be set up using one of the following payment methods:
- Credit/debit card (Visa and MasterCard)
- Direct Debit
- Customer's Skrill account balance
Example code
The code snippet below shows an example of the additional parameters included for a recurring payment:
<input type="hidden" name="rec_amount" value="19.90">
<input type="hidden" name="rec_start_date" value="01/08/2013">
<input type="hidden" name="rec_end_date" value="31/08/2014">
<input type="hidden" name="rec_period" value="14">
<input type="hidden" name="rec_cycle" value="day">
<input type="hidden" name="rec_grace_period" value="7">
<input type="hidden" name="rec_status_url" value="http://www.example.com/rec_pay_cancel.htm">
<input type="hidden" name="rec_status_url2" value="http://www.example.com/rec_pay_cancel2.htm">
Recurring billing status
If a recurring billing has been set up and you have provided a rec_status_url in your HTML form, Skrill posts the transaction details of each payment to your status page.
Recurring billing status parameters
| Field Name | Description | Required | Example Value |
|---|---|---|---|
merchant_id | Unique ID of your Skrill account. Only needed for MD5 signature calculation. | Yes | 100005 |
transaction_id | The reference or identification number you provided. | Yes | A205220 |
status | Recurring payment status: 2 = processed / -2 = failed | Yes | 2 |
rec_payment_id | Recurring payment ID | Yes | 200005 |
rec_payment_type | Type of payment: recurring or Skrill 1-Tap | Yes | recurring |
md5sig | MD5 signature. | Yes | 327638C253A4637199CEBA6642371F20 |
merchant_fields | Comma-separated list of field names returned to your status page when the payment is confirmed (see Parameters to be posted to the Skrill payment gateway). | No | Field1, Field2 |
Using the Merchant Query Interface
You can use the Merchant Query Interface to check the status, cancel, or extend the end date of a recurring payment. For full details, see the Automated Payments Interface Guide.
Secure return_url option
This option allows you to ensure that the customer arrives at your return_url page only after completing the payment process, rather than by manually entering the URL from the page source.
However, note that this function only confirms that the customer completed the payment flow, not that the payment was successfully processed.
If this feature is not activated for your account, please contact merchantservices@skrill.com.
You must submit the following parameters with each transaction:
return_urltransaction_id- Secret word (automatically submitted if stored under Settings > Developer Settings in your Skrill account)
Skrill will then add the following parameters to the return_url:
| Parameter | Description | Example Value |
|---|---|---|
transaction_id | The transaction_id you submitted. | A205220 |
msid | The MD5 signature generated using: - merchant_id (e.g., 123456) - transaction_id (e.g., A205220) - Uppercase MD5 hash of your secret word (ASCII), e.g., F76538E261E8009140AF89E001341F17 | 730743ed4ef7ec631155f5e15d2f4fa0 |
Below are two examples of the secure return_url, using the values above:
Example 1: Merchant submits return_url without additional parameters
For example:
https://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
Merchant refunds
This option enables you to refund a payment back to the customer's Skrill account, credit/debit card, or bank account (depending on the original payment method used).
Manual and Automated Refunds are not available for Gambling and Forex merchants.
If this feature is not activated, please contact merchantservices@skrill.com.
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.
Chargeback notification
When Skrill receives a chargeback request from their provider, they will send a chargeback notification to your status_url page.
This is indicated by a status of -3.
(For a description of transaction statuses, see Detailed Status Description).
Adding a descriptor
When a customer pays through Skrill, Skrill submits a descriptor with the transaction, containing your business trading name/brand name. This descriptor is typically displayed on the customer's bank or credit card statement.
If you want to change this descriptor, please contact merchantservices@skrill.com.
This functionality is only available for the following payment methods:
- Visa
- MasterCard
- Klarna
- Direct Debit
- iDEAL
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— overrides the default value stored by Skrill.
Code integration examples
You can use the examples below to generate your session ID from Skrill, which is the recommended method for connecting to the Skrill Wallet Checkout (see Recommended secure method of redirecting the customer).
Generating the session identifier
Below are examples of how to generate a SID using different programming methods:
CURL
curl -X POST https://pay.skrill.com \
-d "pay_to_email=merchant_email@mail.com" \
-d "amount=10.99" \
-d "currency=EUR" \
-d "language=EN" \
-d "prepare_only=1"
Ruby
require 'net/http'
require 'net/https'
require 'uri'
uri = URI('https://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'=>'merchant_email@mail.com',
'amount'=>'10.99',
'currency'=>'EUR',
'language'=>'EN',
'prepare_only'=>'1'
})
res = http.request(req)
puts res.body
Redirecting the customer to Skrill
Once you have the session identifier (SID), you must redirect the customer to Skrill, including the session identifier.
https://pay.skrill.com/?sid=<generated_sid>
Where <generated_sid> is the SID returned by Skrill.
You can open the URL with the SID as a Lightbox.
Skrill does not support iframes.