curl --request POST \
--url https://api-sandbox.argyle.com/partners/v2/webhooks \
--header 'Authorization: Basic <encoded-value>' \
--header 'Content-Type: application/json' \
--data '
{
"events": [
"verifications.updated"
],
"name": "name-for-the-webhook-subscription",
"url": "https://your-webhook-backend.com",
"secret": "optional-secret"
}
'import requests
url = "https://api-sandbox.argyle.com/partners/v2/webhooks"
payload = {
"events": ["verifications.updated"],
"name": "name-for-the-webhook-subscription",
"url": "https://your-webhook-backend.com",
"secret": "optional-secret"
}
headers = {
"Authorization": "Basic <encoded-value>",
"Content-Type": "application/json"
}
response = requests.post(url, json=payload, headers=headers)
print(response.text)const options = {
method: 'POST',
headers: {Authorization: 'Basic <encoded-value>', 'Content-Type': 'application/json'},
body: JSON.stringify({
events: ['verifications.updated'],
name: 'name-for-the-webhook-subscription',
url: 'https://your-webhook-backend.com',
secret: 'optional-secret'
})
};
fetch('https://api-sandbox.argyle.com/partners/v2/webhooks', 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://api-sandbox.argyle.com/partners/v2/webhooks",
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([
'events' => [
'verifications.updated'
],
'name' => 'name-for-the-webhook-subscription',
'url' => 'https://your-webhook-backend.com',
'secret' => 'optional-secret'
]),
CURLOPT_HTTPHEADER => [
"Authorization: Basic <encoded-value>",
"Content-Type: application/json"
],
]);
$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://api-sandbox.argyle.com/partners/v2/webhooks"
payload := strings.NewReader("{\n \"events\": [\n \"verifications.updated\"\n ],\n \"name\": \"name-for-the-webhook-subscription\",\n \"url\": \"https://your-webhook-backend.com\",\n \"secret\": \"optional-secret\"\n}")
req, _ := http.NewRequest("POST", url, payload)
req.Header.Add("Authorization", "Basic <encoded-value>")
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://api-sandbox.argyle.com/partners/v2/webhooks")
.header("Authorization", "Basic <encoded-value>")
.header("Content-Type", "application/json")
.body("{\n \"events\": [\n \"verifications.updated\"\n ],\n \"name\": \"name-for-the-webhook-subscription\",\n \"url\": \"https://your-webhook-backend.com\",\n \"secret\": \"optional-secret\"\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://api-sandbox.argyle.com/partners/v2/webhooks")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Post.new(url)
request["Authorization"] = 'Basic <encoded-value>'
request["Content-Type"] = 'application/json'
request.body = "{\n \"events\": [\n \"verifications.updated\"\n ],\n \"name\": \"name-for-the-webhook-subscription\",\n \"url\": \"https://your-webhook-backend.com\",\n \"secret\": \"optional-secret\"\n}"
response = http.request(request)
puts response.read_body{
"id": "205c027e-8a4d-4248-b395-d4f345dfd49f",
"name": "name-for-the-webhook-subscription",
"events": [
"verifications.updated"
],
"config": {},
"secret": "optional-secret",
"url": "https://your-webhook-backend.com",
"created_at": "2026-07-29T19:33:16.120Z",
"updated_at": "2026-07-29T19:33:16.123Z",
"last_sent_at": null
}Create a webhook
Creates a webhook subscription.
curl --request POST \
--url https://api-sandbox.argyle.com/partners/v2/webhooks \
--header 'Authorization: Basic <encoded-value>' \
--header 'Content-Type: application/json' \
--data '
{
"events": [
"verifications.updated"
],
"name": "name-for-the-webhook-subscription",
"url": "https://your-webhook-backend.com",
"secret": "optional-secret"
}
'import requests
url = "https://api-sandbox.argyle.com/partners/v2/webhooks"
payload = {
"events": ["verifications.updated"],
"name": "name-for-the-webhook-subscription",
"url": "https://your-webhook-backend.com",
"secret": "optional-secret"
}
headers = {
"Authorization": "Basic <encoded-value>",
"Content-Type": "application/json"
}
response = requests.post(url, json=payload, headers=headers)
print(response.text)const options = {
method: 'POST',
headers: {Authorization: 'Basic <encoded-value>', 'Content-Type': 'application/json'},
body: JSON.stringify({
events: ['verifications.updated'],
name: 'name-for-the-webhook-subscription',
url: 'https://your-webhook-backend.com',
secret: 'optional-secret'
})
};
fetch('https://api-sandbox.argyle.com/partners/v2/webhooks', 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://api-sandbox.argyle.com/partners/v2/webhooks",
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([
'events' => [
'verifications.updated'
],
'name' => 'name-for-the-webhook-subscription',
'url' => 'https://your-webhook-backend.com',
'secret' => 'optional-secret'
]),
CURLOPT_HTTPHEADER => [
"Authorization: Basic <encoded-value>",
"Content-Type: application/json"
],
]);
$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://api-sandbox.argyle.com/partners/v2/webhooks"
payload := strings.NewReader("{\n \"events\": [\n \"verifications.updated\"\n ],\n \"name\": \"name-for-the-webhook-subscription\",\n \"url\": \"https://your-webhook-backend.com\",\n \"secret\": \"optional-secret\"\n}")
req, _ := http.NewRequest("POST", url, payload)
req.Header.Add("Authorization", "Basic <encoded-value>")
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://api-sandbox.argyle.com/partners/v2/webhooks")
.header("Authorization", "Basic <encoded-value>")
.header("Content-Type", "application/json")
.body("{\n \"events\": [\n \"verifications.updated\"\n ],\n \"name\": \"name-for-the-webhook-subscription\",\n \"url\": \"https://your-webhook-backend.com\",\n \"secret\": \"optional-secret\"\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://api-sandbox.argyle.com/partners/v2/webhooks")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Post.new(url)
request["Authorization"] = 'Basic <encoded-value>'
request["Content-Type"] = 'application/json'
request.body = "{\n \"events\": [\n \"verifications.updated\"\n ],\n \"name\": \"name-for-the-webhook-subscription\",\n \"url\": \"https://your-webhook-backend.com\",\n \"secret\": \"optional-secret\"\n}"
response = http.request(request)
puts response.read_body{
"id": "205c027e-8a4d-4248-b395-d4f345dfd49f",
"name": "name-for-the-webhook-subscription",
"events": [
"verifications.updated"
],
"config": {},
"secret": "optional-secret",
"url": "https://your-webhook-backend.com",
"created_at": "2026-07-29T19:33:16.120Z",
"updated_at": "2026-07-29T19:33:16.123Z",
"last_sent_at": null
}Authorizations
Username = api_key_id, Password = api_key_secret
Body
Webhook events to include in the webhook subscription.
Your name for the webhook subscription.
Where you want to receive webhook delivery. This can be either a backend URL that you manage, or a URL provided by a webhook management service. Argyle handles URL encoding for webhook URLs. Send the URL in its normal, unencoded form.
Optional secret used to verify webhooks.
Optional event-specific configuration for the webhook subscription. (Only applicable to certain webhooks)
Response
ID of the webhook subscription.
Name of the webhook subscription.
Webhook events included in the webhook subscription.
Event-specific configuration for the webhook subscription.
Secret used to verify webhooks, if provided.
URL where webhook deliveries are sent.
Time when the webhook subscription was created.
Time when the webhook subscription was last updated.
Last time Argyle sent the webhook. A null value means the webhook has not been sent.