Fintech
Transaction and Billing Data
Map messy merchant descriptors to real-world brands, categories, logos and company context.
How it works
From input to useful output in three steps
GET /v1/brand/transaction-identifier
Normalize the descriptor
Remove payment processor prefixes and noisy terminal fragments.
transaction_info
Use hints to pick a merchant
Combine descriptor, MCC, city, country and phone hints when available.
GET /v1/brand/transaction-identifier
Attach brand display data
Return merchant name, category and logo context for statement rows.
brand + logo
Example workflow
Descriptor to merchant identity
SQ *BLUE BOTTLE COF 1234 with optional city, MCC and amount.
Merchant candidates, brand profile, category hints and logo-ready output.
A readable merchant name with logo and confidence status.
GET /v1/brand/transaction-identifier?transaction_info=SQ%20*BLUE%20BOTTLE%20COF&mcc=5814&city=San%20Francisco
Built for
Teams that can use this immediately
Expense apps
Challenge: Card lines are cryptic.
Solution: Map descriptors to real merchants.
Impact: Users categorize faster.
Accounting tools
Challenge: Reconciliation needs context.
Solution: Add merchant and category hints.
Impact: Fewer manual corrections.
Banking UIs
Challenge: Feeds feel low-quality.
Solution: Add merchant logos and names.
Impact: Statements become easier to scan.
01
Make statements readable
Turn cryptic card descriptors into merchant names, categories and brand assets.
02
Improve reconciliation
Use MCC, city, country and phone hints to score candidate brands and avoid low-confidence matches.
03
Add logos to financial workflows
Logo Link gives expense tables and banking feeds a second-look visual layer.
Implementation FAQ
Questions teams ask before building Transaction and Billing Data
What does Transaction and Billing Data help me build?
It turns Transaction enrichment API for expense, accounting and banking apps. into a repeatable workflow. The first practical outcome is descriptor cleanup.
Which API should I call first?
Start with GET /v1/brand/transaction-identifier. The workflow section shows the supporting endpoints to add when you need more context, evidence or visual assets.
What input do I need from my user?
The smallest useful input is shown in the example workflow: SQ *BLUE BOTTLE COF 1234 with optional city, MCC and amount. Ask only for the domain, URL, email, ticker or descriptor that the selected endpoint actually needs.
What should I store from the response?
Store the normalized result together with source URLs, confidence or access state, and the time it was fetched. This keeps later refreshes and human review explainable.
Can I use this from a backend, CLI or AI agent?
Yes. The REST endpoint, TypeScript and Python SDKs, CLI and MCP tools use the same local API contract. No-code templates are available for business workflows.
How do I keep the result current?
Use maxAgeMs where the endpoint supports it, or schedule the relevant crawl or workflow. Refresh facts that can change and cache stable assets such as logos more aggressively.
What happens when the website blocks access?
The API reports blocked, verification_required, login_required, robots_disallowed or permission_required instead of treating an empty page as a successful result.
How should I handle missing fields?
Keep the UI usable with optional fields, sensible placeholders and manual overrides. A missing logo, address or classification should not prevent the rest of the workflow from completing.
Who is this workflow designed for?
The examples focus on expense apps, accounting tools, banking uis, but the API response is general enough to use in custom applications.
Can I review the result before publishing it?
Yes. Show extracted values, source URLs and generated visual previews in an approval step before changing customer-facing content or records.
Is batch processing supported?
Use the batch, crawl or workflow endpoint shown for the capability when available. For smaller integrations, process a controlled list and record individual failures rather than failing the whole job.
How do I try the complete example locally?
Open the linked playground from this page or call GET /v1/brand/transaction-identifier at http://127.0.0.1:8013 with X-API-Key: mh-localhost-dev-key. The example payload on this page is ready to adapt.
Related use cases