> ## Documentation Index
> Fetch the complete documentation index at: https://docs.paysway.io/llms.txt
> Use this file to discover all available pages before exploring further.

# SEPA countries (VoP)

The EPC Verification of Payee (VoP) scheme enables real-time verification of IBAN account details across SEPA countries.
This synchronous verification service validates account holder names against the receiving bank's records using IBAN identifiers.

**Processing mode:** synchronous

## Verification capabilities

* Account status: `ACTIVE`, `NOT_FOUND`
* Beneficiary name match status: `FULL_MATCH`, `PARTIAL_MATCH`, `NO_MATCH`
* Optional beneficiary name disclosure (in cases of `PARTIAL_MATCH`)

<Accordion title="Supported banks">
  All banks participating in the EPC Verification of Payee (VoP) scheme are supported. For the complete list of participating banks with their BICs and readiness dates, please refer to the [EPC VOP Register of Participants](https://www.europeanpaymentscouncil.eu/sites/default/files/participants_export/vop/vop.pdf).
</Accordion>

<Accordion title="Required fields">
  <ParamField path="country" type="string" required>
    ISO 3166-1 alpha-2 country code
  </ParamField>

  <ParamField path="creditorAccount.id.value" type="string" required>
    IBAN value
  </ParamField>

  <ParamField path="creditorAccount.id.type" type="string" required>
    Must be `IBAN`
  </ParamField>

  <ParamField path="creditor.name" type="string" required>
    Account holder name for matching
  </ParamField>
</Accordion>

## Scheme response codes

The VoP scheme returns specific response codes that indicate the verification outcome.
These codes are mapped to high-level status fields.

| schemeResponseCode | Description     | accountStatus | nameMatchStatus |
| ------------------ | --------------- | ------------- | --------------- |
| `EPC_VOP_MTCH`     | Match           | `ACTIVE`      | `FULL_MATCH`    |
| `EPC_VOP_CMTC`     | Close Match     | `ACTIVE`      | `PARTIAL_MATCH` |
| `EPC_VOP_NMTC`     | No Match        | `ACTIVE`      | `NO_MATCH`      |
| `EPC_VOP_NOAP`     | Unable to match | `NOT_FOUND`   |                 |

<Tip>
  You can either use `schemeResponseCode` directly, or rely on the derived `accountStatus` and `accountHolderName.matchStatus` fields in your integration.
</Tip>

## Examples

### Full match

The provided name matches the account holder exactly.

```json Request theme={null}
{
  "details": {
    "country": "IE",
    "creditorAccount": {
      "id": {
        "value": "IE76IPBS99077134812287",
        "type": "IBAN"
      }
    },
    "creditor": {
      "name": "Kaleb McDonald"
    }
  }
}
```

```json Response theme={null}
{
  "id": "4baa21f5-4df8-4ecf-999e-cd57e454ed9c",
  "createdDate": "2025-11-10T00:22:22.061784Z",
  "updatedDate": "2025-11-10T00:22:22.061784Z",
  "state": "COMPLETED",
  "result": {
    "accountStatus": "ACTIVE",
    "accountHolderName": {
      "matchStatus": "FULL_MATCH"
    },
    "schemeResponseCode": "EPC_VOP_MTCH"
  }
}
```

### Close match

The provided name is similar but not an exact match. The verified name is disclosed to help correct the input.

```json Request theme={null}
{
  "details": {
    "country": "IE",
    "creditorAccount": {
      "id": {
        "value": "IE76IPBS99077134812287",
        "type": "IBAN"
      }
    },
    "creditor": {
      "name": "Kalleb McDonald"
    }
  }
}
```

```json Response theme={null}
{
  "id": "b2a18dce-df01-4930-99ea-0e993c267ce9",
  "createdDate": "2025-11-10T00:22:22.556903Z",
  "updatedDate": "2025-11-10T00:22:22.556903Z",
  "state": "COMPLETED",
  "result": {
    "accountStatus": "ACTIVE",
    "accountHolderName": {
      "matchStatus": "PARTIAL_MATCH",
      "verifiedName": "KALEB MCDONALD"
    },
    "schemeResponseCode": "EPC_VOP_CMTC"
  }
}
```

### No match

The provided name does not match the account holder.

```json Request theme={null}
{
  "details": {
    "country": "IE",
    "creditorAccount": {
      "id": {
        "value": "IE76IPBS99077134812287",
        "type": "IBAN"
      }
    },
    "creditor": {
      "name": "Kyle McDonald"
    }
  }
}
```

```json Response theme={null}
{
  "id": "3857dc10-c36d-4e77-8d2f-61bf129505d2",
  "createdDate": "2025-11-10T00:22:22.947131Z",
  "updatedDate": "2025-11-10T00:22:22.947131Z",
  "state": "COMPLETED",
  "result": {
    "accountStatus": "ACTIVE",
    "accountHolderName": {
      "matchStatus": "NO_MATCH"
    },
    "schemeResponseCode": "EPC_VOP_NMTC"
  }
}
```

### Unable to match

The VoP check cannot be performed. This may occur due to technical or regulatory reasons, such as the beneficiary's bank not participating in VoP or temporary technical issues.

```json Request theme={null}
{
  "details": {
    "country": "IE",
    "creditorAccount": {
      "id": {
        "value": "IE06IPBS99077134812286",
        "type": "IBAN"
      }
    },
    "creditor": {
      "name": "Kaleb McDonald"
    }
  }
}
```

```json Response theme={null}
{
  "id": "7e11c3cf-2701-4a48-afc9-26af01f6ea47",
  "createdDate": "2025-11-10T00:22:23.329360Z",
  "updatedDate": "2025-11-10T00:22:23.329360Z",
  "state": "COMPLETED",
  "result": {
    "accountStatus": "NOT_FOUND",
    "schemeResponseCode": "EPC_VOP_NOAP"
  }
}
```
