Skip to main content

WACCY extension for QuickBooks Online integration

Project description

waccy-quickbooks

WACCY extension for QuickBooks Online integration.

Status

This package provides fixture-first QuickBooks/QBO-shaped extraction, the entry point for ExtractorRegistry discovery, and a small typed live-pull helper for OAuth-backed QBO reports. The live helper intentionally returns raw QBO JSON; WACCY's model-building contract still begins after source data is normalized into WACCY records. The v0.1.0 work is tracked in:

Installation

uv pip install waccy-quickbooks

Or install with the core platform:

uv pip install "waccy[quickbooks]"

Fixture Usage

from waccy.extraction import ExtractorRegistry

registry = ExtractorRegistry()
extractor = registry.get_extractor("qbo")()
print(extractor.name)

Live QBO Report Pull

Use Intuit OAuth to create or refresh a token, then pull raw company info, chart of accounts, and reports. Store the token cache in a caller-owned path; do not commit it.

from datetime import date

from waccy_quickbooks import (
    FileTokenCache,
    QuickBooksApiClient,
    QuickBooksOAuthConfig,
)

config = QuickBooksOAuthConfig(
    client_id="...",
    client_secret="...",
    redirect_uri="http://localhost:8765/callback",
    environment="sandbox",
)
cache = FileTokenCache("~/.waccy/qbo-token.json")
client = QuickBooksApiClient.from_token_cache(cache, config)

pull = client.pull_financial_reports(
    start_date=date(2024, 1, 1),
    end_date=date(2024, 12, 31),
)

The returned QuickBooksReportPull carries raw CompanyInfo, Account, ProfitAndLoss, BalanceSheet, and CashFlow payloads. Convert that raw pull into WACCY source records with the report normalizer:

from waccy_quickbooks import QuickBooksExtractor, QuickBooksReportNormalizer

fixture = QuickBooksReportNormalizer().to_fixture(pull)
extracted = QuickBooksExtractor().extract({"fixture": fixture})

The normalizer preserves QBO report provenance in record metadata, detects NoReportData reports, and emits source-completeness diagnostics for missing required statements. Keep live pull artifacts and token caches out of git. Use sanitized raw fixtures for repeatable CI/local smoke tests.

Development

This package is part of the WACCY monorepo. See the main README for development setup.

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

waccy_quickbooks-0.1.1.tar.gz (10.4 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

waccy_quickbooks-0.1.1-py3-none-any.whl (12.9 kB view details)

Uploaded Python 3

File details

Details for the file waccy_quickbooks-0.1.1.tar.gz.

File metadata

  • Download URL: waccy_quickbooks-0.1.1.tar.gz
  • Upload date:
  • Size: 10.4 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: uv/0.11.13 {"installer":{"name":"uv","version":"0.11.13","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"24.04","id":"noble","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":true}

File hashes

Hashes for waccy_quickbooks-0.1.1.tar.gz
Algorithm Hash digest
SHA256 86991bd11e2e16c72658f518394937e8b175b9760a9ec6369120a5827082d03a
MD5 07b9e998a3b41452fd4c2746fa04d214
BLAKE2b-256 84e99f4be2e659e04bb05e8302447d160334cac9492f18e00333492d69fb73ec

See more details on using hashes here.

File details

Details for the file waccy_quickbooks-0.1.1-py3-none-any.whl.

File metadata

  • Download URL: waccy_quickbooks-0.1.1-py3-none-any.whl
  • Upload date:
  • Size: 12.9 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: uv/0.11.13 {"installer":{"name":"uv","version":"0.11.13","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"24.04","id":"noble","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":true}

File hashes

Hashes for waccy_quickbooks-0.1.1-py3-none-any.whl
Algorithm Hash digest
SHA256 60c39c076ed4a1683648aa2f4ba4924bef7015119887cecf0c7168910d2ed54f
MD5 64d299d05b677488e3a3e8eefabd8aa8
BLAKE2b-256 ad16bec2180e6ef4b781875794677afc31518a7e7f57060b2f2fed529aad9a24

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page