plaid/model/processor_sync_updates_available_webhook.rs
1use serde::{Serialize, Deserialize};
2use super::WebhookEnvironmentValues;
3/**This webhook is only sent to [Plaid processor partners](https://plaid.com/docs/auth/partnerships/).
4
5Fired when an Item's transactions change. This can be due to any event resulting in new changes, such as an initial 30-day transactions fetch upon the initialization of an Item with transactions, the backfill of historical transactions that occurs shortly after, or when changes are populated from a regularly-scheduled transactions update job. It is recommended to listen for the `SYNC_UPDATES_AVAILABLE` webhook when using the `/processor/transactions/sync` endpoint. Note that when using `/processor/transactions/sync` the older webhooks `INITIAL_UPDATE`, `HISTORICAL_UPDATE`, `DEFAULT_UPDATE`, and `TRANSACTIONS_REMOVED`, which are intended for use with `/processor/transactions/get`, will also continue to be sent in order to maintain backwards compatibility. It is not necessary to listen for and respond to those webhooks when using `/processor/transactions/sync`.
6
7After receipt of this webhook, the new changes can be fetched for the Item from `/processor/transactions/sync`.
8
9Note that to receive this webhook for an Item, `/processor/transactions/sync` must have been called at least once on that Item. This means that, unlike the `INITIAL_UPDATE` and `HISTORICAL_UPDATE` webhooks, it will not fire immediately upon Item creation. If `/transactions/sync` is called on an Item that was *not* initialized with Transactions, the webhook will fire twice: once the first 30 days of transactions data has been fetched, and a second time when all available historical transactions data has been fetched.
10
11This webhook will typically not fire in the Sandbox environment, due to the lack of dynamic transactions data. To test this webhook in Sandbox, call `/sandbox/item/fire_webhook`.*/
12#[derive(Debug, Clone, Serialize, Deserialize)]
13pub struct ProcessorSyncUpdatesAvailableWebhook {
14 ///The ID of the account.
15 pub account_id: String,
16 ///The Plaid environment the webhook was sent from
17 pub environment: WebhookEnvironmentValues,
18 ///Indicates if historical pull information is available.
19 pub historical_update_complete: bool,
20 ///Indicates if initial pull information is available.
21 pub initial_update_complete: bool,
22 ///`SYNC_UPDATES_AVAILABLE`
23 pub webhook_code: String,
24 ///`TRANSACTIONS`
25 pub webhook_type: String,
26}
27impl std::fmt::Display for ProcessorSyncUpdatesAvailableWebhook {
28 fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> Result<(), std::fmt::Error> {
29 write!(f, "{}", serde_json::to_string(self).unwrap())
30 }
31}