Sinapsis Bank Reconciliation
Sinapsis templates for bank/ERP reconciliation and LLM adjudication of fuzzy reference matches
🐍 Installation • 🚀 Templates • 📚 Usage • 🔍 License
This package provides the use-case-specific Sinapsis templates for reconciling a bank
statement against an ERP/accounting export. It consumes the reference-match output
produced upstream by a matching pipeline (e.g. sinapsis-polyfuzz's ExactMatch and
pair matchers) and turns it into a settled, flagged reconciliation — escalating only the
genuinely ambiguous fuzzy cases to an LLM adjudicator.
🐍 Installation
Install using your package manager of choice. We encourage the use of uv
Example with uv:
uv pip install sinapsis-bank-reconciliation --extra-index-url https://pypi.sinapsis.tech
or with raw pip:
pip install sinapsis-bank-reconciliation --extra-index-url https://pypi.sinapsis.tech
🚀 Templates
| Template | Purpose |
|---|---|
BankReconciliation |
Groups rows by matched reference, compares amounts, and deterministically settles the clear-cut fuzzy cases via classify_identity, emitting reconciliation flags. |
AdjudicationCaseBuilder |
Turns the residual needs_human fuzzy cases into prompts for an LLM judge that decides document identity. |
AdjudicationResolver |
Resolves the final flags from the judge's verdicts (mirroring bank-side flags onto matched ERP rows). |
ReconciliationSummaryTable |
Emits a condensed, human-readable summary table of the reconciled result. |
📚 Usage
These templates are referenced by class_name in a Sinapsis agent config. See the
bank-reconciliation demo in sinapsis-demos
for end-to-end light/heavy pipelines that wire matching → reconciliation → adjudication.
Below is a minimal example wiring the four templates this package provides. The upstream
CSV reading and reference matching come from other Sinapsis packages (sinapsis-data-readers
and sinapsis-polyfuzz); the values are placeholders — adapt the sources, column names and
the LLM template to your data.
agent:
name: bank_reconciliation
description: Reconcile a bank statement against an ERP export, escalating ambiguous fuzzy matches to an LLM judge.
templates:
- template_name: InputTemplate
class_name: InputTemplate
attributes: {}
# --- Upstream: read both sources, then produce exact + fuzzy reference matches ---
- template_name: BankCSVReader
class_name: CSVDatasetReader
template_input: InputTemplate
attributes:
root_dir: "artifacts"
path_to_csv: "sample_bank.csv"
- template_name: ERPCSVReader
class_name: CSVDatasetReader
template_input: BankCSVReader
attributes:
root_dir: "artifacts"
path_to_csv: "sample_erp.csv"
- template_name: ExactMatcher
class_name: ExactMatch
template_input: ERPCSVReader
attributes:
from_source: "BankCSVReader_x_dataset"
from_column: "Reference1"
to_source: "ERPCSVReader_x_dataset"
to_column: "Reference1"
exact_matches_source: "exact_matches"
no_exact_matches_source: "no_exact_matches"
- template_name: FuzzyMatcher
class_name: RapidFuzzPairWrapper
template_input: ExactMatcher
attributes:
from_source: "no_exact_matches"
from_column: "Reference1"
to_source: "ERPCSVReader_x_dataset"
to_column: "Reference1"
matches_source: "fuzzy_matches"
min_similarity: 0.8
- template_name: Reconcile
class_name: BankReconciliation
template_input: FuzzyMatcher
attributes:
bank_source: "BankCSVReader_x_dataset"
erp_source: "ERPCSVReader_x_dataset"
bank_ref_col: "Reference1"
bank_amount_col: "Amount"
erp_ref_col: "Reference1"
erp_debit_col: "Debits"
erp_credit_col: "Credits"
match_min_similarity: 1.0
resolve_identity: true
overwrite: true
- template_name: CaseBuilder
class_name: AdjudicationCaseBuilder
template_input: Reconcile
attributes:
bank_source: "BankCSVReader_x_dataset"
bank_ref_col: "Reference1"
prompt_path: "artifacts/adjudication_prompt.txt"
- template_name: Judge
class_name: LLaMACPPTextCompletion
template_input: CaseBuilder
attributes:
init_args:
llm_model_name: bartowski/Qwen2.5-3B-Instruct-GGUF
llm_model_file: Qwen2.5-3B-Instruct-Q4_K_M.gguf
completion_args:
temperature: 0.1
response_format:
type: json_object
- template_name: Resolver
class_name: AdjudicationResolver
template_input: Judge
attributes:
bank_source: "BankCSVReader_x_dataset"
erp_source: "ERPCSVReader_x_dataset"
erp_ref_col: "Reference1"
- template_name: SummaryTable
class_name: ReconciliationSummaryTable
template_input: Resolver
attributes:
bank_source: "BankCSVReader_x_dataset"
bank_ref_col: "Reference1"
summary_source: "reconciliation_summary"
🔍 License
This project is licensed under the AGPLv3 license, which encourages open collaboration and sharing. For more details, please refer to the LICENSE file.
For commercial use, please refer to our official Sinapsis website for information on obtaining a commercial license.
Metadata
Release files for sinapsis-bank-reconciliation 0.1.0
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | Provenance | Actions |
|---|---|---|---|---|
| sinapsis_bank_reconciliation-0.1.0.tar.gz | 34.3 kB | Without provenance | Details for sinapsis_bank_reconciliation-0.1.0.tar.gz |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Actions Reset |
|---|---|---|---|---|
| sinapsis_bank_reconciliation-0.1.0-py3-none-any.whl | Python 3 | none | any | Details for sinapsis_bank_reconciliation-0.1.0-py3-none-any.whl |
Total release size: 73.0 kB
Release files / sinapsis_bank_reconciliation-0.1.0.tar.gz
| Download URL | sinapsis_bank_reconciliation-0.1.0.tar.gz |
|---|---|
| Size | 34.3 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
63b5d38abbe659cfbaf312601d08f68d1f6e8453530f0c62f4c053a7b415fed1
|
|
BLAKE2b-256 checksum How to use checksums |
4aad662f53b48f6903a9cda9dd8cf83941b3aaaf5f8da214301fa30bf88ccfd7
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
uv/0.5.16
|
Release files / sinapsis_bank_reconciliation-0.1.0-py3-none-any.whl
| Download URL | sinapsis_bank_reconciliation-0.1.0-py3-none-any.whl |
|---|---|
| Size | 38.7 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
d0eb3c334bc22a24e0276a96e5500878abaff9f71ee54840307257be689132a3
|
|
BLAKE2b-256 checksum How to use checksums |
a831e58af166a780a73dd53d40a2eb4d04d28704c98eb4b133ad8d4bb2eb0516
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
uv/0.5.16
|
Security for sinapsis-bank-reconciliation 0.1.0
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
No provenance found
None of the files in this release were uploaded with provenance metadata.
A note on package security
PyPI is a repository for distributing packages, not a service for auditing them. While third-party security researchers and our staff do their best to detect and remove malicious packages, PyPI cannot guarantee the quality, security or suitability of any given package.
To learn more about protecting yourself from malicious actors, visit our package security documentation.