Webhooks Reference

Argyle webhooks notify you when a specific event has occurred. To learn more about the details of webhook implementation, please visit our Webhooks guide.

The webhook events you subscribe to are delivered for all accounts. Each time a new account is connected or an existing one is updated, a corresponding webhook will notify your system.

Accounts

Accounts webhooks will notify your system when new accounts are added or existing accounts are either updated or removed.

Two additional webhooks will also notify you if an authentication attempt is successful and the account is connected or if the authentication attempt failed and the account is created with a failed authentication state.

Added

accounts.added will be triggered the moment a user initiates a new connection via Argyle Link by submitting their login credentials.

After an account is created, either the accounts.connected or the accounts.failed event will be triggered.

accounts.connected signifies that an account was successfully authenticated with the correct credentials and a new account object was created.

accounts.failed indicates that authentication has failed when linking the account and it was created with a failed authentication state.

Event

accounts.added

Configuration

include_resource
boolean
optional

If set to true in the webhook subscription configuration, the webhook payload will return the full account object as resource. Defaults to false.

Payload

account
string uuid

ID of the added account.

user
string uuid

ID of the user associated with the account.

resource
object

The full account object is returned if the webhook subscription contains "include_resource": true in the configuration.

accounts.added curl
1curl -X POST https://api.argyle.io/v1/webhooks \
2  -u api_key_id:api_key_secret \
3  -H "Content-Type: application/json" \
4  -d '{"events": ["accounts.added"],
5       "secret": "<secret for signature verification>",
6         "name": "accounts.added",
7       "config": { "include_resource": true },
8          "url": "https://webhook.site/url"}'
accounts.added payload
1{
2  "event": "accounts.added",
3  "name": "An account was created",
4  "data": {
5    "account": "ada143be-3c90-4534-b7ea-9899674dc6e0",
6    "user": "3823026e-a964-45f6-b201-6b8c096b30d3",
7    "resource": {
8      "id": "ada143be-3c90-4534-b7ea-9899674dc6e0",
9      "user": "3823026e-a964-45f6-b201-6b8c096b30d3",
10      "employers": [
11        "homedepot"
12      ],
13      ...
14    }
15  }
16}

Updated

accounts.updated will be triggered when there is any change in data associated with the account. Any new data, status, or timestamp update associated with the account object will trigger this webhook.

accounts.updated will fire at the same time as accounts.failed and accounts.connected since both of these webhooks are associated with a status change in the account object.

When an account gets connected for the first time, updates can be frequent, because the account is constantly updated during the initial scan. The updates get more sparse after the initial scan is finished and are only triggered with periodic scanning updates thereafter, which happen every few hours.

Event

accounts.updated

Configuration

include_resource
boolean
optional

If set to true in the webhook subscription configuration, the webhook payload will return the full account object as resource. Defaults to false.

Payload

account
string uuid

ID of the updated account.

user
string uuid

ID of the user associated with the account.

resource
object

The full account object is returned if the webhook subscription contains "include_resource": true in the configuration.

accounts.updated curl
1curl -X POST https://api.argyle.io/v1/webhooks \
2  -u api_key_id:api_key_secret \
3  -H "Content-Type: application/json" \
4  -d '{"events": ["accounts.updated"],
5       "secret": "<secret for signature verification>",
6         "name": "accounts.updated",
7       "config": { "include_resource": true },
8          "url": "https://webhook.site/url"}'
accounts.updated payload
1{
2  "event": "accounts.updated",
3  "name": "An account was updated",
4  "data": {
5    "account": "ada143be-3c90-4534-b7ea-9899674dc6e0",
6    "user": "3823026e-a964-45f6-b201-6b8c096b30d3",
7    "resource": {
8      "id": "ada143be-3c90-4534-b7ea-9899674dc6e0",
9      "user": "3823026e-a964-45f6-b201-6b8c096b30d3",
10      "employers": [
11        "homedepot"
12      ],
13      ...
14    }
15  }
16}

Removed

accounts.removed is triggered when an account is removed. This happens either by a user request through Argyle Link or via an API call on the account object.

Event

accounts.removed

Payload

account
string uuid

ID of the account that was deleted.

user
string uuid

ID of the user associated with the account.

accounts.removed curl
1curl -X POST https://api.argyle.io/v1/webhooks \
2  -u api_key_id:api_key_secret \
3  -H "Content-Type: application/json" \
4  -d '{"events": ["accounts.removed"],
5       "secret": "<secret for signature verification>",
6         "name": "accounts.removed",
7          "url": "https://webhook.site/url"}'
accounts.removed payload
1{
2  "event": "accounts.removed",
3  "name": "An account was removed",
4  "data": {
5    "account": "ada143be-3c90-4534-b7ea-9899674dc6e0",
6    "user": "3823026e-a964-45f6-b201-6b8c096b30d3"
7  }
8}

Connected

accounts.connected is triggered when a user successfully authenticates an account via Argyle Link.

accounts.connected will also trigger when the account is re-authenticated via Argyle Link for a second time, for example, due to the updated credentials.

Event

accounts.connected

Configuration

include_resource
boolean
optional

If set to true in the webhook subscription configuration, the webhook payload will return the full account object as resource. Defaults to false.

Payload

account
string uuid

Id of the connected account.

user
string uuid

ID of the user associated with the account.

resource
object

The full account object is returned if the webhook subscription contains "include_resource": true in the configuration.

accounts.connected curl
1curl -X POST https://api.argyle.io/v1/webhooks \
2  -u api_key_id:api_key_secret \
3  -H "Content-Type: application/json" \
4  -d '{"events": ["accounts.connected"],
5       "secret": "<secret for signature verification>",
6         "name": "accounts.connected",
7       "config": { "include_resource": true },
8          "url": "https://webhook.site/url"}'
accounts.connected payload
1{
2  "event": "accounts.connected",
3  "name": "An account was connected",
4  "data": {
5    "account": "ada143be-3c90-4534-b7ea-9899674dc6e0",
6    "user": "3823026e-a964-45f6-b201-6b8c096b30d3",
7    "resource": {
8      "id": "ada143be-3c90-4534-b7ea-9899674dc6e0",
9      "user": "3823026e-a964-45f6-b201-6b8c096b30d3",
10      "employers": [
11        "homedepot"
12      ],
13      ...
14    }
15  }
16}

Failed

accounts.failed is triggered when a user unsuccessfully tries to authenticate an account via Argyle Link.

accounts.failed will also trigger when there is a repeated unsuccessful re-authentication attempt via Argyle Link, for example, due to mistyped updated credentials.

accounts.failed will NOT trigger if the account authentication expires or the credentials are changed. It will trigger only when there is an unsuccessful authentication attempt.

This trigger requires a user to submit authentication details which are incorrect. The details can include username and password and various types of multi factor authentication challenges. An unsuccessful attempt will still create an account object, in a failed auth state. Such accounts can be removed with a DELETE call to our API if not needed.

Event

accounts.failed

Configuration

include_resource
boolean
optional

If set to true in the webhook subscription configuration, the webhook payload will return the full account object as resource. Defaults to false.

Payload

account
string uuid

ID of the account.

user
string uuid

ID of the user associated with the account.

error_code
string

Error code that defines the reason the account failed to connect.

error_message
string

A longer text string associated with an error_code that explains why the error occurred.

resource
object

The full account object is returned if the webhook subscription contains "include_resource": true in the configuration.

accounts.failed curl
1curl -X POST https://api.argyle.io/v1/webhooks \
2  -u api_key_id:api_key_secret \
3  -H "Content-Type: application/json" \
4  -d '{"events": ["accounts.failed"],
5       "secret": "<secret for signature verification>",
6         "name": "accounts.failed",
7       "config": { "include_resource": true },
8          "url": "https://webhook.site/url"}'
accounts.failed payload
1{
2  "event": "accounts.failed",
3  "name": "An account failed to authenticate",
4  "data": {
5    "account": "ada143be-3c90-4534-b7ea-9899674dc6e0",
6    "user": "3823026e-a964-45f6-b201-6b8c096b30d3",
7    "error_code": "invalid_mfa",
8    "error_message": "This user did not provide the correct multi-factor authentication response."
9    "resource": {
10      "id": "ada143be-3c90-4534-b7ea-9899674dc6e0",
11      "user": "3823026e-a964-45f6-b201-6b8c096b30d3",
12      "employers": [
13        "homedepot"
14      ],
15      ...
16    }
17  }
18}

Pay Distribution Updated

accounts.pay_distribution_updated will be triggered when a pay distribution is successfully updated.

Event

accounts.pay_distribution_updated

Configuration

include_resource
boolean
optional

If set to true in the webhook subscription configuration, the webhook payload will return the full account object as resource. Defaults to false.

Payload

account
string uuid

ID of the account where the pay distribution update was successful.

user
string uuid

ID of the user associated with the account.

resource
object

The full account object is returned if the webhook subscription contains "include_resource": true in the configuration.

accounts.pay_distribution_updated curl
1curl -X POST https://api.argyle.io/v1/webhooks \
2  -u api_key_id:api_key_secret \
3  -H "Content-Type: application/json" \
4  -d '{"events": ["accounts.pay_distribution_updated"],
5       "secret": "<secret for signature verification>",
6         "name": "accounts.pay_distribution_updated",
7       "config": { "include_resource": true },
8          "url": "https://webhook.site/url"}'
accounts.pay_distribution_updated payload
1{
2  "event": "accounts.pay_distribution_updated",
3  "name": "A pay distribution update successfully",
4  "data": {
5    "account": "ada143be-3c90-4534-b7ea-9899674dc6e0",
6    "user": "3823026e-a964-45f6-b201-6b8c096b30d3",
7    "resource": {
8      "id": "ada143be-3c90-4534-b7ea-9899674dc6e0",
9      "user": "3823026e-a964-45f6-b201-6b8c096b30d3",
10      "employers": [
11        "homedepot"
12      ],
13      ...
14    }
15  }
16}

Pay Distribution Failed

accounts.pay_distribution_failed will be triggered when a pay distribution has failed to update.

Event

accounts.pay_distribution_failed

Configuration

include_resource
boolean
optional

If set to true in the webhook subscription configuration, the webhook payload will return the full account object as resource. Defaults to false.

Payload

account
string uuid

ID of the account where the pay distribution update failed.

user
string uuid

ID of the user associated with the account.

error_code
string

Error code that defines the reason pay distribution update failed.

error_message
string

A longer text string associated with an error_code that explains why the error occurred.

resource
object

The full account object is returned if the webhook subscription contains "include_resource": true in the configuration.

accounts.pay_distribution_failed curl
1curl -X POST https://api.argyle.io/v1/webhooks \
2  -u api_key_id:api_key_secret \
3  -H "Content-Type: application/json" \
4  -d '{"events": ["accounts.pay_distribution_failed"],
5       "secret": "<secret for signature verification>",
6         "name": "accounts.pay_distribution_failed",
7       "config": { "include_resource": true },
8          "url": "https://webhook.site/url"}'
accounts.pay_distribution_failed payload
1{
2  "event": "accounts.pay_distribution_failed",
3  "name": "A pay distribution failed to update",
4  "data": {
5    "account": "ada143be-3c90-4534-b7ea-9899674dc6e0",
6    "user": "3823026e-a964-45f6-b201-6b8c096b30d3",
7    "error_code": "invalid_mfa",
8    "error_message": "This user did not provide the correct multi-factor authentication response."
9    "resource": {
10      "id": "ada143be-3c90-4534-b7ea-9899674dc6e0",
11      "user": "3823026e-a964-45f6-b201-6b8c096b30d3",
12      "employers": [
13        "homedepot"
14      ],
15      ...
16    }
17  }
18}

Profiles

Profiles webhooks will notify your system when:

A new profile object is added after a new account is scanned with an initial scan.

An existing profile object is updated with new information after a periodic scan.

Added

A new profile object is added when a new account object is created and scanned.

Event

profiles.added

Payload

account
string uuid

ID of the account the profile was added to.

user
string uuid

ID of the user the account belongs to.

profile
string uuid

ID of the profile object that was added.

profiles.added curl
1curl -X POST https://api.argyle.io/v1/webhooks \
2  -u api_key_id:api_key_secret \
3  -H "Content-Type: application/json" \
4  -d '{"events": ["profiles.added"],
5       "secret": "<secret for signature verification>",
6         "name": "profiles.added",
7          "url": "https://webhook.site/u
profiles.added payload
1{
2  "event": "profiles.added",
3  "name": "A profile was added",
4  "data": {
5    "account": "ada143be-3c90-4534-b7ea-9899674dc6e0",
6    "user": "3823026e-a964-45f6-b201-6b8c096b30d3",
7    "profile": "4334r6e-a964-45eef6-b201-64464"
8  }
9}
10

Updated

Profile objects are updated through periodic scanning.

Event

profiles.updated

Payload

account
string uuid

ID of the account the profile was updated for.

user
string uuid

ID of the user the account belongs to.

profile
string uuid

ID of the profile that was updated.

profiles.updated curl
1curl -X POST https://api.argyle.io/v1/webhooks \
2  -u api_key_id:api_key_secret \
3  -H "Content-Type: application/json" \
4  -d '{"events": ["profiles.updated"],
5       "secret": "<secret for signature verification>",
6         "name": "profiles.updated",
7          "url": "https://webhook.site/url"}'
profiles.updated payload
1{
2  "event": "profiles.updated",
3  "name": "A profile was updated",
4  "data": {
5    "account": "ada143be-3c90-4534-b7ea-9899674dc6e0",
6    "user": "3823026e-a964-45f6-b201-6b8c096b30d3",
7    "profile": "4334r6e-a964-45eef6-b201-64464"
8  }
9}

Employments

Employments webhooks will notify your system when:

A new employment object is added after a new account is scanned with an initial scan.

An existing employment object is updated with new information after a periodic scan.

Added

A new employment object is added when a new account object is created and scanned.

Event

employments.added

Payload

account
string uuid

ID of the account the employment was added to.

user
string uuid

ID of the user the account belongs to.

employment
string uuid

ID of the employment object that was added.

employments.added curl
1curl -X POST https://api.argyle.io/v1/webhooks \
2  -u api_key_id:api_key_secret \
3  -H "Content-Type: application/json" \
4  -d '{"events": ["employments.added"],
5       "secret": "<secret for signature verification>",
6         "name": "employments.added",
7          "url": "https://webhook.site/u
employments.added payload
1{
2  "event": "employments.added",
3  "name": "An employment was added",
4  "data": {
5    "account": "ada143be-3c90-4534-b7ea-9899674dc6e0",
6    "user": "3823026e-a964-45f6-b201-6b8c096b30d3",
7    "employment": "4334r6e-a964-45eef6-b201-64464"
8  }
9}
10

Updated

Employment objects are updated through periodic scanning.

Event

employments.updated

Payload

account
string uuid

ID of the account the employment was updated for.

user
string uuid

ID of the user the account belongs to.

employment
string uuid

ID of the employment that was updated.

employments.updated curl
1curl -X POST https://api.argyle.io/v1/webhooks \
2  -u api_key_id:api_key_secret \
3  -H "Content-Type: application/json" \
4  -d '{"events": ["employments.updated"],
5       "secret": "<secret for signature verification>",
6         "name": "employments.updated",
7          "url": "https://webhook.site/url"}'
employments.updated payload
1{
2  "event": "employments.updated",
3  "name": "An employment was updated",
4  "data": {
5    "account": "ada143be-3c90-4534-b7ea-9899674dc6e0",
6    "user": "3823026e-a964-45f6-b201-6b8c096b30d3",
7    "employment": "4334r6e-a964-45eef6-b201-64464"
8  }
9}

Payouts

There are two types of payout webhook events:

Events that trigger only during the initial scan when a new account is connected: payouts.fully_synced and payouts.partially_synced. They will trigger once per invocation for each added account.

Events that trigger later on, when new payouts are added in the future: payouts.added and payouts.updated. They will only trigger during a periodic scan for accounts that are already connected and have been fully synced, and only after the payouts.fully_synced event has been triggered.

A typical account can contain thousands of payouts and payouts.fully_synced will only fire after all of the payouts are scanned, which in some cases might take hours.

Therefore, payouts.partially_synced can be used if only a partial range of the payouts is needed. For example, a history of the last 30 days instead of a complete history of payouts. This will reduce the sync time to minutes or, in some cases, seconds.

Fully synced

This webhook triggers when all the payouts are fully scanned. The scanning starts from the most recent payouts and finishes with the oldest ones.

It only triggers when the initial scan finishes. It is not invoked during periodic scanning.

Event

payouts.fully_synced

Payload

account
string uuid

ID of the account the payouts were scanned from.

user
string uuid

ID of the user associated with the account.

available_from
string timestamp

Represents the start of the time period the payouts are available for. The available_from timestamp will precede the available_to timestamp.

available_to
string timestamp

Represents the end of the time period the payouts are available for.

available_count
integer

The total number of payouts associated with the account at the moment the webhook call is made.

payouts.fully_synced curl
1curl -X POST https://api.argyle.io/v1/webhooks \
2  -u api_key_id:api_key_secret \
3  -H "Content-Type: application/json" \
4  -d '{"events": ["payouts.fully_synced"],
5       "secret": "<secret for signature verification>",
6         "name": "payouts.fully_synced",
7          "url": "https://webhook.site/url"}'
payouts.fully_synced payload
1{
2  "event": "payouts.fully_synced",
3  "name": "All historical data synced",
4  "data": {
5    "account": "12db5af4-fd5f-4d1f-bd98-0360df770aa8",
6    "user": "abdb5af4-fd5f-4d1f-bd10-0360df77012c",
7    "available_from": "2019-03-07T20:12:09Z", 
8    "available_to": "2019-09-23T23:57:31Z",
9    "available_count": 432
10  }
11}

Partially synced

By default, this webhook triggers when 30 days of historical payouts were successfully scanned (starting from most recent payouts). The number of days scanned is a configurable parameter. This webhook can be subscribed to multiple times with different day ranges. Triggers only on the initial scan, and does not trigger during a periodic scan.

Event

payouts.partially_synced

Configuration

days_synced
integer
optional

The number of days to be scanned.

The default value is 30.

Payload

account
string uuid

ID of the account the payouts were scanned from.

user
string uuid

ID of the user associated with the account.

days_synced
integer

Number of days the payouts were synced for.

available_from
string timestamp

Represents the start of the time period the payouts are available for. The available_from timestamp will precede the available_to timestamp.

available_to
string timestamp

Represents the end of the time period the payouts are available for.

available_count
integer

The total number of payouts associated with the account at the moment the webhook call is made.

payouts.partially_synced curl
1curl -X POST https://api.argyle.io/v1/webhooks \
2  -u api_key_id:api_key_secret \
3  -H "Content-Type: application/json" \
4  -d '{"events": ["payouts.partially_synced"],
5       "secret": "<secret for signature verification>",
6         "name": "payouts.partially_synced",
7          "url": "https://webhook.site/url"}'
payouts.partially_synced custom range curl
1curl -X POST https://api.argyle.io/v1/webhooks \
2  -u api_key_id:api_key_secret \
3  -H "Content-Type: application/json" \
4  -d '{"events": ["payouts.partially_synced"],
5       "secret": "<secret for signature verification>",
6         "name": "payouts.partially_synced_cr",
7       “config”: { “days_synced” : 7 },
8          "url": "https://webhook.site/url"}'
payouts.partially_synced payload
1{
2  "event": "payouts.partially_synced",
3  "name": "7 days synced",
4  "data": {
5    "account": "12db5af4-fd5f-4d1f-bd98-0360df770aa8",
6    "user": "abdb5af4-fd5f-4d1f-bd10-0360df77012c",
7    "days_synced": 7,
8    "available_from": "2019-06-07T20:12:09Z", 
9    "available_to": "2019-09-23T23:57:31Z",
10    "available_count": 324
11  }
12}

Added

A new payout object is added when a new account object is created and scanned.

After the initial scan is finished, payouts are continuously added with periodic scanning if new one are found in the account.

Event

payouts.added

Payload

account
string uuid

ID of the account the payouts were added to.

user
string uuid

ID of the user associated with the account.

added_from
string timestamp

Represents the start of the time period the payouts were added for. The added_from timestamp will precede the added_to timestamp.

To get the added payouts, you can query the payouts endpoint by specifying the added_from, added_to range in the request parameters.

added_to
string timestamp

Represents the end of the time period the payouts are added for.

added_count
integer

The number of payouts added to the account.

available_from
string timestamp

Represents the start of the time period the payouts are available for. The available_from timestamp will precede the available_to timestamp.

available_to
string timestamp

Represents the end of the time period the payouts are available for.

available_count
integer

The total number of payouts associated with the account at the moment the webhook call is made.

payouts.added curl
1curl -X POST https://api.argyle.io/v1/webhooks \
2  -u api_key_id:api_key_secret \
3  -H "Content-Type: application/json" \
4  -d '{"events": ["payouts.added"],
5       "secret": "<secret for signature verification>",
6         "name": "payouts.added",
7          "url": "https://webhook.site/url"}'
payouts.added payload
1{
2  "event": "payouts.added",
3  "name": "Payouts added",
4  "data": {
5    "account": "12db5af4-fd5f-4d1f-bd98-0360df770aa8",
6    "user": "abdb5af4-fd5f-4d1f-bd10-0360df77012c",
7    "added_from": "2019-08-07T20:12:09Z",
8    "added_to": "2019-09-23T23:57:31Z",
9    "added_count": 10,
10    "available_from": "2019-03-07T20:12:09Z",
11    "available_to": "2019-09-23T23:57:31Z",
12    "available_count": 456
13  }
14}

Updated

Payout objects are updated through periodic scanning.

Event

payouts.updated

Payload

account
string uuid

ID of the account the payouts were updated for.

user
string uuid

ID of the user associated with the account.

updated_from
string timestamp

Represents the start of the time period the payouts were updated in. The updated_from timestamp will precede the updated_to timestamp.

updated_to
string timestamp

Represents the end of the time period the payouts were updated in.

updated_count
integer

The number of payouts that were updated.

updated_payouts
array of uuids

IDs of the updated payouts.

available_from
string timestamp

Represents the start of the time period the payouts are available for. The available_from timestamp will precede the available_to timestamp.

available_to
string timestamp

Represents the end of the time period the payouts are available for.

available_count
integer

The total number of payouts associated with the account at the moment the webhook call is made.

payouts.updated curl
1curl -X POST https://api.argyle.io/v1/webhooks \
2  -u api_key_id:api_key_secret \
3  -H "Content-Type: application/json" \
4  -d '{"events": ["payouts.updated"],
5       "secret": "<secret for signature verification>",
6         "name": "payouts.updated",
7          "url": "https://webhook.site/url"}'
payouts.updated payload
1{
2  "event": "payouts.updated",
3  "name": "Payouts updated",
4  "data": {
5    "account": "12db5af4-fd5f-4d1f-bd98-0360df770aa8",
6    "user": "abdb5af4-fd5f-4d1f-bd10-0360df77012c",
7    "updated_from": "2019-09-10T10:00:00Z",
8    "updated_to": "2019-09-12T12:00:00Z",
9    "updated_count": 2,
10    "updated_payouts": [
11      "d667a477-e252-4f8a-9518-92a51b235187",
12      "27f3cde1-1ca0-4b5a-940d-337fd33f97b5"
13    ],
14    "available_from": "2019-03-07T20:12:09Z",
15    "available_to": "2019-09-23T23:57:31Z",
16    "available_count": 456
17  }
18}

Documents

Documents webhooks will notify your system when:

A new document object is added after a new account is scanned with an initial scan or after additional documents are found during a periodic scan.

An existing document object is updated with new information after a periodic scan.

An existing document object is deleted by a data partner and is found to be missing during a periodic scan or when the parent account gets deleted.

Added

A new document object is added when a new account object is created and scanned or after additional documents are found during a periodic scan.

Event

documents.added

Payload

account
string uuid

ID of the account the document was added for.

user
string uuid

ID of the user the account belongs to.

document
string uuid

ID of the document that was added.

documents.added curl
1curl -X POST https://api.argyle.io/v1/webhooks \
2  -u api_key_id:api_key_secret \
3  -H "Content-Type: application/json" \
4  -d '{"events": ["documents.added"],
5       "secret": "<secret for signature verification>",
6         "name": "documents.added",
7          "url": "https://webhook.site/url"}'
documents.added payload
1{
2  "event": "documents.added",
3  "name": "A document was added",
4  "data": {
5    "account": "ada143be-3c90-4534-b7ea-9899674dc6e0",
6    "user": "3823026e-a964-45f6-b201-6b8c096b30d3",
7    "document": "4334r6e-a964-45eef6-b201-64464"
8  }
9}
10

Updated

Document objects are updated through periodic scanning.

Event

documents.updated

Payload

account
string uuid

ID of the account the document was updated for.

user
string uuid

ID of the user the account belongs to.

document
string uuid

ID of the document that was updated.

documents.updated curl
1curl -X POST https://api.argyle.io/v1/webhooks \
2  -u api_key_id:api_key_secret \
3  -H "Content-Type: application/json" \
4  -d '{"events": ["documents.updated"],
5       "secret": "<secret for signature verification>",
6         "name": "documents.updated",
7          "url": "https://webhook.site/url"}'
documents.updated payload
1{
2  "event": "documents.updated",
3  "name": "A document was updated",
4  "data": {
5    "account": "ada143be-3c90-4534-b7ea-9899674dc6e0",
6    "user": "3823026e-a964-45f6-b201-6b8c096b30d3",
7    "document": "4334r6e-a964-45eef6-b201-64464"
8  }
9}

Removed

Documents objects will be removed when they are deleted by a data partner and are found to be missing during a periodic scan or when the account holding the documents is deleted.

Event

documents.removed

Payload

account
string uuid

ID of the account the document was removed for.

user
string uuid

ID of the user the account belongs to.

document
string uuid

ID of the document that was removed.

documents.removed curl
1curl -X POST https://api.argyle.io/v1/webhooks \
2  -u api_key_id:api_key_secret \
3  -H "Content-Type: application/json" \
4  -d '{"events": ["documents.removed"],
5       "secret": "<secret for signature verification>",
6         "name": "documents.removed",
7          "url": "https://webhook.site/url"}'
documents.removed payload
1{
2  "event": "documents.removed",
3  "name": "A document was removed",
4  "data": {
5    "account": "ada143be-3c90-4534-b7ea-9899674dc6e0",
6    "user": "3823026e-a964-45f6-b201-6b8c096b30d3",
7    "document": "4334r6e-a964-45eef6-b201-64464"
8  }
9}

Activities

There are two types of activity webhook events:

Events that trigger only during the initial scan when a new account is connected: activities.fully_synced and activities.partially_synced. They will trigger once per invocation for each added account.

Events that trigger later on, when new activities are added in the future: activities.added and activities.updated. They will only trigger on a periodic scan for accounts that are already connected and have been fully synced, and only after the activities.fully_synced event has been triggered.

A typical account can contain thousands of activities and activities.fully_synced will only fire after all of the activities are scanned, which in some cases might take hours.

Therefore, activities.partially_synced can be used if only a partial range of the activities is needed. For example, a history of the last 30 days instead of a complete history of activities. This will reduce the sync time to minutes or, in some cases, seconds.

Fully synced

This webhook triggers when all the activities are fully scanned. The scanning starts from the most recent activities and finishes with the oldest ones.

It only triggers when the initial scan finishes. It is not invoked during periodic scanning.

Event

activities.fully_synced

Payload

account
string uuid

ID of the account the activities were scanned from.

user
string
uuid

ID of the user associated with the account.

available_from
string timestamp

Represents the start of the time period the activities are available for. The available_from timestamp will precede the available_to timestamp.

available_to
string timestamp

Represents the end of the time period the activities are available for.

available_count
integer

The total number of activities associated with the account at the moment the webhook call is made.

activities.fully_synced curl
1curl -X POST https://api.argyle.io/v1/webhooks \
2  -u api_key_id:api_key_secret \
3  -H "Content-Type: application/json" \
4  -d '{"events": ["activities.fully_synced"],
5       "secret": "<secret for signature verification>",
6         "name": "activities.fully_synced",
7          "url": "https://webhook.site/url"}'
activities.fully_synced payload
1{
2  "event": "activities.fully_synced",
3  "name": "All historical data synced",
4  "data": {
5    "account": "12db5af4-fd5f-4d1f-bd98-0360df770aa8",
6    "user": "abdb5af4-fd5f-4d1f-bd10-0360df77012c",
7    "available_from": "2019-03-07T20:12:09Z", 
8    "available_to": "2019-09-23T23:57:31Z",
9    "available_count": 432
10  }
11}

Partially synced

By default, this webhook triggers when 30 days of historical activities were successfully scanned (starting from most recent activities). The number of days scanned is a configurable parameter. This webhook can be subscribed to multiple times with different day ranges. Triggers only on the initial scan, and does not trigger during a periodic scan.

Event

activities.partially_synced

Configuration

days_synced
integer
optional

The number of days to be scanned.

The default value is 30.

Payload

account
string uuid

ID of the account the activities were scanned from.

user
string uuid

ID of the user associated with the account.

days_synced
integer

Number of days the activities were synced for.

available_from
string timestamp

Represents the start of the time period the activities are available for. The available_from timestamp will precede the available_to timestamp.

available_to
string timestamp

Represents the end of the time period the activities are available for.

available_count
integer

The total number of activities associated with the account at the moment the webhook call is made.

partially_synced curl
1curl -X POST https://api.argyle.io/v1/webhooks \
2  -u api_key_id:api_key_secret \
3  -H "Content-Type: application/json" \
4  -d '{"events": ["activities.partially_synced"],
5       "secret": "<secret for signature verification>",
6         "name": "activities.partially_synced",
7          "url": "https://webhook.site/url"}'
activities.partially_synced custom range curl
1curl -X POST https://api.argyle.io/v1/webhooks \
2  -u api_key_id:api_key_secret \
3  -H "Content-Type: application/json" \
4  -d '{"events": ["activities.partially_synced"],
5       "secret": "<secret for signature verification>",
6         "name": "activities.partially_synced_cr",
7       “config”: { “days_synced” : 7 },
8          "url": "https://webhook.site/url"}'
activities.partially_synced payload
1{
2  "event": "activities.partially_synced",
3  "name": "7 days synced",
4  "data": {
5    "account": "12db5af4-fd5f-4d1f-bd98-0360df770aa8",
6    "user": "abdb5af4-fd5f-4d1f-bd10-0360df77012c",
7    "days_synced": 7,
8    "available_from": "2019-06-07T20:12:09Z", 
9    "available_to": "2019-09-23T23:57:31Z",
10    "available_count": 324
11  }
12}

Added

A new activity object is added when a new account object is created and scanned.

After the initial scan is finished, activities are continuously added with periodic scanning if new ones are found in the account.

Event

activities.added

Payload

account
string uuid

ID of the account the activities were added to.

user
string uuid

ID of the user associated with the account.

added_from
string timestamp

Represents the start of the time period the activities were added for. The added_from timestamp will precede the added_to timestamp.

To get the added activities, you can query the activities endpoint by specifying the added_from, added_to range in the request parameters.

added_to
string timestamp

Represents the end of the time period the activities are added for.

added_count
integer

The number of activities added to the account.

available_from
string timestamp

Represents the start of the time period the activities are available for. The available_from timestamp will precede the available_to timestamp.

available_to
string timestamp

Represents the end of the time period the activities are available for.

available_count
integer

The total number of activities associated with the account at the moment the webhook call is made.

activities.added curl
1curl -X POST https://api.argyle.io/v1/webhooks \
2  -u api_key_id:api_key_secret \
3  -H "Content-Type: application/json" \
4  -d '{"events": ["activities.added"],
5       "secret": "<secret for signature verification>",
6         "name": "activities.added",
7          "url": "https://webhook.site/url"}'
activities.added payload
1{
2  "event": "activities.added",
3  "name": "Activities added",
4  "data": {
5    "account": "12db5af4-fd5f-4d1f-bd98-0360df770aa8",
6    "user": "abdb5af4-fd5f-4d1f-bd10-0360df77012c",
7    "added_from": "2019-08-07T20:12:09Z",
8    "added_to": "2019-09-23T23:57:31Z",
9    "added_count": 10,
10    "available_from": "2019-03-07T20:12:09Z",
11    "available_to": "2019-09-23T23:57:31Z",
12    "available_count": 456
13  }
14}

Updated

Activity objects are updated through periodic scanning.

Event

activities.updated

Payload

account
string uuid

ID of the account the activities were updated for.

user
string uuid

ID of the user associated with the account.

updated_from
string timestamp

Represents the start of the time period the activities were updated in. The updated_from timestamp will precede the updated_to timestamp.

updated_to
string timestamp

Represents the end of the time period the activities were updated in.

updated_count
integer

The number of activities that were updated.

updated_activities
array of uuids

IDs of the updated activities.

available_from
string timestamp

Represents the start of the time period the activities are available for. The available_from timestamp will precede the available_to timestamp.

available_to
string timestamp

Represents the end of the time period the activities are available for.

available_count
integer

The total number of activities associated with the account at the moment the webhook call is made.

activities.updated curl
1curl -X POST https://api.argyle.io/v1/webhooks \
2  -u api_key_id:api_key_secret \
3  -H "Content-Type: application/json" \
4  -d '{"events": ["activities.updated"],
5       "secret": "<secret for signature verification>",
6         "name": "activities.updated",
7          "url": "https://webhook.site/url"}'
activities.updated payload
1{
2  "event": "activities.updated",
3  "name": "Activities updated",
4  "data": {
5    "account": "12db5af4-fd5f-4d1f-bd98-0360df770aa8",
6    "user": "abdb5af4-fd5f-4d1f-bd10-0360df77012c",
7    "updated_from": "2019-09-10T10:00:00Z",
8    "updated_to": "2019-09-12T12:00:00Z",
9    "updated_count": 2,
10    "updated_activities": [
11      "d667a477-e252-4f8a-9518-92a51b235187",
12      "27f3cde1-1ca0-4b5a-940d-337fd33f97b5"
13    ],
14    "available_from": "2019-03-07T20:12:09Z",
15    "available_to": "2019-09-23T23:57:31Z",
16    "available_count": 456
17  }
18}

Vehicles

Vehicles webhooks will notify your system when:

A new vehicle object is added after a new account is scanned with an initial scan or after additional vehicles are found during the periodic scan.

An existing vehicle object is updated with new information after a periodic scan.

An existing vehicle object is deleted by a data partner and is found to be missing during a periodic scan or when the parent account is deleted.

Added

A new vehicle object is added when a new account object is created and scanned or after additional vehicles are found during a periodic scan.

Event

vehicles.added

Payload

account
string uuid

ID of the account the vehicle was added for.

user
string uuid

ID of the user the account belongs to.

vehicle
string uuid

ID of the vehicle that was added.

vehicles.added curl
1curl -X POST https://api.argyle.io/v1/webhooks \
2  -u api_key_id:api_key_secret \
3  -H "Content-Type: application/json" \
4  -d '{"events": ["vehicles.added"],
5       "secret": "<secret for signature verification>",
6         "name": "vehicles.added",
7          "url": "https://webhook.site/url"}'
vehicles.added payload
1{
2  "event": "vehicles.added",
3  "name": "A vehicle was added",
4  "data": {
5    "account": "ada143be-3c90-4534-b7ea-9899674dc6e0",
6    "user": "3823026e-a964-45f6-b201-6b8c096b30d3",
7    "vehicle": "4334r6e-a964-45eef6-b201-64464"
8  }
9}
10

Updated

Vehicle objects are updated through periodic scanning.

Event

vehicles.updated

Payload

account
string uuid

ID of the account the vehicle was updated for.

user
string uuid

ID of the user the account belongs to.

vehicle
string uuid

ID of the vehicle that was updated.

vehicles.updated curl
1curl -X POST https://api.argyle.io/v1/webhooks \
2  -u api_key_id:api_key_secret \
3  -H "Content-Type: application/json" \
4  -d '{"events": ["vehicles.updated"],
5       "secret": "<secret for signature verification>",
6         "name": "vehicles.updated",
7          "url": "https://webhook.site/url"}'
vehicles.updated payload
1{
2  "event": "vehicles.updated",
3  "name": "A vehicle was updated",
4  "data": {
5    "account": "ada143be-3c90-4534-b7ea-9899674dc6e0",
6    "user": "3823026e-a964-45f6-b201-6b8c096b30d3",
7    "vehicle": "4334r6e-a964-45eef6-b201-64464"
8  }
9}

Removed

Vehicle objects will be removed when they are deleted by a data partner and are found to be missing during a periodic scan or when the account associated with the vehicle is deleted.

Event

vehicles.removed

Payload

account
string uuid

ID of the account the vehicle was removed for.

user
string uuid

ID of the user the account belongs to.

vehicle
string uuid

ID of the vehicle that was removed.

vehicles.removed curl
1curl -X POST https://api.argyle.io/v1/webhooks \
2  -u api_key_id:api_key_secret \
3  -H "Content-Type: application/json" \
4  -d '{"events": ["vehicles.removed"],
5       "secret": "<secret for signature verification>",
6         "name": "vehicles.removed",
7          "url": "https://webhook.site/url"}'
vehicles.removed payload
1{
2  "event": "vehicles.removed",
3  "name": "A vehicle was removed",
4  "data": {
5    "account": "ada143be-3c90-4534-b7ea-9899674dc6e0",
6    "user": "3823026e-a964-45f6-b201-6b8c096b30d3",
7    "vehicle": "4334r6e-a964-45eef6-b201-64464"
8  }
9}

Reputations

Reputations webhooks will notify your system when:

A new reputation object is added after a new account is scanned with an initial scan.

An existing reputation object is updated with new information after a periodic scan.

Added

A new reputation object is added when a new account object is created and scanned.

Event

reputations.added

Payload

account
string uuid

ID of the account the reputation was added for.

user
string uuid

ID of the user the account belongs to.

reputation
string uuid

ID of the reputation that was added.

reputations.added curl
1curl -X POST https://api.argyle.io/v1/webhooks \
2  -u api_key_id:api_key_secret \
3  -H "Content-Type: application/json" \
4  -d '{"events": ["reputations.added"],
5       "secret": "<secret for signature verification>",
6         "name": "reputations.added",
7          "url": "https://webhook.site/url"}'
reputations.added payload
1{
2  "event": "reputations.added",
3  "name": "A reputation was added",
4  "data": {
5    "account": "ada143be-3c90-4534-b7ea-9899674dc6e0",
6    "user": "3823026e-a964-45f6-b201-6b8c096b30d3",
7    "reputation": "4334r6e-a964-45eef6-b201-64464"
8  }
9}

Updated

Reputation objects are updated through periodic scanning.

Event

reputations.updated

Payload

account
string uuid

ID of the account the reputation was updated for.

user
string uuid

ID of the user the account belongs to.

reputation
string uuid

ID of the reputation that was updated.

reputations.updated curl
1curl -X POST https://api.argyle.io/v1/webhooks \
2  -u api_key_id:api_key_secret \
3  -H "Content-Type: application/json" \
4  -d '{"events": ["reputations.updated"],
5       "secret": "<secret for signature verification>",
6         "name": "reputations.updated",
7          "url": "https://webhook.site/url"}'
reputations.updated payload
1{
2  "event": "reputations.updated",
3  "name": "A reputation was updated",
4  "data": {
5    "account": "ada143be-3c90-4534-b7ea-9899674dc6e0",
6    "user": "3823026e-a964-45f6-b201-6b8c096b30d3",
7    "reputation": "4334r6e-a964-45eef6-b201-64464"
8  }
9}

Pay Allocations

Pay allocation webhooks will notify your system when:

  1. A new pay allocation was added.
  2. A pay allocations was removed.
  3. A change occurred in a pay allocation.

Added

This webhook is sent when a new pay allocation was added.

Event

pay_allocations.added

Payload

account
string uuid

ID of the parent account (/v1/accounts).

user
string uuid

ID of the user the account belongs to.

pay_allocation
string uuid

ID of the pay allocation that was added.

pay_allocations.added curl
1curl -X POST https://api.argyle.io/v1/webhooks \
2  -u api_key_id:api_key_secret \
3  -H "Content-Type: application/json" \
4  -d '{"events": ["pay_allocations.added"],
5       "secret": "<secret for signature verification>",
6         "name": "pay_allocations.added",
7          "url": "https://webhook.site/url"}'
pay_allocations.added
1{
2  "event": "pay_allocations.added",
3  "name": "A pay allocation was added",
4  "data": {
5    "account": "ada143be-3c90-4534-b7ea-9899674dc6e0",
6    "user": "3823026e-a964-45f6-b201-6b8c096b30d3",
7    "pay_allocation": "4334r6e-a964-45eef6-b201-64464"
8  }
9}

Updated

This webhook is sent when a change in a pay allocation has occurred.

Event

pay_allocations.updated

Payload

account
string uuid

ID of the parent account (/v1/accounts).

user
string uuid

ID of the user the account belongs to.

pay_allocation
string uuid

ID of the pay allocation that was updated.

pay_allocations.updated curl
1curl -X POST https://api.argyle.io/v1/webhooks \
2  -u api_key_id:api_key_secret \
3  -H "Content-Type: application/json" \
4  -d '{"events": ["pay_allocations.updated"],
5       "secret": "<secret for signature verification>",
6         "name": "pay_allocations.updated",
7          "url": "https://webhook.site/url"}'
pay_allocations.updated
1{
2  "event": "pay_allocations.updated",
3  "name": "A pay allocation was updated",
4  "data": {
5    "account": "ada143be-3c90-4534-b7ea-9899674dc6e0",
6    "user": "3823026e-a964-45f6-b201-6b8c096b30d3",
7    "pay_allocation": "4334r6e-a964-45eef6-b201-64464"
8  }
9}

Removed

This webhook is sent when a pay allocation was removed either by the user in the Link item platform, or by you via the API. Learn more about removing pay allocations here.

Event

pay_allocations.removed

Payload

account
string uuid

ID of the parent account (/v1/accounts).

user
string uuid

ID of the user the account belongs to.

pay_allocation
string uuid

ID of the pay allocation that was removed.

pay_allocations.removed curl
1curl -X POST https://api.argyle.io/v1/webhooks \
2  -u api_key_id:api_key_secret \
3  -H "Content-Type: application/json" \
4  -d '{"events": ["pay_allocations.removed"],
5       "secret": "<secret for signature verification>",
6         "name": "pay_allocations.removed",
7          "url": "https://webhook.site/url"}'
pay_allocations.removed
1{
2  "event": "pay_allocations.removed",
3  "name": "A pay allocation was removed",
4  "data": {
5    "account": "ada143be-3c90-4534-b7ea-9899674dc6e0",
6    "user": "3823026e-a964-45f6-b201-6b8c096b30d3",
7    "pay_allocation": "4334r6e-a964-45eef6-b201-64464"
8  }
9}