Hey folks — we've pushed some solid improvements to the QuickBooks Online integration that should make your life easier if you're dealing with anything more complex than straight domestic invoicing. I know this one has been a pain point for a while, so let's walk through what's actually changed.

Tax Code Mapping That Doesn't Make You Want to Throw Your Laptop

Previously, our tax code mapping was... let's call it "optimistic." It worked fine if you had like three tax rates total, but once you got into compound taxes, exempt categories, or jurisdiction-specific rates, things got weird. We had customers manually fixing every single invoice in QBO, which defeats the whole purpose of an integration.

Now you get a proper mapping interface in Settings > Integrations > QuickBooks Online > Tax Codes. You can map FieldPulse tax rates to specific QBO tax codes, including exemptions. The sync will respect your QBO tax configuration instead of trying to guess.

Quick gotcha on this one: if you've got tax groups in QBO (multiple taxes rolled into one line), make sure those are set up as actual tax groups in QBO first. The API returns them weird otherwise and yeah this one tripped me up too when I first tested it.

Multi-Currency Support (Finally)

This was the big ask. If you're billing in USD, CAD, GBP, EUR, or AUD, the sync now handles currency conversion at the transaction level instead of trying to force everything into your QBO home currency.

Requirements:

  • Multi-currency has to be enabled in your QBO company settings (obviously)
  • The customer currency in FieldPulse needs to match an active currency in QBO
  • Exchange rates are pulled from QBO's daily rates, not FieldPulse

Edge case worth noting: if you're creating invoices in FieldPulse with a currency that doesn't exist in QBO yet, the sync will fail with a pretty clear error. We don't auto-create currencies because QBO's API is picky about exchange rate sources.

Batch Invoice Processing

Previously we were hitting QBO's API one invoice at a time, which meant if you had a busy week with 200 invoices, that sync could take 15+ minutes and occasionally timeout on QBO's end. Now we're batching up to 30 invoices per request using their bulk endpoint.

What this means practically:

Before: ~4-5 seconds per invoice
After: ~2-3 seconds per invoice, but batched

So 100 invoices went from ~7-8 minutes to ~90 seconds

The batching is automatic — you don't configure anything. If a batch fails partway through, we retry the failed items individually and log which ones had issues.

How to Get This

These changes are live now for all customers on the QBO integration. No action required unless you want to set up the tax mapping — that's opt-in via the settings panel.

If you're currently on the legacy QBO sync (pre-2024), you'll need to reauthorize the integration to get the new endpoints. You'll see a banner in your integration settings if this applies to you.

Questions or weird edge cases you're hitting? Drop them below. I've been deep in QBO's API docs for the last month and I'm happy to dig into specifics.

Parents Comment Children
  • Separate fix — that's this known issue and it's getting its own patch early next week. The root cause is how we're handling service bundles with optional line items; the QBO API structures those differently than flat rate services and we were double-submitting.

    If you need a workaround until then, unbundle the services in FieldPulse temporarily or set the bundle to "show as single line" in the invoice template. I know neither is ideal for your reporting.