Ledger QBO Access
activeNext 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.
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)
- 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
- 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.
- 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.
- recordingMay 19, 2026 · jimmie
Just talked to Riv about the Afton Electric OAuth handshake. Schedule a 3 min window. (edited)
- next actionMay 17, 2026 · riv
Jimmie runs Afton OAuth handshake (~3 min browser-based)
- status changeMay 17, 2026 · jimmie
planning → active
- decisionMay 17, 2026 · jimmie
Approval UX = QBO Write Queue Google Sheet; Ledger appends rows, Jimmie drops Y in Approve column, Apps Script worker executes
- 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)
- decisionMay 13, 2026 · riv
App reuses across QBO realms; each client requires own OAuth handshake to mint their refresh token
- status changeMay 13, 2026 · riv
blocked → unblocked
- handoffMay 12, 2026 · ledger
Ledger produced Afton Electric A/R cleanup worklist: $136K A/R aging down to ~$45-55K true delinquent after cleanup
- 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)