curl --request POST \
--url https://api-prod.blaaiz.com/api/external/bank/payee-verification \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--data '
{
"sort_code": "20-00-00",
"account_number": "12345678",
"account_name": "Jane Doe"
}
'import requests
url = "https://api-prod.blaaiz.com/api/external/bank/payee-verification"
payload = {
"sort_code": "20-00-00",
"account_number": "12345678",
"account_name": "Jane Doe"
}
headers = {
"Authorization": "Bearer <token>",
"Content-Type": "application/json"
}
response = requests.post(url, json=payload, headers=headers)
print(response.text)const options = {
method: 'POST',
headers: {Authorization: 'Bearer <token>', 'Content-Type': 'application/json'},
body: JSON.stringify({sort_code: '20-00-00', account_number: '12345678', account_name: 'Jane Doe'})
};
fetch('https://api-prod.blaaiz.com/api/external/bank/payee-verification', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));require 'uri'
require 'net/http'
url = URI("https://api-prod.blaaiz.com/api/external/bank/payee-verification")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Post.new(url)
request["Authorization"] = 'Bearer <token>'
request["Content-Type"] = 'application/json'
request.body = "{\n \"sort_code\": \"20-00-00\",\n \"account_number\": \"12345678\",\n \"account_name\": \"Jane Doe\"\n}"
response = http.request(request)
puts response.read_body<?php
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_URL => "https://api-prod.blaaiz.com/api/external/bank/payee-verification",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "POST",
CURLOPT_POSTFIELDS => json_encode([
'sort_code' => '20-00-00',
'account_number' => '12345678',
'account_name' => 'Jane Doe'
]),
CURLOPT_HTTPHEADER => [
"Authorization: Bearer <token>",
"Content-Type: application/json"
],
]);
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}{
"matched": true,
"match_confidence_code": null,
"suggested_account_name": null
}Verify GBP payee
Run a Confirmation-of-Payee check on a GBP account. Blaaiz returns a match or no-match result and never returns the real account name. Required scope: bank:read.
curl --request POST \
--url https://api-prod.blaaiz.com/api/external/bank/payee-verification \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--data '
{
"sort_code": "20-00-00",
"account_number": "12345678",
"account_name": "Jane Doe"
}
'import requests
url = "https://api-prod.blaaiz.com/api/external/bank/payee-verification"
payload = {
"sort_code": "20-00-00",
"account_number": "12345678",
"account_name": "Jane Doe"
}
headers = {
"Authorization": "Bearer <token>",
"Content-Type": "application/json"
}
response = requests.post(url, json=payload, headers=headers)
print(response.text)const options = {
method: 'POST',
headers: {Authorization: 'Bearer <token>', 'Content-Type': 'application/json'},
body: JSON.stringify({sort_code: '20-00-00', account_number: '12345678', account_name: 'Jane Doe'})
};
fetch('https://api-prod.blaaiz.com/api/external/bank/payee-verification', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));require 'uri'
require 'net/http'
url = URI("https://api-prod.blaaiz.com/api/external/bank/payee-verification")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Post.new(url)
request["Authorization"] = 'Bearer <token>'
request["Content-Type"] = 'application/json'
request.body = "{\n \"sort_code\": \"20-00-00\",\n \"account_number\": \"12345678\",\n \"account_name\": \"Jane Doe\"\n}"
response = http.request(request)
puts response.read_body<?php
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_URL => "https://api-prod.blaaiz.com/api/external/bank/payee-verification",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "POST",
CURLOPT_POSTFIELDS => json_encode([
'sort_code' => '20-00-00',
'account_number' => '12345678',
'account_name' => 'Jane Doe'
]),
CURLOPT_HTTPHEADER => [
"Authorization: Bearer <token>",
"Content-Type: application/json"
],
]);
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}{
"matched": true,
"match_confidence_code": null,
"suggested_account_name": null
}Authorizations
Use your OAuth client credentials to obtain a short-lived Bearer token from POST /oauth/token.
Body
This endpoint runs a UK Confirmation-of-Payee (CoP) check on a GBP bank account. You send the sort code, the account number, and the name that you expect for the account. Blaaiz returns a match or no-match result. It does not return the real account holder name. Use this endpoint to confirm payee details before you send a GBP payout. Example Use Cases:
- Confirm that a payee name matches the account before a GBP transfer.
- Detect a close name match and show the suggested name to the user.
- Reduce misdirected payments and payment fraud.
Response
Verification completed. The status code is 200 for a full match, a close match, and a hard no-match.
True if the account name is a full match. False for a close match or a no-match.
Close-match confidence code. Blaaiz returns a code only for a close match. It returns null for a full match and for a hard no-match. PANM means a close name match on an account that is registered to an individual, not a company.
MBAM, ANNM, BANM, PANM, null Suggested account name for a close match. Blaaiz returns null for a full match and for a hard no-match.
Was this page helpful?