QuickBooks Desktop On-Premise Setup
QuickBooks Desktop runs locally and can’t be accessed directly from the cloud. To sync data from it, you need two things running on your network:
- CData QuickBooks Desktop Gateway — A Windows service that exposes QuickBooks data over HTTP/HTTPS
- Resplendent Sync Agent — A Docker container that connects to our cloud and relays sync requests to the Gateway
The sync agent connects outbound to Resplendent (no inbound firewall rules needed). When a sync runs, our cloud tells the agent what to fetch, the agent queries the Gateway, and sends the data back.
┌─────────────────────────────────────────────────────────────────┐│ Your local network ││ ││ ┌──────────────────┐ ┌──────────────────────────────┐ ││ │ Linux VM │ HTTP │ Windows machine │ ││ │ (Sync Agent) │◄───────►│ (QuickBooks + Gateway) │ ││ └────────┬─────────┘ └──────────────────────────────┘ ││ │ │└───────────│─────────────────────────────────────────────────────┘ │ WebSocket (outbound only) ▼ ┌───────────────────┐ │ Resplendent │ │ Cloud │ └───────────────────┘Part 1: Create a sync agent in Resplendent
Section titled “Part 1: Create a sync agent in Resplendent”Sync agents are available on Business tier and above. A Staff or Admin user can create and edit an agent.
- Log in to Resplendent at https://app.resplendentdata.com
- Go to Settings → Sync Agents in the left sidebar
- Click Add Sync Agent
- Enter a name for your agent (e.g., “Office Sync Agent”)
- Click Save
The dialog shows the Agent UUID immediately. The Agent Key shows Pending save until you save the agent. After saving, keep the dialog open and copy both values—you’ll need them when installing the agent.
If you close the dialog before copying the credentials, click the agent’s name in the table to view them again.
Part 2: Install the sync agent
Section titled “Part 2: Install the sync agent”Requirements
Section titled “Requirements”- 64-bit x86 Linux server (Ubuntu 22.04+ or similar)
- Docker Engine and Docker Compose v2 installed
- 4 vCPU, 8 GB RAM, and 40 GB of available SSD storage for a production deployment
- Network access to your Windows machine running QuickBooks
- Outbound HTTPS and WebSocket access to
app.resplendentdata.comon TCP port 443
For evaluation or light use, the minimum profile is 2 vCPU, 4 GB RAM, and 20 GB of available storage. The agent also runs on Windows with WSL2 or macOS for evaluation, but we recommend a dedicated Linux VM because it is easier to keep running 24/7. See Sync Agent requirements for high-volume sizing and additional guidance.
Quick install
Section titled “Quick install”SSH into your server and run:
mkdir resplendent_sync_agentcd resplendent_sync_agentcurl -sSL https://app.resplendentdata.com/api/public/sync-agent-install.sh | bashThe script prompts for your Agent UUID and Agent Key. It creates a docker-compose.yaml and starts the agent.
Manual install
Section titled “Manual install”If you prefer not to pipe scripts to bash, create docker-compose.yaml manually:
name: resplendent-sync-agent
services: sync-agent: image: resplendentdata/sync-agent:latest container_name: sync-agent environment: - SYNC_AGENT_UUID=your-uuid-here - SYNC_AGENT_KEY=your-key-here - SYNC_AGENT_UPDATER_URL=http://sync-agent-updater:8080/v1/update - SYNC_AGENT_UPDATER_TOKEN=generate-a-long-random-token restart: always
sync-agent-updater: image: resplendentdata/sync-agent-updater:latest container_name: sync-agent-updater group_add: - '999' volumes: - /var/run/docker.sock:/var/run/docker.sock - ./docker-compose.yaml:/config/docker-compose.yaml:ro environment: - SYNC_AGENT_UPDATER_TOKEN=generate-a-long-random-token - SYNC_AGENT_COMPOSE_FILE=/config/docker-compose.yaml - SYNC_AGENT_COMPOSE_PROJECT=resplendent-sync-agent - SYNC_AGENT_SERVICE_NAME=sync-agent - SYNC_AGENT_UPDATE_AUTO_THROTTLE_SECONDS=21600 restart: alwaysReplace the UUID and Key values. Replace both generate-a-long-random-token values with the same long random token, then run:
docker compose up -dThe Resplendent updater sidecar can update the sync agent from the Sync Agents page and checks for updates automatically when the agent reconnects.
Verify it’s working
Section titled “Verify it’s working”docker compose logs -f sync-agentYou should see:
INFO:__main__:Authenticating with serverINFO:__main__:Successfully authenticated with the serverBack in Resplendent, the Last Connection field on the Sync Agents page should update to show the current time. The agent sends a heartbeat every 30 seconds.
Part 3: Install the CData Gateway (Windows)
Section titled “Part 3: Install the CData Gateway (Windows)”Requirements
Section titled “Requirements”- Windows machine where QuickBooks Desktop is installed
- QuickBooks Desktop must be running during syncs
- Administrator access
Installation
Section titled “Installation”-
Download the CData QuickBooks Desktop Gateway from: https://www.cdata.com/products/quickbooksgateway/
-
Run the installer
-
The Gateway Control Panel opens after installation. If not, find “CData QuickBooks Desktop Gateway” in the Start Menu.
Part 4: Configure the Gateway
Section titled “Part 4: Configure the Gateway”Create a Gateway user
Section titled “Create a Gateway user”- Open the CData QuickBooks Desktop Gateway
- Go to the Users tab
- Click Add User
- Enter a username (e.g.,
resplendent) and a password - Click Save
Write down the username and password. You’ll enter these in Resplendent later.
Configure the service
Section titled “Configure the service”- Go to the Service tab
- Note the Port (default: 8166)
- SSL is not required for local connections — the sync agent runs on the same network, so HTTP is fine
- Note the URL shown (e.g.,
http://192.168.1.100:8166) - Click Start Service
Authorize QuickBooks access
Section titled “Authorize QuickBooks access”- Open QuickBooks Desktop as an administrator
- In the Gateway, go to the Connection tab
- Click Connect to QuickBooks
- QuickBooks shows an authorization prompt — select “Yes, always allow access”
- Verify the status shows “Connected”
QuickBooks must be open and logged in whenever a sync runs. If it’s closed, syncs will fail with a “QuickBooks not responding” error.
Part 5: Connect in Resplendent
Section titled “Part 5: Connect in Resplendent”- In Resplendent, go to Settings → Integrations
- Find QuickBooks Desktop. Click Connect, or select Manage → New connection if you already have a QuickBooks Desktop connection
- Enter your Gateway details:
- Gateway URL: The URL from Part 4 (e.g.,
http://192.168.1.100:8166) - Gateway User: The Gateway user from Part 4
- Gateway Password: The password you created
- Gateway URL: The URL from Part 4 (e.g.,
- Enter a required Connection Title. The Description is optional
- Scroll down to On-Premise Sync Agent
- Toggle Enable On-Premise Sync
- Under Select Sync Agent, choose your sync agent
- Click Save & Test
If the test succeeds, you’ll see a green “Connected” status. Click Sync Dataset to choose which QuickBooks tables to sync.
Managing the sync agent
Section titled “Managing the sync agent”Common commands (run from the directory containing docker-compose.yaml):
# View logsdocker compose logs -f sync-agent
# Restart the agentdocker compose restart sync-agent
# Stop the agentdocker compose down
# Pull latest version manuallydocker compose pull && docker compose up -dTroubleshooting
Section titled “Troubleshooting””Network unreachable” or connection timeout
Section titled “”Network unreachable” or connection timeout”- Verify the Linux VM can reach the Windows machine:
ping <windows-ip> - Check Windows Firewall allows inbound connections on port 8166
- Make sure the Gateway service is running (check the Service tab)
“Authentication failed”
Section titled ““Authentication failed””- Verify the username and password match what you created in the Gateway
- Check the Gateway URL matches (http vs https if you enabled SSL)
“QuickBooks not responding”
Section titled ““QuickBooks not responding””- Make sure QuickBooks Desktop is open and logged into a company file
- Verify the Gateway shows “Connected” in the Connection tab
- Try clicking Connect to QuickBooks again in the Gateway
Sync agent not connecting
Section titled “Sync agent not connecting”- Check Docker is running:
docker ps - Verify the UUID and Key in docker-compose.yaml match what’s in Resplendent
- Check logs for authentication errors:
docker compose logs sync-agent
Agent shows “Never connected” in Resplendent
Section titled “Agent shows “Never connected” in Resplendent”- The agent might not have started. Check
docker compose ps - Outbound WebSocket connections might be blocked. The agent connects to
wss://app.resplendentdata.comon port 443 - DNS issues: try adding
dns: [8.8.8.8, 1.1.1.1]under the sync-agent service
Security notes
Section titled “Security notes”- HTTP is fine for local connections — The sync agent runs on your local network, so HTTPS isn’t required. If you prefer encryption, you can enable SSL in the Gateway settings.
- Restrict Gateway access — Configure Windows Firewall to only allow the sync agent’s IP on port 8166
- Use strong passwords — The Gateway user password protects access to your QuickBooks data
- Keep software updated — The sync agent updates automatically; update QuickBooks and the Gateway manually
- Docker socket access — The
sync-agent-updaterservice mounts the Docker socket (/var/run/docker.sock) to manage container updates. This grants it privileged access to control containers on the host. Thegroup_addvalue should match the Docker socket group ID, which is usually999and can be checked withstat -c '%g' /var/run/docker.sock. Some enterprise security policies may prohibit socket access. If you need manual update control, remove the updater service and rundocker compose pull && docker compose up -dto update manually.
The sync agent only makes outbound connections. It doesn’t open any inbound ports or accept incoming connections.
Support
Section titled “Support”If you’re stuck, email support@resplendentdata.com with:
- Sync agent logs (
docker compose logs sync-agent) - Screenshot of the Gateway’s Connection tab
- Any error messages from the Resplendent UI