Skip to main content

Using the Service

To use the service, send a POST request to the service endpoint detailed below:

https://api.skrill.com/mqi/customer-verifications

You should add the following header to your HTTP request: Content-Type: application/json or Content‐Type: application/json; charset="UTF8" if you are including UTF8 characters in the request.

Request Parameters

The available parameters are described in the table below:

FieldDescriptionCase SensitiveRequiredExample
merchantIdThe customer ID of your merchant account. The customer ID is shown in brackets under your account email address when you login to your Skrill account at https://www.skrill.com/login/ e.g. (ID: 275556522)N/AYes275556522
passwordThe lowercase hex MD5 of the secret word set up for your merchant accountYesYes9f535b6ae672f627e4e5f79f2b7c63fe
emailThe email address to be checked. Matches any primary or secondary email addresses registered with Skrill. Removed email addresses will also match.YesNo *samplemerchant@sunfish.com
customerIdThe customer ID of the Skrill account to be checked. If both email and customerId are included in the request, customerId takes priority and a match / no match response is shown for the email fieldN/ANo *276261219
dateOfBirthThe customer's date of birth in YYYYMMDD format e.g. 1st December 1970 = 19701201N/ANo19701201
houseNumberMatches an alphanumeric string separated from the rest of the text by non‐alphanumeric character in line 1 or 2 of the stored customer address.

Examples:
"221b Baker street" → 221b = MATCH, 221 = NO MATCH
"Main street,21" → 21 = MATCH, 1 = NO MATCH
"Main street21" → 21 = NO MATCH

Only Latin‐1 alphanumeric characters can be used. Non‐alphanumeric characters like spaces/commas are not supported and cause NO_MATCH.
Example: "April Cottage" → April = MATCH, April Cottage = NO_MATCH
YesNo221b
postCodeWhite space ignored for matches (e.g., CR34JP matches CR3 4JP). Supports UTF-8.YesNoCR34JP
countryISO_3166‐1_alpha‐3 country code e.g. DEU for GermanyYesNoDEU
info

* At least one parameter is required from customerid and email to identify the customer

Locking

If you make more than three failed authentication requests (incorrect MD5 hash password supplied for the account identified by the merchantId or invalid IP ‐ WRONG_PASSWORD or NOT_ALLOWED_IP errors) in six hours, the customer verification tool will return VERIFICATION_SERVICE_USER_IS_LOCKED and the service will be blocked until you log in to your Skrill merchant account. Note unlocking the account reduces the failure count to 2 rather than 0, so a single additional failure will lock the account. The failure count will only reset to 0 once six hours have passed from the initial failed authentication.

UTF-8 Support

Although some of the fields support UTF8, Skrill currently only allows customers to sign-up with Latin-1 characters in the name and address fields. This could lead to match failures if you are storing UTF‐8 contact details for customers.

Example 1: Matching Customer Found

Request:

{
"merchantId": "276261218",
"password": "9f535b6ae672f627e4e5f79f2b7c63fe",
"customerId": "276261219",
"email": "sample.merchant@sun-fish.com",
"firstName" : "Sample",
"lastName" : "Customer",
"dateOfBirth": "19461127",
"houseNumber": "23b",
"postCode": "123124",
"country": "DEU"
}

Response:

200 OK

{
"email": "MATCH"
"firstName": "MATCH"
"lastName": "NO_MATCH"
"dateOfBirth": "MATCH"
"houseNumber": "NO_MATCH"
"country": "MATCH"
"postCode": "NO_MATCH"
"verificationLevel": "10"
}

If the same request is sent without the email parameter or alternatively with the email parameter but no customer id parameter, the following response will be received:

200 OK

{
"firstName": "MATCH"
"lastName": "NO_MATCH"
"dateOfBirth": "MATCH"
"houseNumber": "NO_MATCH"
"country": "MATCH"
"postCode": "NO_MATCH"
"verificationLevel": "10"
}

Example 2: Matching Customer Not Found

Request:

{
"merchantId": "276261218",
"password": "9f535b6ae672f627e4e5f79f2b7c63fe",
"email": "nosuchcustomer@sun-fish.com",
"firstName" : "Fnrrlodhqjqn",
"lastName" : "Lndfhtnlhibo",
"dateOfBirth": "19461127",
"houseNumber": "23b",
"postCode": "123124",
"country": "DEU"
}

Response:

404 Not Found

{
"code": "ACTIVE_CUSTOMER_ACCOUNT_NOT_FOUND",
"message": "Active customer account not found!"
}

Example 3: Missing Parameter

Request:

{
"merchantId": "276261218",
"password": "9f535b6ae672f627e4e5f79f2b7c63fe",
"firstName" : "Fnrrlodhqjqn",
"lastName" : "Lndfhtnlhibo",
"dateOfBirth": "19461127",
"houseNumber": "23b",
"postCode": "123124",
"country": "DEU"
}

Response:

400 Bad Request

{
"code": "MISSING_MANDATORY_PARAMETERS",
"message": "customerId or email must not be null"
}

Errors

Status CodeError CodeDescription
404 Not foundACTIVE_CUSTOMER_ACCOUNT_NOT_FOUNDNo active Skrill account found matching the Customer ID (if provided) or the email address (if not).
400 Bad requestNUMBER_FORMAT_PARSE_EXCEPTIONA numeric parameter contains non-numeric characters (e.g., date or customer ID).
400 Bad requestINVALID_DATE_FORMATThe date parameter format does not match YYYYMMDD.
400 Bad requestMISSING_MANDATORY_PARAMETERSNeither Customer ID nor email is provided.
409 ConflictVERIFICATION_SERVICE_USER_IS_LOCKEDVerification is blocked due to too many failed authentications.
Login via Skrill website to unblock.
409 ConflictACTIVE_MERCHANT_ACCOUNT_NOT_FOUNDNo active merchant account found for the provided merchant account ID.
409 ConflictWRONG_PASSWORDIncorrect password parameter for the merchant account.
409 ConflictNOT_ALLOWED_IPThis IP address is not configured to access verification for this merchant account.
409 ConflictVERIFICATION_SERVICE_NOT_ALLOWEDVerification service not enabled for this merchant account.
Contact Skrill to enable.
400 Bad requestPARAMETER_MUST_NOT_BE_NULLA required parameter (e.g., password or merchantId) is missing.