QuickBooks API Production Keys: How We Got Approved
Quick Answer
Getting QuickBooks API production keys means filling out six app-detail tasks (contact info, legal URLs, host and callback URLs, category, regulated industries, hosting location) and passing a one-shot compliance questionnaire. There is no fee and no exemption for small or private apps. We applied for our own app in October 2026 and were approved the same day, mainly because we had already tested the connection on a sandbox company before we submitted anything.
We tried connecting our own agency's QuickBooks to an AI workflow once before, months earlier, and it stalled at exactly this step. We had development keys working fine, assumed production would be the same process with a different button, and got rejected in minutes. It wasn't a bug. We just hadn't read what production keys actually require.
This is the walkthrough we wish we'd had the first time, written after actually going through it. If you'd rather not do this part yourself, our $29 QuickBooks Agent kit pre-fills your questionnaire answers from a short interview and checks the four requirements below before you submit.
Development keys vs production keys
Intuit issues two separate sets of keys for the same app, and they follow different rules. Confusing the two is the single most common reason a first attempt fails.
| Development keys | Production keys | |
|---|---|---|
| Connects to | Sandbox test companies only | Your real QuickBooks company |
| Redirect URI | http://localhost allowed | Must be HTTPS on a domain you own |
| Approval | Instant, no review | App details + compliance questionnaire |
Our first attempt used production settings with a localhost callback, which Intuit rejects outright. We cover that specific failure, and the fix, in why QuickBooks rejects localhost as a redirect URI.
The four things production keys require
- The app assessment questionnaire. Mandatory, one submission only, even for a private app used by nobody but you.
- A public privacy policy and EULA (terms) URL. Both have to be live, working pages before you apply.
- A host domain, launch URL, disconnect URL, and HTTPS redirect URI on a domain you actually own. No localhost, no bare IP address.
- Your hosting country and a description of where the app runs. If it's a script on your own computer rather than a hosted web service, say exactly that.
The questionnaire, question by question
Intuit's exact wording shifts over time, but the substance of what it asks has stayed consistent. Here is roughly what you'll see, and the kind of answer that worked for our own private app:
- What does your app do? Describe the real, specific thing it does. “A private internal tool that reads invoices and reports, drafts reminders, and creates invoices only after I review each one” is a complete answer. Vague answers slow things down.
- Who uses it, and how many companies or users? If it's just you and your own company, say one and one. Not sold, not listed on the App Store.
- Where is your app hosted? If it runs on your own computer and only the callback pages are hosted publicly, say so. Pick “other / self-hosted” if the form forces a provider choice.
- What data does your app store, and do you share or sell it? Be specific. Storing only OAuth tokens and a company ID locally, never shared or sold, is a clean answer if it's true.
- Does your app use generative AI? Answer honestly. If you're running the connection through Claude Code, say that plainly, including that query results are processed under your own account and nothing is shared beyond that.
- Have you tested connecting, disconnecting, and reconnecting on a sandbox? Have you tested error handling? This is the one to answer honestly by actually doing it first. We ran the full six-step sandbox test before submitting, so both answers were a true yes.
How long approval actually takes
Intuit's own documentation and developer forum threads describe a range from a few minutes to five or ten business days. We submitted ours in the morning and had production keys showing in Keys and Credentials the same day. We can't promise that speed for every app, but a complete, honest, tested application is the one variable you actually control.
If your status shows “approval pending,” there's nothing else to do but wait for Intuit's email. Your sandbox keys keep working the whole time, so you can keep testing.
Common mistakes
Answering "yes" to the testing questions without testing
The honest version of this process is to actually run the sandbox tests, not to assume your code is fine. It takes about ten minutes and it is what the question is checking for.
Forgetting the Connect/Reconnect URL
It is a separate, required field from your Launch URL and easy to overlook among the six app-detail tasks. Your launch URL usually works for both.
A redirect URI that does not match exactly
HTTPS vs HTTP, www vs no www, and a trailing slash all count as a mismatch. The URL in your code and the URL in Keys and Credentials must be identical, character for character.
Treating this like a one-time task instead of reading the final screen
Since the questionnaire can only be submitted once, read every answer before you press submit. A support ticket is the only way to change anything afterward.
Skip the questionnaire guesswork
The QuickBooks Agent for Claude Code ($29) interviews you about your own setup, drafts your questionnaire answers from that interview, checks your privacy/terms URLs and redirect URI before you submit, and walks you through every step above inside Claude Code.
Get the QuickBooks Agent ($29)Frequently Asked Questions
Do I need to prepare for an app review to get production keys for a private app?▼
Yes. Intuit requires the app assessment questionnaire for every app that touches production data, even a private, internal-only app with one user. There is no exemption for small or personal use.
Can I edit my questionnaire answers after submitting?▼
No. The questionnaire can only be submitted once. If you need to change an answer afterward, you have to open a support ticket with Intuit. Read every answer carefully before you press submit.
What's the fastest this process can go?▼
Ours was approved the same day we submitted. Other developers report anywhere from a few minutes to 5 to 10 business days. Having already tested the connection on a sandbox company before applying seems to help, since the questionnaire asks about exactly that.
Does Intuit check whether my privacy policy and terms pages are real?▼
The application asks for working privacy policy and terms (EULA) URLs, and they need to be live pages, not placeholders. A simple page describing a private internal tool is enough if that's genuinely what you're building.
What if my app gets rejected?▼
The most common reasons are incomplete questionnaire answers, a missing or broken privacy or terms URL, or a redirect URI that does not exactly match what is entered in Keys and Credentials. Fix the specific issue and you can usually reapply.
Related Reading

Written by
Sep Gaspari
Founder & Digital Marketing Strategist, Zio Advertising | Kelowna, BC
15+ years in digital marketing, Google Ads, and SEO. I've helped businesses across 12+ industries generate qualified leads and grow revenue through data-driven strategies. I don't just run campaigns, I obsess over results, test relentlessly, and treat your budget like it's my own.
Connect on LinkedIn→Based on our own QuickBooks production-keys application, approved October 2026. Sources: Intuit Developer app assessment FAQ and developer forum threads at help.developer.intuit.com.

