Skip to content
Documentation Menu

Reference

TypeScript Types

Every type is exported from Finmarks. You can import them alongside the query functions, or import types only for annotation without shipping any runtime code.

import type {
  Entity,
  EntityIndex,
  Category,
  CategoryInfo,
  LogoVariant,
  LogoUrls,
  Regulator,
  EntityStatus,
  CountryCode,
  SearchOptions,
  FilterOptions,
} from '@finmarks/finmarks';

Entity

The core record for a fintech entity.

interface Entity {
  // Required fields
  id: string;
  name: string;
  short_name: string;
  categories: Category[];
  brand_color: string;
  country: CountryCode;
  status: EntityStatus;
  logos: LogoUrls;

  // Optional fields — omitted entirely when empty
  legal_name?: string;
  founded?: number;
  regulated_by?: Regulator[];
  ifsc_prefix?: string;
  upi_handles?: string[];
  fip_id?: string | null;
  fiu_id?: string | null;
  aa_id?: string | null;
  website?: string;
  acquired_by?: string;
  tags?: string[];
}

Optional fields are omitted entirely when empty, so 'ifsc_prefix' in entity is a meaningful check. Nullable identifiers (fip_id, fiu_id) usenull to signal "checked but unverified" vs. absent meaning "nobody has looked".

LogoUrls

type LogoUrls = Partial<Record<LogoVariant, string>>;

type LogoVariant =
  | 'full'
  | 'icon'
  | 'mono_dark'
  | 'mono_light';

EntityStatus

type EntityStatus = 'active' | 'acquired' | 'defunct' | 'rebranded';

CountryCode / Regulator

type CountryCode = 'IN' | 'US' | 'GB' | 'SG' | 'AE';

type Regulator =
  | 'RBI' | 'SEBI' | 'IRDAI' | 'NPCI'
  | 'PFRDA' | 'IFSCA' | 'MCA' | 'None';

FilterOptions / SearchOptions

interface FilterOptions {
  includeInactive?: boolean;  // default true
}

interface SearchOptions extends FilterOptions {
  limit?: number;
  categories?: Category | Category[];
}