Skip to main content
Click “Copy Page” to copy this use case as markdown.

Problem

When users open their banking or fintech app and scroll through recent transactions, the best they typically see is a cleaned-up merchant name (sometimes) and a dollar amount. A $36.58 charge at DoorDash tells them where they spent money, but not what they actually ordered. This is the L3 transaction data gap. Without item-level detail, users cannot verify that a charge is legitimate, recall what they purchased, or feel confident that their account activity is accurate. This gap is especially problematic for fraud detection. A user who sees an unfamiliar charge amount at a merchant they do use has no way to confirm whether the purchase was theirs without leaving your app and digging through email receipts or merchant order histories.

Solution

Use SKU-level transaction data from Knot’s Sync Transactions endpoint to enrich transactions in your app with the individual items purchased, including product names, descriptions, images, quantities, and prices. Further data such as the order status and delivery information is also available. Surface this data on the dedicated transaction detail screen your app already has for each transactions, so users can see exactly what was in each order.
Transaction detail screen showing a $104.78 Target order with itemized products including milk, chicken, paper towels, and a coffee maker
This turns every transaction from a generic line item into a rich, verifiable record, giving users confidence in their purchase history and making your app the first place they check when something looks off.

Flow

Implementation

1

Sync transaction data

When a user switches their card at a merchant or links their merchant account, Knot begins collecting transaction data for that account. Listen for the NEW_TRANSACTIONS_AVAILABLE webhook event, then call Sync Transactions to pull the user’s transactions.
2

Match & store transactions

Persist the SKU-level transaction data so it can be retrieved when a user views a transaction in your app. Match each SKU-level transaction from Knot to the corresponding card transaction in your system using this guide to determine exact fields to match on.
3

Display items on the transaction detail screen

Knot SKU-level txn information is available

When a user taps on a transaction in your app and the user is navigated to the transaction detail screen, display the fully-enriched set of transaction information, including the products, order status, and delivery information.Only display transactions with order_status of COMPLETED, DELIVERED, PICKED_UP, SHIPPED, BILLED, or ORDERED. Filter out CANCELLED, REFUNDED, and FAILED.Additional fields to display:
FieldPurpose
products[].nameProduct name for display.
products[].descriptionProduct description for display.
products[].image_urlProduct image URL to display the image of each product.
products[].urlProduct URL to link out to the product.
products[].price.totalPrice paid for each product for display.
products[].external_idUnique product identifier.
order_statusCurrent status of the order (e.g. DELIVERED, SHIPPED).
shipping.location.addressDelivery address including line1, line2, city, region, postal_code, and country.

Knot SKU-level txn information is NOT available

There are a few scenarios where your system may not have enriched, SKU-level transaction data from Knot for a corresponding card transaction in your system. Below are each scenario outlined with their solution if applicable:
ScenarioSolution
The corresponding merchant account was never linked to your app or is currently disconnected.If your system is aware of the merchant for the transaction, display a button on the transaction detail screen requesting the user link (or relink) the appropriate merchant account. If your system is not aware of the merchant, display an identical button that instead navigates to a list of merchants for the user to choose to link.
The transaction is recent (e.g. occurred within the last 24 hours).Call Knot’s Refresh Transactions endpoint to refresh the synced SKU-level transactions or simply do not display the enriched information.
This makes the enriched experience feel like a natural upgrade rather than an inconsistent feature.

Expansion Path

  • Handle updated transactions - Transactions can change after they are first synced, for example when an order ships, a refund is issued, or items are modified. Listen for the UPDATED_TRANSACTIONS_AVAILABLE webhook and re-sync the affected transactions to keep your stored data current.
  • Fraud verification flow - When a user disputes or flags a transaction, show the itemized breakdown as a first step before escalating. If the user recognizes the items, they can dismiss the dispute immediately, reducing false dispute rates and support volume.