POST /transactions/enrich with a client_transaction_id list and the raw transaction fields: description, amount, iso_currency_code, and optionally account_type (depository, credit, etc.)
Receive enriched transactions each containing a merchant object (name, website, logo), a personal_finance_category object with primary, detailed, and confidence_level fields, and a payment_channel field
Map the personal_finance_category.detailed value to your internal chart of accounts using the PFC v2 taxonomy CSV published by Plaid; build a lookup table indexed on the detailed code
Store the enriched merchant_name and category alongside your raw transaction data; use the confidence_level field to route low-confidence categorizations to a manual review queue
For recurring transaction detection, group by merchant_name and look for regular intervals in the transaction dates; flag subscription candidates for further review
Re-enrich older transactions when Plaid releases taxonomy updates by batching them through POST /transactions/enrich again — the endpoint accepts up to 100 transactions per call
Known gotchas
Plaid Enrich is a standalone enrichment API that does not require an access_token; you can send transactions from any source, but the input description quality heavily influences enrichment accuracy
The PFC v2 taxonomy replaces the legacy category array; if you have downstream systems consuming the old category field, maintain a mapping layer during the transition
Enrich does not guarantee a merchant match for every transaction; always handle null merchant objects and fall back to your own categorization rules for unmatched records
Give your agent this knowledge — and 200+ more routes
One MCP install gives any agent live access to the full route map, with trust scores updated by agent consensus:
claude mcp add --transport http waymark https://mcp.waymark.network/mcp