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

# Verification of Payee (VoP) Overview

The Inventi Verification of Payee (VoP) service validates account ownership before you initiate a payment. Reduce fraud and prevent misdirected payments with real-time verification for financial institutions and payment service providers (PSPs).

## Use Cases

<CardGroup cols={2}>
  <Card title="VoP Requests PSP" icon="paper-plane">
    Send verification requests to confirm account holder details before executing payments
  </Card>

  <Card title="VoP Responding PSP" icon="shield-check">
    Provide account ownership data to validate incoming verification requests
  </Card>
</CardGroup>

## Core APIs

The VoP service provides two complementary APIs:

<CardGroup cols={2}>
  <Card title="VoP API" icon="bolt" href="/vop/api/verification/verify-account-holder">
    Real-time verification of IBAN and account holder details
  </Card>

  <Card title="Account Data Import API" icon="database" href="/vop/api/account-management/batch-import-of-account-entries">
    Manage the account holders for verification requests
  </Card>
</CardGroup>

## Getting Started

<Steps>
  <Step title="Authenticate">
    Obtain an OAuth 2.0 bearer token and whitelist your IP address

    [View authentication guide →](/vop/authentication)
  </Step>

  <Step title="Integrate the API">
    For requesting PSPs, integrate the VoP verification endpoint. For responding PSPs, import your account data first.
  </Step>

  <Step title="Test and Go Live">
    Test in the sandbox environment before moving to production
  </Step>
</Steps>

## API Details

<AccordionGroup>
  <Accordion title="VoP API (Requesting PSP) - Real-Time Verification" icon="bolt">
    This API allows you to verify whether a specified IBAN corresponds to a particular payee before executing a transaction.

    ### Verification Methods

    <Tabs>
      <Tab title="Name-Based Check">
        **Purpose**: Verify individuals or legal entities based on account holder names

        **Use case**: Validating individual consumers or business names

        **Returns**: MATCH, CLOSE\_MATCH, NO\_MATCH, or CANNOT\_VERIFY

        ### Verification Outcomes

        * **MATCH**: The provided details exactly match the account holder information
        * **CLOSE\_MATCH**: The details are similar but not an exact match (e.g., minor spelling differences)
        * **NO\_MATCH**: The details do not match the account holder
        * **CANNOT\_VERIFY**: Unable to verify (account not found or verification unavailable)
      </Tab>

      <Tab title="Legal Identifier Check">
        **Purpose**: Verify legal entities using official registration identifiers (VAT, LEI, etc.).

        **Use case**: Validating registered businesses with government IDs

        **Returns**: MATCH, NO\_MATCH, or CANNOT\_VERIFY

        ### Verification Outcomes

        * **MATCH**: The provided details exactly match the account holder information
        * **NO\_MATCH**: The details do not match the account holder
        * **CANNOT\_VERIFY**: Unable to verify (account not found or verification unavailable)
      </Tab>
    </Tabs>

    <Note>
      This API is designed for real-time use during payment initiation. Response times are optimized for immediate user feedback.
    </Note>
  </Accordion>

  <Accordion title="Account Data Import API - Data Management" icon="database">
    This API enables Responding PSPs to manage the dataset against which VoP checks are validated.

    ### Supported Operations

    <CardGroup cols={3}>
      <Card title="Import" icon="file-import" href="/vop/api/account-management/batch-import-of-account-entries">
        Add new IBAN-to-holder mappings (single or batch)
      </Card>

      <Card title="Update" icon="pen-to-square" href="/vop/api/account-management/patch-account-details-by-iban">
        Modify existing records (single or batch by clientId)
      </Card>

      <Card title="Delete" icon="trash" href="/vop/api/account-management/batch-delete-of-accounts-by-ibans-or-client-ids-1">
        Remove outdated records (single or batch by clientId)
      </Card>
    </CardGroup>

    <Info>
      All imported data is stored in an internal Accounts database and becomes immediately available for matching.
    </Info>

    <Warning>
      **No validation is performed** on input data. The system does not verify whether IBANs are genuine or names are formatted correctly. Ensure data quality before import.
    </Warning>
  </Accordion>
</AccordionGroup>

## Development Roadmap

<Info>
  **Coming Soon**: Batch request functionality for VoP verification is currently under development and will be released in a future update.
</Info>

## Error Handling

All API endpoints return standardized error responses. This guide currently covers general error types. Specific use case errors will be documented in future updates.

### Common Error Codes

* `401 Unauthorized`: Invalid or expired bearer token
* `403 Forbidden`: IP address not whitelisted
* `404 Not Found`: Account not found in the system
* `422 Unprocessable Entity`: Invalid request parameters
* `500 Internal Server Error`: System error (contact support)

## Next Steps

<CardGroup cols={2}>
  <Card title="Authentication" icon="key" href="/vop/authentication">
    Set up OAuth 2.0 authentication and IP whitelisting
  </Card>

  <Card title="Verify Account Holder" icon="shield-check" href="/vop/api/verification/verify-account-holder">
    Start verifying IBAN and account holder details
  </Card>

  <Card title="Import Account Data" icon="database" href="/vop/api/account-management/batch-import-of-account-entries">
    Import account data for verification matching
  </Card>
</CardGroup>
