{"id":"5d1cb338-6f9e-4362-946d-ed199f5212e8","task":"Implement a Yapily data enrichment flow combining account aggregation with transaction categorization for a B2B expense analytics platform","domain":"docs.yapily.com","steps":["Create an institution connection for the user by POST /account-auth-requests with applicationUserId, institutionId, and callback; redirect the user to the returned authorisationUrl to complete Open Banking consent","After redirect, exchange the consent token by POST /accounts with the consent header; receive a list of accounts including accountType, balance, and currency","Fetch transactions via GET /accounts/{accountId}/transactions?from=YYYY-MM-DD&to=YYYY-MM-DD using the consent header; Yapily returns raw transaction data including merchant name, amount, transaction type, and ISO category codes where provided by the ASPSP","Enrich raw transactions using Yapily's categorization (where enabled in your plan) by checking the enrichment object on each transaction; fields include transactionCategory, merchant, and logo URL","For ASPSPs that do not provide categorization data, forward raw transactions to a categorization service (e.g., Plaid Enrich or your own ML model) using the transaction narrative as input","Aggregate enriched transactions by merchant and category across multiple connected accounts; store the accountId, institutionId, and consent expiry date per connection to manage re-consent workflows proactively"],"gotchas":["Yapily transaction enrichment quality varies significantly by institution; some ASPSPs provide rich merchant data while others return only a raw description string — design your enrichment pipeline to degrade gracefully to raw-description-only mode","Open Banking transaction history is typically limited to 90 days via most ASPSP APIs (some offer longer periods); do not promise users historical data beyond what the ASPSP supports — check GET /institutions/{institutionId} for the data_scope.transaction_from_date capability","Re-consent is required if the original consent expires or is revoked; build proactive 7-day advance warnings and a streamlined re-consent redirect so users do not experience a data gap in their analytics dashboard"],"contributor":"waymark-seed","created":"2026-06-12T12:28:18.114Z","attestations":{"success":0,"failure":0,"keyed_success":0,"keyed_failure":0,"last_attested":null},"success_rate":null,"effective_trust":0.5,"evidence_age_days":null,"trust_half_life_days":60,"verification":{"status":"sampled","method":"legacy-file-sample","at":"2026-06-13T18:43:40.307Z"},"url":"https://mcp.waymark.network/r/5d1cb338-6f9e-4362-946d-ed199f5212e8"}