---
title: Financial transaction retrieval
summary: Loads individual financial transaction and payment-remark rows for a claim through Oracle stored procedures.
status: draft
owner: SAIF Doc Gen
last_reviewed: 2026-07-30
library: SAIF.Business.View.Claim
reference_type: package
operation_id: OP-VC-03
trigger: Caller retrieves `clsFinancialTransactionCollection` by claim ID, policy number, or reimbursement issue date
---

# Financial transaction retrieval

This operation loads individual payment/financial transaction rows for a claim, keyed by claim ID, policy number, or reimbursement issue date, through Oracle stored procedures in `pk83407_payment_hist_trans`. It is the legacy, transaction-level financial read path, distinct from the API-backed aggregate [claim reserves and payments retrieval](claim-reserves-and-payments-retrieval.md) operation used by current claim-summary consumers.

| Field | Value |
| --- | --- |
| **Operation ID** | OP-VC-03 |
| **Trigger** | Caller retrieves `clsFinancialTransactionCollection` using one of the supported search modes |
| **Inputs** | Claim ID, policy number, or reimbursement issue date; individual transaction sequence/type for single-record reads |
| **Outputs** | `clsFinancialTransactionCollection` of `clsFinancialTransaction` rows, each optionally enriched with payment remarks |
| **Primary components** | `clsFinancialTransactionCollection.Criteria.RetrieveSQL`, `clsFinancialTransaction.getPayRemarks` |
| **Entry point** | `Business\SAIF.Business.View.Claim\clsFinancialTransactionCollection.vb`, `Business\SAIF.Business.View.Claim\clsFinancialTransaction.vb` |

## Steps

1. **Select the retrieval mode.** A caller constructs the collection criteria using one of claim ID, policy number, or reimbursement issue date search modes ([BR-001](../business-rules.md#br-001-financial-transaction-retrieval-mode-selection)).
2. **Dispatch the mode-specific stored procedure.** `clsFinancialTransactionCollection.Criteria.RetrieveSQL` returns `SelectFinTranByClaimId`, `SelectFinTranByPolicyNum`, or `SelectReimbFinTranByIssueDate` according to the selected mode ([SQL-007](../sql/SQL-007.md), [SQL-008](../sql/SQL-008.md), [SQL-009](../sql/SQL-009.md)).
   - On failure or when Oracle source is unavailable: the corresponding stored procedure could not be located during source review, so this call path may be dead or environment-specific.**
3. **Populate transaction rows.** The BOF data portal executes the resolved stored procedure and populates one `clsFinancialTransaction` per returned row.
4. **Resolve payment remarks.** `clsFinancialTransaction.getPayRemarks` calls additional `pk83407_payment_hist_trans` procedures to resolve remark text for individual transactions ([SQL-004](../sql/SQL-004.md), [SQL-005](../sql/SQL-005.md)).
5. **Return the transaction collection.** The collection returns read-only financial-transaction data to the caller.

## Process flow

The following diagram visualizes this operation's control flow.

```mermaid
flowchart TD
	Start([Caller selects retrieval mode]) --> Mode{Claim ID, policy number,<br>or reimbursement issue date?}
	Mode -->|Claim ID| ByClaim[SelectFinTranByClaimId]
	Mode -->|Policy number| ByPolicy[SelectFinTranByPolicyNum]
	Mode -->|Reimbursement date| ByDate[SelectReimbFinTranByIssueDate]
	ByClaim --> Populate[Populate financial transaction rows]
	ByPolicy --> Populate
	ByDate --> Populate
	Populate --> Remarks[Resolve payment remarks per transaction]
	Remarks --> Done([Return read-only transaction collection])
```

## Failure and edge-case behavior

- Note and financial-transaction read paths rely on Oracle stored procedures that were not found during source review, so callers of this operation may represent dead or environment-specific code paths.**
- Payment-remark resolution is performed per transaction, so a large result set issues one additional stored-procedure call per row.*

## Related documentation

- [Operations and processes](../operations-processes.md)
- [Business rules](../business-rules.md)
- [SQL catalog](../sql/index.md)

> **Note:** Statements marked with `*` were inferred from code structure, naming
> conventions, or contextual evidence where direct confirmation was not available
> in source artifacts. Statements marked with `**` could not be confirmed; treat
> as unknown until verified.

## Sources

- `Business\SAIF.Business.View.Claim\clsFinancialTransaction.vb`
- `Business\SAIF.Business.View.Claim\clsFinancialTransactionCollection.vb`
