Scope
VOP applies to EUR Recipients and Payouts using SCT or SCT Inst, and for users holding User-Owned Accounts. In terms of Recipient properties, this means:Currency
isEUR
PayoutMethod
isLocalBankTransfer
Country
is a SEPA country
Note – Only applies to User-Owned AccountsIn the first instance, VOP will only be carried out for users who hold a User-Owned Virtual Account. In 2026 Mangopay will make VOP available for all platforms for anti-fraud purposes.If your platform does not offer User-Owned Accounts to your users, your payouts are not impacted by Verification of Payee.
VOP result API fields
The following endpoints will be enriched with the Verification of Payee in the API response:- POST Create a Payout, if the owner of the payout’s
BankAccountId
has at least one User-Owned Virtual Account - POST Create a Recipient, if the platform offers User-Owned Accounts
- GET View a Recipient, if the platform offers User-Owned Accounts
RecipientVerificationOfPayee
, containing:
RecipientVerificationId
– A unique identifier of the VOP check performed by Mangopay.RecipientVerificationCheck
– The outcome of the VOP check performed by Mangopay, using the details in the Recipient or Bank Account object referenced in theBankAccountId
field.RecipientVerificationMessage
– The explanation of the check outcome.
RecipientVerificationCheck | RecipientVerificationMessage | Scenario | Recommendation |
---|---|---|---|
MATCH | Account name fully matches account identifier. | The account is valid and the account name matches the IBAN. | Proceed with the payout or recipient. |
CLOSE_MATCH | Account name partially matches account identifier. Name returned by check: FirstName LastName. Payment made to this account may not reach its intended counterparty. | The account is valid but the name doesn’t match exactly. | Confirm details with your user before proceeding. Reregister the Recipient if required. |
NO_MATCH | Account name does not match account identifier. Payment made to this account may not reach its intended counterparty. | This account likely belongs to a different owner. | Do not proceed until you confirm the account details with the user. |
MATCH_NOT_POSSIBLE | Responding PSP’s verification service unreachable. Payment made to this account may not reach its intended counterparty. | The check could not be completed. | Retry later, or proceed only after confirming the account details with the user. |
Caution – Risk of misdirected payoutsFor any result other than
MATCH
, there is a risk of the funds not reaching their intended destination. Funds sent to the wrong account may not be recoverable.Implementation recommendations
- Retrieve and display the
RecipientVerificationCheck
andRecipientVerificationMessage
to your users. These data points are both returned in theRecipientVerificationOfPayee
object on GET View a Recipient, POST Create a Recipient, and POST Create a Payout. - Check the VOP result of Recipients using GET View a Recipient before initiating payouts, to avoid funds being sent to the wrong account.
Recipients
If the user has a User-Owned Account, Mangopay performs a VOP check on the endpoints: VOP is only performed on Recipients where:Currency
isEUR
PayoutMethod
isLocalBankTransfer
Country
is a SEPA country
RecipientVerificationOfPayee
parameter of the API response:
API response - 200 OK
Id
as the RecipientId
path parameter.
Payouts
Mangopay is introducing VOP checks when your platform requests a payout using POST Create a Payout only if the owner of the payout’sBankAccountId
has at least one User-Owned Virtual Account.
If the user doesn’t have at least one User-Owned Virtual Account, or if the payout does not use the SCT or SCT Inst rails, then VOP is not performed.
The steps are as follows:
- Your platform calls POST Create a Payout.
- Mangopay performs Verification of Payee (VOP) using the associated Recipient or Bank Account data (reference in the
BankAccountId
) by checking the IBAN and account holder name with the Responding PSP (which is the Payee’s bank). - Mangopay returns the VOP result in the API response.
- Mangopay proceeds with the payment, unless it is blocked as described in the scenarios below.
Payout scenarios
Match or close match
When Mangopay performs the VOP check with the Responding PSP, if the result isMATCH
or NO_MATCH
, then the payout will continue as before.
The POST Create a Payout endpoint will return an HTTP 200 result containing the RecipientVerificationOfPayee
fields:
API response - 200 OK
No match or match not possible
If the result of the VOP check isNO_MATCH
or MATCH_NOT_POSSIBLE
, then the behavior will be as follows.
Before Oct 9, 2025
Before Oct 9, 2025, the payout will continue as normal. TheNO_MATCH
or MATCH_NOT_POSSIBLE
result will be returned in the RecipientVerificationOfPayee
object.
This behavior serves as a warning: NO_MATCH
result means your platform should inform the user that their payment may not reach its intended payee. In these cases, the user should check their account details and re-register the Recipient if necessary.
After Oct 9, 2025
Mangopay has sent a contract amendment to platforms that offer User-Owned Accounts to their users.If amendment signed
If the amendment is signed, from Oct 9, 2025, the behavior will stay the same: the payout will continue and theNO_MATCH
or MATCH_NOT_POSSIBLE
result will be returned in the RecipientVerificationOfPayee
object.
If amendment not signed
Until the amendment is signed, from Oct 9, 2025, payouts will be blocked if the VOP result isNO_MATCH
or MATCH_NOT_POSSIBLE
.
The POST Create a Payout endpoint will return a 400 error:
API response - 400 Bad Request
Note – Block only applies to UO account holdersThe block will be applied to users who hold a User-Owned Account. For these users, all payouts will be blocked regardless of which wallet they are debited from (determined by the owner of the payout’s
BankAccountId
).The block will also only apply to EUR payments via SCT and SCT Inst.Payouts authored by users without User-Owned Accounts will not be VOP checked and not be blocked because of VOP.