{
  "_note": "Example Plaid webhook bodies (Sandbox, fake ids) for the types BankBridge handles. Real deliveries carry a Plaid-Verification JWT header that BankBridge verifies.",
  "TRANSACTIONS.SYNC_UPDATES_AVAILABLE": {
    "webhook_type": "TRANSACTIONS",
    "webhook_code": "SYNC_UPDATES_AVAILABLE",
    "item_id": "wz666MBjYWTp2PDzzggYhM6oWWmBb",
    "initial_update_complete": true,
    "historical_update_complete": true,
    "environment": "sandbox"
  },
  "ITEM.ERROR (ITEM_LOGIN_REQUIRED)": {
    "webhook_type": "ITEM",
    "webhook_code": "ERROR",
    "item_id": "wz666MBjYWTp2PDzzggYhM6oWWmBb",
    "error": {
      "error_type": "ITEM_ERROR",
      "error_code": "ITEM_LOGIN_REQUIRED",
      "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",
      "display_message": null,
      "status": 400
    },
    "environment": "sandbox"
  },
  "ITEM.PENDING_EXPIRATION": {
    "webhook_type": "ITEM",
    "webhook_code": "PENDING_EXPIRATION",
    "item_id": "wz666MBjYWTp2PDzzggYhM6oWWmBb",
    "consent_expiration_time": "2026-11-20T23:59:59Z",
    "environment": "sandbox"
  },
  "ITEM.PENDING_DISCONNECT": {
    "webhook_type": "ITEM",
    "webhook_code": "PENDING_DISCONNECT",
    "item_id": "wz666MBjYWTp2PDzzggYhM6oWWmBb",
    "reason": "INSTITUTION_MIGRATION",
    "environment": "sandbox"
  },
  "ITEM.NEW_ACCOUNTS_AVAILABLE": {
    "webhook_type": "ITEM",
    "webhook_code": "NEW_ACCOUNTS_AVAILABLE",
    "item_id": "wz666MBjYWTp2PDzzggYhM6oWWmBb",
    "environment": "sandbox"
  },
  "ITEM.LOGIN_REPAIRED": {
    "webhook_type": "ITEM",
    "webhook_code": "LOGIN_REPAIRED",
    "item_id": "wz666MBjYWTp2PDzzggYhM6oWWmBb",
    "environment": "sandbox"
  },
  "ITEM.USER_PERMISSION_REVOKED": {
    "webhook_type": "ITEM",
    "webhook_code": "USER_PERMISSION_REVOKED",
    "item_id": "wz666MBjYWTp2PDzzggYhM6oWWmBb",
    "error": {
      "error_type": "ITEM_ERROR",
      "error_code": "USER_PERMISSION_REVOKED",
      "error_message": "the holder of this account has revoked their permission for your application to access it",
      "display_message": null,
      "status": 400
    },
    "environment": "sandbox"
  },
  "TRANSFER.TRANSFER_EVENTS_UPDATE": {
    "webhook_type": "TRANSFER",
    "webhook_code": "TRANSFER_EVENTS_UPDATE",
    "environment": "sandbox"
  },
  "TRANSFER.RECURRING_NEW_TRANSFER": {
    "webhook_type": "TRANSFER",
    "webhook_code": "RECURRING_NEW_TRANSFER",
    "recurring_transfer_id": "460cbe92-2dcc-8eae-5ad6-b37d0ec90fd9",
    "transfer_id": "271ef220-dbf8-caeb-a7dc-a2b3e8a80963",
    "environment": "sandbox"
  },
  "TRANSFER.RECURRING_CANCELLED": {
    "webhook_type": "TRANSFER",
    "webhook_code": "RECURRING_CANCELLED",
    "recurring_transfer_id": "460cbe92-2dcc-8eae-5ad6-b37d0ec90fd9",
    "environment": "sandbox"
  },
  "IDENTITY_VERIFICATION.STATUS_UPDATED": {
    "webhook_type": "IDENTITY_VERIFICATION",
    "webhook_code": "STATUS_UPDATED",
    "identity_verification_id": "idv_52xR9LKo77r1Np",
    "environment": "sandbox"
  },
  "ASSETS.PRODUCT_READY": {
    "webhook_type": "ASSETS",
    "webhook_code": "PRODUCT_READY",
    "asset_report_id": "47dfc92b-bba3-4583-809e-ce871b321f05",
    "report_type": "FULL",
    "environment": "sandbox"
  },
  "CHECK_REPORT.CHECK_REPORT_READY": {
    "webhook_type": "CHECK_REPORT",
    "webhook_code": "CHECK_REPORT_READY",
    "user_id": "wz666MBjYWTp2PDzzggYhM6oWWmBb",
    "successful_products": [
      "cra_base_report"
    ],
    "environment": "sandbox"
  }
}