Merchant Enrichment

Enrich a bank transaction descriptor

Required scope: enrich:transaction. Returns a normalized merchant identity, category, hierarchy, and rail signals. Send descriptors as-is: bank-statement scaffolding (PSP prefixes, channel markers, store numbers, trailing city/country tokens) is stripped server-side before retrieval — client-side pre-cleaning is unnecessary. Descriptors in non-Latin scripts (Arabic, Persian, Cyrillic, Turkish) are matched natively without transliteration. Use ?debug=1 with the enrich:debug scope to surface internal scoring fields (rank_gap, nb_extensions) — silently ignored without the scope.

post/v1/enrich/transaction

Request

  • Base URL: https://api.nashboard.ai
  • URL: https://api.nashboard.ai/v1/enrich/transaction
  • Auth: one of:
    • HTTP bearer
    • API key in header X-API-Key

Query parameters

debug'1'

Surface debug fields (rank_gap, nb_extensions). Requires enrich:debug scope; silently ignored otherwise.

taxonomy'consumer_v2026.05' | 'mcc' | 'naics_2022' | 'isic_rev5' | 'nace_rev21' | 'uk_sic_2026' | 'anzsic_2006' | 'pfc_v2'

Taxonomy system for the category field.

Headers

X-Nashboard-Version'2026-06-13'

API version pin (ISO date). Absent → latest. Unknown or future → 400 unsupported_version. The X-Amouen-Version header name is still accepted as a deprecated alias; when both are present, X-Nashboard-Version takes precedence.

X-Idempotency-Keystring

Optional idempotency key (max 128 chars).

Request body

raw_descriptorstring required

Raw bank transaction descriptor string. Send it exactly as it appears on the statement — do not pre-clean. PSP prefixes (e.g. "PAYPAL *", "SQ ", "TST"), POS channel markers ("POS DEBIT", "CHECKCARD"), store numbers, and trailing city/country tokens are unwrapped server-side before matching. Non-Latin descriptors (Arabic, Persian, Cyrillic, Turkish) are matched natively in-script — no transliteration needed.

amount_minorinteger

Transaction amount in minor currency units (e.g. cents).

currency_codestring

ISO 4217 currency code (e.g. USD).

date_hintstring

Transaction date hint (YYYY-MM-DD).

country_hintstring

ISO 3166-1 alpha-2 country hint.

user_localestring

BCP 47 locale tag (e.g. en-US).

Response

Enriched result.

request_idstring uuid required
merchant_idstring uuid nullable

Matched merchant ID, or null on no-match.

match_scorenumber required

Customer-facing retrieval confidence 0-1. Distinct from ai_confidence.

match_methodstring required

How the match was determined (e.g. exact, fuzzy, ai_haiku, ai_sonnet, no_match).

ai_generatedboolean required

True only when the AI disambiguation step produced/altered the returned match (EU AI Act Art. 50).

ai_confidencenumber nullable required

AI self-reported confidence 0-1 when AI fired; null otherwise.

counterpartiesobject[] required

Rail-aware counterparty provenance (e.g. BNPL chains).

is_recurringboolean required

True when the merchant has a known subscription pattern.

recurrenceobject nullable

Recurrence cadence details; null when is_recurring is false.

homoglyph_detectedboolean required

Fraud signal: true when the descriptor mixes lookalike scripts (e.g. Cyrillic+Latin).

latency_msinteger required

Server-side pipeline latency in ms.

cache_hitboolean
categoryobject

Taxonomy classification result.

hierarchyobject nullable

Brand → operator → location hierarchy.

Changes

No recorded changes to this operation across all 1 revision of this API.