{
"webhook_type": "ITEM", // Comnmon to all webhooks - tells you what Product is involved. Can be "ITEM", "TRANSACTIONS", "AUTH", "ASSETS", "HOLDINGS", "INVESTMENTS_TRANSACTIONS", "LIABILITIES", "PAYMENT_INITIATION", "BANK_TRANSFERS", "INCOME", "DEPOSIT_SWITCH"
"webhook_code": "ERROR", // Common to all webhooks
"item_id": "wz666MBjYWTp2PDzzggYhM6oWWmBb", // Used in all except Assets, Incomes, and Deposit Switch webhooks. Helps you figure out what Item (Institution) the webhook applies to
"consent_expiration_time": "2020-01-15T13:25:17.766Z", // Item Error type webhooks, warning up upcoming expiration
"new_webhook_url": "https://plaid.com/example/webhook", // Only used for confirmation that a webhook update was completed; is sent to the new webhook URL
"new_transactions": 19, // Transactions product only
"removed_transactions": [
"yBVBEwrPyJs8GvR77N7QTxnGg6wG74H7dEDN6",
"kgygNvAVPzSX9KkddNdWHaVGRVex1MHm3k9no"
], // Transactions product only to handle cases like Pending to Finalized transactions
"account_id": "dVzbVMLjrxTnLjX4G66XUp5GLklm4oiZy88yK", // Auth product when micro-deposits are used for verification or when micro deposit verification times out
"asset_report_id": "47dfc92b-bba3-4583-809e-ce871b321f05", // Assets product. No item_id will be included. Use this id to identify the institution you requested an asset report for - this will match the id returned at report creation.
"new_holdings": 19, // Investments product
"updated_holdings": 0, // Investments product
"new_investments_transactions": 16, // Investments Product
"canceled_investments_transactions": 0, // Investments product
"account_ids_with_new_liabilities": [
"XMBvvyMGQ1UoLbKByoMqH3nXMj84ALSdE5B58",
"BxBXxLj1m4HMXBm9WZZmCWVbPjX16EHwv99vp"
], // Accounts with new liabilities/lines of credit/etc. Use to get Loan and Credit Details for this account.
"account_ids_with_updated_liabilities": {
"XMBvvyMGQ1UoLbKByoMqH3nXMj84ALSdE5B58": [
"past_amount_due"
]
}, // tells you what fields changed in an existing account_id; use this, for instance, to keep your database in sync with Plaid data.
"payment_id": "payment-id-production-2ba30780-d549-4335-b1fe-c2a938aa39d2", // Payment Initiation
"new_payment_status": "PAYMENT_STATUS_INITIATED", // Payment Initiation
"old_payment_status": "PAYMENT_STATUS_PROCESSING", // Payment Initiation
"original_reference": "Account Funding 99744", // Payment Initiation
"adjusted_reference": "Account Funding 99", // Payment Initiation
"original_start_date": "2017-09-14", // Payment Initiation
"adjusted_start_date": "2017-09-15", // Payment Initiation
"timestamp": "2017-09-14T14:42:19.350Z", // Payment Initiation
"income_verification_id": "f6f5132f-853b-421c-8c41-d24f93ebc39f", //Income Verification Product
"verification_status": "VERIFICATION_STATUS_PROCESSING_COMPLETE", //Income Verification Product
"state": "completed", // Deposit Switch Product
"deposit_switch_id": "f6f5132f-853b-421c-8c41-d24f93ebc39f", // Deposit Switch Product
"error": {
"display_message": null, // If included, will be a user-friendly representation of the message. Do not use for programatic use/logic.
"error_code": "ITEM_LOGIN_REQUIRED", // Safe for programatic use/logic. See Plaid Docs for full set of possible values.
"error_message": "the login details of this item have changed (credentials, MFA, or required user action) and a user login is required to update this information. use Link's update mode to restore the item to a good state", // Developer friendly message about the error. Do not use for programatic use/logic.
"error_type": "ITEM_ERROR", // See Plaid Webhook docs for full set of possible values. This field is safe to set up logic based upon.
"status": 400 // You can probably ignore this field - very narrow use case that's handled better elsewhere.
} // Included whenever the webhook_code is 'ERROR', primarily Item Errors and Assets product.
}