Verification of Payee

Create Payee Verification

Changed on

Verify that a bank account belongs to the named person or company before initiating a transfer.

This endpoint implements the Verification of Payee (VoP) name-check service, mandatory under the SEPA Instant Payments Regulation (IPR) for SCT and SCT Inst transfers since 9 October 2025. A real-time request is sent to the recipient's bank to compare the submitted account holder name against their records.

Typical flow:

  1. Call this endpoint before creating an external transfer.
  2. Inspect the result.matchLevel in the response and decide whether to proceed.
  3. Attach the returned verificationId as vopId in the external transfer creation request.
  4. Verifications are valid for 60 minutes (status: ACTIVE). If re-verification is requested within that window, the same verificationId is returned.

Match level guidance:

matchLevelMeaningRecommended action
MATCHName and IBAN align perfectlyProceed with confidence
CLOSE_MATCHMinor discrepancy (e.g. typo)Review result.accountHolder for the suggested correct name
NO_MATCHName belongs to a different personAbort — high fraud risk
UNAVAILABLERecipient bank unreachable or unsupportedProceed with caution
post/vop/verification

Request

Request body

accountHolderstring required

The name of the account holder to verify against the recipient bank.

type'VERIFICATION_OF_PAYEE' required

The type of verification to perform. Must be VERIFICATION_OF_PAYEE.

Example request

{
  "accountHolder": "Ame Corporation GmbH",
  "vop": {
    "accountNumber": "DE89370400440532013000"
  }
}

Response

Ok

verificationIdstring uuid

Unique identifier of the payee verification. Use this value as vopId when initiating an external transfer.

status'ACTIVE' | 'INACTIVE'

Lifecycle status of the verification record.

  • ACTIVE — The verification is valid and can be referenced in a transfer (within 60 minutes of creation).
  • INACTIVE — The verification has expired or has already been consumed.
activeUntilstring date-time nullable

The timestamp until which this verification is considered valid and can be attached to a transfer. Verifications expire 60 minutes after creation.

createdAtstring date-time

Timestamp when the verification was created.

Example response

{
  "request": {
    "accountHolder": "Ame Corporation GmbH",
    "accountNumber": "DE89370400440532013000"
  },
  "result": {
    "accountHolder": "ACME Corporation GMBH",
    "resultDetails": "The name is a close match."
  }
}

Changes