Skip to main content
Verification of Payee (VoP) lets you verify that the name on a customer’s external account matches the actual account holder at the receiving bank before sending funds.

Supported account types

VoP is available for:
Account typeCurrencyIdentifier
IBANEURiban
UK Sort Code + Account NumberGBPgb

How it works

  1. Create an external account with account_owner_name set
  2. Call the verify endpoint to trigger a VoP check
  3. Poll the external account until the verification completes
  4. Read the account_verification field on the external account response

Trigger a verification

The verify endpoint does not require an Idempotency-Key header. If a verification is already in progress for the external account, the request will return a 409 Conflict error.
Request
curl --location --request POST 'https://api.bridge.xyz/v0/customers/<customer-id>/external_accounts/<external-account-id>/verify' \
--header 'Content-Type: application/json' \
--header 'Api-Key: <api-key>'
Response
{
  "account_type": "iban",
  "account_verification": {
    "iban": {
      "match_level": "pending",
      "reason_code": null,
      "validated_account_owner_name": null
    },
    "requested_at": "2026-01-15T12:00:00.000Z",
    "completed_at": null
  }
}

Reading the result

Once the verification completes, the account_verification object on the external account will be populated with the result:
{
  "id": "c8948ce6-26ac-4d37-a336-742f961a76f3",
  "customer_id": "23c2d400-4c69-4c5a-b31a-88d035d7e8ae",
  "currency": "eur",
  "account_type": "iban",
  "account_owner_name": "Ada Lovelace",
  "account_verification": {
    "iban": {
      "match_level": "match",
      "reason_code": null,
      "validated_account_owner_name": "Ada Lovelace"
    },
    "requested_at": "2026-01-15T12:00:00.000Z",
    "completed_at": "2026-01-15T12:00:03.421Z"
  }
}

Match levels

Match levelDescription
pendingVerification is still in progress.
matchThe account owner name matches the account holder at the receiving bank.
close_matchThe name is a close but not exact match (e.g. minor spelling differences). The validated_account_owner_name field will contain the name on file at the bank.
no_matchThe account owner name does not match the account holder.
errorThe verification could not be completed (e.g. the receiving bank does not support VoP).

Response fields

The account_verification object contains:
FieldTypeDescription
iban or gbobjectVerification result keyed by account type.
iban.match_level / gb.match_levelstringOne of pending, match, close_match, no_match, error.
iban.reason_code / gb.reason_codestring | nullAdditional context from the receiving bank when the result is not a full match.
iban.validated_account_owner_name / gb.validated_account_owner_namestring | nullThe name on file at the receiving bank (returned on close_match or no_match).
requested_atstring (ISO 8601)When the verification was requested.
completed_atstring (ISO 8601) | nullWhen the verification completed. Null while pending.

Prerequisites

  • The external account must have account_owner_name set.
  • The external account must be of type iban or gb.
  • No other verification may already be in progress for that external account.

Error cases

StatusCondition
400Account type not supported for VoP, or account_owner_name is missing.
409A verification is already in progress for this external account.