Summary
bh connect dump currently exports 33 fields from Plaid's Transaction object, but drops several useful nested objects — most notably location (city, state, address, coordinates) and payment_meta (reference numbers, payee/payer). The original_description field is also excluded.
What's missing
location (8 fields):
address, city, region, postal_code, country, lat, lon, store_number
payment_meta (8 fields):
reference_number, ppd_id, payee, by_order_of, payer, payment_method, payment_processor, reason
Top-level:
original_description (raw bank memo before Plaid normalization)
Why this matters
Location data is useful for categorizing transactions (same merchant, different cities), travel expense tracking, and general auditing. payment_meta helps trace ACH/wire transfers. original_description preserves the unmodified bank memo, which often contains location info that name has already been cleaned of.
Where the change is needed
The data is available from Plaid's /transactions/get response — it just needs to be included when the server-side dump builds the CSV. On the client side, beanhub-extract's PlaidExtractor (extractors/plaid.py) has a hardcoded ALL_FIELDS list and an exact-match detect(), so it would need to be updated in tandem to accept the new columns (or made flexible enough to handle optional columns).
Suggested approach
Flatten nested objects with __ prefix convention (matching existing counterparties__* and personal_finance_category__* patterns):
location__city, location__region, etc.
payment_meta__reference_number, etc.
Environment
- beanhub-cli 3.1.1
- beanhub-extract 0.1.7
Summary
bh connect dumpcurrently exports 33 fields from Plaid's Transaction object, but drops several useful nested objects — most notablylocation(city, state, address, coordinates) andpayment_meta(reference numbers, payee/payer). Theoriginal_descriptionfield is also excluded.What's missing
location (8 fields):
address,city,region,postal_code,country,lat,lon,store_numberpayment_meta (8 fields):
reference_number,ppd_id,payee,by_order_of,payer,payment_method,payment_processor,reasonTop-level:
original_description(raw bank memo before Plaid normalization)Why this matters
Location data is useful for categorizing transactions (same merchant, different cities), travel expense tracking, and general auditing.
payment_metahelps trace ACH/wire transfers.original_descriptionpreserves the unmodified bank memo, which often contains location info thatnamehas already been cleaned of.Where the change is needed
The data is available from Plaid's
/transactions/getresponse — it just needs to be included when the server-side dump builds the CSV. On the client side,beanhub-extract'sPlaidExtractor(extractors/plaid.py) has a hardcodedALL_FIELDSlist and an exact-matchdetect(), so it would need to be updated in tandem to accept the new columns (or made flexible enough to handle optional columns).Suggested approach
Flatten nested objects with
__prefix convention (matching existingcounterparties__*andpersonal_finance_category__*patterns):location__city,location__region, etc.payment_meta__reference_number, etc.Environment