- Events that trigger only during the initial scan when a new account is connected:
payouts.fully_syncedandpayouts.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.addedandpayouts.updated. They will only trigger during a periodic scan for accounts that are already connected and have been fully synced, and only after thepayouts.fully_syncedevent has been triggered.
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.
For more information about initial and periodic scans, with specific examples for using payout webhook events, please check the Data Retrieval Guide.
Fully synced
POST/v1/webhooks
Implement the payouts.fully_synced webhook to know when all payouts are fully scanned.
- payouts.fully_synced triggers when all payouts are fully scanned. Scanning starts from the most recent payouts and finishes with the oldest ones.
This webhook only triggers when the initial scan finishes. It is not invoked during periodic scanning.
Request body
Webhook message
name(string, optional): Name used for the webhook subscription.data(object, optional)account(string (uuid), optional): ID of the account.user(string (uuid), optional): ID of the user.available_to(string (timestamp), optional): The date of the most recent available payout.available_count(integer, optional): The total number of payouts associated with the account at the moment the webhook call is made.
- curl
- python
Partially synced
POST/v1/webhooks
Implement the
payouts.partially_synced webhook to know when 30 days of historical payouts have been scanned.- By default, the
payouts.partially_syncedwebhook triggers when 30 days of historical payouts have been successfully scanned (starting from the date when the account was added). - The number of days scanned is a configurable parameter. You can subscribe this webhook to multiple times with different day ranges.
- It triggers only on the initial scan, and does not trigger during a periodic scan. If an account has zero or a small number of payouts, the initial scan may return all historical data and only fire the
payouts.fully_syncedwebhook.
Request body
Webhook message
name(string, optional): Name used for the webhook subscription.data(object, optional)account(string (uuid), optional): ID of the account.user(string (uuid), optional): ID of the user.days_synced(integer, optional): Number of historical days synced.available_count(integer, optional): Total number of payouts synced.
- curl
- python
Added
POST/v1/webhooks
Implement the payouts.added webhook to know when a payout object is added.
- A new payout object is added after a periodic scan when a user receives a new paystub. If the scan detects more than one paystub, then the
added_countvalue in the payload reflects this.
Request body
Webhook message
name(string, optional): Name used for the webhook subscription.data(object, optional)account(string (uuid), optional): ID of the account.user(string (uuid), optional): ID of the user.added_to(string (timestamp), optional): Represents the end of the time period the payouts are added for.added_count(integer, optional): The number of payouts added to the account.available_to(string (timestamp), optional): Represents the end of the time period the payouts are available for.available_count(integer, optional): The total number of payouts associated with the account at the moment the webhook call is made.
- curl
- python
Updated
POST/v1/webhooks
Implement the
payouts.updated webhook to know when a payout object is updated.- Payout objects are updated when a periodic scan detects changes to an existing payout — for example, the
statusof a payout execution changes fromscheduledtocompleted.
Request body
Webhook message
name(string, optional): Name used for the webhook subscription.data(object, optional)account(string (uuid), optional): ID of the account.user(string (uuid), optional): ID of the user.updated_to(string (timestamp), optional): Represents the end of the time period the payouts were updated in.updated_count(integer, optional): The number of payouts that were updated.updated_payouts(array of (uuid) strings, optional): ID’s of the updated payouts.available_to(string (timestamp), optional): Represents the end of the time period the payouts are available for.available_count(integer, optional): The total number of payouts associated with the account at the moment the webhook call is made.
- curl
- python