# Verification of Payee - Requester

{% hint style="warning" %}
This Service is currently under development and documentation is still subject to changes and improvements.
{% endhint %}

## Service description <a href="#service-description" id="service-description"></a>

This service verifies if the creditor's account number matches the associated name.

## Request <a href="#request" id="request"></a>

`POST` <https://connect.lhv.com/payment/vop-request>

### Header

| Name           | Value              |
| -------------- | ------------------ |
| Content-Type   | `application/json` |
| Client-Code    | `customer value`   |
| Client-Country | `customer value`   |

### Body

| Name           | M/O | Description                                                                   |
| -------------- | --- | ----------------------------------------------------------------------------- |
| Identification | M   | Account number of the account to do a name verification on. Must be **IBAN**. |
| Name           | M   | The name string to be checked for a match.                                    |

#### Example

```json
{
  "Identification": "IT76L0300203280825973665778",
  "Name": "Account Name"
}
```

## Response

Verification of Payee Requester Response can be requested via the [Messages service](https://docs.lhv.com/home/connect/services/messages).

{% hint style="info" %}
HTTP Header Message-Response-Type: VERIFICATION\_OF\_PAYEE
{% endhint %}

### Header

| Name         | Value                                              |
| ------------ | -------------------------------------------------- |
| Content-Type | `application/json`                                 |
| X-Bank-Code  | <p><code>LHVUK</code></p><h4 id="body-1"><br></h4> |

### Body

| Name                      | M/O | Description                                                                                                                                                                                                                  |
| ------------------------- | --- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| OriginalMessageId         | M   |                                                                                                                                                                                                                              |
| <p>Data.Answer</p><p></p> | M   | <p>Indicator if the verification has produced a full match or not.</p><p><strong>Confirmed</strong> - Verification has produced a full match</p><p><strong>Rejected</strong> - Verification did not produce a full match</p> |
| Data.Identification       | M   | Account number from the request.                                                                                                                                                                                             |
| Data.ActualName           | O   | Actual name if the name in the request is a close match.                                                                                                                                                                     |
| Data.Name                 | M   | Name from the request.                                                                                                                                                                                                       |
| ReasonCode                | M   | Find list of reason codes [here](#reason-code-values).                                                                                                                                                                       |
| Description               | M   | Find list of reason code descriptions [here](#rerason-code-values).                                                                                                                                                          |
| Errors                    | O   |                                                                                                                                                                                                                              |

#### Example

{% tabs %}
{% tab title="Successful" %}

```json
{
  "OriginalMessageId": "...",
  "Data": {
    "Answer": "string",
    "Identification": "string",
    "ActualName": "string",
    "Name": [
      "string"
    ],
    "ReasonCode": "string",
    "Description": "string"
  },
  "Errors": null
}
```

{% endtab %}

{% tab title="Error" %}

```json
{
  "OriginalMessageId": "...",
  "Data": null,
  "Errors": [
    {
      "ErrorCode": "...",
      "ErrorMessage": "..."
    }
  ]
}
```

{% endtab %}
{% endtabs %}

## Example of the flow

<img src="https://2266620947-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FHGywduAxJuxV3reZhASh%2Fuploads%2FaqIfE5qu7Z7r150KxcP5%2Ffile.excalidraw.svg?alt=media&#x26;token=d0169bab-6280-4654-a115-0a04aee51a87" alt="Verification of Payee Requester" class="gitbook-drawing">

<table><thead><tr><th width="111">Step</th><th width="293">Action</th><th>Description</th></tr></thead><tbody><tr><td>1.</td><td>Initiating Verification of Payee Request</td><td>VOP request can be initiated before making a payment to verify the account details of the intended recipient.</td></tr><tr><td>2.</td><td>Forwarding Request to the Responder</td><td>LHV receives the Request and forwards it to the Responder for processing, ensuring accurate and timely validation of the account information.</td></tr><tr><td>3.</td><td>LHV will receive Response to the previously initiated Request</td><td>VOP Responder processes the Request and returns a Response. This Response indicates whether the provided account details match the account holder's information on record.</td></tr><tr><td>4.</td><td>LHV will forward response back to the PSP</td><td>Received Response is also forwarded back to the PSP.</td></tr></tbody></table>

### Reason code values

| ReasonCode | Description                                                                                                                                                                                       |
| ---------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| MTCH       | It's a match. The account name and details match those on record.                                                                                                                                 |
| NMTC       | The name you provided doesn't match the name for the account. You can still continue with the payment, but your money may be sent to the wrong account.                                           |
| CMTC       | The name is a close match. The actual name on the account is (...).                                                                                                                               |
| NOAP       | We are currently unable to verify the account details. You can either try again in a few minutes or continue your payment without verification. If you continue, please double check the details. |
| TECH       | We are currently unable to verify the account details. You can either try again in a few minutes or continue your payment without verification. If you continue, please double check the details. |
