Hub

Trustfull's API endpoints are quite flexible and you can request a range of services from a single endpoint

One of the possible use cases is Onboarding

What is Onboarding?

With Onboarding you can combine multiple Trustfull products to accurately score user interactions, indicating perceived risk on a 0-1000 scale.

Request

Following an example of a request with the claim "score":

curl --request POST \
     --url https://api.fido.id/1.0/hub \
     --header 'Accept: application/json' \
     --header 'Content-Type: application/json' \
     --header 'x-api-key: [your_app_key]' \
     --data '
{
     "customer_id": "your_customer_id",
     "claims": [
          "phone",
          "email",
          "name",
          "score"
     ],
     "phone_number": "39349xxxxxxx",
     "email": "t***@trustfull.com",
     "first_name": "Tony",
     "last_name": "Stark"
}'

🚧

Mandatory fields

Field can become mandatory depending on the provided claim.
When providing a set of claims the Trustfull product API will perform validation on multiple fields, depending on the request.

🚧

Claim Score requirements

Onboarding product can be activated only when at least two other products are included in the request

AVAILABLE CLAIMS

Claims are a way to request a combination of products:

ClaimDescription
phoneEnable Phone Number Intelligence
emailEnable Email Address Analytics
nameEnable Name
deviceEnable Device Detection
browserEnable Browser Fingerprint (Trustfull JS required)
ipEnable IP Address Data
scoreEnable Onboarding

Response

Following an example of the response:

{
   "resolution_id": "...",
    "customer_id": "...",
    "device_request_time": "...",
    "webhook_url": "...",
    "claims": [
        "phone",
        "email",
        "name",
        "device",
        "ip",
        "browser"
    ],
    "phone": {
      ...
    },
    "email": {
      ...
    },
    "device": {
      ...
    },
    "ip": {
      ...
    },
    "browser": {
      ...
    },
    "score":{
      "score": 735,
      "score_cluster": "high",
      "reason_codes": "RC001,TC002,TP002"
    }
}

The "score" block is specific for the claim "score".

While all other products will still produce a specific score this block will display a score build using a model that takes into account all singles modules.

It's more than just a sum of the individual scores as it takes into account cross-product signals, and it's trained.

nametype
scoreint

A number ranging from 0 to 1000

ex: 649
score_clusterstring

A cluster summarizing the score above.

ex: very_low, low, review, high, very_high
reason_codesstring

Coma separated risk and trust signal for all the products.

ex: RC001,TC002,TP002

For more information about reason codes you can go to Reason Codes

For a full description of the fields you can look at the individual products:

FAQ

πŸ“˜

Why the score is not an average of all the single scores I can find in the products?

The Onboarding found under the "score" block is much more than a mathematical average of individual products score.
It takes into account "cross-product" digital signals that might indicate consistency (or inconsistency) between multiple products.
While individual product can produce a positive score strong inconsistency between product can be a solid indicator of a synthetic identity.

πŸ“˜

What happens if I don't specify the claim "score" in the hub request?

The request is valid even without the claim "score". If you don't provide the claim "score" the product Onboarding will not be active, and you will receive
only raw data and single product scores without the global identity score.

πŸ“˜

What happens if I pass the same customer_id on multiple requests?

The customer_id is needed for the identity resolution. You must provide a different customer_id for each request.
If the same customer_id is used twice you will receive a 400 error

πŸ“˜

How long does it take to get notified via the webhook endpoint?

The notification will be sent within 5 minutes of the API call. Multiple calls may be sent in case of an update, the last call will always contain the full set of information. After 5 minutes you can consider the result as final.

πŸ“˜

Why did I get a 401 "Unauthorized" response?

This may happen if you correctly populated the API key field but the key is either incorrect or not enabled.

Language
URL
Click Try It! to start a request and see the response here!