Skip to content

Models

domain.fetch_request.models

Summary

Models for fetch requests: source variety, direction and pipeline enums, raw/enriched expenses, and the fetch request aggregate.

Classes

Bank

Bases: str, Enum

Supported statement banks.

Attributes:

Name Type Description
AXIS Bank

Axis Bank.

ICICI Bank

ICICI Bank.

CsvSource

Bases: FileSource

CSV file source.

Attributes:

Name Type Description
type Literal[CSV]

Constant source type marker.

Direction

Bases: str, Enum

Cashflow direction of a transaction.

Attributes:

Name Type Description
DEBIT Direction

Money out of the account.

CREDIT Direction

Money into the account.

EmailSource

Bases: Source

Email statement source.

Attributes:

Name Type Description
from_email str

Sender address filter.

subject str

Subject line filter.

raw_terms List[str]

Free-text search terms.

EnrichedExpense

Bases: BaseModel

Raw expense with enrichment results attached.

Attributes:

Name Type Description
raw_expense RawExpense

The source raw expense.

payee str

Resolved payee/entity name.

entity_type str

Entity type, defaulting to merchant.

entity_logo str | None

Logo path/url, if any.

tags List[str]

Resolved tags.

FetchRequest

Bases: BaseModel

A request to fetch and process a statement.

Attributes:

Name Type Description
source Union[EmailSource, PdfSource, XlsxSource, CsvSource, FileSource]

Statement source describing how to fetch the data.

account Account

Account the statement belongs to.

start_date datetime

Statement window start.

end_date datetime

Statement window end.

status str

Processing status, defaulting to pending.

pipeline Pipeline

Extraction pipeline to use.

trust_fallback Optional[TrustFallback]

Optional balance-chain trust policy.

fingerprint str

Deduplication fingerprint for the request.

completed_at Optional[datetime]

Completion timestamp, if finished.

error_message Optional[str]

Failure message, if failed.

retry_count int

Number of retries attempted.

FileSource

Bases: Source

File-based statement source.

Attributes:

Name Type Description
path str

Path to the uploaded file.

PdfSource

Bases: FileSource

PDF file source.

Attributes:

Name Type Description
type Literal[PDF]

Constant source type marker.

Pipeline

Bases: str, Enum

Extraction pipeline choice for a fetch request.

Attributes:

Name Type Description
HEURISTIC Pipeline

Rule/heuristic extraction pipeline.

LLM Pipeline

LLM-assisted extraction pipeline.

LLAMA_PARSE Pipeline

LlamaParse table-direct extraction pipeline.

RawExpense

Bases: BaseModel

A single transaction parsed from a statement.

Attributes:

Name Type Description
date str

Expense date as DD-MM-YYYY.

amount float

Transaction amount.

balance float

Account balance after transaction.

description str

Complete reconstructed transaction description.

raw_lines List[str]

Raw OCR/text lines that form this transaction.

direction Direction

Either Direction.DEBIT or Direction.CREDIT.

Source

Bases: BaseModel

Base statement source carrying extraction progress state.

Attributes:

Name Type Description
bank Bank

Statement bank, defaulting to Bank.ICICI.

type SourceType

Source kind discriminator.

raw_lines List[str]

Raw OCR/text lines extracted so far.

txn_blocks Dict[str, Any]

Transaction blocks keyed by order id.

txn_dicts List[RawExpense]

Parsed raw expenses.

enrichment_dicts List[EnrichedExpense]

Enriched expenses.

txn_dicts_count int

Number of parsed raw expenses.

SourceType

Bases: str, Enum

Statement source kinds.

Attributes:

Name Type Description
FILE SourceType

Generic file source.

EMAIL SourceType

Email source.

PDF SourceType

PDF file source.

XLSX SourceType

Spreadsheet source.

CSV SourceType

CSV source.

TrustFallback

Bases: str, Enum

Per-FetchRequest policy for broken balance chains.

When set, resolution skips OCR-style candidate guesswork entirely and always trusts the configured column: - AMOUNT: keep the transaction amount, derive balance as prev ± amount. - BALANCE: keep the stated balance, derive amount from the balance delta.

Attributes:

Name Type Description
AMOUNT TrustFallback

Trust the transaction amount; balance is derived as prev ± amount.

BALANCE TrustFallback

Trust the stated balance; amount is derived from the balance delta.

XlsxSource

Bases: FileSource

XLSX file source.

Attributes:

Name Type Description
type Literal[XLSX]

Constant source type marker.