Connect QuickBooks to n8n?
Connect QuickBooks to n8n by creating a QuickBooks Online app, setting an OAuth2 redirect to your n8n instance (or ngrok URL), and adding QuickBooks credentials in n8n. You can complete the connection with a running n8n Docker instance and a short OAuth2 authorization flow.
What You Need
- Docker and docker-compose installed on your machine.
- n8n Docker image (runs on Node.js environment internally).
- A QuickBooks Online developer account and app (Client ID and Client Secret).
- ngrok or a public HTTPS URL for OAuth2 redirect.
- Basic knowledge of n8n UI and credentials.
How to Connect QuickBooks to n8n
- 1. Start n8n with Docker Compose. Create a file named docker-compose.yml with this content. Replace placeholders with your domain or ngrok URL.
version: '3.7'
services:
n8n:
image: n8nio/n8n:latest
restart: unless-stopped
ports:
- "5678:5678"
environment:
- N8N_HOST=localhost
- N8N_PORT=5678
- N8N_PROTOCOL=http
- WEBHOOK_URL=https://your-ngrok-id.ngrok.io
- N8N_BASIC_AUTH_ACTIVE=true
- N8N_BASIC_AUTH_USER=admin
- N8N_BASIC_AUTH_PASSWORD=strongpassword
- 2. Run n8n and expose it publicly for the OAuth callback. Use ngrok if you do not have a domain.
docker-compose up -d
# then in a new terminal:
ngrok http 5678
# note the https URL shown by ngrok, e.g. https://abcd1234.ngrok.io
- 3. Create a QuickBooks Online app in the Intuit Developer portal. Add this Redirect URI exactly:
https://YOUR_PUBLIC_URL/rest/oauth2-credential/callback
- 4. Copy the Client ID and Client Secret from QuickBooks. You will use them in n8n credentials.
- 5. Open your n8n web UI at the public URL or http://localhost:5678 and log in.
- 6. In n8n go to Credentials > New Credentials and choose QuickBooks. Enter Client ID and Client Secret.
- 7. Click Authenticate in the credential screen. The OAuth flow will open QuickBooks, ask for permission, and then redirect back to n8n. Approve the app for the company you manage.
- 8. After successful OAuth, n8n stores the access token. You can now add a QuickBooks node to any workflow. Choose an operation like “Create Customer” or “Get Invoice” and test it.
Update
Keep n8n and the Docker image updated. Use these commands to update safely.
docker-compose pull
docker-compose up -d
# Verify logs if something fails:
docker-compose logs -f n8n
Security
- Use HTTPS for your WEBHOOK_URL. Do not use plain HTTP in production.
- Store Client ID and Client Secret in environment variables or n8n credentials. Do not hard-code them in code files.
- Rotate QuickBooks keys when staff change. Revoke unused OAuth tokens in Intuit Developer.
- Use strong basic auth or a reverse proxy with TLS in front of n8n. Consider firewall rules and IP restrictions.
Done
Once the QuickBooks credential is authenticated, n8n can call QuickBooks Online API endpoints automatically. Build workflows that create customers, send invoices, or sync payments. Test each node with sample data before enabling automation.