Transaction History Webhook
The Transaction History webhook details all transactions on each account a customer has shared with Yaspa. The Categorized Transaction History webhook is the same, with the addition of categorization for each transaction. The content is data-rich and intended for analysis, not for immediate action on receipt.
Yaspa coordinates configuration during integration. Typically merchants choose to receive 90-day windows of data, organized into monthly periods (statements) and delivered weekly or monthly after the customer's first payment.
Transaction History and Categorized Transaction History webhooks are sent as HTTPS POST requests, and a typical example of the request body is as follows:
{
"type": "INSIGHTS",
"data": {
"metadata": {
"merchantId": "6ac021de351a3351401565cb",
"customerIdentifier": "xekzyz3lorw9",
"reference": "3pdcj42fpn9t",
"transactionId": "d7941707-fe9f-fa8d-2491-3da414",
"merchantTradingName": "example.com"
},
"insightGroup": {
"id": "6650a3aac3b4d5e6f7a8b9d1",
"name": "Insight Group 1",
"insights": ["CATEGORIZED_TRANSACTION_HISTORY"],
"period": ["MONTHLY"],
"fromDate": "2026-01-01T00:00:00Z",
"toDate": "2026-02-28T23:59:59Z"
},
"insights": {
"CATEGORIZED_TRANSACTION_HISTORY": {
"fromDate": "2026-01-01T00:00:00Z",
"toDate": "2026-02-28T23:59:59Z",
"accounts": [
{
"account": {
"identifier": "CHECKING",
"financialInstitution": "US Test Bank",
"type": "CHECKING",
"holderName": "John Smith",
"numberLastFour": "7890",
"routingNumber": "222222226",
"dataAccessStatus": "CONNECTED",
"dataLastUpdated": "2026-03-01T09:14:22Z"
},
"fromDate": "2026-02-01T00:00:00Z",
"toDate": "2026-02-28T23:59:59Z",
"currency": "USD",
"moneyIn": 500.00,
"moneyOut": 40.00,
"closingBalance": 960.00,
"openingBalance": 500.00,
"statements": {
"period": {
"MONTHLY": [
{
"fromDate": "2026-02-01T00:00:00Z",
"toDate": "2026-02-28T23:59:59Z",
"description": "2026-02",
"moneyIn": 500.00,
"moneyOut": 40.00,
"closingBalance": 960.00,
"openingBalance": 500.00,
"transactions": [
{
"date": "2026-02-14T19:42:05Z",
"description": "Olive Garden",
"originalDescription": "OLIVE GARDEN #1123 AUSTIN TX",
"category": "Other",
"status": "POSTED",
"amount": -40.00,
"merchantCategoryCode": 5812,
"balanceAfterTransaction": 960.00
},
{
"date": "2026-02-13T08:00:00Z",
"description": "Payroll",
"originalDescription": "ACME CORP PAYROLL PPD ID 1234567",
"category": "Income",
"status": "POSTED",
"amount": 500.00,
"balanceAfterTransaction": 1000.00
}
]
}
]
}
}
}
],
"insight": "CATEGORIZED_TRANSACTION_HISTORY"
}
}
}
}Insights Object: Transaction History
| Field | Type | Description |
|---|---|---|
fromDate | string | ISO 8601 datetime of the start of the analyzed window |
toDate | string | ISO 8601 datetime of the end of the analyzed window |
accounts | array | Account-level insights, one entry per account eligible for insight generation. See Accounts. |
insight | string | "CATEGORIZED_TRANSACTION_HISTORY" when categorization included, "TRANSACTION_HISTORY" when categorization excluded |
Accounts object
| Field | Type | Description |
|---|---|---|
account | object | The user's account information. See Account. |
fromDate | string | ISO 8601 datetime of the start of the window reported |
toDate | string | ISO 8601 datetime of the end of the window reported |
currency | string | ISO 4217 currency code, "USD" |
moneyIn | decimal | Sum of all incoming (credit) transaction amounts in the window |
moneyOut | decimal | Sum of all outgoing (debit) transaction amounts in the window, expressed as a positive number |
closingBalance | decimal | Account balance at the end of the window, zero if undefined |
openingBalance | decimal | Account balance at the start of the window, zero if undefined |
statements | object | Transactions and summaries, grouped by the requested period type(s). See Statements. |
Statements Object
| Field | Type | Description |
|---|---|---|
period | object | Transaction data aggregated by period type. See Period. |
Period object
| Field | Type | Description |
|---|---|---|
<period> | array | Collections of data organized into "DAILY", "WEEKLY", and/or "MONTHLY" as configured. Sorted most recent first. See Period Data. |
Period Data Object
| Field | Type | Description |
|---|---|---|
fromDate | string | ISO 8601 (UTC) start of this period |
toDate | string | ISO 8601 (UTC) end of this period |
description | string | Human-readable label for the period, for example "2026-02" for monthly, "WEEK 5, 2026" for weekly, "2026-02-04" for daily |
moneyIn | decimal | Sum of all incoming (credit) transaction amounts in this period |
moneyOut | decimal | Sum of all outgoing (debit) transaction amounts in this period, as a positive number |
closingBalance | decimal | Balance at the end of this period, zero if undefined |
openingBalance | decimal | Balance at the start of this period, zero if undefined |
transactions | array | Individual transactions during this period. See Transaction. |
Transaction object
| Field | Type | Description |
|---|---|---|
date | string | ISO 8601 (UTC) timestamp of the transaction's most recent update |
description | string | Cleaned merchant and/or transaction description |
originalDescription | string | Raw description as retrieved, before any relabeling |
category | string | Transaction category interpreted by Yaspa, unless disabled |
status | string | Transaction status at the time of the report: "POSTED" or "PENDING" |
amount | decimal | Negative for outgoing (debit), positive for incoming (credit) |
merchantCategoryCode | integer | Merchant category code (MCC), if available |
checkNumber | string | Check number. Present only for check transactions. |
balanceAfterTransaction | decimal | Running account balance immediately after this transaction |
Updated 4 days ago
Did this page help you?
