Introducing Highlights: the context that matters
Backed by Y Combinator
Transaction Data Enrichment

Transaction Data Enrichment

Turn cryptic merchant codes into branded, recognizable transactions. Transaction data enrichment with logos, colors, and company details from a single API call.

Get API AccessNo card required
View Docs
Daydream logo
Kovai logo
Passionfroot logo
Orange logo
SendX logo
Klarna logo
Super.com logo
Daydream logo
Kovai logo
Passionfroot logo
Orange logo
SendX logo
Klarna logo
Super.com logo
Daydream logo
Kovai logo
Passionfroot logo
Orange logo
SendX logo
Klarna logo
Super.com logo
Daydream logo
Kovai logo
Passionfroot logo
Orange logo
SendX logo
Klarna logo
Super.com logo

From statement text to a recognizable merchant

Capture the descriptor

Take the transaction text from your existing billing data or bank feed. Include location context when available.

const transaction = {
  descriptor: 'AMZN*MKTP US',
  country: 'us',
} as const;

Identify the merchant

Send the descriptor to Retrieve Brand using by_transaction. Handle not-found responses when a merchant cannot be identified.

const { brand } = await
  client.brand.retrieve({
    type: 'by_transaction',
    transaction_info:
      transaction.descriptor,
    country_gl:
      transaction.country,
  });

Enrich the display

Show the matched merchant name, domain, and available logo so people can recognize a transaction.

const merchant = {
  name: brand.title,
  domain: brand.domain,
  logo: brand.logos?.[0]?.url,
};

Before & after

See the difference in real time

Drag the slider to see how cryptic transaction codes become recognizable brands.

Transaction History

DateMerchantAmount
2024-10-08AMZN*MKTP US-XX1234$129.99
2024-10-07WALMART STORE#1234$64.32
2024-10-05TICKETMASTER*EVENT$245.00

Transaction History

Amazon logo

Amazon

Seattle, Washington
$129.99
2024-10-08
Online Marketplacesamazon.com
Walmart logo

Walmart

Bentonville, Arkansas
$64.32
2024-10-07
Omnichannel & In-Store Retailwalmart.com
Ticketmaster logo

Ticketmaster

Las Vegas, Nevada
$245.00
2024-10-05
Events, Venues & Live Entertainmentticketmaster.com
WITHOUT Context.dev
WITH Context.dev
50M+
Merchants Identified
1-10s
API Response Time
99%
Identification Rate

Who This Is For

Fintech Apps

Building the next-gen banking experience

The Challenge

Users see cryptic merchant codes like "SQ *MERCHANT 1234" instead of recognizable businesses.

How This Helps

Instantly enrich every transaction with logos and clean merchant names via a single API call.

Users actually understand their spending. Engagement jumps, support tickets drop.

Expense Management

Teams managing corporate spend

The Challenge

Finance teams wade through spreadsheets of vendor names that don't match official company names.

How This Helps

Automatically match messy transaction data to clean company names, logos, and categories.

Expense reports become scannable at a glance. Approvals take minutes, not hours.

B2B Invoicing Platforms

Creating professional billing experiences

The Challenge

Every invoice looks generic. Clients get templated PDFs that could be from anywhere.

How This Helps

Pull client branding automatically and generate invoices that look custom-designed.

Each invoice reflects the client's brand. Professional, memorable, and on-brand every time.

Payment Processors

Powering commerce for millions

The Challenge

Merchant statements are walls of text. Small businesses can't make sense of their revenue streams.

How This Helps

Transform transaction logs into visual reports with payer branding and categorization.

Merchants see who paid them, not just transaction IDs. Better insights, faster decisions.

Accounting Software

Helping businesses manage their books

The Challenge

Reconciliation is painful when transaction names don't match vendor records.

How This Helps

Intelligently match transactions to known vendors with visual confirmation via logos.

Bookkeepers spot mismatches instantly. Month-end close happens in days, not weeks.

Personal Finance Apps

Empowering smarter spending decisions

The Challenge

Users can't tell which subscription is which or remember what "AMZ*abc123" was for.

How This Helps

Show actual company logos and clean names for every merchant and subscription.

Users actually review their spending. Subscription management becomes obvious and actionable.

Retrieve a brand from a transaction

Illustrative merchant match. Available Brand fields vary by company.

POST /v1/brand/retrieve

Request body

{
  "type": "by_transaction",
  "transaction_info": "SQ *BLUE BOTTLE OAK",
  "country_gl": "us"
}

Example response

{
  "status": "ok",
  "brand": {
    "domain": "bluebottlecoffee.com",
    "title": "Blue Bottle Coffee",
    "description": "Coffee roaster and cafe company."
  },
  "code": 200
}

Frequently asked questions

Using Brand for merchant identification.

How do I identify a merchant from transaction text?
Send POST /v1/brand/retrieve with type set to by_transaction and the raw descriptor in transaction_info. The API returns a matched Brand record or a not-found error.
What merchant data can I get?
A match can include the merchant name, domain, description, logos, brand colors, social URLs, and available industry data. Brand fields are optional, so your interface should handle missing values.
Can I provide more context for matching?
Yes. Supply country_gl, city, mcc, or phone when available. Set high_confidence_only when you want additional verification of the match.
Does this API connect to bank accounts?
Provide the transaction descriptor from your existing data source. Retrieve Brand handles merchant identification and enrichment; your application supplies its own bank feed, payment connection, and financial logic.

Ship an agent that actually knows things.

Free tier, 10-minute integration, and the same API powering agents at Mintlify, daily.dev, and Propane. No credit card to start.