Connect QuickBooks and Stripe
The two finance integrations behind Bookkeeping and client billing — what you need from Intuit, how to connect Stripe, and what breaks when a token expires.
Two connections carry everything in Finance. QuickBooks feeds Bookkeeping, read-only. Stripe charges your clients. Both are connected by the workspace owner under SettingsIntegrations, and both are per-workspace — there is no shared platform account behind them.
Before you start
Only the workspace owner can connect either integration. For QuickBooks you supply your own Intuit developer app: Zyan does not share a platform QuickBooks app, so you will need access to the Intuit developer dashboard.
Connect QuickBooks
Create an Intuit app
In the Intuit developer dashboard. The QuickBooks card links to it under Where to find it.
Save your credentials
SettingsIntegrationsQuickBooksClient credentials. Paste the Client ID and Client Secret, then click Save. Nothing on this card autosaves.
Add the redirect URI
Use Copy URL on the card and paste it into your Intuit app's redirect URI list. Connect will not work until it is listed there.
Click Connect
Complete the Intuit authorization and pick the company. The card then shows the connected company name.
Turn on Recurring auto-sync
Hourly syncs keep Bookkeeping fresh without anyone opening the portal.
Optional — add the webhook
Open QuickBooksWebhook (optional), copy the Webhook endpoint URL into the Intuit developer dashboard, paste Intuit's verifier token back into Webhook verifier token, and Save.
Optional — set account mappings
Open QuickBooksAccount mappings & overrides to choose the report basis and the default accounts.
Treat the Client Secret as a credential
The secret is never displayed again after you save it, and Zyan shows only the saved Client ID back to you. Keep the secret in your password manager, not in a document or a chat message.
QuickBooks settings reference
| Setting | What it changes | Default |
|---|---|---|
| Client ID | Your Intuit app's production client id. Shown back as “Saved Client ID:” after saving. | — |
| Client Secret | Your Intuit app secret. Never displayed again after saving. | — |
| Connect / Reconnect | Starts the Intuit authorization. Reads Reconnect once connected, or when re-authorization is needed. | — |
| Test | Checks the stored credentials against QuickBooks and timestamps the result. | — |
| Disconnect | Removes the connection. Bookkeeping stops showing data. | — |
| Recurring auto-sync | Scheduled hourly syncs keep Bookkeeping fresh without opening the portal. | On unless explicitly disabled |
| Webhook verifier token | The Intuit verifier token that authenticates change notifications sent to your webhook endpoint. | — |
| Report basis | Whether QuickBooks reports are pulled on an accrual or a cash basis. | Accrual |
| Default expense account | The fallback expense account when a transaction has none. | Use QuickBooks fallback |
| Default bank account | The fallback bank account. | Use first active bank account |
The status chips on the card read Credentials, Auto-sync (On or Off), Webhooks, and the connected company name. The company identifier Intuit uses is the Realm or Company ID, shown once connected.
QuickBooks is read-only in Zyan
Zyan reads your books. It cannot create, edit or delete anything in QuickBooks, and write requests are refused. Budgets you build on the Budget tab live in Zyan only.
Connect Stripe
Stripe is connected as a connected account — your Stripe account, charging your clients, with Zyan driving it.
Open the Stripe card
SettingsIntegrationsStripe, as the workspace owner.
Connect the account
Complete the Stripe flow. The card then shows the connected account id and whether the connection is in live or test mode.
Build your catalog
Plans have to exist before you can bill anyone — see Billing Catalog.
| Setting | What it changes | Default |
|---|---|---|
| Connected account | The Stripe account id Zyan is billing through. Read-only. | — |
| Mode | Whether the connection is in live or test mode. Read-only. | — |
| Disconnect Stripe? | Removes the connection. Billing Catalog customers, the invoicing wizard and the storefront all stop working. | — |
There is no webhook to copy on your side. Invoice status, payment attempts and refunds shown in Billing CatalogCustomers are driven by the connected-account webhook lane, which is wired when you connect.
Live mode charges real cards
Every catalog sync and every compose in the Bill this client wizard is a live financial action on your own Stripe account. Check the Mode on this card before you compose your first subscription.
Troubleshooting
| Symptom | Cause | Fix |
|---|---|---|
| "QuickBooks rejected the stored refresh token, so syncing is paused." | The refresh token expired or the app authorization was revoked | Click Reconnect and re-authorize the company, then sync |
| Connect bounces back without connecting | The redirect URI on the card is not listed in your Intuit app | Use Copy URL and add it to the Intuit app's redirect URI list |
| Saved credentials, but the card still says not connected | Saving credentials is not connecting — they are two steps | Click Connect and complete the Intuit authorization |
| Changes you make on the card do not stick | Nothing on the QuickBooks card autosaves | Click Save |
| Bookkeeping shows a Paused banner | The integration switch is off; manual and hourly syncs are both stopped | Open the QuickBooks tile and turn the integration back on |
| "Stripe Connect is not configured on the platform yet." | The platform side of Stripe Connect is not armed for your workspace | Contact Zyan — there is nothing to change on your side |
| The Test result is old | It timestamps only when you press it | Press Test again for a current answer |