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": [
"accounts.added"
],
"name": "name-for-the-webhook-subscription",
"url": "https://your-webhook-backend.com",
"secret": "optional-secret",
"config": {
"include_resource": true
}
}
'import requests
url = "https://api-sandbox.argyle.com/v2/webhooks"
payload = {
"events": ["accounts.added"],
"name": "name-for-the-webhook-subscription",
"url": "https://your-webhook-backend.com",
"secret": "optional-secret",
"config": { "include_resource": True }
}
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: ['accounts.added'],
name: 'name-for-the-webhook-subscription',
url: 'https://your-webhook-backend.com',
secret: 'optional-secret',
config: {include_resource: true}
})
};
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' => [
'accounts.added'
],
'name' => 'name-for-the-webhook-subscription',
'url' => 'https://your-webhook-backend.com',
'secret' => 'optional-secret',
'config' => [
'include_resource' => true
]
]),
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 \"accounts.added\"\n ],\n \"name\": \"name-for-the-webhook-subscription\",\n \"url\": \"https://your-webhook-backend.com\",\n \"secret\": \"optional-secret\",\n \"config\": {\n \"include_resource\": true\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 \"accounts.added\"\n ],\n \"name\": \"name-for-the-webhook-subscription\",\n \"url\": \"https://your-webhook-backend.com\",\n \"secret\": \"optional-secret\",\n \"config\": {\n \"include_resource\": true\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 \"accounts.added\"\n ],\n \"name\": \"name-for-the-webhook-subscription\",\n \"url\": \"https://your-webhook-backend.com\",\n \"secret\": \"optional-secret\",\n \"config\": {\n \"include_resource\": true\n }\n}"
response = http.request(request)
puts response.read_body{
"event": "accounts.added",
"name": "name-for-the-webhook-subscription",
"data": {
"account": "0187c66e-e7e5-811c-b006-2232f00f426a",
"user": "018051aa-f7a9-a0db-2f38-6cfa325e9d69",
"resource": {
"id": "0187c66e-e7e5-811c-b006-2232f00f426a",
"user": "018051aa-f7a9-a0db-2f38-6cfa325e9d69",
"employers": [
"Whole Goods"
],
"item": "item_123456789",
"source": "thepayrollcompany",
"created_at": "2023-01-30T12:53:22.561Z",
"updated_at": "2023-01-30T12:53:23.123Z",
"scanned_at": "1970-01-01T00:00:00Z",
"connection": {
"status": "connecting",
"error_code": null,
"error_message": null,
"updated_at": "2023-01-30T12:53:23.123Z"
},
"direct_deposit_switch": {
"status": "idle",
"error_code": null,
"error_message": null,
"updated_at": "2023-01-30T12:53:23.123Z"
},
"availability": {
"shifts": null,
"gigs": null,
"paystubs": null,
"payroll_documents": null,
"identities": null,
"ratings": null,
"vehicles": null,
"deposit_destinations": null,
"user_forms": null,
"user_uploads": null
},
"ongoing_refresh": {
"status": "idle"
}
}
}
}Accounts
Accounts.added webhook
Sent when account connection events occur.
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": [
"accounts.added"
],
"name": "name-for-the-webhook-subscription",
"url": "https://your-webhook-backend.com",
"secret": "optional-secret",
"config": {
"include_resource": true
}
}
'import requests
url = "https://api-sandbox.argyle.com/v2/webhooks"
payload = {
"events": ["accounts.added"],
"name": "name-for-the-webhook-subscription",
"url": "https://your-webhook-backend.com",
"secret": "optional-secret",
"config": { "include_resource": True }
}
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: ['accounts.added'],
name: 'name-for-the-webhook-subscription',
url: 'https://your-webhook-backend.com',
secret: 'optional-secret',
config: {include_resource: true}
})
};
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' => [
'accounts.added'
],
'name' => 'name-for-the-webhook-subscription',
'url' => 'https://your-webhook-backend.com',
'secret' => 'optional-secret',
'config' => [
'include_resource' => true
]
]),
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 \"accounts.added\"\n ],\n \"name\": \"name-for-the-webhook-subscription\",\n \"url\": \"https://your-webhook-backend.com\",\n \"secret\": \"optional-secret\",\n \"config\": {\n \"include_resource\": true\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 \"accounts.added\"\n ],\n \"name\": \"name-for-the-webhook-subscription\",\n \"url\": \"https://your-webhook-backend.com\",\n \"secret\": \"optional-secret\",\n \"config\": {\n \"include_resource\": true\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 \"accounts.added\"\n ],\n \"name\": \"name-for-the-webhook-subscription\",\n \"url\": \"https://your-webhook-backend.com\",\n \"secret\": \"optional-secret\",\n \"config\": {\n \"include_resource\": true\n }\n}"
response = http.request(request)
puts response.read_body{
"event": "accounts.added",
"name": "name-for-the-webhook-subscription",
"data": {
"account": "0187c66e-e7e5-811c-b006-2232f00f426a",
"user": "018051aa-f7a9-a0db-2f38-6cfa325e9d69",
"resource": {
"id": "0187c66e-e7e5-811c-b006-2232f00f426a",
"user": "018051aa-f7a9-a0db-2f38-6cfa325e9d69",
"employers": [
"Whole Goods"
],
"item": "item_123456789",
"source": "thepayrollcompany",
"created_at": "2023-01-30T12:53:22.561Z",
"updated_at": "2023-01-30T12:53:23.123Z",
"scanned_at": "1970-01-01T00:00:00Z",
"connection": {
"status": "connecting",
"error_code": null,
"error_message": null,
"updated_at": "2023-01-30T12:53:23.123Z"
},
"direct_deposit_switch": {
"status": "idle",
"error_code": null,
"error_message": null,
"updated_at": "2023-01-30T12:53:23.123Z"
},
"availability": {
"shifts": null,
"gigs": null,
"paystubs": null,
"payroll_documents": null,
"identities": null,
"ratings": null,
"vehicles": null,
"deposit_destinations": null,
"user_forms": null,
"user_uploads": null
},
"ongoing_refresh": {
"status": "idle"
}
}
}
}The
accounts.added webhook is sent when a user submits login credentials through Link. A new account object is created after the login credentials have undergone authentication, regardless of whether the connection was successful (the accounts.connected webhook is sent) or unsuccessful (the accounts.failed webhook is sent).Authorizations
Username = api_key_id, Password = api_key_secret
Body
application/json
Array containing the accounts.added event.
Value: accounts.added
Available options:
accounts.added 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.
Show child attributes
Show child attributes