QuickBooks integration disconnecting daily — authentication issue?

From a governance perspective, we require stable integration connectivity for our financial audit trail. Since Thursday of last week, our QuickBooks Online connection has been terminating every 24 hours, necessitating manual re-authentication by an administrator with appropriate credentials.

It is worth noting that:

  1. No configuration changes were made to either FieldPulse or QuickBooks Online prior to this behavior commencing
  2. The disconnection occurs consistently at approximately 4:00 PM UTC daily
  3. Our API usage has remained within documented rate limits
  4. Refresh token rotation appears to be failing silently — no error notifications are generated

I have confirmed that our QuickBooks Online subscription is active and that third-party app permissions remain granted. The re-authentication flow completes successfully each time, suggesting the OAuth consent is not being revoked at the source.

Is this a known issue with the QuickBooks integration connector? We are evaluating whether to implement a manual token refresh workflow via API, but this would introduce operational overhead we had not anticipated.

Our current environment: FieldPulse 3.3.1, QuickBooks Online Plus, SSO not enabled for the integration account.

  • Hi Fatima — in my experience, this pattern typically points to a mismatch between how FieldPulse is requesting token refresh and a recent change on Intuit's side regarding refresh token lifetimes. What I typically recommend is verifying a few specific items before assuming it's a bug on either platform.

    QuickBooks Online made a change in early 2024 that reduced refresh token validity for certain connection types when the app is in 'development' mode versus 'production' mode. However, that shouldn't apply to established FieldPulse connections. More likely, what we're seeing here is that the token refresh is happening at the 24-hour mark, but something in the token storage is not persisting the new refresh token that's returned with the access token.

    Here's what I would check:

    First, look at whether your integration was originally set up under a different QuickBooks user account that may have since been deactivated or had its permissions modified. The FieldPulse integration stores credentials against the specific QBO user who authorized it, not just the company. If that user leaves or their role changes, the refresh can fail even though the initial connection test passes.

    Second, there's a known interaction between certain firewall configurations and the token endpoint that can cause the response containing the new refresh token to be dropped. This is rare but I've seen it twice in enterprise environments with strict outbound filtering.

    Third, and this is the most common cause in my experience, QuickBooks Online will invalidate refresh tokens if the same user authorizes the app multiple times across different browsers or devices. The most recent authorization wins, and previous refresh tokens become invalid. If someone on your team has been testing or re-authenticating, that would explain the 24-hour cycle.

    What I typically recommend as a next step: disconnect the integration entirely from FieldPulse, then revoke the app authorization from within QuickBooks Online (Settings > Apps > FieldPulse > Disconnect), wait approximately 10 minutes, and reconnect using a dedicated service account rather than a personal user account. This ensures no other sessions can interfere with the token lifecycle.

    From a governance perspective, this also aligns better with audit requirements since the service account can be configured with minimal permissions and monitored separately.

  • Can you share the full response from GET /api/v1/integrations/quickbooks/status when the connection shows as disconnected? Specifically need last_error and token_expires_at.

    Also helpful: are you seeing 401 responses in your network logs, or is the disconnect happening before any API call is attempted?

  • It is worth noting that we do not have direct API access to integration status endpoints — this is managed through the FieldPulse web interface. The integration panel displays 'Connection expired' with a timestamp matching approximately 24 hours from the previous authorization.

    I have requested our development team to inspect network traffic during the next scheduled disconnection, which should occur tomorrow at 4:00 PM UTC.

  • Hi Fatima — happy to help clarify this! Daniel's guidance above is solid, and I want to add that we're tracking a specific issue with QuickBooks refresh token persistence that may be affecting your connection.

    Here's what's happening: QuickBooks Online recently tightened their OAuth 2.0 implementation to require PKCE (Proof Key for Code Exchange) on all new connections. FieldPulse has supported this since version 3.2, but connections established before that may be experiencing the exact 24-hour expiration pattern you're describing. The existing tokens are grandfathered, but the refresh flow is being rejected by Intuit's servers.

    To resolve this, you'll need to reauthorize the connection using our updated OAuth flow. Here's the step-by-step:

    1. Navigate to Settings > Integrations > QuickBooks
    2. Click Disconnect (do not skip this — the old token must be fully invalidated)
    3. Wait 2-3 minutes for the token to clear from our cache
    4. Click Connect to QuickBooks
    5. Sign in with your QuickBooks credentials when prompted
    6. On the authorization screen, verify you see 'This app uses industry-standard encryption' — this confirms PKCE is active

    This issue is documented in QuickBooks Sync Duplicating Invoice Line Items — while the symptoms differ, the root cause (token handling) is related.

    If you complete these steps and still see daily disconnections, please open a support ticket and reference this thread. We can escalate to our integrations team for deeper token flow analysis.

  • Heads up — if you're running any custom scripts that hit the QBO API directly using tokens extracted from FieldPulse, those will definitely break with the PKCE migration. The token format changes slightly.

    YMMV, but we had to update our internal reporting tool that was piggybacking on the FieldPulse OAuth flow. Worth checking if your team has anything similar.

  • Same thing happened to us last month. Reconnecting with PKCE fixed it.

    One thing — if you have any scheduled reports or automated syncs, they'll fail during the 2-3 minute window Priya mentioned. We learned that the hard way with our nightly invoice push.

  • It is worth noting that we do maintain a separate data extraction process that leverages the FieldPulse API, not direct QuickBooks API access. However, I will verify with our development team whether any direct token usage exists that I am not aware of.

    From a governance perspective, we prefer to avoid token extraction entirely and use dedicated service accounts where possible.

  • We've been dealing with this too — my team can't invoice properly when the sync drops. Is there a timeline for a permanent fix, or is re-authentication now a weekly task?

    We need this working reliably for month-end close.

  • Hi Brandon — the re-authentication with PKCE (steps above) should be a one-time fix, not an ongoing requirement. Once you've reconnected under the new OAuth flow, the tokens should refresh automatically without daily expiration.

    If you're still seeing daily disconnects after completing those steps, that's a bug we need to investigate immediately. Please open a ticket with your account ID and we'll escalate to engineering same-day.