Skip to main content
ParseTx returns a domain field (for example, "netflix.com") rather than a hosted logo image URL. This is a deliberate design decision: serving trademarked brand assets — even if scraped automatically — creates copyright and trademark liability. By returning only the canonical domain, ParseTx remains a textual data standardization tool, and you retain full control over how (and whether) to render the visual on your end. The good news is that several free and low-cost services can convert a domain into a high-quality merchant logo with a single <img> tag.
The domain field may be null for unknown or individual merchants — for example, SQ *JANE DOE PORTLAND OR resolves to a person, not a business with a web presence. Always check for null before constructing a logo URL, or you will end up with broken images.

Option 1 — Google Favicons (Free, No Account)

Google’s favicon service is the fastest zero-config option. It requires no API key, no account, and no rate limits for typical usage. The sz parameter controls the image size in pixels; 128 is a good default for UI thumbnails.
<img
  src="https://www.google.com/s2/favicons?domain=netflix.com&sz=128"
  alt="Netflix"
/>
Pros: Free, globally cached, no setup required.
Cons: Returns a favicon rather than a full brand logo — quality varies by merchant.

Option 2 — Logo.dev (Higher Quality, Free Token)

Logo.dev specializes in high-resolution brand logos and returns crisp SVG or PNG assets for thousands of companies. A free token is available for low-volume usage.
<img
  src="https://img.logo.dev/netflix.com?token=YOUR_TOKEN"
  alt="Netflix"
/>
Replace YOUR_TOKEN with the token from your Logo.dev dashboard. Logo.dev also supports a size query parameter and automatic format negotiation (WebP/SVG where supported). Pros: High-quality, branded logos for most major merchants.
Cons: Requires a free account and token; has volume-based pricing at scale.

Option 3 — Brandfetch

Brandfetch offers a brand API with logos, colors, typography, and icons. It is a strong choice if you need the full brand kit beyond a simple logo image. Visit brandfetch.com to review their plans and SDK options.

React / Next.js Component Example

Here is a drop-in MerchantLogo component that handles both the happy path and the null fallback gracefully:
function MerchantLogo({ domain, name }) {
  if (!domain) return <span>{name}</span>;
  return (
    <img
      src={`https://www.google.com/s2/favicons?domain=${domain}&sz=128`}
      alt={name}
      width={32}
      height={32}
    />
  );
}

// Usage
<MerchantLogo domain={result.domain} name={result.merchant} />
For a more polished experience, you can layer in a fallback onError handler to catch cases where Google’s service returns a generic globe icon for an unknown domain:
function MerchantLogo({ domain, name }) {
  if (!domain) {
    return (
      <img src="/placeholder-merchant.png" alt={name} width={32} height={32} />
    );
  }

  return (
    <img
      src={`https://www.google.com/s2/favicons?domain=${domain}&sz=128`}
      alt={name}
      width={32}
      height={32}
      onError={(e) => {
        e.currentTarget.src = '/placeholder-merchant.png';
      }}
    />
  );
}
Keep a small placeholder image (a neutral wallet, card, or shopping bag icon) in your static assets to use as the fallback when domain is null or the favicon service returns no result. This prevents blank spaces in your transaction list UI and gives unknown merchants a consistent visual treatment.

Comparison Table

ServiceQualityRequires AccountCost
Google FaviconsFavicon-grade (varies)NoFree
Logo.devHigh-resolution brand logoYes (free tier available)Free → paid at scale
BrandfetchFull brand kitYesFree tier → paid plans