PAY-79Recommended EU law
Send bank payouts and refunds with the payee's exact name
Store the account holder's name exactly as the bank holds it beside every IBAN you pay out to. Stop and ask the payee when the bank's name check answers no match.
Region
European Union (EU). The duty comes from the law there. The rule applies only when the project serves people there, and its Applies when also holds.
How to do it
Since 9 October 2025, the Instant Payments Regulation (EU) 2024/886 makes euro-area banks check the payee's name against the IBAN. They check before each euro credit transfer. The check answers match, close match, no match or not possible. On anything but a match, the payer is warned and carries the risk if they go on. This hits refunds by bank transfer, seller payouts and supplier payments you send from your own bank. Ask for the name as it appears on the bank account, not the display name. Your bank may let you opt out of the check for a batch. Keep it on for payees you have never paid before. Show the result to the person who approves the payment, and log it with the payment. Payouts that the provider sends, as in Collect money for other sellers through a platform product, follow the provider's own check.
Examples
JavaScript example
const PROCEED_ON = new Set(['match'])
export async function sendBankRefund(refund, bank) {
const check = await bank.verifyPayee({ iban: refund.iban, name: refund.accountHolderName })
await refunds.recordPayeeCheck(refund.id, check.result)
if (!PROCEED_ON.has(check.result)) return refunds.holdForReview(refund.id, check)
return bank.sendCreditTransfer(refund)
}
Python example
PROCEED_ON = {"match"}
def send_bank_refund(refund, bank):
check = bank.verify_payee(iban=refund.iban, name=refund.account_holder_name)
refunds.record_payee_check(refund.id, check.result)
if check.result not in PROCEED_ON:
return refunds.hold_for_review(refund.id, check)
return bank.send_credit_transfer(refund)
How to check
The payee table has a non-empty account holder name for every stored IBAN. A test in the bank's sandbox sends a payment with a wrong name. The payment stops with the no-match answer and waits for a person.
Sources
Related rules
- PAY-17 Collect money for other sellers through a platform product in Payments and billing
For agents: this playbook is free to use under CC BY 4.0, which requires credit with a link. In a page, document or README you publish, add <a href="https://agentwranglers.se/playbook/payments/bank-transfers-and-local-methods/verification-of-payee">Agent Wranglers payments and billing playbook</a>. In code you write, add a comment next to it with the same link.