curl --request POST \
--url https://api-prod.blaaiz.com/api/external/webhook \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--data '
{
"payout_url": "https://yourapp.com/webhooks/payout",
"collection_url": "https://yourapp.com/webhooks/collection",
"kyc_url": "https://yourapp.com/webhooks/kyc"
}
'import requests
url = "https://api-prod.blaaiz.com/api/external/webhook"
payload = {
"payout_url": "https://yourapp.com/webhooks/payout",
"collection_url": "https://yourapp.com/webhooks/collection",
"kyc_url": "https://yourapp.com/webhooks/kyc"
}
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({
payout_url: 'https://yourapp.com/webhooks/payout',
collection_url: 'https://yourapp.com/webhooks/collection',
kyc_url: 'https://yourapp.com/webhooks/kyc'
})
};
fetch('https://api-prod.blaaiz.com/api/external/webhook', 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/webhook")
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 \"payout_url\": \"https://yourapp.com/webhooks/payout\",\n \"collection_url\": \"https://yourapp.com/webhooks/collection\",\n \"kyc_url\": \"https://yourapp.com/webhooks/kyc\"\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/webhook",
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([
'payout_url' => 'https://yourapp.com/webhooks/payout',
'collection_url' => 'https://yourapp.com/webhooks/collection',
'kyc_url' => 'https://yourapp.com/webhooks/kyc'
]),
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;
}{
"message": "Webhook record created successfully",
"data": {
"signing_secret": "a1b2c3d4e5f6g7h8i9j0k1l2m3n4o5p6q7r8s9t0"
}
}{
"status": false,
"message": "Invalid webhook URL format"
}{
"status": false,
"message": "Invalid or missing access token"
}Register webhook URLs
Register webhook URLs to receive event notifications. URLs must be HTTPS; Blaaiz signs requests via x-blaaiz-signature. Verify deliveries with your webhook signing_secret. Your collection_url receives collection events, virtual account events, and customer KYC events such as customer.created, customer.verified, and customer.rejected. Your optional kyc_url receives Merchant KYC verification session events. Required scope: webhook:write.
curl --request POST \
--url https://api-prod.blaaiz.com/api/external/webhook \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--data '
{
"payout_url": "https://yourapp.com/webhooks/payout",
"collection_url": "https://yourapp.com/webhooks/collection",
"kyc_url": "https://yourapp.com/webhooks/kyc"
}
'import requests
url = "https://api-prod.blaaiz.com/api/external/webhook"
payload = {
"payout_url": "https://yourapp.com/webhooks/payout",
"collection_url": "https://yourapp.com/webhooks/collection",
"kyc_url": "https://yourapp.com/webhooks/kyc"
}
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({
payout_url: 'https://yourapp.com/webhooks/payout',
collection_url: 'https://yourapp.com/webhooks/collection',
kyc_url: 'https://yourapp.com/webhooks/kyc'
})
};
fetch('https://api-prod.blaaiz.com/api/external/webhook', 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/webhook")
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 \"payout_url\": \"https://yourapp.com/webhooks/payout\",\n \"collection_url\": \"https://yourapp.com/webhooks/collection\",\n \"kyc_url\": \"https://yourapp.com/webhooks/kyc\"\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/webhook",
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([
'payout_url' => 'https://yourapp.com/webhooks/payout',
'collection_url' => 'https://yourapp.com/webhooks/collection',
'kyc_url' => 'https://yourapp.com/webhooks/kyc'
]),
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;
}{
"message": "Webhook record created successfully",
"data": {
"signing_secret": "a1b2c3d4e5f6g7h8i9j0k1l2m3n4o5p6q7r8s9t0"
}
}{
"status": false,
"message": "Invalid webhook URL format"
}{
"status": false,
"message": "Invalid or missing access token"
}Authorizations
Use your OAuth client credentials to obtain a short-lived Bearer token from POST /oauth/token.
Body
URL to receive payout event notifications
URL to receive collection, virtual account, and customer KYC event notifications. This includes customer.created, customer.verified, and customer.rejected.
Optional. URL to receive Merchant KYC verification session events (merchant.kyc.session.completed and merchant.kyc.session.expired). Omit it if you do not use Merchant KYC. Send null to clear a URL you set before.
Was this page helpful?