Webhooks
A webhook record stores the raw payload of every Plaid webhook event received for a user’s item, along with metadata about the mining operation that resulted from it. This provides a full audit trail of Plaid-initiated events.
Webhooks arrive at the prod-txn-webhook Lambda via the prod-floatme-webhook-api API Gateway. After verification, they are enqueued onto the prod-txn-plaid-webhooks SQS queue and processed by the prod-txn-miner Lambda. The miner writes the webhook record to DynamoDB before processing.
See Plaid Mining Pipeline for the full processing flow.
Storage
Table: prod-txn-transactions
Region: us-east-2
Keys
| Key | Value |
|---|---|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Attributes
| Attribute | Description |
|---|---|
|
Always |
|
FloatMe user identifier |
|
Plaid item identifier the webhook relates to |
|
Origin of the webhook event. See Webhook Sources. |
|
RFC3339 timestamp when this webhook record was stored |
|
Raw Plaid webhook payload. See Webhook Payload. |
|
Summary of the mining operation triggered by this webhook. See Update Info. |
Webhook Payload
The webhook field contains the original Plaid webhook body:
| Field | Description |
|---|---|
|
Plaid webhook type (e.g., |
|
Plaid webhook code (e.g., |
|
For TRANSACTIONS webhooks: number of new transactions available |
|
For |
Update Info
The update_info field is populated by the miner with a summary of the data retrieved from Plaid during processing:
| Field | Description |
|---|---|
|
Total number of transactions available in Plaid for the requested date range |
|
Array of accounts retrieved from Plaid. Each entry contains |
|
Plaid institution identifier |
Webhook Sources
The source field identifies how the webhook was generated:
| Source | Description |
|---|---|
(empty) |
Standard webhook sent directly from Plaid |
|
Synthetic webhook generated by the listener Lambda in response to an Auth0 login event |
Query Patterns
| Query | Index | Conditions |
|---|---|---|
List webhooks for an item (by time, newest first) |
Primary |
|
List webhooks for a user (by time, newest first) |
GSI1 |
|
List webhooks for an item filtered by type |
GSI2 |
|
List webhooks for an item filtered by type and code |
GSI2 |
|
List webhooks for a user filtered by type |
GSI3 |
|
List webhooks for a user filtered by type and code |
GSI3 |
|
GSI4 is used internally by the listener Lambda to look up webhooks by source (e.g., find all FROM_LISTENER synthetic webhooks for an item). It is not exposed via the API.
|
Related Pages
-
Plaid Mining Pipeline — Full webhook processing flow and all handled webhook types
-
Items — The item each webhook belongs to
-
Event-Driven Flows — Listener staleness check using webhook history
-
Architecture —
prod-txn-transactionstable overview