Learn how to integrate Bolt.new AI with QuickBooks in 2026 using this simple step-by-step guide to boost automation and accuracy.

Book a call with an Expert
Starting a new venture? Need to upgrade your web app? RapidDev builds application with your growth in mind.
To integrate Bolt.new with QuickBooks, you don’t connect “Bolt to QuickBooks” directly — instead, you build a normal web backend inside Bolt.new (Node/Express, Python/FastAPI, etc.), and that backend talks to QuickBooks using Intuit’s official REST APIs through OAuth 2.0. Inside Bolt, you store your QuickBooks keys in environment variables, implement the QuickBooks OAuth flow, then call their accounting endpoints like customers, invoices, and payments. Bolt is simply the workspace where you scaffold, run, and test this integration in a sandboxed environment.
Bolt.new does not provide a built‑in QuickBooks connector. You integrate with QuickBooks using:
All communication happens from the backend service you build and run inside Bolt.new.
This is a clean, real-world way to do it.
import express from "express"
import fetch from "node-fetch"
import dotenv from "dotenv"
dotenv.config()
const app = express()
// Step 1 — Redirect user to QuickBooks authorization screen
app.get("/auth/quickbooks", (req, res) => {
const url =
"https://appcenter.intuit.com/connect/oauth2" +
"?client_id=" + process.env.QB_CLIENT_ID +
"&response_type=code" +
"&scope=com.intuit.quickbooks.accounting" +
"&redirect_uri=" + encodeURIComponent(process.env.QB_REDIRECT_URI)
res.redirect(url)
})
// Step 2 — QuickBooks redirects back with ?code=&realmId=
app.get("/auth/callback", async (req, res) => {
const { code, realmId } = req.query
const tokenRes = await fetch(
"https://oauth.platform.intuit.com/oauth2/v1/tokens/bearer",
{
method: "POST",
headers: {
Authorization:
"Basic " +
Buffer.from(
process.env.QB_CLIENT_ID + ":" + process.env.QB_CLIENT_SECRET
).toString("base64"),
"Content-Type": "application/x-www-form-urlencoded"
},
body:
"grant_type=authorization_code" +
"&code=" + code +
"&redirect_uri=" + encodeURIComponent(process.env.QB_REDIRECT_URI)
}
)
const tokenData = await tokenRes.json()
// Save tokenData.access_token and tokenData.refresh_token somewhere safe
global.accessToken = tokenData.access_token
global.realmId = realmId
res.send("QuickBooks connected! Tokens stored.")
})
// Example API call — Fetch QuickBooks customers
app.get("/quickbooks/customers", async (req, res) => {
const url = `https://sandbox-quickbooks.api.intuit.com/v3/company/${global.realmId}/query?query=select * from Customer`
const qbRes = await fetch(url, {
headers: {
Authorization: "Bearer " + global.accessToken,
Accept: "application/json"
}
})
const data = await qbRes.json()
res.json(data)
})
app.listen(3000, () => {
console.log("Server running on port 3000")
})
This is the real, correct way to integrate Bolt.new with QuickBooks: build a backend in Bolt, store secrets as env vars, run the OAuth flow, call official QuickBooks REST endpoints, and test it end‑to‑end inside the Bolt sandbox.
When it comes to serving you, we sweat the little things. That’s why our work makes a big impact.