Free and open source (MIT) · for QuickBooks Online apps
Check your deployed app and your code against the issues that most often send QuickBooks Online apps back during Intuit's security review. Free, no sign-up, and your code never leaves your browser.
Example report for our insecure sample app
It is Intuit's check that a QuickBooks Online app handles customer data and OAuth tokens safely before it can connect to production companies or be listed on the QuickBooks App Store. Reviewers look at transport security, cookies and sessions, common web vulnerabilities, how the app stores OAuth tokens, and how it uses QuickBooks data. Apps for Intuit Enterprise Suite go through the same review.
Enter your app URL and OAuth callback path. The check probes HTTPS, TLS, cache headers, cookies, HTTP methods and the callback redirect.
Choose your repository folder. It is scanned in the browser for token storage, key handling, logging and CSRF issues.
Open each failed item for the reason and the fix, or read the requirements guide for fixes per stack.
Confirm the items no scanner can prove, such as data usage and access control, before you submit to Intuit.
Results are grouped by the areas Intuit's reviewers look at. Some are verified from outside, some from your code, and some only you can confirm. The requirements guide explains each one with fixes.
Need a penetration test too? This check finds configuration and code patterns. Flaws such as broken access control only show up when someone actively attacks the app. Apideck partners with Aikido for this: Aikido's AI pentesting confirms each finding and delivers a report within hours.
Each one is a small fix once you know it matters.
Intuit’s sample code passes a fixed state value. Shipping it turns off CSRF protection on the connect flow.
- authorizeUri({ scope, state: 'testState' })+ authorizeUri({ scope, state: req.session.oauthState })
private still lets the browser store the page. Pages with QuickBooks data or tokens need no-store.
- Cache-Control: private, max-age=0+ Cache-Control: no-store, no-cache, must-revalidate
The callback URL carries the auth code and realmId. Any third-party asset on that page can receive them in the Referer header.
- res.send('<h1>Connected!</h1>')+ res.redirect(302, '/app/connected')
Encrypt the refresh token and realmId with AES before writing them, and load the key from configuration.
- db.save({ refreshToken: token.refresh_token })+ db.save({ refreshToken: encrypt(token.refresh_token) })
The CLI and GitHub Action run the same checks, plus signed-in pages with a session cookie that never leaves your infrastructure. Run the action on every deploy and on a schedule, so a changed header shows up in CI before Intuit's next review.
Node 20 or later. Nothing to install.
# Live checks plus a scan of the current foldernpx @apideck/quickbooks-review-check \ --url https://app.example.com \ --callback /oauth/callback \ --path /dashboard \ --header "Cookie: session=…" \ --source .
Listed on the GitHub Marketplace. Store a test-account cookie as the QBRC_SESSION_COOKIE secret.
name: QuickBooks review checkon: deployment_status: schedule: - cron: '0 6 * * 1' # every Mondayjobs: check: runs-on: ubuntu-latest steps: - uses: actions/checkout@v4 - uses: apideck-libraries/quickbooks-review-check@v0 with: url: https://app.example.com callback: /oauth/callback paths: /dashboard headers: | Cookie: ${{ secrets.QBRC_SESSION_COOKIE }} source: .
Intuit asks about these, and no scanner can prove them. Every downloaded report ends with this list.
0 of 7 confirmed
Shorter review, less to defend
Let Apideck run the QuickBooks OAuth flow and store the tokens.
With Apideck, the redirect URI, token storage and refresh run on Apideck, and the same integration covers Xero, NetSuite and other accounting platforms.
Preflight also checks QuickBooks apps against Intuit's review. Its free action covers the runtime checks on personal accounts; the source checks and reports are in its paid Organization plan. Here everything is free and open source, including for companies. Preflight's paid plan adds affidavit preparation, connection monitoring and expert triage, which this tool does not offer.
| Feature | Apideck QuickBooks Review Check | Preflight (free) | Preflight Organization |
|---|---|---|---|
| Price for a company | Free | Personal accounts only | $49 / month |
| Open source | MIT, scanner and action | MIT, action | Not listed |
| Run in the browser, no install | Not listed | Not listed | |
| GitHub Action | |||
| Command line | npx (Node) | Python script | Not listed |
| HTTPS, TLS, cache headers, cookie flags, TRACE, 302 callback rule | |||
| HSTS, certificate, open redirects, version banners, security headers | Not listed | Not listed | |
| Refresh token and realmId encryption, key storage | |||
| Tokens in logs or the browser, constant OAuth state | |||
| XSS, injection and CSRF | Code patterns; pentest via Aikido | Scanner-backed, expert-triaged | |
| Report | PDF and Markdown, free | Pass/fail in CI | Audit-ready report |
| Security-affidavit preparation | |||
| 500-connection re-review monitoring | |||
| Insecure and secure sample apps to try | Not listed | Not listed |
Preflight details as published on preflightci.dev and Preflight on GitHub Marketplace on October 28, 2026. “Not listed” means their pages do not say. Preflight is a trademark of its owner; check their site for current plans.
Data models and coverage for QuickBooks Online through Apideck.
Who gets reviewed, what Intuit checks and how to prepare before the vendor emails.
A walkthrough of the QuickBooks Online API and OAuth flow.
What the partner tiers and API call limits mean for your app.
Set up your Intuit app with the Apideck redirect URI.
One API for QuickBooks, Xero, NetSuite and more.
Hosted OAuth, token storage and refresh for every connection.
Last updated
This tool is provided as is, without warranty of any kind. It is a self-assessment aid and not legal, compliance or security advice. Results do not guarantee that an app meets Intuit's requirements or will be approved. You are responsible for your app's security and for confirming requirements against Intuit's official documentation. Only scan systems you own or are authorized to test.
Not affiliated with, endorsed by or sponsored by Intuit Inc. Intuit and QuickBooks are trademarks of Intuit Inc., used here only to describe what the tool checks against.