Scandi (025)

Compatible Cases

Icon 1

About the service

W2 Data Ekyc SCANDI 025 service can be used for identity checks in Sweden, Norway and Denmark. It uses Bank ID to confirm an individual's identity.

This service works slightly differently from our other services in that it runs asynchronously and has a two step process.

First you will need to send us the identity to check. We will process this information and return a URL for Bank ID verification. The user will need to navigate to this URL in a browser and complete the Bank ID process there. Once this form is completed the user will be redirected to a URL of your choice.

When the Bank ID form is complete W2 will send a notification with the results of the identity check. We can either notify by email or send an HTTP POST to an endpoint of your choice.

You can force the service to skip the Bank ID process by specifying the SkipScandiBankId QueryOption. This will return the result immediately. The response will only contain information from our supplier's database and not a full Bank ID check but is still considered a full two plus two check.

Product Code: W2_DATA_EKYC_SCANDI_025

Does this service leave a credit search Footprint? No


Before using this service you will need to let W2 know the following:

  1. Notification Preference: Whether you would prefer to be notified by email, HTTP POST or both.
  2. Email Address: If you want to be notified by email then we need to know which email address to use.
  3. Notification URL: If you want to be notified by HTTP POST then we need to know a URL to use. see here for more information.
  4. FormattingType: By default if we send an HTTP POST it will be JSON, we can also do XML if prefered.


For this service we require the following information. Please note that:

  1. Most of the required data is supplied in the Data object as usual, but we also require a redirect URL be supplied in the QueryOptions see below.
  2. In an actual SOAP request the data should be supplied in alphabetical order.

Query Data

CountryString3MandatoryThis must be a 3 character ISO Country code. This service only accepts SWE, DNK or NOR. i.e. Sweden, Denmark or Norway
HouseNameString30Mandatory if no HouseNumber given
HouseNumberString30Mandatory if no HouseName given
DateOfBirthMatchThresholdInteger2OptionalThis can be used to specify the percentage match for date of birth matches. For example, if you put 90 in this field, then we will consider a 90% match on date of birth to be a pass, when we calculate the interpret result.
NameQueryMatchThresholdInteger2OptionalThis can be used to specify the percentage match for name matches. For example, if you put 90 in this field, then we will consider a 90% match on name to be a pass, when we calculate the interpret result.


RedirectUrlMandatoryThis is the URL the user will be redirected to after they have filled in the Bank ID form.
SkipScandiBankIdOptionalIf this is set to "true" then the service will not supply a URL for a Bank ID form. It will simply send whatever information is available as per your notification settings.
AddressMatchThresholdOptionalRange 0-100, specifies the required level of matching in the address.

Example request

	"Data": {
		"City": "BILLDAL",
		"Country": "SWE",
		"DayOfBirth": 4,
		"Forename": "SIRI",
		"HouseNumber": "47",
		"MonthOfBirth": 6,
		"Postcode": "21725",
		"Surname": "Petersen",
		"YearOfBirth": 1952,
		"NationalId": "23434645634"
	"Options": {
		"RedirectUrl": "https://MY_WEBSITE"


Example responses

Example 1 - Bank ID check

The response for this service simply contains a URL for the Bank ID form and a message.

"w2DataEkycScandi025Result": {
	"bankIdFormUrl": " guid here",
	"interpretResult": "NotPerformed",
	"message": "Please complete the form at the supplied URL."

Example Response 2 - Bank ID check skipped

The response from a request where the bank id check is skipped contains a two plus two result. For example:

"w2DataEkycScandi025Result": {
      	"interpretResult": "Pass",
      	"message": "Name and Address match found.",
      	"twoPlusTwoCheckResult": {
      		"matchResult": "OnePlusOne",
      		"nameAndAddressMatch": true,
      		"nameAndDateOfBirthMatch": false

Example 3 - No Interpretation, successful transaction

The transaction information will simply indicate the transaction was successful as no actual interpretation has been performed.

"serviceTransactions": [{
       		"haltTriggered": false,
       		"service": "W2_DATA_EKYC_SCANDI_025",
       		"serviceInterpretResult": "Fail",
       		"serviceTransactionResult": "Success",
       		"validationResult": "Pass"

Completing the request

Once the query has finished, you should be returned a generated URL within the BankIdFormUrl object, you can use this to navigate to the page, and on this page there is a Bank ID login page. Once the user has successfully logged into their Bank ID (and by doing so, authorised you to use their data), the page will redirect to the URL you have previously specified. The system will then return a notification to you in the form of an e-mail, or a POST to an endpoint.


When the Bank ID form has been completed W2 will attempt to notify you. We can either send an email or POST to an endpoint.

The email will look something like this:

/ missing image /

The post will be JSON and contains information from the verification process. We can also supply in XML if required, contact W2 support to configure this. The following is an example JSON response:


   "ClientReference":"The client reference from the original call",
   "CallReference":"The call reference from the original call",
   "ClientSubaccount":"The client subaccount from the original call",
         "InterpretResult":"PASS | FAIL | REFER | ERROR",
         "CallId":"A unique identifier for the call",
            "MatchResult":"TwoPlusTwo | TwoPlusOne | OnePlusOne",
            "NameAndAddressMatch": true | false,
            "NameAndDateOfBirthMatch":true | false,
            "IndependentDataSources":true | false | null
         "Message":"The status of the response",
         "NameAndAddressMessage":"The status of the name and address match in the two plus two check",
         "NameAndDateOfBirthMessage":"The status of the name and date of birth match in the two plus two check"
            "ServiceInterpretResult":"PASS | FAIL | REFER | ERROR",
            "ServiceTransactionResult":"Success | Fail"

Authorization: "Basic {CompanyName}:{ApiKey}" (Encoded as Base 64 string)
Content-Type: "application/json"
Content-Length: { The byte length of the content }