User profiles

User profiles: what you need to know

User profiles are an essential part of our platform's verification process. Once a user has passed the verification process with us, we generate a profile containing the user's primary key and identity document.

Enriching User Profiles

Our profiles are designed to grow over time. Every time the same user returns to our platform, we enrich the user's profile to give you a better understanding of their history with us.

Profile Insights

Based on the user's history, we have developed different data products to help you better understand the user's profile. These include:

User's Mapped Merits

This feature helps you understand how complete a new platform user is. Our latest update provides information on how many and which merits the user has successfully completed.

User's History

This summary provides merchants with an understanding of whether the user consistently went through our system without issues or had problems.

Merit History

This feature answers the question: What have other operational teams decided about this user? It includes the last two statuses the user has had with all merchants they have verified with. It is the beginning of our fraud network since it enables you to understand the final decision per vertical and to see if another merchant recently rejected the user after initially onboarding them.

User's Contact Information

This feature answers the question: How do I contact this user? It allows you to obtain the user's contact information without any extra steps.

Profile Risk Score

Leveraging state-of-the-art data graph technology, our fraud engine analyzes millions of data points, including environmental signals, user merits, and behavior data, to identify patterns of fraudulent activity. The resulting risk score is a normalized value ranging from 0 to 100, with a score of 100 representing the maximum likelihood of a profile being fraudulent.

To detect fraudulent activity, our system flags various indicators that may suggest suspicious activity. These include the use of VPNs or untrusted networks, as well as the use of IP addresses or emails known to be associated with fraudulent activity. Other indicators that may be flagged include a user's name appearing similar to known fraudsters' names or aliases or a document that has been rejected or reviewed multiple times before by different users or merchants.

Our system can also detect fraudulent activity through the analysis of email addresses and documents. This includes the use of email addresses or documents associated with fraudulent activity, as well as the use of email addresses or documents that have been seen in multiple merchants.

Calling the Insights through API

You can also consume these products' information programmatically through our API.

Get Profile ID

Description

This endpoint takes a verification ID as input and returns the associated profile ID. The profile ID can then be used as input for the other endpoints in this documentation.

Example request

Method: GET

curl --location --request GET 'https://api.getmati.com/reusage/v1/verification/{{verification_id}}/profile' \
--header 'Authorization: Bearer {{access_token}}'

Example response

{
    "responseStatus": "SUCCESS",
    "profileId": "US|DRIVING-LICENSE|1234567890"
}

Response fields

  • responseStatus (string): Indicates whether the request was successful or not. Possible values are "SUCCESS" and "ERROR".
  • profileId (string): The associated profile ID.

Potential use cases

  • After completing a verification process with MetaMap, use this endpoint to retrieve the profile ID of the verified user for further analysis or follow-up actions.

Get Profile Risk Score

Method: POST

Description

This endpoint takes a profile ID as input and returns an array of the last 5 verifications associated with the profile, along with their corresponding risk scores. It also provides an overall risk score for the profile, calculated using advanced machine learning models that take into account dozens of verification-related variables.

Example request

curl --location --request POST 'https://api.getmati.com/reusage/v1/profile/risk' \
--header 'Authorization: Bearer {{access_token}}' \
--header 'Content-Type: application/json' \
--data '{"profileId":"{{profile_id}}"}'

Example response

{
  "responseStatus": "SUCCESS",
  "profileRisk": false,
  "riskScore": 3.0,
  "transactions": [
    {
      "completedAt": "2023-03-01T11:26:36Z",
      "verificationId": "63ff31c99605df001da6be6e",
      "risk": false,
      "riskScore": 2.0,
      "message": null,
      "reasonCode": null}
  ]
}

Response fields

  • responseStatus (string): Indicates whether the request was successful or not. Possible values are "SUCCESS" and "ERROR".
  • profileRisk (boolean): Indicates whether the profile is considered risky or not based on the risk score. Possible values are true and false.
  • riskScore (float): The risk score associated with the profile.
  • transactions (array): An array of objects representing the last 5 verifications associated with the profile, each with the following fields:
    • completedAt (string): The date and time when the verification was completed.
    • verificationId (string): The verification ID associated with the verification.
    • risk (boolean): Indicates whether the verification was considered risky or not based on its risk score. Possible values are true and false.
    • riskScore (float): The risk score associated with the verification.
    • message (string): A message associated with the verification, if any.
    • reasonCode (string): A reason code associated with the verification, if any.

Potential use cases

  • Determine the level of risk associated with a user's profile before deciding to conduct business with them.
  • Use the detailed information about each of the last 5 verifications associated with a profile to identify patterns or anomalies that could indicate potential fraud or other risks.

Get Verification Statuses

Method: POST

Description

This endpoint takes a profile ID as input and returns a list of all verifications associated with the profile, along with their statuses and any relevant details. It also provides information on the countries and industries of the companies that have previously seen the user, including MetaMap's partner network.

Example request

curl --location --request POST 'https://api.getmati.com/reusage/v1/profile/status/verification' \
--header 'Authorization: Bearer {{access_token}}' \
--header 'Content-Type: application/json' \
--data '{"profileId":"{{profile_id}}"}'

Example response

{
  "responseStatus": "SUCCESS",
  "verificationStatus": [
    {
      "verificationId": "63ff31c99605df001da6be6e",
      "merchantVertical": "Lending",
      "country": "US",
      "statusChangeHistory": [
        {
          "status": "reviewNeeded",
          "date": "2023-03-01T11:26:36Z"
        }
      ]
    }
  ]
}

Response fields

  • responseStatus (string): Indicates whether the request was successful or not. Possible values are "SUCCESS" and "ERROR".
  • verificationStatus (array): An array of objects representing the verifications associated with the profile, each with the following fields:
    • verificationId (string): The verification ID associated with the verification.
    • merchantVertical (string): The industry associated with the verification.
    • country (string): The country associated with the verification.
    • statusChangeHistory (array): An array of objects representing the status changes associated with the verification, each with the following fields:
      • status (string): The status associated with the verification. Possible values include "reviewNeeded", "verified", and "rejected".
      • date (string): The date and time when the status change occurred.

Potential use cases

  • Track the progress of verifications associated with a particular user's profile.
  • Identify which countries and industries a user has interacted with in the past, which could be useful for targeted marketing or business development.

Get Contact

Method: POST

Description

This endpoint takes a profile ID as input and returns lists of contact phone numbers, emails, and addresses that have been associated with this profile from various verifications with different companies.

Example request

curl --location --request POST 'https://api.getmati.com/reusage/v1/profile/contact' \
--header 'Authorization: Bearer {{access_token}}' \
--header 'Content-Type: application/json' \
--data '{"profileId":"{{profile_id}}"}'

Example Response

{
    "responseStatus": "SUCCESS",
    "contactInformation": {
        "contactNumbers": [
            "11111111111111",
            "22222222222222"
        ],
        "emails": [
            "[email protected]",
            "[email protected]"
        ],
        "addresses": []
    }
}

Response fields

  • responseStatus: The status of the response.
  • email: The email addresses associated with the profile.
  • phoneNumber: The phone numbers associated with the profile.
  • address: The addresses associated with the profile.

Potential Use Cases

  • A company wants to verify the contact information of a user before approving their application
  • A company wants to update the contact information of a user in their records based on the latest verification results.

Profile Merits

Method: POST

Description

Returns a summarized list of all the successful merits obtained from the user's previous interactions.

Example Request

curl --location --request POST 'https://api.getmati.com/reusage/v1/profile/merit' \
--header 'Authorization: Bearer {{access_token}}' \
--header 'Content-Type: application/json' \
--data '{"profileId":"{{profile_id}}"}'

Example Response

{
    "responseStatus": "SUCCESS",
    "uniqueMerits": [
        "Document Verification",
        "Email Check",
        "Anti-Money Laundering"
    ]
}


Response fields

  • responseStatus: The status of the response.
  • uniqueMerits: The list of unique merits obtained from the user's previous interactions.

Profile Verifications

Method: POST

Description

Returns a list of all the previous verifications from this user, alongside the latest status, if it was the first interaction, and the identity IDs for each one.

Example request

curl --location --request POST 'https://api.getmati.com/reusage/v1/profile/verification' \
--header 'Content-Type: application/json' \
--header 'Authorization: Bearer {{access_token}}' \
--data '{"profileId":"{{profile_id}}"}'

Example Response

{
    "responseStatus": "SUCCESS",
    "verifications": [
        {
            "id": "63ff31c99605df001da6be6e",
            "created": "2023-03-01T11:06:49Z",
            "status": "reviewNeeded",
            "firstVerification": false,
            "identityId": "63ff31c99605df001da6be6c"
        }
    ]
}

Response fields

  • responseStatus: The status of the response.
  • verifications: The list of previous verifications from the user, alongside the latest status, if it was the first interaction, and the identity IDs for each one.
    • id: The ID of the verification.
    • created: The timestamp when the verification was created.
    • status: The status of the verification.
    • firstVerification: Whether or not this was the first verification for the user.
    • identityId: The ID of the identity associated with the verification.

Profile History

Method: POST

Description

Returns a summary of the amount of times that we have seen the user, when was the first time we saw this user and the count of each interaction's status.

Example Request

curl --location --request POST 'https://api.getmati.com/reusage/v1/profile/history' \
--header 'Authorization: Bearer {{access_token}}' \
--header 'Content-Type: application/json' \
--data '{"profileId":"{{profile_id}}"}'

Example Response

{
    "responseStatus": "SUCCESS",
    "userHistory": {
        "dateOfFirstVerification": "2021-07-31T08:15:35Z",
        "totalVerifications": 11,
        "totalManualReview": 3,
        "totalRejected": 0,
        "totalNumberOfMerchants": 2,
        "totalVerified": 8
    }
}

Response fields

  • responseStatus (string): Indicates the status of the API response. Possible values are "SUCCESS" and "ERROR".
  • userHistory (object): Contains the summary of the user's history.
    • dateOfFirstVerification (string): The date and time of the user's first verification.
    • totalVerifications (integer): The total number of verifications for this user.
    • totalManualReview (integer): The total number of verifications that were flagged for manual review.
    • totalRejected (integer): The total number of verifications that were rejected.
    • totalNumberOfMerchants (integer): The total number of merchants that have interacted with this user.
    • totalVerified (integer): The total number of verifications that were successfully completed.