Bank Statement Parser yana sarrafa ayyukan kuɗi na ainihi: shigar da bayanan PDF na banki, ƙaurar MT940-zuwa-CAMT, sulhu ta atomatik tare da tabbatar da balance, bututun bin doka, fitar da plaintext-accounting, aika REST API, binciken tari, da haɗa bankuna da yawa.
Shigar da Bayanan PDF na Banki
Sakamako: Fassara bayanan PDF na banki na dijital da na bugu tare da tabbatar da balance ta atomatik — babu cloud APIs, babu bayanan da ke barin injin ku.
Hybrid PDF pipeline yana turawa kowane PDF ta hanya mafi kyau kuma yana tabbatar da kowane sakamako.
from bankstatementparser.hybrid import smart_ingest
result = smart_ingest("statement.pdf")
print(result.source_method) # "deterministic" | "llm" | "vision"
print(result.verification.status) # VERIFIED | DISCREPANCY | FAILED
# Review discrepancies interactively
# bankstatementparser --type review --input result.json
Sarrafa Bayanan Tari
Sakamako: Bincika dukkan itacen fayiloli (ɗaruruwan PDFs, XMLs, CSVs) tare da cire kwafi ta atomatik a cikin kira guda ɗaya.
from bankstatementparser.hybrid import scan_and_ingest
batch = scan_and_ingest("statements/2026/", pattern="**/*.pdf")
print(f"Files: {len(batch.results)}, Unique txns: {batch.unique_count}")
Baitulmali: Ƙaurar MT940 zuwa CAMT.053
Sakamako: Kiran API guda ɗaya yana sarrafa duka MT940 da CAMT.053 yayin tagar ƙaura ta SWIFT (Nuwamba 2025–Nuwamba 2028), yana kawar da buƙatar bututun fassara daban.
Ƙungiyoyin baitulmali a duk duniya suna ƙaura daga MT940 zuwa CAMT.053 kafin wa'adin ƙarshe na Nuwamba 2027 na SWIFT. Bank Statement Parser yana sarrafa tsari biyu tare da API guda ɗaya, yana sa sauyin ya kasance mara cikas.
from bankstatementparser import create_parser, detect_statement_format
# Process both MT940 and CAMT.053 with the same code
for file in daily_statement_files:
fmt = detect_statement_format(file)
parser = create_parser(file, fmt)
df = parser.parse()
load_to_treasury_system(df)
Sulhu ta Atomatik tare da Tabbatar da Balance
Sakamako: Format-agnostic DataFrames tare da tabbatar da Golden Rule da cire kwafi suna kama kurakurai da kwafi kafin su kai ga ledger ɗin ku.
Fassara bayanan banki, tabbatar da balances, kuma daidaita da bayanan ciki ta atomatik.
from bankstatementparser import CamtParser, Deduplicator
from bankstatementparser.hybrid import verify_balance_multi_currency
parser = CamtParser("bank_statement.xml")
bank_txns = parser.parse()
# Verify balances per currency
verification = verify_balance_multi_currency(bank_txns)
for ccy, result in verification.items():
assert result.status == "VERIFIED", f"{ccy} balance mismatch!"
# Deduplicate before reconciliation
dedup = Deduplicator()
result = dedup.deduplicate(dedup.from_dataframe(bank_txns))
clean_txns = result.unique_transactions
# Match against internal records
unmatched = reconcile(clean_txns, internal_ledger)
Plaintext Accounting (hledger / beancount)
Sakamako: Shigar da bayanan PDF na banki ta atomatik kuma fitar da ma'amaloli da aka rarraba zuwa tsarin hledger ko beancount journal.
from bankstatementparser.hybrid import smart_ingest
from bankstatementparser.enrichment import Categorizer
from bankstatementparser.export import to_hledger
result = smart_ingest("statement.pdf")
categorizer = Categorizer()
enriched = categorizer.categorize_batch(result.transactions)
journal = to_hledger(enriched, account="Assets:Bank:Checking")
Aika REST API
Sakamako: Aika Bank Statement Parser azaman microservice wanda ke karɓar fayilolin bayanai ta HTTP kuma yana mayar da JSON mai tsari.
# Start the API server
bankstatementparser-api --port 8000
# Ingest a statement
curl -X POST http://localhost:8000/ingest \
-F "file=@statement.pdf"
Bututun Bin Doka da Dubawa
Sakamako: Fitarwa tabbatacciya, share PII ta atomatik, da tabbatar da Golden Rule suna samar da rajistan ayyukan da suka shirya don dubawa waɗanda ke gamsar da buƙatun sake fasalin tsari.
from bankstatementparser import CamtParser
parser = CamtParser("statement.xml")
# Stream with PII redacted for audit logs
for txn in parser.parse_streaming(redact_pii=True):
audit_log.write(txn)
# Export full data for secure internal processing
parser.export_csv("archive/statement.csv")
SFTP-zuwa-DataFrame Workflows
Sakamako: Fassara kai tsaye daga bytes ba tare da faifai I/O ba, yana dacewa da SFTP da ayyukan haɗin banki da API ke tafiyar da su.
from bankstatementparser import CamtParser
xml_bytes = sftp_client.read("daily_statement.xml")
parser = CamtParser.from_bytes(xml_bytes, source_name="daily.xml")
df = parser.parse()
Haɗa Bankuna Da Yawa
Sakamako: Fassara daidaitawa a cikin HSBC (CAMT), Barclays (MT940), Revolut (CSV), Wise (OFX), da Chase (PDF) yana samar da saitin bayanai guda ɗaya da aka daidaita.
from bankstatementparser import parse_files_parallel
results = parse_files_parallel([
"hsbc/camt053.xml",
"barclays/mt940.sta",
"revolut/transactions.csv",
"wise/statement.ofx",
])
all_transactions = pd.concat([r.transactions for r in results if r.status == "success"])
Sarrafa Tari tare da Ajiyayyen ZIP
Sakamako: Kariyar bam na ZIP da aka gina a ciki (iyakar rabo 100:1, iyakar shigarwa 10 MB, ƙin shigar da rufaffen) yana ba ku damar sarrafa bayanan wata-wata cikin aminci.
from bankstatementparser import iter_secure_xml_entries, CamtParser
for entry in iter_secure_xml_entries("monthly_statements.zip"):
parser = CamtParser.from_bytes(entry.xml_bytes, source_name=entry.source_name)
df = parser.parse()
save_to_warehouse(entry.source_name, df)