End-to-end deposit walkthrough ยท ProMount by Vancomm (promount entity) ยท Check each box as you go
doppler run -p vancomm -c dev_vancomm -- node scripts/qbo-launch-preflight.mjs
{"ok":true}payment.create) โ /webhooks/qbo ยท set up at developer.intuit.com (My Apps โ Webhooks); copy verifier token then: cd workers/scoro-qbo-bridge && echo -n '<token>' | doppler run -p vancomm -c dev_vancomm -- npx wrangler secret put QBO_WEBHOOK_VERIFIER_TOKENcom.intuit.quickbooks.accounting, authorize Mhondoro Capital Partners, LLC, copy the Refresh Token, then: cd workers/scoro-qbo-bridge && echo -n '<refresh-token>' | doppler run -p vancomm -c dev_vancomm -- npx wrangler secret put QBO_REFRESH_TOKEN. Tailscale is not needed for the Worker. Alternative (local script): tailscale funnel 8742 โ doppler run -p vancomm -c dev_vancomm -- node scripts/qbo-oauth.mjs โ same wrangler secret put.c_qbo_invoice_link (field_id 27) โ "Can add text in HTML format" = ON โ Custom fields<a href>Pay online</a> into c_qbo_invoice_link on the Scoro prepayment.c_qbo_invoice_link is populated (not empty)payment.create webhook โ Worker verifies HMAC โ resolves qbomap KV entry โ posts receipt to Scoro โ prepayment flips to paid/reconciled.c_qbo_invoice_link on the final invoice.Scoro:
QBO (Mhondoro Capital Partners, LLC):
| Deposit (D) = T ร 50% | [calc] |
| Balance (B) = T โ D | [calc] |
| D + B | = T โ |
| Symptom | Most likely cause | Action |
|---|---|---|
| Pay-link blank (Phase 4) | Path A not fired or errored | Wait 60s; refresh record. Check Worker log viewer |
| Pay-link = literal HTML | "HTML format" flag OFF on custom field | Scoro โ Custom fields โ c_qbo_invoice_link โ enable flag โ re-run Worker |
| Prepayment not paid (Phase 5) | QBO webhook not wired / token mismatch / no KV entry | Confirm P-4; check Worker logs; if KV missing, re-drive Path A first |
| "customer mapping unresolved" | Scoro company โ QBO customer not seeded | Seed KV: qbomap:scoro_company:{id} โ {customerId, billEmail} |
| No webhook in Worker logs | Scoro trigger not wired / wrong URL | Scoro โ Triggers and actions โ verify trigger + Worker URL |
| Final invoice not paid (Phase 7) | KV entry for balance invoice missing (Path C incomplete) | Check Path C completed; confirm qbomap:qbo_invoice:{balanceId} in KV |
| Duplicate receipts in Scoro | Both native connector + Worker Path B fired | Not harmful. If double-credit: void the duplicate receipt manually in Scoro UI |