Verify an account

Learn how to verify an account and what data is returned in the response.

Before you verify your user's bank account details, ensure you have an access_token.

To verify a user's bank account, make a request to verification/v1/verify including the user's full name. The Verification API will compare it with the account holder name(s) returned by the bank, as authorised by the user during the authentication and consent flow.

The request body includes the following:

FieldTypeDescription
namestringName that needs to be verified with an account
export ACCESS_TOKEN="users-access-token"
export name="Will Johnson"

curl --location --request POST 'https://api.truelayer.com/verification/v1/verify' \
--header 'Content-Type: application/json' \
--header 'Authorization: Bearer $ACCESS_TOKEN' \
--data-raw '{"name": "'"$name"'"}'

The response contains the following parameters:

ParameterTypeDescription
verifiableboolA boolean that describes if a user’s account is verifiable or not. If true, then the account is a verifiable CURRENT or SAVINGS account. We can only verify accounts that either have an IBAN or have an account number and a sort code.
verifiedboolIndicates whether there is a successful match.
match_scoreintegerScore from 0 to 100 indicating confidence that provided and retrieved names refer to the same entity.
currencystringAssociated currency of the account.
account_holder_namearrayThe name of the account holder returned by the bank. One account may have multiple account holders. For example, a joint bank account.
provider_idstringThe name of the bank.
ibanstringAccount's IBAN number.
swift_bicstringSwift code of account.
account_numberstringThe account number.
sort_codestringSort code of account.
failure_descriptionstringDescribes the reason for failure.
failure_codestringMachine-readable code.
account_typestringType of the account returned by the bank.
display_namestringName of the account returned by the bank.
{
    "verified": true,
    "account_holder_name": "William Johnson",
    "match_score": 89,  
    "report": [
        {
            "verifiable": true,
            "currency": "GBP",
            "provider_id": "ob-monzo",
            "account_type": "CURRENT",
            "account_holders": [
                {
                    "name": "William Johnson",
                    "verified": true,
                    "match_score": 89
                }
            ],
            "display_name": "1st Account",
            "iban": "GB70MONZ03952941110044",
            "swift_bic": "MONZGB26",
            "account_number": "53920022",
            "sort_code": "04-11-34"
        },
        {
            "verifiable": false,
            "failure_description": "Credit cards cannot be verified by this service.",
            "failure_code": "CREDIT_CARD",
            "provider_id": "ob-monzo",
            "account_type": "CREDIT_CARD",
            "display_name": "Gold card"
        }
    ]
}

🚧

Previously, the Verification API was hosted on https://verification.truelayer.com/v1/verification. This is still supported for now but will be removed soon.