Skip to main content
Premium

Verification of Payee API

Version

Introduction

Verification of Payee (VoP) Single API allows you to verify a payee account within the Eurozone by providing a payee IBAN account number and payee name to verify the name against the name of the account holder in the receiving bank. This information can help you in deciding if the payment will reach the correct recipient and is safe to process.

Use Cases and Features

Payee verification: Perform a real-time check of payee when creating an account transfer to a payee within the Eurozone to verify that the correct creditor account is used.

Creditor onboarding: When adding to or updating creditor information in your creditors’ list, perform a verification of the creditor account to ensure, that the account is owned by your creditor.

Features

  • Real-time verification of account holders in banks across the Eurozone.
  • Request ID may be used in fraud investigations towards sending and receiving banks.

Markets

The API is offered in a pilot version to customers operating in the Finnish or Irish market.

Getting started

Authentication

To access a resource, the client must first request a Client Credentials Grant token by calling the token endpoint specified in the OpenId configuration (token_endpoint). The request should be an x-www-form-urlencoded POST with the following parameters:

  • grant_type - client_credentials.
  • scope - should include a scope the client has access to; for the Verification of Payee API, it MUST contain the "accounts" keyword.
  • client_id - the ID received after onboarding.

Example Request:

curl --location --request POST 'https://example.com/oauth2/token' \
--header 'Content-Type: application/x-www-form-urlencoded' \
--data-urlencode 'grant_type=client_credentials' \
--data-urlencode 'client_id=1233456' \
--data-urlencode 'scope=accounts'

Example Response:

{
  "token_type":"Bearer",
  "access_token":"A****",
  "metadata":"m:",
  "expires_in":3600,
  "consented_on":1588933990,
  "scope":"accounts"
}

Using the Access Token:

The access_token received is valid for 1 hour and must be included in the request header on all subsequent API requests:

Authorization: Bearer <access_token>

Implementation Details

Environment Description

As described in the External API Platform onboarding guidelines, the Verification of Payee API will be available in two environments:

Sandbox: This environment will be used for initial integration tests and will provide mocked data.

Production: This environment will provide access to real data.

Sandbox URLs

Token Endpoint: https://sandbox-api.danskebank.com/sandbox-corporate/api/dk/business/oauth2/token

Verification of Payee Endpoint: https://sandbox-api.danskebank.com/sandbox-corporate/api/verificationofpayee

Production URLs

Token Endpoint: https://api.danskebank.com/corporate/api/dk/business/oauth2/token

Verification of Payee Endpoint: https://api.danskebank.com/corporate/api/verificationofpayee

Headers

HeaderDescription
AuthorizationBearer <access_token>
acceptapplication/json
Content-Typeapplication/json

Request Body

FieldTypeRequiredDescription
IbanstringYesThe IBAN of the payee to verify.
NamestringYesThe name of the payee to verify.

Request Example

curl --location --request POST '/VerificationOfPayee' \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--header 'Accept: application/json' \
-d '{
    "iban": "FI123456789",
    "name": "John Smith"
  }'

Response Body

FieldTypeRequiredDescription
matchedNamestringNoThe payee's name. Only returned in case of CLOSE MATCH.
additionalInfoAdditionalInfoNoOptional additional information.
partyNameMatchCodeYesThe result code indication degree of name match.
payeeBicstringYesBIC of the payee.
requestIdstringYesUnique identifier for Verification of Payee request.

AdditionalInfo

ValueDescription
NAME_TOO_SHORTPersonal names need at least a first name and a last name
NAME_TOO_LONGname cannot be longer than 140 characters
BANK_NOT_FOUNDThe payee's bank is not supporting Verification of Payee
OPTED_OUTThe payee opted out
NOT_FOUNDThe payee's bank could not find the specified IBAN
BIC_NOT_FOUNDThe IBAN doesn't belong to any BIC - most likely because the IBAN doesn't exist
ACCOUNT_INVALIDThe provided IBAN is invalid

Code

ValueDescription
MTCHMATCH - The provided name matches the name of the account holder.
CMTCCLOSE MATCH - The provided name almost matches the name of the account holder.
NMTCNO MATCH - The provided name does not match the name of the account holder.
NOAPNOT APPLICABLE - The Verification of Payee check could not be executed.

Success Response

HTTP Status: 200 OK

{
  "matchedName": "John Doe",
  "additionalInfo": null,
  "partyNameMatch": "MTCH",
  "accountType": "UNKNOWN",
  "payeeBic": "ABAHDJ2A",
  "requestId": "abc123-def456"
}

Error Responses

HTTP StatusDescription
400Bad Request
401Unauthorized
500Internal Server Error
504Gateway Timeout
FieldTypeDescription
titlestringA short, human-readable summary of the problem type.
statusCodenumberHTTP status code.
detailsstringA human-readable explanation specific to this occurrence of the problem.

Response Body

{
  "title": "Bad Request",
  "statusCode": 400,
  "detail": "The provided IBAN is invalid"
}

Architectural constraints

State
Active

Technical constraints

Static URL
/premium-apis/verification-of-payee-api
Environment(s)
PROD, SANDBOX