Ledger QBO Access

active

Next action

Jimmie runs Afton OAuth handshake (~3 min browser-based)

Wire Ledger into QBO for full monthly close. Hybrid REST API + Sheets/Booker. Afton Electric pilot. Intuit Dev app live as of 2026-05-14; kickoff 2026-05-18.

Owner: ledger
Touched: 5d ago
Started: May 11, 2026

Decisions

  • Switched Afton onboarding (and all future QBO client onboarding) from local-server OAuth callback to Intuit OAuth Playground paste-URL flow.

    why: Intuit Production keys reject http://localhost redirect URIs (HTTPS-only constraint). OAuth Playground URL (https://developer.intuit.com/v2/OAuth2Playground/RedirectUrl) is pre-registered for every developer.intuit.com app and supports manual code paste. qbo_oauth_add_client.py rewritten as two-step CLI; qbo_clients.json.app.redirect_uri updated; CHAIRMAN_DISPLAY_NAMES hardcode removed in favor of per-client chairman_group flag.

    May 19, 2026 · atlas

  • Approval UX = QBO Write Queue Google Sheet; Ledger appends rows, Jimmie drops Y in Approve column, Apps Script worker executes

    why: Batch-review (40 reclassifies in 90s) matches ADHD profile; Sheets surface beats one-by-one confirms

    May 17, 2026 · jimmie

  • Afton Electric confirmed as pilot client; scope = full monthly close (categorize, bank/CC rec, AP/AR, accruals, COA hygiene, P&L+BS review, close package)

    why: Single entity, QBO-only, not in Chairman hard-fence group; A/R worklist already prepared

    May 17, 2026 · jimmie

  • App reuses across QBO realms; each client requires own OAuth handshake to mint their refresh token

    why: Single Client ID/Secret across realms keeps app management simple

    May 13, 2026 · riv

  • Tiered write gate architecture: Tier 1 auto (all reads), Tier 2 single confirm (reclassify / deactivate / rename), Tier 3 full approval (JEs, COA structure, multi-entity)

    why: Match supervision cost to write risk; graduation rule unlocks lower tiers after 10 consecutive correct executions

    May 11, 2026 · jimmie

Timeline (12 events)

  1. file addedMay 19, 2026 · atlas

    {"mime":"application/vnd.openxmlformats-officedocument.spreadsheetml.sheet","note":"Regenerated with live invoice data (5/19): 85 open invoices, $135,593.68 open balance. Bank txns/unapplied sheets st

  2. decisionMay 19, 2026 · atlas

    Switched Afton onboarding (and all future QBO client onboarding) from local-server OAuth callback to Intuit OAuth Playground paste-URL flow.

  3. handoffMay 19, 2026 · atlas

    Afton Electric (slug: afton, realm_id: 1331299185) wired up via OAuth Playground flow. Token exchanged, sanity-check query returned 164 accounts. Refreshed worklist (5/19) in Team Inbox.

  4. recordingMay 19, 2026 · jimmie

    Just talked to Riv about the Afton Electric OAuth handshake. Schedule a 3 min window. (edited)

  5. next actionMay 17, 2026 · riv

    Jimmie runs Afton OAuth handshake (~3 min browser-based)

  6. status changeMay 17, 2026 · jimmie

    planning → active

  7. decisionMay 17, 2026 · jimmie

    Approval UX = QBO Write Queue Google Sheet; Ledger appends rows, Jimmie drops Y in Approve column, Apps Script worker executes

  8. decisionMay 17, 2026 · jimmie

    Afton Electric confirmed as pilot client; scope = full monthly close (categorize, bank/CC rec, AP/AR, accruals, COA hygiene, P&L+BS review, close package)

  9. decisionMay 13, 2026 · riv

    App reuses across QBO realms; each client requires own OAuth handshake to mint their refresh token

  10. status changeMay 13, 2026 · riv

    blocked → unblocked

  11. handoffMay 12, 2026 · ledger

    Ledger produced Afton Electric A/R cleanup worklist: $136K A/R aging down to ~$45-55K true delinquent after cleanup

  12. decisionMay 11, 2026 · jimmie

    Tiered write gate architecture: Tier 1 auto (all reads), Tier 2 single confirm (reclassify / deactivate / rename), Tier 3 full approval (JEs, COA structure, multi-entity)