---
title: "Verify an account"
method: POST
path: "/accounts/verify"
tags: ["accounts"]
---

# Verify an account

`POST /accounts/verify`

Allows for verification of most global accounts by passing in an account object containing either bank routing and account numbers or an IBAN.

## Query parameters

- `expand` string

## Headers

- `Authorization` string, required

## Request body

- object
  - `merchantId` number, double, required — A unique Trustly merchant identifier.
  - `account` AccountsVerifyPostRequestBodyContentApplicationJsonSchemaAccount, required
    - `accountNumber` string
    - `routingNumber` string
    - `iban` string — IBAN (International Bank Account Number) is an internationally agreed system of identifying bank accounts across national borders
    - `nameOnAccount` string — The name of the account owner for name verification purposes.

## Response `200`

OK

- FinancialInstitutionAccount — Financial Institution account
  - `nameOnAccount` string — Account owner name.
  - `name` string, required — Account name.
  - `type` '-1' | '0' | '1' | '2', required — Financial Institution Account Type: * `-1`: Unknown * `0`: Other * `1`: Checking * `2`: Savings
  - `profile` '-1' | '0' | '1' | '2', required — Financial Institution Account Profile: * `-1`: Unknown * `0`: Other * `1`: Personal * `2`: Business
  - `verification` FinancialInstitutionAccountVerification, required
    - `verified` boolean, required — true if the account is verified; false otherwise.
    - `type` '1' | '2' | '3', required — Verification Type: * `1`: Manual - The account was verified with manual account verification. For example, Manual Electronic Check and Micro Challenge Deposit. * `2`: Online Banking verification - The Account was verified using the Trustly Online Banking application. * `3`: Database verification - The Account was verified using the Trustly database or a Third-Party Service.
    - `hasEnoughFunds` boolean, required — If true, there is enough balance in account.
    - `verificationDate` integer, required — The date and time the verification was completed as a UNIX timestamp.
    - `score` '0' | '1' | '2' | '3' | '4' | '5' | '6' | '7' | '8' | '9' | '10' — Verification Score: * `0`: Invalid input. The account or routing number are invalid. (Verified Mapping = false) * `1`: There is a strong indication that the account is invalid. (Verified Mapping = false) * `2`: There are active non-bankable returns on this account that are less than 3 years old. (Verified Mapping = false) * `3`: There are administrative returns on this account. (Verified Mapping = false) * `4`: The format appears to be suspicious. (Verified Mapping = false) * `5`: There is no data on this account or format. (Verified Mapping = false) * `6`: We have not seen this account, but the format appears to be valid. (Verified Mapping = true) * `7`: We have seen this account but have not received a final disposition on the transaction. (Verified Mapping = true) * `8`: We have seen this account, but not in the last 6 months, and have seen no returns associated with the account. (Verified Mapping = true) * `9`: We have seen this account in the last 6 months and have seen no returns associated with the account. (Verified Mapping = true) * `10`: This account has been directly validated with/by the financial institution or 3rd party. We have the highest confidence that this account is valid. (Verified Mapping = true)
    - `thirdPartyScore` '0' | '100' | '200' | '300' | '400' | '500' | '600' | '700' | '800' | '900' | '999' — Verification Third-Party Score: * `0`: Failed RT validation. (Verified Mapping = 0) * `100`: The supplier has a strong indication that this account is invalid. (Verified Mapping = 1) * `200`: The supplier has active non-bankable debt(s) on this account that are less than 3 years old. (Verified Mapping = 2) * `300`: The supplier has administrative returns on this account. (Verified Mapping = 3) * `400`: The supplier does not have Neg data on this account, but the format appears to be suspicious. (Verified Mapping = 4) * `500`: The supplier does not have data on this account or format. (Verified Mapping = 5) * `600`: The supplier has not seen this account, but the format appears valid. (Verified Mapping = 6) * `700`: The supplier has seen this account, but did not receive a final disposition on the transaction. (Verified Mapping = 7) * `800`: The supplier has seen this account, but not in the last 6 months. (Verified Mapping = 8) * `900`: The supplier has seen this account in the last 6 months. (Verified Mapping = 9) * `999`: The supplier has the highest confidence that this account is valid. (Verified Mapping = 10)
    - `numberOfTries` number, double — Number of tries allowed.
    - `numberOfAttemptsLeft` number, double — Number of remaining attempts.
  - `accountNumber` string, required — Last 4 digits of the bank account selected
  - `routingNumber` string — Bank Routing Number provided by the selected account.
  - `iban` string — IBAN (International Bank Account Number) is an internationally agreed system of identifying bank accounts across national borders
  - `token` string, required — Account token for the returned account. This can be used to identify duplicate bank accounts in your system.
  - `accountId` string
  - `providerId` string
  - `paymentProvider` PaymentProvider — Details of the Financial institution
    - `paymentProviderId` string — A unique identifier for the Payment Provider.
    - `type` number, double
    - `name` string, required — Name of the payment provider
    - `instantPayoutAvailable` boolean — Whether payment provider supports instant payout.
    - `subType` '1000' | '2000' | '2001' — Financial Institution Account Type: * `1000`: Online Banking * `2000`: Manual Entry * `2001`: Manual Entry with Challenge Deposit
    - `swift` string
    - `address` Address — Valid mailing or billing address associated with the customer
      - `address1` string — Address line 1 (e.g., street or PO Box)
      - `address2` string — Address line 2 (e.g., apartment, suite or unit number)
      - `city` string — City, district, town or village
      - `state` string — State, province or region code
      - `zip` string — ZIP or Postal Code
      - `country` string, required — 2 character [ISO Country code](https://en.wikipedia.org/wiki/ISO_3166-1_alpha-2)
    - `country` 'US' | 'CA' | 'UK' | 'DE' | 'AU' — 2-letter ISO country code of the financial institution
    - `instantPayment` boolean
  - `verified` boolean, required — If true, the account is verified.
  - `country` 'US' | 'CA' | 'UK' | 'DE' | 'AU' — 2-character ISO code of the country for the bank account that was selected. Currently only the US, CA, UK, DE, and AU are supported.

## Other responses

- `400` — One of the request parameters is invalid (sending an invalid amount format string for example).

---

[API](https://skmtc.dev/trustly/apis/api.md) · [All operations](https://skmtc.dev/trustly/apis/api/llms.txt) · [OpenAPI document](https://skmtc-service-production.skmtc.workers.dev/v1/apis/trustly/api/revisions/2dad675032f1/schema)
