Skrill Customer Validation

The Skrill customer validation service is used to check if the merchants customer, identified by an eMail address or customerID, is registered with Skrill. The merchant can thus verify information holding about the customer against Skrill´s registration records.

Accounts are active once created by the customer and remain active until closed by either the customer or by Skrill.

The information that is checked can be:

  • eMail address
  • First Name
  • Last Name
  • Date of Birth
  • House Number
  • Country
  • Post Code

🚧

Email address vs. Skrill customer ID

If the customer has an active Skrill Wallet account, then the verification service returns a MATCH or NO_MATCH response for each parameter provided in the request.

Match information is not shown by default for the email address. However, If both Customer ID and email are provided then the Customer ID is used to identify the account and match information is shown for the email.

Backend2BackendIntegration

The following table contains the fields to be sent in the validatePaymentAccount.specificPaymentAccountData xml section:

key (value type, account type, required)value
AccountID
(string)
eMail address of Skrill user

The eMail address matching is done against any primary or secondary email addresses registered with Skrill. Removed eMail addresses will also match (see below for eMail address matching)
SubAccountID (string)Skrill (Moneybookers) AccountID

Example validatePaymentAccountRequest:

<?xml version="1.0" encoding="utf-8"?>
<validatePaymentAccountRequest xmlns="http://www.cqrpayments.com/PaymentProcessing" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
  <merchantID>B2BTestMerchant</merchantID>
  <paymentAccountTypeID>7</paymentAccountTypeID>
  <paymentMethodID>15</paymentMethodID>
  <paymentProviderID>11</paymentProviderID>
  <specificPaymentAccountData>
    <data xsi:type="keyStringValuePair">
      <key>AccountID</key>
      <value>[email protected]</value>
    </data>
    <data xsi:type="keyStringValuePair">
      <key>SubAccountID</key>
      <value>12345678</value>
    </data>
  </specificPaymentAccountData>
  <additionalData>
   <data xsi:type="keyStringValuePair">
      <key>firstName</key>
      <value>John</value>
    </data>
    <data xsi:type="keyStringValuePair">
      <key>lastName</key>
      <value>Payer</value>
    </data>
    <data xsi:type="keyDateTimeValuePair">
      <key>DateOfBirth</key>
      <value>1970-12-01T00:00:00</value>
    </data>
    <data xsi:type="keyStringValuePair">
      <key>HouseNumber</key>
      <value>221b</value>
    </data>
    <data xsi:type="keyStringValuePair">
      <key>PostCode</key>
      <value>CR34JP</value>
    </data>
    <data xsi:type="keyStringValuePair">
      <key>Country</key>
      <value>DEU</value>
    </data>
  </additionalData>
</validatePaymentAccountRequest>

When a paymentaccount detail matches, the response is MATCH. When the values do not match, the response include NO_MATCH. In addition a verification level value is returned.

Verification LevelDescription
00- The Skrill customer has not been verified
- The customer has no verified registered payment instruments (Credit/Debit Card or Bank Account)
01- The Skrill customer has not been verified.
- The customer has one or more verified registered payment instruments (Credit/Debit Card or Bank Account)
10- The Skrill customer has been verified
- The customer has no verified payment nstruments (Credit/Debit Card or Bank Account)
11- The Skrill customer has been verified
- The customer has one or more verified payment instruments (Credit/Debit Card or Bank Account)

Example validatePaymentAccountResponse:

<?xml version="1.0" encoding="utf-8"?>
<validatePaymentAccountResponse xmlns="http://www.cqrpayments.com/PaymentProcessing" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
  <statusCode>0</statusCode>
  <validationResults>
    <result xsi:type="keyStringValuePair">
      <key>Email</key>
      <value>MATCH</value>
    </result>
    <result xsi:type="keyStringValuePair">
      <key>FirstName</key>
      <value>MATCH</value>
    </result>
    <result xsi:type="keyStringValuePair">
      <key>LastName</key>
      <value>NO_MATCH</value>
    </result>
    <result xsi:type="keyStringValuePair">
      <key>DateOfBirth</key>
      <value>MATCH</value>
    </result>
    <result xsi:type="keyStringValuePair">
      <key>HouseNumber</key>
      <value>NO_MATCH</value>
    </result>
    <result xsi:type="keyStringValuePair">
      <key>PostCode</key>
      <value>NO_MATCH</value>
    </result>
    <result xsi:type="keyStringValuePair">
      <key>VerificationLevel</key>
      <value>10</value>
    </result>
  </validationResults>
</validatePaymentAccountResponse>

A customer is listed as verified if at least one of the following apply:

  • Skrill has identification documents on file for the customer
  • Address verification has been completed ‐ either manually or by post
  • The customer has been verified by Tsevo (US customers only)

Payment instrument verified means that the customer has been verified as the legitimate owner of a
listed payment instrument (Debit/Credit Card or Bank Account).

When Skill has enabled passing of the customerID, then the request can be like following (at least one of the additionalDetails parameter needs to be parsed):

<?xml version="1.0" encoding="utf-8"?>
<validatePaymentAccountRequest xmlns="http://www.cqrpayments.com/PaymentProcessing" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
  <merchantID>PG</merchantID>
  <paymentAccountTypeID>7</paymentAccountTypeID>
  <paymentMethodID>15</paymentMethodID>
  <paymentProviderID>11</paymentProviderID>
  <specificPaymentAccountData>
    <data xsi:type="keyStringValuePair">
      <key>AccountID</key>
      <value>[email protected]</value>
    </data>
   </specificPaymentAccountData>
     <additionalData>
   <data xsi:type="keyStringValuePair">
      <key>firstName</key>
      <value>John</value>
    </data>
    </additionalData>
</validatePaymentAccountRequest>

.. and the following response is returned:

<validatePaymentAccountResponse xmlns="http://www.cqrpayments.com/PaymentProcessing" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
    <statusCode>0</statusCode>
    <validationResults>
        <result xsi:type="keyStringValuePair">
            <key>Email</key>
            <value>MATCH</value>
        </result>
        <result xsi:type="keyStringValuePair">
            <key>FirstName</key>
            <value>MATCH</value>
        </result>
        <result xsi:type="keyStringValuePair">
            <key>CustomerId</key>
            <value>17012019</value>
        </result>
        <result xsi:type="keyStringValuePair">
            <key>VerificationLevel</key>
            <value>10</value>
        </result>
    </validationResults>
</validatePaymentAccountResponse>

Matching details

If Skrill has the first name "Hanna" stored and the merchant sends "Hanna Maria", this value will not match.
If Skrill has the first name "Barbra Streisand" stored and the merchant sends firstName "Barbra", this will not match.

All or any combination of the allowed values may be sent.

eMail address matching

The sent eMail address value is matched against any primary or secondary email addresses registered with Skrill. Removed eMail address will also match.

if a customer removed his/her account from the Skrill profile, the email is still attached to the account and you can validate it.

I.e. if the customer has a primary account [email protected] and another email attached to it [email protected]

755

.. if the customer removes the [email protected] from the account:

774

When sending the call with the [email protected] eMail address only, then only the verificationLevel, e.g. 11, is returned.

<?xml version="1.0" encoding="utf-8"?>
<validatePaymentAccountRequest xmlns="http://www.cqrpayments.com/PaymentProcessing" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
  <merchantID>B2BTestMerchant</merchantID>
  <paymentAccountTypeID>7</paymentAccountTypeID>
  <paymentMethodID>15</paymentMethodID>
  <paymentProviderID>11</paymentProviderID>
  <specificPaymentAccountData>
    <data xsi:type="keyStringValuePair">
      <key>AccountID</key>
      <value>[email protected]</value>
    </data>
  </specificPaymentAccountData>
</validatePaymentAccountRequest>
<?xml version="1.0" encoding="utf-8"?>
<validatePaymentAccountResponse xmlns="http://www.cqrpayments.com/PaymentProcessing" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
  <statusCode>0</statusCode>
  <validationResults>
    <result xsi:type="keyStringValuePair">
      <key>VerificationLevel</key>
      <value>10</value>
    </result>
  </validationResults>
</validatePaymentAccountResponse>

Even though the eMail address is removed, you will still receive a confirmation that the eMail address exists in the Skrill system or that it was used before. If the merchant combines the request with the customerID

<?xml version="1.0" encoding="utf-8"?>
<validatePaymentAccountRequest xmlns="http://www.cqrpayments.com/PaymentProcessing" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
  <merchantID>B2BTestMerchant</merchantID>
  <paymentAccountTypeID>7</paymentAccountTypeID>
  <paymentMethodID>15</paymentMethodID>
  <paymentProviderID>11</paymentProviderID>
  <specificPaymentAccountData>
    <data xsi:type="keyStringValuePair">
      <key>AccountID</key>
      <value>[email protected]</value>
    </data>
    <data xsi:type="keyStringValuePair">
      <key>SubAccountID</key>
      <value>23423423</value>
    </data>
  </specificPaymentAccountData>
</validatePaymentAccountRequest>
<?xml version="1.0" encoding="utf-8"?>
<validatePaymentAccountResponse xmlns="http://www.cqrpayments.com/PaymentProcessing" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
  <statusCode>0</statusCode>
  <validationResults>
    <result xsi:type="keyStringValuePair">
      <key>Email</key>
      <value>MATCH</value>
    </result>
    <result xsi:type="keyStringValuePair">
      <key>VerificationLevel</key>
      <value>11</value>
    </result>
  </validationResults>
</validatePaymentAccountResponse>