Skip to main content



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)

Source distribution for sinapsis-bank-reconciliation 0.1.0
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)

Table of built distributions (wheels) for sinapsis-bank-reconciliation 0.1.0
File Interpreter ABI Platform Actions
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.

Release history Release notifications | RSS feed

This release

0.1.0 This release

2 release files No provenance

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page