API docs

Enrich one descriptor.

Send one safe descriptor. Receive merchant metadata, confidence, signals, and warnings.

Request

`POST /v1/enrich` accepts one descriptor. No batch input.

Request body
{
  "raw_description": "SQ *JOES COFFEE 0421 TORONTO",
  "amount": 6.75,
  "currency": "CAD",
  "country": "CA",
  "date": "2026-05-22",
  "mcc": "5814",
  "merchant_name": null
}

Response

High-confidence reviewed matches may return website and logo variants. Low-confidence results prefer warnings over false certainty.

Response body
{
  "normalized_merchant": "joes coffee",
  "display_name": "Joe's Coffee",
  "category": "Food and Drink",
  "subcategory": "Coffee Shop",
  "website": null,
  "logos": { "preferred": null, "variants": [] },
  "confidence": 0.72,
  "recurring_hint": false,
  "processor_hint": "square",
  "signals": ["removed_square_prefix"],
  "warnings": ["local_merchant_identity_not_verified"]
}

Logo variants

The website does not use merchant logos as visual examples. The contract explains supported variant fields so applications can decide whether to render a reviewed asset.

FieldUse
format, width, heightChoose SVG, PNG, WebP, or ICO assets that fit row, receipt, and detail surfaces.
theme, background, shapeSelect light, dark, transparent, square, rounded, or monochrome-safe variants.
purpose, source, confidencePrefer reviewed assets and suppress logo rendering when identity evidence is weak.

Privacy behavior

The API rejects card numbers, account numbers, full statements, emails, phone numbers, addresses, and customer-identifying free text before parsing, queueing, logging, or third-party use.

Limits

AreaRequirement
Descriptor1-256 characters normally; longer descriptors need privacy checks and warnings.
SignalsAt most 20 bounded enum codes.
Online pathNo LLM calls, crawlers, logo providers, or third-party enrichment APIs.