> This page is for North America.

> For clean Markdown of any page, append .md to the page URL.
> For a complete documentation index, see https://trustly.ferndocs.com/llms.txt.
> For AI client integration (Claude Code, Cursor, etc.), connect to the MCP server at https://trustly.ferndocs.com/_mcp/server.

# Get user verification details

GET https://sandbox.trustly.one/api/v1/transactions/{transactionId}/user/detail

Retrieve the verification results and details of a Trustly ID-enabled authorization transaction. The details returned by this endpoint are segmented into two lists: verifications and attributes. 

The verification objects contain the `name` and `result` of the verification as well as reason codes and reason descriptions corresponding to the results. If a verification includes a sanction screening and a match was returned, the results of the screening will also be included. If no `screeningResults` property is returned in the verification object, no match was returned.
>**Note:** Verifications are configured per application, check with your Trustly services team member for definitions of your configured verifications.

The attribute objects contain metadata which describe how the property was verified and a list of `verification` objects which apply to the attribute.

Reference: https://trustly.ferndocs.com/api-reference/api/identity/get-trustly-id-user-details

## Authentication

- `Authorization` header (basic auth, required) — Basic authentication of the form `Basic <base64(username:password)>`.

## Request

### Path parameters

- `transactionId` (string, required) — Transaction ID retrieved from a Trustly Authorization transaction.

### Query parameters

- `expand` (list of enum, optional) — A field in the API response to be expanded in order for more details to be provided. Supported values: * `verification`: returns human-readable reason rules and descriptions.
  - Allowed values: `verification`

## Response

### 200

OK

- `detail` (UserVerificationDetailDetail, optional)

## Errors

### 400 Bad Request Error

Bad Request

- `errors` (list of TransactionsTransactionIdUserDetailGetResponsesContentApplicationJsonSchemaErrorsItems, required)

## Types

### UserVerificationDetailDetail

- `verification` (list of UserVerificationResult, optional)
- `attribute` (list of AttributeVerificationDetail, optional)

### TransactionsTransactionIdUserDetailGetResponsesContentApplicationJsonSchemaErrorsItems

- `domain` (string, required)
- `code` (double, required)
- `location` (string, required)
- `message` (string, required)
- `occurredAt` (double, required)

### UserVerificationResult

Details on the user verification.

- `result` (enum, optional) — A code indicating the final outcome of the verification. May be: * `1`: the verification was rejected. * `2`: the verification was inconclusive. * `3`: the verification was approved.
  - Allowed values: `1`, `2`, `3`
- `reasons` (list of UserVerificationReason, optional)
- `screeningResult` (list of list of ScreeningResultItems, optional)

### AttributeVerificationDetail

Attribute details as part of a Trustly ID user verification details

- `name` (enum, optional) — Which attribute does this entry refer to.
  - Allowed values: `taxId`, `name`, `address`, `phone`, `dateOfBirth`, `email`, `driverLicense`, `deceased`
- `source` (AttributeVerificationDetailSource, optional)
- `createdAt` (long, optional) — Unix Timestamp in milliseconds (since the epoch) when the attribute was fetched from an external source and associated with the user.
- `link` (string, optional) — Link to user attribute using JSON pointer syntax.
- `verification` (list of AttributeVerification, optional)

### UserVerificationReason

An object describing why an user verification has succeeded or failed.

- `code` (enum, optional) — An error code indicating why the user verification has failed. May be: * `-1`: no error. the verification was successful. * `1`: there was an internal, unspecified error (should not happen). * `2`: the user is below the minimum age. * `3`: some of the attributes did not meet the minimum verification criteria. * `4`: some mandatory attributes are not available. * `5`: the user was identified as a person who is deceased. * `6`: entries were matched during the screening process
  - Allowed values: `-1`, `1`, `2`, `3`, `4`, `5`, `6`
- `reason` (string, optional) — Descriptive text, in English, on why the user verification failed.

### ScreeningResultItems

- WatchlistScreeningResult: WatchlistScreeningResult
- AdversityMediaScreeningResult: AdversityMediaScreeningResult
- PEPScreeningResult: PEPScreeningResult

### AttributeVerificationDetailSource

- `name` (string, optional) — The name of the entity where the attribute value was fetched from.
- `type` (integer, optional) — Indicates the type of the entity that provided this piece of data. It can be: * `1` the data came from a financial institution. * `2` the data came from the user. * `4` the data came from an external provider. * `5` the data came from the merchant.

### AttributeVerification

- `trustedEntity` (string, optional) — The name of the entity that verified the attribute.
- `verificationType` (integer, optional) — Indicates the type of the entity that verified this piece of data. It can be: * `1` verified by a financial institution. * `2` verified by user input. * `3` verified by the Trustly internal database. * `4` verified by an external provider.
- `verificationMethod` (integer, optional) — Indicates which type of verification was performed. It can be: * `1` means electronic identity verification. * `2` meaning it is manual document verification. * `3` meaning it is OCR verification. * `4` meaning it is Trusted Entity.
- `result` (integer, optional) — Indicates the result of the individual attribute verification. It can be: * `1` meaning the attribute did not match the expected value. * `2` meaning the result was inconclusive. * `3` meaning attribute did match the expected attribute.
- `verifiedAt` (long, optional) — Unix Timestamp in milliseconds (since the epoch) when the verification took place.

### WatchlistScreeningResult

Screening information for Watchlist Screening.

- `screeningType` (enum, optional) — Type of screening being performed. May be: * `1`: Watchlist Screening. * `2`: Adverse Media Screening. * `3`: PEP Screening.
  - Allowed values: `1`, `2`, `3`
- `score` (double, optional) — Match score indicating the strength of a match.
- `name` (string, optional) — Name of the user.
- `aliases` (list of string, optional) — List of known aliases.
- `dateOfBirth` (date, optional) — Date of birth.
- `nationality` (string, optional) — Nationality.
- `source` (string, optional) — Source of the information.
- `sourceRegion` (string, optional) — Region of the source.
- `remarks` (string, optional) — Additional remarks.
- `caution` (string, optional) — Caution notes.
- `url` (string, optional) — Source's URL.
- `address` (string, optional) — Full street address of the user with city and country.
- `gender` (enum, optional) — Gender of the user.
  - Allowed values: `male`, `female`
- `designationDate` (date, optional) — Designation date.
- `trustedEntity` (string, optional) — The name of the entity that provided the watchlist match.

### AdversityMediaScreeningResult

Screening information for Adversity Media Screening.

- `screeningType` (enum, optional) — Type of screening being performed. May be: * `1`: Watchlist Screening. * `2`: Adverse Media Screening. * `3`: PEP Screening.
  - Allowed values: `1`, `2`, `3`
- `score` (double, optional) — Match score indicating the strength of a match.
- `name` (string, optional) — Name of the user.
- `text` (string, optional) — Text description.
- `url` (string, optional) — Source's URL.
- `title` (string, optional) — The adverse media title.
- `date` (date, optional) — The adverse media date.
- `trustedEntity` (string, optional) — The name of the entity that provided the adverse media match.

### PEPScreeningResult

Screening information for PEP Screening.

- `screeningType` (enum, optional) — Type of screening being performed. May be: * `1`: Watchlist Screening. * `2`: Adverse Media Screening. * `3`: PEP Screening.
  - Allowed values: `1`, `2`, `3`
- `score` (double, optional) — Match score indicating the strength of a match.
- `name` (string, optional) — Name of the user.
- `dateOfBirth` (date, optional) — Date of birth.
- `contry` (string, optional) — Country.
- `professionalHistory` (list of string, optional)
- `trustedEntity` (string, optional) — The name of the entity that provided the PEP match.

## Examples

### All fields verified - PEP Screening matched

**Response**

```json
{
  "detail": {
    "verification": [
      {
        "result": 3,
        "verificationName": "Basic Verification v1"
      },
      {
        "result": 3,
        "verificationName": "Full Verification NJ v2"
      },
      {
        "result": 3,
        "verificationName": "Watchlist Screening"
      },
      {
        "result": 3,
        "verificationName": "Adverse Media Screening"
      },
      {
        "result": 1,
        "screeningResult": [
          [
            {
              "screeningType": 3,
              "score": 1,
              "name": "Bernard Sanders",
              "dateOfBirth": "1941-09-08",
              "trustedEntity": "External Service #1",
              "country": "United States",
              "professionalHistory": [
                "Early Activism",
                "Founding the Liberty Union Party",
                "Mayor of Burlington",
                "Congressional Service",
                "U.S. Senate Career",
                "Presidential Campaigns",
                "Authorship",
                "Committee Assignments",
                "Advocacy for Progressive Policies",
                "Democratic Socialism"
              ]
            }
          ]
        ],
        "verificationName": "PEP Screening"
      }
    ],
    "attribute": [
      {
        "name": "name",
        "source": {
          "name": "Bank of Trustly",
          "type": 1
        },
        "createdAt": 1705516187371,
        "link": "user/name",
        "verification": [
          {
            "trustedEntity": "External Service #1",
            "verificationType": 4,
            "verificationMethod": 1,
            "result": 3,
            "verifiedAt": 1705516186882
          }
        ]
      },
      {
        "name": "email",
        "source": {
          "name": "Bank of Trustly",
          "type": 1
        },
        "createdAt": 1705516187348,
        "link": "user/email/0",
        "verification": [
          {
            "trustedEntity": "External Service #1",
            "verificationType": 5,
            "verificationMethod": 1,
            "result": 3,
            "verifiedAt": 1705516176223
          }
        ]
      },
      {
        "name": "phone",
        "source": {
          "name": "Bank of Trustly",
          "type": 1
        },
        "createdAt": 1705516187358,
        "link": "user/phone/0",
        "verification": [
          {
            "trustedEntity": "External Service #1",
            "verificationType": 4,
            "verificationMethod": 1,
            "result": 3,
            "verifiedAt": 1705516186882
          }
        ]
      },
      {
        "name": "address",
        "source": {
          "name": "Bank of Trustly",
          "type": 1
        },
        "createdAt": 1705516187364,
        "link": "user/address/0",
        "verification": [
          {
            "trustedEntity": "External Service #1",
            "verificationType": 4,
            "verificationMethod": 1,
            "result": 3,
            "verifiedAt": 1705516186882
          }
        ]
      },
      {
        "name": "dateOfBirth",
        "source": {
          "name": "External Service #1",
          "type": 4
        },
        "createdAt": 1705516187390,
        "link": "user/dateOfBirth",
        "verification": [
          {
            "trustedEntity": "External Service #1",
            "verificationType": 4,
            "verificationMethod": 1,
            "result": 3,
            "verifiedAt": 1705516186882
          }
        ]
      },
      {
        "name": "taxId",
        "source": {
          "name": "External Service #1",
          "type": 4
        },
        "createdAt": 1705516187394,
        "link": "user/taxId",
        "verification": [
          {
            "trustedEntity": "External Service #1",
            "verificationType": 4,
            "verificationMethod": 1,
            "result": 3,
            "verifiedAt": 1705516186882
          }
        ]
      },
      {
        "name": "driverLicense",
        "source": {
          "name": "Globex",
          "type": 5
        },
        "createdAt": 1705516187356
      }
    ]
  }
}
```

**SDK Code**

```python All fields verified - PEP Screening matched
import requests

url = "https://sandbox.trustly.one/api/v1/transactions/transactionId/user/detail"

response = requests.get(url, auth=("<username>", "<password>"))

print(response.json())
```

```javascript All fields verified - PEP Screening matched
const url = 'https://sandbox.trustly.one/api/v1/transactions/transactionId/user/detail';
const credentials = btoa("<username>:<password>");

const options = {method: 'GET', headers: {Authorization: `Basic ${credentials}`}};

try {
  const response = await fetch(url, options);
  const data = await response.json();
  console.log(data);
} catch (error) {
  console.error(error);
}
```

```go All fields verified - PEP Screening matched
package main

import (
	"fmt"
	"net/http"
	"io"
)

func main() {

	url := "https://sandbox.trustly.one/api/v1/transactions/transactionId/user/detail"

	req, _ := http.NewRequest("GET", url, nil)

	req.SetBasicAuth("<username>", "<password>")

	res, _ := http.DefaultClient.Do(req)

	defer res.Body.Close()
	body, _ := io.ReadAll(res.Body)

	fmt.Println(res)
	fmt.Println(string(body))

}
```

```ruby All fields verified - PEP Screening matched
require 'uri'
require 'net/http'

url = URI("https://sandbox.trustly.one/api/v1/transactions/transactionId/user/detail")

http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true

request = Net::HTTP::Get.new(url)
request.basic_auth("<username>", "<password>")

response = http.request(request)
puts response.read_body
```

```java All fields verified - PEP Screening matched
import com.mashape.unirest.http.HttpResponse;
import com.mashape.unirest.http.Unirest;

HttpResponse<String> response = Unirest.get("https://sandbox.trustly.one/api/v1/transactions/transactionId/user/detail")
  .basicAuth("<username>", "<password>")
  .asString();
```

```php All fields verified - PEP Screening matched
<?php
require_once('vendor/autoload.php');

$client = new \GuzzleHttp\Client();

$response = $client->request('GET', 'https://sandbox.trustly.one/api/v1/transactions/transactionId/user/detail', [
  'headers' => [
  ],
    'auth' => ['<username>', '<password>'],
]);

echo $response->getBody();
```

```csharp All fields verified - PEP Screening matched
using RestSharp;
using RestSharp.Authenticators;

var client = new RestClient("https://sandbox.trustly.one/api/v1/transactions/transactionId/user/detail");
client.Authenticator = new HttpBasicAuthenticator("<username>", "<password>");
var request = new RestRequest(Method.GET);

IRestResponse response = client.Execute(request);
```

```swift All fields verified - PEP Screening matched
import Foundation

let credentials = Data("<username>:<password>".utf8).base64EncodedString()

let headers = ["Authorization": "Basic \(credentials)"]

let request = NSMutableURLRequest(url: NSURL(string: "https://sandbox.trustly.one/api/v1/transactions/transactionId/user/detail")! as URL,
                                        cachePolicy: .useProtocolCachePolicy,
                                    timeoutInterval: 10.0)
request.httpMethod = "GET"
request.allHTTPHeaderFields = headers

let session = URLSession.shared
let dataTask = session.dataTask(with: request as URLRequest, completionHandler: { (data, response, error) -> Void in
  if (error != nil) {
    print(error as Any)
  } else {
    let httpResponse = response as? HTTPURLResponse
    print(httpResponse)
  }
})

dataTask.resume()
```

### Some manual input - Screening succeeded

**Response**

```json
{
  "detail": {
    "verification": [
      {
        "result": 3,
        "verificationName": "Basic Verification v1"
      },
      {
        "result": 1,
        "verificationName": "Full Verification NJ v2",
        "reason": [
          {
            "code": 4
          }
        ]
      },
      {
        "result": 3,
        "verificationName": "Watchlist Screening"
      },
      {
        "result": 3,
        "verificationName": "Adverse Media Screening"
      },
      {
        "result": 3,
        "verificationName": "PEP Screening"
      }
    ],
    "attribute": [
      {
        "name": "name",
        "source": {
          "name": "Bank of Trustly",
          "type": 1
        },
        "createdAt": 1705514274919,
        "link": "user/name",
        "verification": [
          {
            "trustedEntity": "LexisNexis Accurint",
            "verificationType": 4,
            "verificationMethod": 5,
            "result": 3,
            "verifiedAt": 1705514274383
          }
        ]
      },
      {
        "name": "email",
        "source": {
          "name": "Bank of Trustly",
          "type": 1
        },
        "createdAt": 1705514274926,
        "link": "user/email/0",
        "verification": [
          {
            "trustedEntity": "LexisNexis Accurint",
            "verificationType": 4,
            "verificationMethod": 5,
            "result": 3,
            "verifiedAt": 1705514274383
          }
        ]
      },
      {
        "name": "phone",
        "source": {
          "name": "Bank of Trustly",
          "type": 1
        },
        "createdAt": 1705514274931,
        "link": "user/phone/0",
        "verification": [
          {
            "trustedEntity": "LexisNexis Accurint",
            "verificationType": 4,
            "verificationMethod": 5,
            "result": 3,
            "verifiedAt": 1705514274383
          }
        ]
      },
      {
        "name": "address",
        "source": {
          "name": "Bank of Trustly",
          "type": 1
        },
        "createdAt": 1705514274938,
        "link": "user/address/0",
        "verification": [
          {
            "trustedEntity": "LexisNexis Accurint",
            "verificationType": 4,
            "verificationMethod": 5,
            "result": 3,
            "verifiedAt": 1705514274383
          }
        ]
      },
      {
        "name": "dateOfBirth",
        "source": {
          "type": 2
        },
        "createdAt": 1705514274946,
        "link": "user/dateOfBirth",
        "verification": [
          {
            "trustedEntity": "LexisNexis Accurint",
            "verificationType": 4,
            "verificationMethod": 5,
            "result": 3,
            "verifiedAt": 1705514274384
          }
        ]
      },
      {
        "name": "taxId",
        "source": {
          "type": 2
        },
        "createdAt": 1705514274953,
        "link": "user/taxId",
        "verification": [
          {
            "trustedEntity": "LexisNexis Accurint",
            "verificationType": 4,
            "verificationMethod": 5,
            "result": 3,
            "verifiedAt": 1705514274384
          }
        ]
      }
    ]
  }
}
```

**SDK Code**

```python Some manual input - Screening succeeded
import requests

url = "https://sandbox.trustly.one/api/v1/transactions/transactionId/user/detail"

response = requests.get(url, auth=("<username>", "<password>"))

print(response.json())
```

```javascript Some manual input - Screening succeeded
const url = 'https://sandbox.trustly.one/api/v1/transactions/transactionId/user/detail';
const credentials = btoa("<username>:<password>");

const options = {method: 'GET', headers: {Authorization: `Basic ${credentials}`}};

try {
  const response = await fetch(url, options);
  const data = await response.json();
  console.log(data);
} catch (error) {
  console.error(error);
}
```

```go Some manual input - Screening succeeded
package main

import (
	"fmt"
	"net/http"
	"io"
)

func main() {

	url := "https://sandbox.trustly.one/api/v1/transactions/transactionId/user/detail"

	req, _ := http.NewRequest("GET", url, nil)

	req.SetBasicAuth("<username>", "<password>")

	res, _ := http.DefaultClient.Do(req)

	defer res.Body.Close()
	body, _ := io.ReadAll(res.Body)

	fmt.Println(res)
	fmt.Println(string(body))

}
```

```ruby Some manual input - Screening succeeded
require 'uri'
require 'net/http'

url = URI("https://sandbox.trustly.one/api/v1/transactions/transactionId/user/detail")

http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true

request = Net::HTTP::Get.new(url)
request.basic_auth("<username>", "<password>")

response = http.request(request)
puts response.read_body
```

```java Some manual input - Screening succeeded
import com.mashape.unirest.http.HttpResponse;
import com.mashape.unirest.http.Unirest;

HttpResponse<String> response = Unirest.get("https://sandbox.trustly.one/api/v1/transactions/transactionId/user/detail")
  .basicAuth("<username>", "<password>")
  .asString();
```

```php Some manual input - Screening succeeded
<?php
require_once('vendor/autoload.php');

$client = new \GuzzleHttp\Client();

$response = $client->request('GET', 'https://sandbox.trustly.one/api/v1/transactions/transactionId/user/detail', [
  'headers' => [
  ],
    'auth' => ['<username>', '<password>'],
]);

echo $response->getBody();
```

```csharp Some manual input - Screening succeeded
using RestSharp;
using RestSharp.Authenticators;

var client = new RestClient("https://sandbox.trustly.one/api/v1/transactions/transactionId/user/detail");
client.Authenticator = new HttpBasicAuthenticator("<username>", "<password>");
var request = new RestRequest(Method.GET);

IRestResponse response = client.Execute(request);
```

```swift Some manual input - Screening succeeded
import Foundation

let credentials = Data("<username>:<password>".utf8).base64EncodedString()

let headers = ["Authorization": "Basic \(credentials)"]

let request = NSMutableURLRequest(url: NSURL(string: "https://sandbox.trustly.one/api/v1/transactions/transactionId/user/detail")! as URL,
                                        cachePolicy: .useProtocolCachePolicy,
                                    timeoutInterval: 10.0)
request.httpMethod = "GET"
request.allHTTPHeaderFields = headers

let session = URLSession.shared
let dataTask = session.dataTask(with: request as URLRequest, completionHandler: { (data, response, error) -> Void in
  if (error != nil) {
    print(error as Any)
  } else {
    let httpResponse = response as? HTTPURLResponse
    print(httpResponse)
  }
})

dataTask.resume()
```

### Verified user with expanded reasons - All screening matches

**Response**

```json
{
  "detail": {
    "verification": [
      {
        "result": 3,
        "verificationName": "Basic Verification v1",
        "reason": [
          {
            "description": "The following attributes were verified with a match: [TAX_ID, NAME]"
          }
        ]
      },
      {
        "result": 1,
        "verificationName": "Full Verification NJ v2",
        "reason": [
          {
            "description": "The following attributes could not be verified with a match: [EMAIL, ADDRESS, PHONE]",
            "code": 4
          }
        ]
      },
      {
        "result": 1,
        "screeningResult": [
          [
            {
              "screeningType": 1,
              "score": 0.96,
              "name": "Carlos Ramirez",
              "aliases": [
                "El Lobo",
                "Carlos the Viper",
                "La Sombra"
              ],
              "dateOfBirth": "1978-06-03",
              "nationality": "Colombian",
              "source": "International Criminal Watchlist",
              "sourceRegion": "Latin America",
              "remarks": "Involved in organized drug trafficking, and violent cartel operations.",
              "caution": "Considered a high-priority target by law enforcement and anti-narcotics agencies.",
              "url": "https://www.securitywatchlist.org/",
              "trustedEntity": "External Service #1"
            }
          ],
          [
            {
              "screeningType": 1,
              "score": 0.95,
              "name": "Carlos Ramirez",
              "aliases": [
                "El Lobo"
              ],
              "dateOfBirth": "1978-06-03",
              "nationality": "Colombian",
              "source": "International Criminal Watchlist",
              "sourceRegion": "Latin America",
              "remarks": "Involved in organized drug trafficking, and violent cartel operations.",
              "caution": "Considered a high-priority target by law enforcement and anti-narcotics agencies.",
              "url": "https://www.interpol.int/",
              "trustedEntity": "External Service #2"
            }
          ],
          [
            {
              "screeningType": 1,
              "score": 0.89,
              "name": "Carlos Ramirez",
              "dateOfBirth": "1978-06-03",
              "nationality": "Colombian",
              "source": "International Criminal Watchlist",
              "caution": "Subject is considered highly dangerous and involved in organized drug trafficking, human smuggling, and violent cartel operations.",
              "url": "https://www.interpol.int/",
              "address": "4567 Calle del Diablo, Bogotá",
              "gender": "male",
              "designationDate": "2012-05-17",
              "trustedEntity": "External Service #3"
            }
          ]
        ],
        "verificationName": "Watchlist Screening"
      },
      {
        "result": 1,
        "screeningResult": [
          [
            {
              "screeningType": 2,
              "score": 0.87,
              "name": "Carlos Ramirez",
              "url": "https://www.securitywatchlist.org/",
              "trustedEntity": "External Service #1",
              "text": "Carlos Ramirez is a known figure associated with organized crime, including drug trafficking, and violent cartel operations. He is linked to multiple criminal organizations across Latin America."
            }
          ],
          [
            {
              "screeningType": 2,
              "score": 0.9,
              "name": "Carlos Ramirez",
              "url": "https://www.securitywatchlist.org/",
              "trustedEntity": "External Service #2",
              "title": "Carlos Ramirez: Key Player in Drug Trafficking and Organized Crime in Latin America",
              "text": "Carlos Ramirez is a notorious figure linked to drug cartels, and violent criminal organizations across Latin America. His activities have led to significant international law enforcement operations.",
              "date": "2015-06-12"
            }
          ]
        ],
        "verificationName": "Adverse Media Screening"
      },
      {
        "result": 1,
        "screeningResult": [
          [
            {
              "screeningType": 3,
              "score": 0.93,
              "name": "Carlos Ramirez",
              "dateOfBirth": "1978-06-03",
              "trustedEntity": "External Service #1",
              "country": "Colombia",
              "professionalHistory": [
                "Drug Trafficker",
                "Organized Crime Leader"
              ]
            }
          ]
        ],
        "verificationName": "PEP Screening"
      }
    ],
    "attribute": [
      {
        "name": "name",
        "source": {
          "name": "Bank of Trustly",
          "type": 1
        },
        "createdAt": 1705516187371,
        "link": "user/name",
        "verification": [
          {
            "trustedEntity": "External Service #1",
            "verificationType": 4,
            "verificationMethod": 1,
            "result": 3,
            "verifiedAt": 1705516186882
          }
        ]
      },
      {
        "name": "email",
        "source": {
          "name": "Bank of Trustly",
          "type": 1
        },
        "createdAt": 1705516187348,
        "link": "user/email/0",
        "verification": [
          {
            "trustedEntity": "External Service #1",
            "verificationType": 5,
            "verificationMethod": 1,
            "result": 3,
            "verifiedAt": 1705516176223
          }
        ]
      },
      {
        "name": "phone",
        "source": {
          "name": "Bank of Trustly",
          "type": 1
        },
        "createdAt": 1705516187358,
        "link": "user/phone/0",
        "verification": [
          {
            "trustedEntity": "External Service #1",
            "verificationType": 4,
            "verificationMethod": 1,
            "result": 3,
            "verifiedAt": 1705516186882
          }
        ]
      },
      {
        "name": "address",
        "source": {
          "name": "Bank of Trustly",
          "type": 1
        },
        "createdAt": 1705516187364,
        "link": "user/address/0",
        "verification": [
          {
            "trustedEntity": "External Service #1",
            "verificationType": 4,
            "verificationMethod": 1,
            "result": 3,
            "verifiedAt": 1705516186882
          }
        ]
      },
      {
        "name": "dateOfBirth",
        "source": {
          "name": "Bank of Trustly",
          "type": 1
        },
        "createdAt": 1705516187390,
        "link": "user/dateOfBirth",
        "verification": [
          {
            "trustedEntity": "External Service #1",
            "verificationType": 4,
            "verificationMethod": 1,
            "result": 3,
            "verifiedAt": 1705516186882
          }
        ]
      },
      {
        "name": "taxId",
        "source": {
          "name": "External Service #1",
          "type": 4
        },
        "createdAt": 1705516187394,
        "link": "user/taxId",
        "verification": [
          {
            "trustedEntity": "External Service #1",
            "verificationType": 4,
            "verificationMethod": 1,
            "result": 3,
            "verifiedAt": 1705516186882
          }
        ]
      },
      {
        "name": "driverLicense",
        "source": {
          "name": "Globex",
          "type": 5
        },
        "createdAt": 1705516187356,
        "link": "user/driverLicense"
      }
    ]
  }
}
```

**SDK Code**

```python Verified user with expanded reasons - All screening matches
import requests

url = "https://sandbox.trustly.one/api/v1/transactions/transactionId/user/detail"

response = requests.get(url, auth=("<username>", "<password>"))

print(response.json())
```

```javascript Verified user with expanded reasons - All screening matches
const url = 'https://sandbox.trustly.one/api/v1/transactions/transactionId/user/detail';
const credentials = btoa("<username>:<password>");

const options = {method: 'GET', headers: {Authorization: `Basic ${credentials}`}};

try {
  const response = await fetch(url, options);
  const data = await response.json();
  console.log(data);
} catch (error) {
  console.error(error);
}
```

```go Verified user with expanded reasons - All screening matches
package main

import (
	"fmt"
	"net/http"
	"io"
)

func main() {

	url := "https://sandbox.trustly.one/api/v1/transactions/transactionId/user/detail"

	req, _ := http.NewRequest("GET", url, nil)

	req.SetBasicAuth("<username>", "<password>")

	res, _ := http.DefaultClient.Do(req)

	defer res.Body.Close()
	body, _ := io.ReadAll(res.Body)

	fmt.Println(res)
	fmt.Println(string(body))

}
```

```ruby Verified user with expanded reasons - All screening matches
require 'uri'
require 'net/http'

url = URI("https://sandbox.trustly.one/api/v1/transactions/transactionId/user/detail")

http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true

request = Net::HTTP::Get.new(url)
request.basic_auth("<username>", "<password>")

response = http.request(request)
puts response.read_body
```

```java Verified user with expanded reasons - All screening matches
import com.mashape.unirest.http.HttpResponse;
import com.mashape.unirest.http.Unirest;

HttpResponse<String> response = Unirest.get("https://sandbox.trustly.one/api/v1/transactions/transactionId/user/detail")
  .basicAuth("<username>", "<password>")
  .asString();
```

```php Verified user with expanded reasons - All screening matches
<?php
require_once('vendor/autoload.php');

$client = new \GuzzleHttp\Client();

$response = $client->request('GET', 'https://sandbox.trustly.one/api/v1/transactions/transactionId/user/detail', [
  'headers' => [
  ],
    'auth' => ['<username>', '<password>'],
]);

echo $response->getBody();
```

```csharp Verified user with expanded reasons - All screening matches
using RestSharp;
using RestSharp.Authenticators;

var client = new RestClient("https://sandbox.trustly.one/api/v1/transactions/transactionId/user/detail");
client.Authenticator = new HttpBasicAuthenticator("<username>", "<password>");
var request = new RestRequest(Method.GET);

IRestResponse response = client.Execute(request);
```

```swift Verified user with expanded reasons - All screening matches
import Foundation

let credentials = Data("<username>:<password>".utf8).base64EncodedString()

let headers = ["Authorization": "Basic \(credentials)"]

let request = NSMutableURLRequest(url: NSURL(string: "https://sandbox.trustly.one/api/v1/transactions/transactionId/user/detail")! as URL,
                                        cachePolicy: .useProtocolCachePolicy,
                                    timeoutInterval: 10.0)
request.httpMethod = "GET"
request.allHTTPHeaderFields = headers

let session = URLSession.shared
let dataTask = session.dataTask(with: request as URLRequest, completionHandler: { (data, response, error) -> Void in
  if (error != nil) {
    print(error as Any)
  } else {
    let httpResponse = response as? HTTPURLResponse
    print(httpResponse)
  }
})

dataTask.resume()
```

### Identity verification failed - Does not perform screening

**Response**

```json
{
  "detail": {
    "verification": [
      {
        "result": 1,
        "verificationName": "Basic Verification",
        "reason": [
          {
            "description": "The following attributes could not be verified with a match: [TAX_ID, NAME, EMAIL, ADDRESS, PHONE, DATE_OF_BIRTH]",
            "code": 4
          }
        ]
      },
      {
        "result": 1,
        "verificationName": "Watchlist Screening"
      },
      {
        "result": 1,
        "verificationName": "Adverse Media Screening"
      },
      {
        "result": 1,
        "verificationName": "PEP Screening"
      }
    ],
    "attribute": [
      {
        "name": "name",
        "source": {
          "name": "Bank of Trustly",
          "type": 1
        },
        "createdAt": 1705516187371,
        "link": "user/name",
        "verification": [
          {
            "trustedEntity": "External Service #1",
            "verificationType": 4,
            "verificationMethod": 1,
            "result": 1,
            "verifiedAt": 1705516186882
          }
        ]
      },
      {
        "name": "email",
        "source": {
          "name": "Bank of Trustly",
          "type": 1
        },
        "createdAt": 1705516187348,
        "link": "user/email/0",
        "verification": [
          {
            "trustedEntity": "External Service #1",
            "verificationType": 5,
            "verificationMethod": 1,
            "result": 1,
            "verifiedAt": 1705516176223
          }
        ]
      },
      {
        "name": "phone",
        "source": {
          "name": "Bank of Trustly",
          "type": 1
        },
        "createdAt": 1705516187358,
        "link": "user/phone/0",
        "verification": [
          {
            "trustedEntity": "External Service #1",
            "verificationType": 4,
            "verificationMethod": 1,
            "result": 1,
            "verifiedAt": 1705516186882
          }
        ]
      },
      {
        "name": "address",
        "source": {
          "name": "Bank of Trustly",
          "type": 1
        },
        "createdAt": 1705516187364,
        "link": "user/address/0",
        "verification": [
          {
            "trustedEntity": "External Service #1",
            "verificationType": 4,
            "verificationMethod": 1,
            "result": 1,
            "verifiedAt": 1705516186882
          }
        ]
      },
      {
        "name": "dateOfBirth",
        "source": {
          "name": "Bank of Trustly",
          "type": 1
        },
        "createdAt": 1705516187390,
        "link": "user/dateOfBirth",
        "verification": [
          {
            "trustedEntity": "External Service #1",
            "verificationType": 4,
            "verificationMethod": 1,
            "result": 1,
            "verifiedAt": 1705516186882
          }
        ]
      },
      {
        "name": "taxId",
        "source": {
          "name": "External Service #1",
          "type": 4
        },
        "createdAt": 1705516187394,
        "link": "user/taxId",
        "verification": [
          {
            "trustedEntity": "External Service #1",
            "verificationType": 4,
            "verificationMethod": 1,
            "result": 1,
            "verifiedAt": 1705516186882
          }
        ]
      },
      {
        "name": "driverLicense",
        "source": {
          "name": "Globex",
          "type": 5
        },
        "createdAt": 1705516187356,
        "link": "user/driverLicense"
      }
    ]
  }
}
```

**SDK Code**

```python Identity verification failed - Does not perform screening
import requests

url = "https://sandbox.trustly.one/api/v1/transactions/transactionId/user/detail"

response = requests.get(url, auth=("<username>", "<password>"))

print(response.json())
```

```javascript Identity verification failed - Does not perform screening
const url = 'https://sandbox.trustly.one/api/v1/transactions/transactionId/user/detail';
const credentials = btoa("<username>:<password>");

const options = {method: 'GET', headers: {Authorization: `Basic ${credentials}`}};

try {
  const response = await fetch(url, options);
  const data = await response.json();
  console.log(data);
} catch (error) {
  console.error(error);
}
```

```go Identity verification failed - Does not perform screening
package main

import (
	"fmt"
	"net/http"
	"io"
)

func main() {

	url := "https://sandbox.trustly.one/api/v1/transactions/transactionId/user/detail"

	req, _ := http.NewRequest("GET", url, nil)

	req.SetBasicAuth("<username>", "<password>")

	res, _ := http.DefaultClient.Do(req)

	defer res.Body.Close()
	body, _ := io.ReadAll(res.Body)

	fmt.Println(res)
	fmt.Println(string(body))

}
```

```ruby Identity verification failed - Does not perform screening
require 'uri'
require 'net/http'

url = URI("https://sandbox.trustly.one/api/v1/transactions/transactionId/user/detail")

http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true

request = Net::HTTP::Get.new(url)
request.basic_auth("<username>", "<password>")

response = http.request(request)
puts response.read_body
```

```java Identity verification failed - Does not perform screening
import com.mashape.unirest.http.HttpResponse;
import com.mashape.unirest.http.Unirest;

HttpResponse<String> response = Unirest.get("https://sandbox.trustly.one/api/v1/transactions/transactionId/user/detail")
  .basicAuth("<username>", "<password>")
  .asString();
```

```php Identity verification failed - Does not perform screening
<?php
require_once('vendor/autoload.php');

$client = new \GuzzleHttp\Client();

$response = $client->request('GET', 'https://sandbox.trustly.one/api/v1/transactions/transactionId/user/detail', [
  'headers' => [
  ],
    'auth' => ['<username>', '<password>'],
]);

echo $response->getBody();
```

```csharp Identity verification failed - Does not perform screening
using RestSharp;
using RestSharp.Authenticators;

var client = new RestClient("https://sandbox.trustly.one/api/v1/transactions/transactionId/user/detail");
client.Authenticator = new HttpBasicAuthenticator("<username>", "<password>");
var request = new RestRequest(Method.GET);

IRestResponse response = client.Execute(request);
```

```swift Identity verification failed - Does not perform screening
import Foundation

let credentials = Data("<username>:<password>".utf8).base64EncodedString()

let headers = ["Authorization": "Basic \(credentials)"]

let request = NSMutableURLRequest(url: NSURL(string: "https://sandbox.trustly.one/api/v1/transactions/transactionId/user/detail")! as URL,
                                        cachePolicy: .useProtocolCachePolicy,
                                    timeoutInterval: 10.0)
request.httpMethod = "GET"
request.allHTTPHeaderFields = headers

let session = URLSession.shared
let dataTask = session.dataTask(with: request as URLRequest, completionHandler: { (data, response, error) -> Void in
  if (error != nil) {
    print(error as Any)
  } else {
    let httpResponse = response as? HTTPURLResponse
    print(httpResponse)
  }
})

dataTask.resume()
```