curl --request POST \
--url https://admin-api.gominerva.com/v2/webhooks/screening/{webhookId}/test \
--header 'Content-Type: application/json' \
--header 'x-api-key: <api-key>' \
--data '
{
"eventKind": "profile_status_updated",
"eventValue": "accepted",
"latestFlags": [
"Sanctions",
"PEP",
"News"
],
"profileId": "minerva-profile-id-1",
"externalId": "user-profile-id-1"
}
'import requests
url = "https://admin-api.gominerva.com/v2/webhooks/screening/{webhookId}/test"
payload = {
"eventKind": "profile_status_updated",
"eventValue": "accepted",
"latestFlags": ["Sanctions", "PEP", "News"],
"profileId": "minerva-profile-id-1",
"externalId": "user-profile-id-1"
}
headers = {
"x-api-key": "<api-key>",
"Content-Type": "application/json"
}
response = requests.post(url, json=payload, headers=headers)
print(response.text)const options = {
method: 'POST',
headers: {'x-api-key': '<api-key>', 'Content-Type': 'application/json'},
body: JSON.stringify({
eventKind: 'profile_status_updated',
eventValue: 'accepted',
latestFlags: ['Sanctions', 'PEP', 'News'],
profileId: 'minerva-profile-id-1',
externalId: 'user-profile-id-1'
})
};
fetch('https://admin-api.gominerva.com/v2/webhooks/screening/{webhookId}/test', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));<?php
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_URL => "https://admin-api.gominerva.com/v2/webhooks/screening/{webhookId}/test",
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([
'eventKind' => 'profile_status_updated',
'eventValue' => 'accepted',
'latestFlags' => [
'Sanctions',
'PEP',
'News'
],
'profileId' => 'minerva-profile-id-1',
'externalId' => 'user-profile-id-1'
]),
CURLOPT_HTTPHEADER => [
"Content-Type: application/json",
"x-api-key: <api-key>"
],
]);
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}package main
import (
"fmt"
"strings"
"net/http"
"io"
)
func main() {
url := "https://admin-api.gominerva.com/v2/webhooks/screening/{webhookId}/test"
payload := strings.NewReader("{\n \"eventKind\": \"profile_status_updated\",\n \"eventValue\": \"accepted\",\n \"latestFlags\": [\n \"Sanctions\",\n \"PEP\",\n \"News\"\n ],\n \"profileId\": \"minerva-profile-id-1\",\n \"externalId\": \"user-profile-id-1\"\n}")
req, _ := http.NewRequest("POST", url, payload)
req.Header.Add("x-api-key", "<api-key>")
req.Header.Add("Content-Type", "application/json")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.post("https://admin-api.gominerva.com/v2/webhooks/screening/{webhookId}/test")
.header("x-api-key", "<api-key>")
.header("Content-Type", "application/json")
.body("{\n \"eventKind\": \"profile_status_updated\",\n \"eventValue\": \"accepted\",\n \"latestFlags\": [\n \"Sanctions\",\n \"PEP\",\n \"News\"\n ],\n \"profileId\": \"minerva-profile-id-1\",\n \"externalId\": \"user-profile-id-1\"\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://admin-api.gominerva.com/v2/webhooks/screening/{webhookId}/test")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Post.new(url)
request["x-api-key"] = '<api-key>'
request["Content-Type"] = 'application/json'
request.body = "{\n \"eventKind\": \"profile_status_updated\",\n \"eventValue\": \"accepted\",\n \"latestFlags\": [\n \"Sanctions\",\n \"PEP\",\n \"News\"\n ],\n \"profileId\": \"minerva-profile-id-1\",\n \"externalId\": \"user-profile-id-1\"\n}"
response = http.request(request)
puts response.read_body{
"status": 200,
"message": "Webhook test triggered successfully",
"payload": {
"webhookId": "ecc9b161-e6bf-48e4-816d-b13046a42eaa",
"webhookName": "Test webhook",
"event": {
"kind": "profile_status_updated",
"value": "accepted",
"meta": {
"latestFlags": [
{
"name": "screeningSanctionsMatch",
"count": 1,
"label": "Sanctions"
},
{
"name": "screeningPepMatch",
"count": 1,
"label": "PEP"
},
{
"name": "screeningAdverseMediaMatch",
"count": 1,
"label": "Adverse Media"
}
],
"profileId": "minerva-profile-id-1",
"externalId": "user-profile-id-1"
}
}
}
}{
"status": 400,
"message": "Invalid event kind provided",
"code": "VALIDATION_ERROR"
}{
"status": 400,
"message": "Bad request",
"code": "VALIDATION_ERROR"
}{
"status": 404,
"message": "Webhook not found"
}{
"status": 400,
"message": "Bad request",
"code": "VALIDATION_ERROR"
}Test screening webhook
Triggers a simulated payload to the destination URL, with the webhook key in the “x-webhook-key” header. The header and payload have the same structure as in production, so you can use this endpoint during development to test how your service handles the configured webhooks. The main use case is confirming that the destination server and path are configured correctly and that the receiving service can authenticate the webhook key.
Notice: the fields you provide are echoed through as-is. The test endpoint applies no conditional simulation, so it does not check that the field values match the configured conditions for triggering the webhook. Provide the fields that trigger the logic in your own service implementation.
curl --request POST \
--url https://admin-api.gominerva.com/v2/webhooks/screening/{webhookId}/test \
--header 'Content-Type: application/json' \
--header 'x-api-key: <api-key>' \
--data '
{
"eventKind": "profile_status_updated",
"eventValue": "accepted",
"latestFlags": [
"Sanctions",
"PEP",
"News"
],
"profileId": "minerva-profile-id-1",
"externalId": "user-profile-id-1"
}
'import requests
url = "https://admin-api.gominerva.com/v2/webhooks/screening/{webhookId}/test"
payload = {
"eventKind": "profile_status_updated",
"eventValue": "accepted",
"latestFlags": ["Sanctions", "PEP", "News"],
"profileId": "minerva-profile-id-1",
"externalId": "user-profile-id-1"
}
headers = {
"x-api-key": "<api-key>",
"Content-Type": "application/json"
}
response = requests.post(url, json=payload, headers=headers)
print(response.text)const options = {
method: 'POST',
headers: {'x-api-key': '<api-key>', 'Content-Type': 'application/json'},
body: JSON.stringify({
eventKind: 'profile_status_updated',
eventValue: 'accepted',
latestFlags: ['Sanctions', 'PEP', 'News'],
profileId: 'minerva-profile-id-1',
externalId: 'user-profile-id-1'
})
};
fetch('https://admin-api.gominerva.com/v2/webhooks/screening/{webhookId}/test', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));<?php
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_URL => "https://admin-api.gominerva.com/v2/webhooks/screening/{webhookId}/test",
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([
'eventKind' => 'profile_status_updated',
'eventValue' => 'accepted',
'latestFlags' => [
'Sanctions',
'PEP',
'News'
],
'profileId' => 'minerva-profile-id-1',
'externalId' => 'user-profile-id-1'
]),
CURLOPT_HTTPHEADER => [
"Content-Type: application/json",
"x-api-key: <api-key>"
],
]);
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}package main
import (
"fmt"
"strings"
"net/http"
"io"
)
func main() {
url := "https://admin-api.gominerva.com/v2/webhooks/screening/{webhookId}/test"
payload := strings.NewReader("{\n \"eventKind\": \"profile_status_updated\",\n \"eventValue\": \"accepted\",\n \"latestFlags\": [\n \"Sanctions\",\n \"PEP\",\n \"News\"\n ],\n \"profileId\": \"minerva-profile-id-1\",\n \"externalId\": \"user-profile-id-1\"\n}")
req, _ := http.NewRequest("POST", url, payload)
req.Header.Add("x-api-key", "<api-key>")
req.Header.Add("Content-Type", "application/json")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.post("https://admin-api.gominerva.com/v2/webhooks/screening/{webhookId}/test")
.header("x-api-key", "<api-key>")
.header("Content-Type", "application/json")
.body("{\n \"eventKind\": \"profile_status_updated\",\n \"eventValue\": \"accepted\",\n \"latestFlags\": [\n \"Sanctions\",\n \"PEP\",\n \"News\"\n ],\n \"profileId\": \"minerva-profile-id-1\",\n \"externalId\": \"user-profile-id-1\"\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://admin-api.gominerva.com/v2/webhooks/screening/{webhookId}/test")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Post.new(url)
request["x-api-key"] = '<api-key>'
request["Content-Type"] = 'application/json'
request.body = "{\n \"eventKind\": \"profile_status_updated\",\n \"eventValue\": \"accepted\",\n \"latestFlags\": [\n \"Sanctions\",\n \"PEP\",\n \"News\"\n ],\n \"profileId\": \"minerva-profile-id-1\",\n \"externalId\": \"user-profile-id-1\"\n}"
response = http.request(request)
puts response.read_body{
"status": 200,
"message": "Webhook test triggered successfully",
"payload": {
"webhookId": "ecc9b161-e6bf-48e4-816d-b13046a42eaa",
"webhookName": "Test webhook",
"event": {
"kind": "profile_status_updated",
"value": "accepted",
"meta": {
"latestFlags": [
{
"name": "screeningSanctionsMatch",
"count": 1,
"label": "Sanctions"
},
{
"name": "screeningPepMatch",
"count": 1,
"label": "PEP"
},
{
"name": "screeningAdverseMediaMatch",
"count": 1,
"label": "Adverse Media"
}
],
"profileId": "minerva-profile-id-1",
"externalId": "user-profile-id-1"
}
}
}
}{
"status": 400,
"message": "Invalid event kind provided",
"code": "VALIDATION_ERROR"
}{
"status": 400,
"message": "Bad request",
"code": "VALIDATION_ERROR"
}{
"status": 404,
"message": "Webhook not found"
}{
"status": 400,
"message": "Bad request",
"code": "VALIDATION_ERROR"
}Authorizations
Admin API key for authentication. Manage API keys in the Minerva dashboard under Administration > Developers.
Path Parameters
The unique identifier of the webhook to test
Body
Request body for testing a screening webhook
The mock event kind to send in the webhook payload. It passes through unchanged into the mock payload delivered to the webhook destination URL.
profile_status_updated, idv, onboarding "profile_status_updated"
The mock event value to send in the webhook payload. It passes through unchanged into the mock payload delivered to the webhook destination URL.
potential_match, accepted, rejected, idv.session.completed, idv.session.approved, idv.session.rejected, idv.session.requires_review, idv.session.failed, idv.document.captured, profile_onboarding.review_required, profile_onboarding.completed, profile_onboarding.failed "potential_match"
The mock flags to send in the latestFlags webhook payload field. Minerva interprets these values and builds real object mocks in the webhook payload sent to the destination URL.
Sanctions, PEP, News, Criminal, Legal, Registries, Ownership, Offshore, Open Source, Social Media ["Sanctions", "PEP", "News"]
The mock profile ID to send in the payload to the destination URL. Optional. Provide it to test the webhook update for a specific Minerva profile ID within your service logic.
"minerva-profile-id-1"
The mock external ID to send in the payload to the destination URL. Optional. Provide it to test the webhook update for a specific external system ID within your service logic.
"user-profile-id-1"
Response
Webhook test triggered successfully