Example subscription
curl --request POST \
--url https://api-sandbox.argyle.com/v2/webhooks \
--header 'Authorization: Basic <encoded-value>' \
--header 'Content-Type: application/json' \
--data '
{
"events": [
"items.updated"
],
"name": "name-for-the-webhook-subscription",
"url": "https://your-webhook-backend.com",
"secret": "optional-secret",
"config": {
"items": [
"item_123456789",
"item_000000001"
]
}
}
'import requests
url = "https://api-sandbox.argyle.com/v2/webhooks"
payload = {
"events": ["items.updated"],
"name": "name-for-the-webhook-subscription",
"url": "https://your-webhook-backend.com",
"secret": "optional-secret",
"config": { "items": ["item_123456789", "item_000000001"] }
}
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: ['items.updated'],
name: 'name-for-the-webhook-subscription',
url: 'https://your-webhook-backend.com',
secret: 'optional-secret',
config: {items: ['item_123456789', 'item_000000001']}
})
};
fetch('https://api-sandbox.argyle.com/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/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' => [
'items.updated'
],
'name' => 'name-for-the-webhook-subscription',
'url' => 'https://your-webhook-backend.com',
'secret' => 'optional-secret',
'config' => [
'items' => [
'item_123456789',
'item_000000001'
]
]
]),
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/v2/webhooks"
payload := strings.NewReader("{\n \"events\": [\n \"items.updated\"\n ],\n \"name\": \"name-for-the-webhook-subscription\",\n \"url\": \"https://your-webhook-backend.com\",\n \"secret\": \"optional-secret\",\n \"config\": {\n \"items\": [\n \"item_123456789\",\n \"item_000000001\"\n ]\n }\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/v2/webhooks")
.header("Authorization", "Basic <encoded-value>")
.header("Content-Type", "application/json")
.body("{\n \"events\": [\n \"items.updated\"\n ],\n \"name\": \"name-for-the-webhook-subscription\",\n \"url\": \"https://your-webhook-backend.com\",\n \"secret\": \"optional-secret\",\n \"config\": {\n \"items\": [\n \"item_123456789\",\n \"item_000000001\"\n ]\n }\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://api-sandbox.argyle.com/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 \"items.updated\"\n ],\n \"name\": \"name-for-the-webhook-subscription\",\n \"url\": \"https://your-webhook-backend.com\",\n \"secret\": \"optional-secret\",\n \"config\": {\n \"items\": [\n \"item_123456789\",\n \"item_000000001\"\n ]\n }\n}"
response = http.request(request)
puts response.read_body{
"event": "items.updated",
"name": "My Items Updated Webhook",
"data": {
"item": "item_000000001",
"name": "Whole Goods",
"status": "issues",
"status_details": "We have identified issues with the underlying platform. We are actively investigating and will provide an update by May 25, 16:00 UTC at the latest.",
"mapping_status": "verified",
"known_limitations": "First 5 digits of SSN obfuscated.",
"logo_url": "argyle.com/image-holdings",
"features": {
"field_coverage": {
"identities": {
"first_name": {
"supported": true
},
"last_name": {
"supported": true
},
"...": {
"supported": true
}
},
"paystubs": {
"...": {
"supported": true
}
},
"payroll_documents": {
"...": {
"supported": true
}
},
"deposit_destinations": {
"...": {
"supported": true
}
},
"shifts": {
"...": {
"supported": true
}
},
"gigs": {
"...": {
"supported": true
}
},
"vehicles": {
"...": {
"supported": true
}
},
"ratings": {
"...": {
"supported": true
}
}
},
"direct_deposit_switch": {
"card": {
"supported": true,
"max_allocations": "3"
},
"deposit_account": {
"types": [
"ach_deposit_account"
],
"supported": true,
"max_allocations": "2",
"amount_allocation": false,
"percent_allocation": true,
"amount_precision": null,
"percent_precision": "0.01"
}
}
}
}
}Items
Items.updated webhook
The items.updated webhook is sent when there is any change to a property value of an Item object.
The config parameter is required when subscribing to the items.updated webhook.
POST
/
v2
/
webhooks
Example subscription
curl --request POST \
--url https://api-sandbox.argyle.com/v2/webhooks \
--header 'Authorization: Basic <encoded-value>' \
--header 'Content-Type: application/json' \
--data '
{
"events": [
"items.updated"
],
"name": "name-for-the-webhook-subscription",
"url": "https://your-webhook-backend.com",
"secret": "optional-secret",
"config": {
"items": [
"item_123456789",
"item_000000001"
]
}
}
'import requests
url = "https://api-sandbox.argyle.com/v2/webhooks"
payload = {
"events": ["items.updated"],
"name": "name-for-the-webhook-subscription",
"url": "https://your-webhook-backend.com",
"secret": "optional-secret",
"config": { "items": ["item_123456789", "item_000000001"] }
}
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: ['items.updated'],
name: 'name-for-the-webhook-subscription',
url: 'https://your-webhook-backend.com',
secret: 'optional-secret',
config: {items: ['item_123456789', 'item_000000001']}
})
};
fetch('https://api-sandbox.argyle.com/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/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' => [
'items.updated'
],
'name' => 'name-for-the-webhook-subscription',
'url' => 'https://your-webhook-backend.com',
'secret' => 'optional-secret',
'config' => [
'items' => [
'item_123456789',
'item_000000001'
]
]
]),
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/v2/webhooks"
payload := strings.NewReader("{\n \"events\": [\n \"items.updated\"\n ],\n \"name\": \"name-for-the-webhook-subscription\",\n \"url\": \"https://your-webhook-backend.com\",\n \"secret\": \"optional-secret\",\n \"config\": {\n \"items\": [\n \"item_123456789\",\n \"item_000000001\"\n ]\n }\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/v2/webhooks")
.header("Authorization", "Basic <encoded-value>")
.header("Content-Type", "application/json")
.body("{\n \"events\": [\n \"items.updated\"\n ],\n \"name\": \"name-for-the-webhook-subscription\",\n \"url\": \"https://your-webhook-backend.com\",\n \"secret\": \"optional-secret\",\n \"config\": {\n \"items\": [\n \"item_123456789\",\n \"item_000000001\"\n ]\n }\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://api-sandbox.argyle.com/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 \"items.updated\"\n ],\n \"name\": \"name-for-the-webhook-subscription\",\n \"url\": \"https://your-webhook-backend.com\",\n \"secret\": \"optional-secret\",\n \"config\": {\n \"items\": [\n \"item_123456789\",\n \"item_000000001\"\n ]\n }\n}"
response = http.request(request)
puts response.read_body{
"event": "items.updated",
"name": "My Items Updated Webhook",
"data": {
"item": "item_000000001",
"name": "Whole Goods",
"status": "issues",
"status_details": "We have identified issues with the underlying platform. We are actively investigating and will provide an update by May 25, 16:00 UTC at the latest.",
"mapping_status": "verified",
"known_limitations": "First 5 digits of SSN obfuscated.",
"logo_url": "argyle.com/image-holdings",
"features": {
"field_coverage": {
"identities": {
"first_name": {
"supported": true
},
"last_name": {
"supported": true
},
"...": {
"supported": true
}
},
"paystubs": {
"...": {
"supported": true
}
},
"payroll_documents": {
"...": {
"supported": true
}
},
"deposit_destinations": {
"...": {
"supported": true
}
},
"shifts": {
"...": {
"supported": true
}
},
"gigs": {
"...": {
"supported": true
}
},
"vehicles": {
"...": {
"supported": true
}
},
"ratings": {
"...": {
"supported": true
}
}
},
"direct_deposit_switch": {
"card": {
"supported": true,
"max_allocations": "3"
},
"deposit_account": {
"types": [
"ach_deposit_account"
],
"supported": true,
"max_allocations": "2",
"amount_allocation": false,
"percent_allocation": true,
"amount_precision": null,
"percent_precision": "0.01"
}
}
}
}
}Sent when Items are updated or removed.
Subscribing to all webhooks at once via Console or via the API will not create subscriptions to Items webhooks, which must be subscribed to individually with specific Items listed within the
config parameter.Authorizations
Username = api_key_id, Password = api_key_secret
Body
application/json
items.updated
Example:
["items.updated"]
Your name for the webhook subscription.
Example:
"My Items Updated Webhook"
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.
Example:
"https://your-webhook-endpoint.com"
Object containing an array of up to 30 Item ID's.
Show child attributes
Show child attributes
Optional secret used to verify webhooks.
Example:
"your_secret_key"
⌘I