VoP Requesting PSP API

Requesting PSP API

API Reference

This API specification is a draft, pending the publication of the EPC rulebook first definitive version in September to incorporate minor necessary changes.

This API based service is for requesting PSPs in the Worldline VoP Hub ecosystem and EPC scheme. It allows to process the verification of a payee identity via a single request to the Worldline VoP Hub, based on identification data and account data entered bv the Requester (Payer) in any payment channel of the PSP.

Diagram of VoP processing steps for Requesting PSP role

Features

The service will route the request to the corresponding responding bank using its dedicated directory service, obtain or compute a matching result (depending on the source of account holder information data or direct match result), and return it to the requesting PSP under 3 seconds (or timeout).

The API supports name + IBAN matching (returning a corrected name in case of a close match) as well as additional identifiers when supported by the responding bank.

Process

  1. The Requesting bank gathers information from the Requester (payer) about the subject of the VoP (Payee), before initiating a payment from any Sepa Credit Transfer channel.
  2. The API client authenticates towards VoP Hub and sends a request containing the gathered identification data and account reference.
  3. The VoP Hub routes the request to the corresponding responding bank, part of its reachable VoP interfaces.
  4. The VoP Hub receives the match result or necessary account holder information from the responding PSP.
  5. The API client receives the resulting API response, which may include the corrected name according to the responding bank, in case of close matches. 
  6. The Requester is informed of the matching result, applies potential corrections and proceeds with payment initiation.

 

API Security

  • Authentication: The Worldline VoP Hub uses an authentication service that adheres to the OIDC standard protocol. 
    For enhanced security, the client must present an (qualified) SSL certificate to authenticate and sign token requests with a (qualified) seal certificate.
  • Secure Communication: All communications utilize MTLS with TLS 1.2 or higher, ensuring that data in transit is secure.
  • Data Integrity: Each API request and response is signed using a detached JWS signature, ensuring the integrity and authenticity of the data exchanged.
Enable "on this page" menu on doc section
On

VoP Responding PSP

Responding PSP

In the EPC VoP scheme

According to the EPC Document 218-23, "Verification Of Payee Scheme Rulebook" first version for public consultation :

The Responding PSP is the Participant that receives the VOP Request from the Requesting PSP and Instantly processes that VOP Request. 
The Responding PSP is also obliged to Instantly send a VOP Response containing a matching result about the received details of the Payment Counterparty or another reason, back to the Requesting PSP.
The Responding PSP may also be the Payment Counterparty.

Worldline provides API and file exchange based services for scheme participants who need to fulfil this role and intend to comply with all its rules.

The following simplified diagram represents how the Worldline VoP services operate on behalf of Responding PSPs in the EPC scheme :

Services

To produce match results on behalf of the Responding PSP, Worldline needs access to account related information of the subject of the Verification of Payee.

Two services are available for that purpose, and are detailed at the following locations in this developer portal :

  • Responding PSP API : a real time API definition to expose account holder data to the Worldline VoP Services.
  • Account Data Management : an API or file exchange based service for responding PSPs to delegate the storage of account holder data to the Worldline VoP services, then used to produce match results when answering VoP requests.

 

Enable "on this page" menu on doc section
Off

VoP Account Data Management

Account Data Management

API Reference

This API specification is a draft, pending the publication of the EPC rulebook first definitive version in September to incorporate minor necessary changes.

This API based service is provided to responding PSPs participating in the Worldline VoP Hub ecosystem. It allows responding PSPs to manage account holder identification data via the Worldline VoP Hub. It allows the Hub to use this locally stored data to provide answers to requesting PSPs, verifying the identity of payee for their payer user (Requester).

The data of the responding PSP is maintained and secured by Worldline on a mutualized infrastructure in the public cloud. Logical segregation and at rest data encryption is in place.

Features

The service, offers a CRUD real time interface to manage account holder identification data for the responding PSP.

The API supports storing multiple names, as well as additional identifiers when supported by the responding bank.

File based account data management

For clients wanting to avoid API integration, Worldline can put in place file based daily upload and updates of account holder identification data via CSV or JSON formats (see API format for bulk creation), transferred via dedicated SFTP channels, and via manual upload in our Backoffice in the future.  

API Security

  • Authentication: The Worldline VoP Hub uses an authentication service that adheres to the OIDC standard protocol. 
    For enhanced security, the client must present a (qualified) SSL certificate to authenticate and sign token requests with a (qualified) seal certificate.
  • Secure Communication: All communications utilize MTLS with TLS 1.2 or higher, ensuring that data in transit is secure.
  • Data Integrity: Each API request and response is signed using a detached JWS signature, ensuring the integrity and authenticity of the data exchanged. 
Enable "on this page" menu on doc section
Off

Release Notes: Recent Update

Recent Update

Version 2.19.0 to 2.21.0

What's New

POST /issuers/{issuerId}/cards/{cardReference}/validate-cvv

Validate the CVV

POST /issuers/{issuerId}/cards/external-cards/{issuerCardExternalReference}/validate-cvv

Validate the CVV by external reference

GET /issuers/{issuerId}/accounts/external-accounts/{issuerAccountExternalReference}/turnovers

Retrieve list of turnover for an account by external reference (beta)

The API returns current and historical turnover list of an account (for a monthly or annual turnover) according to turnover typ

GET /issuers/{issuerId}/accounts/{accountReference}/turnovers

Retrieve list of turnover for an account (beta)

The API returns current and historical turnover list of an account (for a monthly or annual turnover) according to turnover type

What's Changed

GET /issuers/{issuerId}/accounts/external-accounts/{issuerAccountExternalReference}/balance
Response:
  • Changed property data (object AccountBalance)
    • Added property previousCycleBalance (object)
    • Added property remainingAmountDue (object)
GET /issuers/{issuerId}/accounts/{accountReference}/balance

Response:

  • Changed property data (object AccountBalance)
    • Added property previousCycleBalance (object)
    • Added property remainingAmountDue (object)
GET /issuers/{issuerId}/accounts/{accountReference}/reserves
Response:
  • Changed property data (object -> array)
GET /issuers/{issuerId}/accounts/external-accounts/{issuerAccountExternalReference}/reserves
Response:
  • Changed property data (object -> array)
PATCH /issuers/{issuerId}/cards/{cardReference}/blocking-information
Request body :
  • Added property fraudProcess (string)
PATCH /issuers/{issuerId}/cards/external-cards/{issuerCardExternalReference}/blocking-information
Request body :
  • Added property fraudProcess (string)
POST /issuers/{issuerId}/cards/update-all-blocking-information
Request body :
  • Added property fraudProcess (string)
POST /issuers/{issuerId}/cards/update-all-blocking-information
Response:
  • Changed property data (array -> object)
POST /issuers/{issuerId}/credit-transfers
Request body :
  • Added property dueDate (string)
PATCH /issuers/{issuerId}/accounts/external-accounts/{issuerAccountExternalReference}
Request body :
  • Added property dunningCaseStatus (string)
  • Added property collectionCaseStatus (string)
PATCH /issuers/{issuerId}/accounts/{accountReference}
Request body :
  • Added property dunningCaseStatus (string)
  • Added property collectionCaseStatus (string)
GET /issuers/{issuerId}/accounts/external-accounts/{issuerAccountExternalReference}/operations
Response:
  • Changed property data (array)
    • Changed items (object Operation)
      • Changed property acquisitionMaterial (string)
        Added enum value:
        • MOBILE
GET /issuers/{issuerId}/accounts/external-accounts/{issuerAccountExternalReference}/statements/last/operations
Response:
  • Changed property data (array)
    • Changed items (object Operation)
      • Changed property acquisitionMaterial (string)
        Added enum value:
        • MOBILE
GET /issuers/{issuerId}/accounts/external-accounts/{issuerAccountExternalReference}/statements/next/operations

Response:

  • Changed property data (array)
    • Changed items (object Operation)
      • Changed property acquisitionMaterial (string)
        Added enum value:
        • MOBILE
GET /issuers/{issuerId}/accounts/external-accounts/{issuerAccountExternalReference}/statements/{cycleClosureDate}/operations
Response:
  • Changed property data (array)
    • Changed items (object Operation)
      • Changed property acquisitionMaterial (string)
        Added enum value:
        • MOBILE
GET /issuers/{issuerId}/accounts/{accountReference}/operations
Response:
  • Changed property data (array)
    • Changed items (object Operation)
      • Changed property acquisitionMaterial (string)
        Added enum value:
        • MOBILE
GET /issuers/{issuerId}/accounts/{accountReference}/statements/last/operations
Response:
  • Changed property data (array)
    • Changed items (object Operation)
      • Changed property acquisitionMaterial (string)
        Added enum value:
        • MOBILE
GET /issuers/{issuerId}/accounts/{accountReference}/statements/next/operations
Response:
  • Changed property data (array)
    • Changed items (object Operation)
      • Changed property acquisitionMaterial (string)
        Added enum value:
        • MOBILE
GET /issuers/{issuerId}/accounts/{accountReference}/statements/{cycleClosureDate}/operations
Response:
  • Changed property data (array)
    • Changed items (object Operation)
      • Changed property acquisitionMaterial (string)
        Added enum value:
        • MOBILE
POST /issuers/{issuerId}/cards/block-all
Request body :
  • New optional properties:
    • blockingReason
POST /issuers/{issuerId}/cards/external-cards/{issuerCardExternalReference}/block
Request body :
  • New optional properties:
    • blockingReason
POST /issuers/{issuerId}/cards/{cardReference}/block
Request body :
  • New optional properties:
    • blockingReason
PATCH /issuers/{issuerId}/cards/{cardReference}/blocking-information
Request body :
  • New optional properties:
    • blockingReason
PATCH /issuers/{issuerId}/cards/external-cards/{issuerCardExternalReference}/blocking-information
Request body :
  • New optional properties:
    • blockingReason
GET /issuers/{issuerId}/transactions/{transactionId}
Response:
  • Changed property data (object Transaction)
    • Added property virtualServiceCardNumber (string)
    • Added property multipleClearingSequenceCount (integer)
    • Added property processorId (string)
PATCH /issuers/{issuerId}/accounts/external-accounts/{issuerAccountExternalReference}
Request body :
  • Added property accountOutgoingCreditTransferFeature (object)
GET /issuers/{issuerId}/accounts/external-accounts/{issuerAccountExternalReference}
Response:
  • Changed property data (object Account)
    • Added property accountOutgoingCreditTransferFeature (object)
GET /issuers/{issuerId}/accounts/external-accounts/{issuerAccountExternalReference}/account-guarantor
Response:
  • Changed property data (object Customer)
    • Added property correspondenceName (string)
GET /issuers/{issuerId}/accounts/external-accounts/{issuerAccountExternalReference}/account-owner
Response:
  • Changed property data (object Customer)
    • Added property correspondenceName (string)
PATCH /issuers/{issuerId}/accounts/{accountReference}
Request body :
  • Added property accountOutgoingCreditTransferFeature (object)
GET /issuers/{issuerId}/accounts/{accountReference}
Response:
  • Changed property data (object Account)
    • Added property accountOutgoingCreditTransferFeature (object)
GET /issuers/{issuerId}/accounts/{accountReference}/account-guarantor
Response:
  • Changed property data (object Customer)
    • Added property correspondenceName (string)
GET /issuers/{issuerId}/accounts/{accountReference}/account-owner
Response:
  • Changed property data (object Customer)
    • Added property correspondenceName (string)
GET /issuers/{issuerId}/card-contracts/external-card-contracts/{issuerCardContractExternalReference}/cardholder
Response:
  • Changed property data (object Customer)
    • Added property correspondenceName (string)
GET /issuers/{issuerId}/card-contracts/{cardContractReference}/cardholder
Response:
  • Changed property data (object Customer)
    • Added property correspondenceName (string)
GET /issuers/{issuerId}/cards/external-cards/{issuerCardExternalReference}/card-events
Parameters:

Changed: eventType in query

GET /issuers/{issuerId}/cards/{cardReference}/card-events
Parameters:

Changed: eventType in query

GET /issuers/{issuerId}/contracts/external-contracts/{issuerContractExternalReference}/contract-owner
Response:
  • Changed property data (object Customer)
    • Added property correspondenceName (string)
GET /issuers/{issuerId}/contracts/{contractReference}/contract-owner
Response:
  • Changed property data (object Customer)
    • Added property correspondenceName (string)
PUT /issuers/{issuerId}/customers/external-customers/{issuerCustomerExternalReference}
Request body :
  • Added property correspondenceName (string)
PATCH /issuers/{issuerId}/customers/external-customers/{issuerCustomerExternalReference}
Request body :
  • Added property correspondenceName (string)
GET /issuers/{issuerId}/customers/external-customers/{issuerCustomerExternalReference}
Response:
  • Changed property data (object Customer)
    • Added property correspondenceName (string)
PUT /issuers/{issuerId}/customers/{customerReference}
Request body :
  • Added property correspondenceName (string)
PATCH /issuers/{issuerId}/customers/{customerReference}
Request body :
  • Added property correspondenceName (string)
GET /issuers/{issuerId}/customers/{customerReference}
Response:
  • Changed property data (object Customer)
    • Added property correspondenceName (string)
POST /search-transactions
Request body :
  • Added property virtualServiceCardNumber (string)
Response:
  • Changed property data (array)
    • Changed items (object Transaction)
      • Added property virtualServiceCardNumber (string)
POST /issuers/{issuerId}/contracts/{contractReference}/replace-customer
Request body :
  • New required properties:

    • previousCustomerIdentifier
    • targetCustomer
  • Changed property targetCustomer (object ReplaceCustomerInContractRequest.TargetCustomer)

    • Changed property newCustomer (object ReplaceCustomerInContractRequest.Customer)
      • New required properties:

        • addresses
        • firstName
        • lastName
      • Changed property addresses (array)

        • Changed items (object ReplaceCustomerInContractRequest.Address)
          • New required properties:
            • addressLabel
            • addressType
POST /issuers/{issuerId}/contracts/external-contracts/{issuerContractExternalReference}/replace-customer
Request body :
  • New required properties:

    • previousCustomerIdentifier
    • targetCustomer
  • Changed property targetCustomer (object ReplaceCustomerInContractRequest.TargetCustomer)

    • Changed property newCustomer (object ReplaceCustomerInContractRequest.Customer)
      • New required properties:

        • addresses
        • firstName
        • lastName
      • Changed property addresses (array)

        • Changed items (object ReplaceCustomerInContractRequest.Address)
          • New required properties:
            • addressLabel
            • addressType
POST /issuers/{issuerId}/companies
Request body :
  • Changed property addresses (array)
    • Changed items (object CreateConsumerContractRequest.Address)
      • Changed property addressUsages (array)
        • Changed items (object CreateConsumerContractRequest.AddressUsage)
          • Added property entityRequestCorrelationId (string)
          • Added property entityType (string)
POST /issuers/{issuerId}/cards/external-cards/{issuerCardExternalReference}/block-and-replace
Request body :
  • Changed property blockCardRequest (object BlockCardRequest)

    • New optional properties:
      • blockingReason
  • Changed property replaceCardRequest (object ReplaceCardRequest)

    • Changed property cardContract (object ReplaceCardRequest.CardContract)
      • Changed property cardHolder (object ModifyCustomerRequest)
        • Added property correspondenceName (string)
POST /issuers/{issuerId}/cards/external-cards/{issuerCardExternalReference}/replace
Request body :
  • Changed property cardContract (object ReplaceCardRequest.CardContract)
    • Changed property cardHolder (object ModifyCustomerRequest)
      • Added property correspondenceName (string)
POST /issuers/{issuerId}/cards/{cardReference}/block-and-replace
Request body :
  • Changed property blockCardRequest (object BlockCardRequest)

    • New optional properties:
      • blockingReason
  • Changed property replaceCardRequest (object ReplaceCardRequest)

    • Changed property cardContract (object ReplaceCardRequest.CardContract)
      • Changed property cardHolder (object ModifyCustomerRequest)
        • Added property correspondenceName (string)
POST /issuers/{issuerId}/cards/{cardReference}/replace
Request body :
  • Changed property cardContract (object ReplaceCardRequest.CardContract)
    • Changed property cardHolder (object ModifyCustomerRequest)
      • Added property correspondenceName (string)
GET /issuers/{issuerId}/contracts/external-contracts/{issuerContractExternalReference}/accounts
Response:
  • Changed property data (array)
    • Changed items (object Account)
      • Added property accountOutgoingCreditTransferFeature (object)
GET /issuers/{issuerId}/contracts/{contractReference}/accounts
Response:
  • Changed property data (array)
    • Changed items (object Account)
      • Added property accountOutgoingCreditTransferFeature (object)
GET /issuers/{issuerId}/customers
Response:
  • Changed property data (array)
    • Changed items (object Customer)
      • Added property correspondenceName (string)
GET /issuers/{issuerId}/customers/external-customers/{issuerCustomerExternalReference}/accounts
Response:
  • Changed property data (array)
    • Changed items (object Account)
      • Added property accountOutgoingCreditTransferFeature (object)
GET /issuers/{issuerId}/customers/{customerReference}/accounts
Response:
  • Changed property data (array)
    • Changed items (object Account)
      • Added property accountOutgoingCreditTransferFeature (object)
GET /issuers/{issuerId}/accounts/external-accounts/{issuerAccountExternalReference}/contract
Response:
  • Changed property data (object Contract)
    • Changed property accounts (array)
      • Changed items (object Account)
        • Added property accountOutgoingCreditTransferFeature (object)
    • Changed property contractCustomers (array)
      • Changed items (object Customer)
        • Added property correspondenceName (string)
GET /issuers/{issuerId}/accounts/{accountReference}/contract
Response:
  • Changed property data (object Contract)
    • Changed property accounts (array)
      • Changed items (object Account)
        • Added property accountOutgoingCreditTransferFeature (object)
    • Changed property contractCustomers (array)
      • Changed items (object Customer)
        • Added property correspondenceName (string)
GET /issuers/{issuerId}/card-contracts/external-card-contracts/{issuerCardContractExternalReference}/contract
Response:
  • Changed property data (object Contract)
    • Changed property accounts (array)
      • Changed items (object Account)
        • Added property accountOutgoingCreditTransferFeature (object)
    • Changed property contractCustomers (array)
      • Changed items (object Customer)
        • Added property correspondenceName (string)
GET /issuers/{issuerId}/card-contracts/{cardContractReference}/contract
Response:
  • Changed property data (object Contract)
    • Changed property accounts (array)
      • Changed items (object Account)
        • Added property accountOutgoingCreditTransferFeature (object)
    • Changed property contractCustomers (array)
      • Changed items (object Customer)
        • Added property correspondenceName (string)
GET /issuers/{issuerId}/corporate-contracts/{contractReference}/corporate-employee-accounts/{accountReference}
Response:
  • Changed property data (object CorporateEmployeeAccount)
    • Changed property account (object Account)
      • Added property accountOutgoingCreditTransferFeature (object)
GET /issuers/{issuerId}/corporate-contracts/{contractReference}/corporate-employee-accounts/external-accounts/{issuerAccountExternalReference}
Response:
  • Changed property data (object CorporateEmployeeAccount)
    • Changed property account (object Account)
      • Added property accountOutgoingCreditTransferFeature (object)
GET /issuers/{issuerId}/corporate-contracts/external-contracts/{issuerContractExternalReference}/corporate-employee-accounts/external-accounts/{issuerAccountExternalReference}
Response:
  • Changed property data (object CorporateEmployeeAccount)
    • Changed property account (object Account)
      • Added property accountOutgoingCreditTransferFeature (object)
GET /issuers/{issuerId}/corporate-contracts/external-contracts/{issuerContractExternalReference}/corporate-employee-accounts/{accountReference}
Response:
  • Changed property data (object CorporateEmployeeAccount)
    • Changed property account (object Account)
      • Added property accountOutgoingCreditTransferFeature (object)
GET /issuers/{issuerId}/contracts/external-contracts/{issuerContractExternalReference}
Response:
  • Changed property data (object Contract)
    • Changed property accounts (array)
      • Changed items (object Account)
        • Added property accountOutgoingCreditTransferFeature (object)
    • Changed property contractCustomers (array)
      • Changed items (object Customer)
        • Added property correspondenceName (string)
GET /issuers/{issuerId}/contracts/{contractReference}
Response:
  • Changed property data (object Contract)
    • Changed property accounts (array)
      • Changed items (object Account)
        • Added property accountOutgoingCreditTransferFeature (object)
    • Changed property contractCustomers (array)
      • Changed items (object Customer)
        • Added property correspondenceName (string)
GET /issuers/{issuerId}/corporate-contracts/{contractReference}
Response:
  • Changed property data (object CorporateContract)
    • Changed property rootAccount (object Account)
      • Added property accountOutgoingCreditTransferFeature (object)
    • Changed property contractCustomers (array)
      • Changed items (object Customer)
        • Added property correspondenceName (string)
    • Changed property corporateContractEntities (array)
      • Changed items (object CorporateContractEntity)
        • Changed property account (object Account)
          • Added property accountOutgoingCreditTransferFeature (object)
    • Changed property corporateEmployeeAccounts (array)
      • Changed items (object CorporateEmployeeAccount)
        • Changed property account (object Account)
          • Added property accountOutgoingCreditTransferFeature (object)
GET /issuers/{issuerId}/corporate-contracts/external-contracts/{issuerContractExternalReference}
Response:
  • Changed property data (object CorporateContract)
    • Changed property rootAccount (object Account)
      • Added property accountOutgoingCreditTransferFeature (object)
    • Changed property contractCustomers (array)
      • Changed items (object Customer)
        • Added property correspondenceName (string)
    • Changed property corporateContractEntities (array)
      • Changed items (object CorporateContractEntity)
        • Changed property account (object Account)
          • Added property accountOutgoingCreditTransferFeature (object)
    • Changed property corporateEmployeeAccounts (array)
      • Changed items (object CorporateEmployeeAccount)
        • Changed property account (object Account)
          • Added property accountOutgoingCreditTransferFeature (object)
POST /issuers/{issuerId}/contracts/create-consumer-contract
Request body :
  • Changed property customers (array)
    • Changed items (object CreateConsumerContractRequest.Customer)
      • Added property correspondenceName (string)
      • Changed property addresses (array)
        • Changed items (object CreateConsumerContractRequest.Address)
          • Changed property addressUsages (array)
            • Changed items (object CreateConsumerContractRequest.AddressUsage)
              • Added property entityRequestCorrelationId (string)
              • Added property entityType (string)
  • Changed property addCardsAccounts (object CreateConsumerContractRequest.AddCardsAccounts)
    • Changed property accounts (array)
      • Changed items (object CreateConsumerContractRequest.Account)
        • Added property accountOutgoingCreditTransferFeature (object)
    • Changed property cardContracts (array)
      • Changed items (object CreateConsumerContractRequest.CardContract)
        • Added property requestCorrelationId (string)
POST /issuers/{issuerId}/contracts/external-contracts/{issuerContractExternalReference}/add-cards-accounts
Request body :
  • Changed property customers (array)
    • Changed items (object CreateConsumerContractRequest.Customer)
      • Added property correspondenceName (string)
      • Changed property addresses (array)
        • Changed items (object CreateConsumerContractRequest.Address)
          • Changed property addressUsages (array)
            • Changed items (object CreateConsumerContractRequest.AddressUsage)
              • Added property entityRequestCorrelationId (string)
              • Added property entityType (string)
  • Changed property accountHierarchy (object AddCardsAccountsRequest.AccountHierarchy)
    • Changed property accounts (array)
      • Changed items (object CreateConsumerContractRequest.Account)
        • Added property accountOutgoingCreditTransferFeature (object)
  • Changed property cardContracts (array)
    • Changed items (object CreateConsumerContractRequest.CardContract)
      • Added property requestCorrelationId (string)
POST /issuers/{issuerId}/contracts/search
Response:
  • Changed property data (array)
    • Changed items (object Contract)
      • Changed property accounts (array)
        • Changed items (object Account)
          • Added property accountOutgoingCreditTransferFeature (object)
      • Changed property contractCustomers (array)
        • Changed items (object Customer)
          • Added property correspondenceName (string)
POST /issuers/{issuerId}/contracts/{contractReference}/add-cards-accounts
Request body :
  • Changed property customers (array)
    • Changed items (object CreateConsumerContractRequest.Customer)
      • Added property correspondenceName (string)
      • Changed property addresses (array)
        • Changed items (object CreateConsumerContractRequest.Address)
          • Changed property addressUsages (array)
            • Changed items (object CreateConsumerContractRequest.AddressUsage)
              • Added property entityRequestCorrelationId (string)
              • Added property entityType (string)
  • Changed property accountHierarchy (object AddCardsAccountsRequest.AccountHierarchy)
    • Changed property accounts (array)
      • Changed items (object CreateConsumerContractRequest.Account)
        • Added property accountOutgoingCreditTransferFeature (object)
  • Changed property cardContracts (array)
    • Changed items (object CreateConsumerContractRequest.CardContract)
      • Added property requestCorrelationId (string)
GET /issuers/{issuerId}/customers/external-customers/{issuerCustomerExternalReference}/contracts
Response:
  • Changed property data (array)
    • Changed items (object Contract)
      • Changed property accounts (array)
        • Changed items (object Account)
          • Added property accountOutgoingCreditTransferFeature (object)
      • Changed property contractCustomers (array)
        • Changed items (object Customer)
          • Added property correspondenceName (string)
GET /issuers/{issuerId}/customers/{customerReference}/contracts
Response:
  • Changed property data (array)
    • Changed items (object Contract)
      • Changed property accounts (array)
        • Changed items (object Account)
          • Added property accountOutgoingCreditTransferFeature (object)
      • Changed property contractCustomers (array)
        • Changed items (object Customer)
          • Added property correspondenceName (string)
GET /issuers/{issuerId}/companies/{customerReference}/corporate-contracts
Response:
  • Changed property data (array)
    • Changed items (object CorporateContract)
      • Changed property rootAccount (object Account)
        • Added property accountOutgoingCreditTransferFeature (object)
      • Changed property contractCustomers (array)
        • Changed items (object Customer)
          • Added property correspondenceName (string)
      • Changed property corporateContractEntities (array)
        • Changed items (object CorporateContractEntity)
          • Changed property account (object Account)
            • Added property accountOutgoingCreditTransferFeature (object)
      • Changed property corporateEmployeeAccounts (array)
        • Changed items (object CorporateEmployeeAccount)
          • Changed property account (object Account)
            • Added property accountOutgoingCreditTransferFeature (object)
GET /issuers/{issuerId}/companies/external-customers/{issuerCustomerExternalReference}/corporate-contracts
Response:
  • Changed property data (array)
    • Changed items (object CorporateContract)
      • Changed property rootAccount (object Account)
        • Added property accountOutgoingCreditTransferFeature (object)
      • Changed property contractCustomers (array)
        • Changed items (object Customer)
          • Added property correspondenceName (string)
      • Changed property corporateContractEntities (array)
        • Changed items (object CorporateContractEntity)
          • Changed property account (object Account)
            • Added property accountOutgoingCreditTransferFeature (object)
      • Changed property corporateEmployeeAccounts (array)
        • Changed items (object CorporateEmployeeAccount)
          • Changed property account (object Account)
            • Added property accountOutgoingCreditTransferFeature (object)
POST /search-corporate-contracts
Response:
  • Changed property data (array)
    • Changed items (object CorporateContract)
      • Changed property rootAccount (object Account)
        • Added property accountOutgoingCreditTransferFeature (object)
      • Changed property contractCustomers (array)
        • Changed items (object Customer)
          • Added property correspondenceName (string)
      • Changed property corporateContractEntities (array)
        • Changed items (object CorporateContractEntity)
          • Changed property account (object Account)
            • Added property accountOutgoingCreditTransferFeature (object)
      • Changed property corporateEmployeeAccounts (array)
        • Changed items (object CorporateEmployeeAccount)
          • Changed property account (object Account)
            • Added property accountOutgoingCreditTransferFeature (object)

What's Deleted

No API deleted.

What's Deprecated

GET /issuers/{issuerId}/accounts/external-accounts/{issuerAccountExternalReference}/turnover-information

Retrieve turnover information for an account by external reference (beta)

The API returns current and historical turnover information of an account (for a monthly or annual turnover).

GET /issuers/{issuerId}/accounts/{accountReference}/turnover-information

Retrieve turnover information for an account (beta)

The API returns current and historical turnover information of an account (for a monthly or annual turnover).

Enable "on this page" menu on doc section
On

VoP Responding PSP API

Responding PSP API

API Reference

This API specification is a draft, pending the publication of the EPC rulebook first definitive version in September to incorporate minor necessary changes.

This API definition is provided for responding PSPs participating in the Worldline VoP Hub ecosystem and EPC scheme. It allows the Hub to dynamically retrieve account holder identification data to provide answers to requesting PSPs, verifying the identity of payee for their payer user (Requester).

The data of the responding PSP can remain under its control and in the desired infrastructure.

Diagram of VoP processing steps for Responding PSP role

Features

The service, exposed by the responding PSP, will receive an account identifier and information about the requesting PSP performing the VoP request, and return account holder identification data to the Worldline VoP Hub, which will in turn compute a matching result to answer the VoP request.

The API supports returning multiple names, as well as additional identifiers when supported by the responding bank.

API Security

  • Authentication: The Worldline VoP Hub uses an authentication service that adheres to the OIDC standard protocol. 
    For enhanced security, the client must present an (qualified) SSL certificate to authenticate and sign token requests with a (qualified) seal certificate.
  • Secure Communication: All communications utilize MTLS with TLS 1.2 or higher, ensuring that data in transit is secure.
  • Data Integrity: Each API request and response is signed using a detached JWS signature, ensuring the integrity and authenticity of the data exchanged.
Enable "on this page" menu on doc section
Off

VoP Requesting PSP Role

Requesting PSP

In the EPC VoP scheme

According to the EPC Document 218-23, "Verification Of Payee Scheme Rulebook" first version for public consultation :

The Requesting PSP is the Participant with whom or through whom the Requester intends to make its Account-based Payment. The Requesting PSP receives a Payment Account Number, a Name of the Payment Counterparty and potentially in addition an unambiguous identification code about a Payment Counterparty from the Requester.
The Requesting PSP may also be the Requester.
Upon explicit request by the Requester or due to the laws applicable to the Requesting PSP, this Participant must initiate the request to verify these details about the Payment Counterparty as provided by the Requester.
The Requesting PSP Instantly sends a VOP Request to the PSP managing the Payment Account of the indicated Payment Counterparty.

Worldline provides API based services for scheme participants who need to fulfil this role and intend to comply with all the scheme rules. 

The following processing diagram represents the interactions of the Requesting PSP with the Requester and the WL VoP Services :

Services

To let Requesting PSPs send requests to other EPC scheme participants, the Worldline VoP solution offers API and file based services, which are detailed at the following location in the developer portal :

Enable "on this page" menu on doc section
Off