Skip to Content

API Limits and Restrictions

This page documents the technical limits, rate limits, and restrictions for the QuickBooks Invoicing integration.

Overview

The integration operates within the constraints of both HubSpot’s and QuickBooks’ API rate limits, as well as our own application limits designed to ensure reliability and performance.

QuickBooks API Rate Limits

Standard Rate Limits

QuickBooks Online API enforces the following rate limits:

Limit TypeValueScope
Requests per minute500Per OAuth token (per connected company)
Requests per dayUnlimitedN/A
Concurrent connections10Per OAuth token

What this means:

  • You can make up to 500 API calls per minute
  • For the integration, this translates to approximately:
    • 500 invoice creations per minute (theoretical max)
    • 500 customer syncs per minute (theoretical max)
    • In practice: You’re unlikely to hit these limits with normal usage

Burst Limits

QuickBooks allows temporary bursts above the per-minute limit:

  • Burst capacity: Up to 600 requests in a short burst
  • Recovery time: 1 minute to restore burst capacity

Practical impact: If you create many invoices rapidly (100+ in a few seconds), you may hit the burst limit temporarily. Wait 60 seconds and try again.

Rate Limit Headers

When the integration calls QuickBooks API, responses include rate limit information:

X-RateLimit-Limit: 500 X-RateLimit-Remaining: 450 X-RateLimit-Reset: 60
  • Limit: Maximum requests per minute (500)
  • Remaining: How many requests left in current window
  • Reset: Seconds until rate limit resets

Integration behavior: If rate limit is approached, the integration automatically throttles requests and retries after the reset time.


HubSpot API Rate Limits

OAuth API Limits

For reading HubSpot CRM data (contacts, deals, quotes, line items):

Limit TypeValueScope
Requests per 10 seconds100Per OAuth app per account
Requests per day500,000Per OAuth app per account
Concurrent connections12Per OAuth app per account

What this means:

  • The integration can read up to 100 CRM objects per 10 seconds
  • Daily limit is very high - unlikely to be reached
  • Multiple users can create invoices simultaneously (up to 12 concurrent)

API Usage Best Practices

The integration optimizes HubSpot API usage:

  • Batch requests: When possible, fetches multiple objects in one call
  • Caching: Temporarily caches deal and contact data during invoice creation (minutes)
  • Lazy loading: Only fetches data when user opens CRM card or creates invoice
  • No polling: Does not continuously check HubSpot for updates

Integration Application Limits

Invoice Creation Limits

Per-user limits (to prevent accidental mass creation):

LimitValueReset Period
Invoices per minute301 minute
Invoices per hour2001 hour
Invoices per day1,00024 hours

Per-account limits (all users combined):

LimitValueReset Period
Invoices per minute1001 minute
Invoices per hour1,0001 hour
Invoices per day10,00024 hours

Note: These are safety limits. If you have legitimate needs exceeding these limits, contact support to discuss options.

What happens if limit is reached:

  • User sees error message: “Rate limit exceeded. Please wait X minutes and try again.”
  • No invoices are lost (user can retry)
  • Limit automatically resets after the specified period

Customer Sync Limits

Per-user limits:

LimitValueReset Period
Customers per minute201 minute
Customers per hour1001 hour

Per-account limits:

LimitValueReset Period
Customers per minute501 minute
Customers per hour5001 hour

Automatic sync behavior:

  • Customers are synced automatically during invoice creation
  • If contact doesn’t exist in QuickBooks, integration creates it
  • Sync counts toward the above limits

Settings Access Limits

ActionLimitReset Period
OAuth connections per hour101 hour
OAuth disconnections per hour101 hour
Settings updates per hour501 hour

Purpose: Prevents accidental or malicious rapid connection/disconnection cycles.


Data Size Limits

Invoice Field Limits

When creating invoices, the following field size limits apply:

FieldMaximum LengthType
Invoice memo4,000 charactersText
Line item description4,000 charactersText
Customer display name500 charactersText
Customer email100 charactersEmail
Line items per invoice1,000Count

Enforced by: QuickBooks API

What happens if exceeded:

  • Truncation (description fields)
  • Validation error (email, display name)
  • User must reduce line item count

Customer Field Limits

FieldMaximum LengthType
Customer name100 charactersText
Email100 charactersEmail
Phone30 charactersText
Address line500 charactersText
City255 charactersText
State/Province255 charactersText
Postal code30 charactersText

Enforced by: QuickBooks API


Timeout Limits

API Request Timeouts

OperationTimeoutBehavior on Timeout
HubSpot API calls30 secondsRetry up to 3 times
QuickBooks API calls60 secondsRetry up to 3 times
OAuth token exchange30 secondsShow error, ask user to retry
Invoice creation90 seconds totalShow error, ask user to retry

Retry logic:

  • Exponential backoff: 1s, 2s, 4s between retries
  • After 3 failures: Show error to user
  • User can manually retry

Concurrency Limits

Simultaneous Invoice Creation

Per user:

  • 1 invoice creation at a time per user
  • Prevents duplicate invoices if user clicks “Create” multiple times

Per account:

  • Up to 12 simultaneous invoice creations across all users
  • Limited by HubSpot OAuth concurrent connection limit

Queue behavior:

  • If 12 users are creating invoices simultaneously, 13th user sees “Please wait, trying again…”
  • Automatic retry every 5 seconds
  • Maximum wait time: 60 seconds

Simultaneous Settings Changes

Per account:

  • 1 settings update at a time
  • Prevents conflicts from multiple admins changing settings simultaneously

Lock behavior:

  • If admin A is saving settings, admin B sees “Settings are being updated, please wait…”
  • Automatic retry every 2 seconds
  • Maximum wait time: 30 seconds

OAuth Token Limits

Token Lifespan

Token TypeLifespanRefresh Behavior
Access Token1 hourAuto-refreshed by integration
Refresh Token100 daysRenewed on each use (rolling expiration)

What this means:

  • You don’t need to reconnect every hour (auto-refresh)
  • As long as integration is used at least once every 100 days, tokens stay valid
  • If unused for 100+ days, must reconnect

Token Refresh Limits

QuickBooks limits refresh token usage:

LimitValue
Refresh calls per hour100
Refresh calls per day1,000

Integration behavior:

  • Refreshes token only when needed (when access token expires)
  • Caches access token for its 1-hour lifespan
  • Normal usage stays well below these limits

Storage Limits

Database Storage Per Account

Data TypeLimit
OAuth tokens4 KB (encrypted)
Client credentials2 KB (encrypted)
Default settings1 KB
Total per account~10 KB

Impact: Negligible. No practical storage concerns.


Batch Operation Limits

Bulk Invoice Creation

The integration does NOT support bulk invoice creation (creating multiple invoices at once from a list of deals).

Current behavior:

  • Must create invoices one deal at a time
  • Each invoice created individually via CRM card

Future consideration:

  • Bulk creation may be added in future versions
  • Would still respect rate limits (throttled batch processing)

Bulk Customer Import

The integration does NOT support bulk customer import (syncing all HubSpot contacts to QuickBooks at once).

Current behavior:

  • Customers synced on-demand during invoice creation
  • One customer per invoice creation

Manual bulk import:

  • Use QuickBooks’ native import tool to bulk import customers
  • Then create invoices in HubSpot (customers will already exist)

Error Handling and Retries

Automatic Retry Behavior

Error TypeRetry AttemptsBackoff Strategy
Network timeout3Exponential (1s, 2s, 4s)
Rate limit (429)5Wait for rate limit reset
Server error (500)3Exponential (2s, 4s, 8s)
Temporary outage3Linear (5s, 5s, 5s)

User visibility:

  • First retry: Silent (user doesn’t see)
  • Subsequent retries: Progress indicator (“Retrying… attempt 2 of 3”)
  • Final failure: Error message with details

Non-Retryable Errors

Some errors are NOT retried (user must fix them):

  • Invalid credentials (incorrect Client ID/Secret)
  • OAuth token revoked (must reconnect)
  • Invalid data (missing required fields)
  • QuickBooks validation errors (e.g., invalid tax code ID)
  • Permissions errors (user lacks deal edit access)

User action required: Fix the underlying issue and retry manually.


Limits by Plan Type

The integration does NOT have different limits based on HubSpot subscription tier. All users have the same limits regardless of HubSpot plan (Free, Starter, Professional, Enterprise).

Why: The integration is priced/provided independently of HubSpot plan tiers.


Monitoring and Notifications

Rate Limit Warnings

The integration does NOT send proactive warnings when approaching limits.

User notification:

  • Only when limit is actually hit
  • Error message explains the limit and when it resets

Admin notification:

  • No automatic notifications to admins
  • Contact support if you need monitoring for your account

Usage Analytics

The integration does NOT provide usage analytics or dashboards showing:

  • How many invoices created
  • How close to rate limits
  • API call volume

Future consideration: May be added in a future version.


Quota Increases

Requesting Higher Limits

If your business needs exceed the documented limits:

  1. Contact Support:

  2. Provide Details:

    • HubSpot account ID
    • Current usage patterns
    • Desired limit increase
    • Business justification
  3. Review Process:

    • Support reviews request
    • May ask for additional information
    • Approval typically within 2-3 business days
  4. Custom Limits:

    • Can be configured per-account
    • No additional cost for reasonable increases

Third-Party Limits

QuickBooks Company Limits

Your QuickBooks Online subscription may have limits:

LimitQuickBooks Simple StartQuickBooks EssentialsQuickBooks PlusQuickBooks Advanced
CustomersUnlimitedUnlimitedUnlimitedUnlimited
Invoices per yearUnlimitedUnlimitedUnlimitedUnlimited
Users13525

Integration impact: None. The integration works within your QuickBooks subscription limits.

Note: Even with 1 user in QuickBooks, unlimited HubSpot users can create invoices via the integration (because the integration uses OAuth, not individual user accounts).


HubSpot CRM Limits

Your HubSpot subscription may have object limits:

ObjectFreeStarterProfessionalEnterprise
Contacts1,000,0001,000,0001,000,00010,000,000+
DealsUnlimitedUnlimitedUnlimitedUnlimited
Users22+5+10+

Integration impact: Works with all HubSpot plans. No additional limits imposed.


Performance Considerations

Expected Response Times

OperationTypical DurationMaximum Duration
Load CRM card< 1 second3 seconds
Create simple invoice2-4 seconds10 seconds
Create itemized invoice3-6 seconds15 seconds
Sync new customer1-2 seconds5 seconds
OAuth connection5-10 seconds30 seconds

Factors affecting speed:

  • Number of line items (more = slower)
  • Network latency
  • QuickBooks API response time
  • Whether customer already exists (new customer = slower)

Optimizing Performance

Best practices to stay within limits:

Do:

  • Create invoices as needed, not in bulk
  • Sync customers before creating many invoices
  • Use default tax codes and products (saves API calls)
  • Avoid rapid clicking on “Create Invoice” button

Don’t:

  • Create 100+ invoices in a few minutes (will hit rate limits)
  • Attempt bulk operations (not supported)
  • Create duplicate invoices (check QuickBooks first)

Frequently Asked Questions

What happens if I hit a rate limit?

You’ll see an error message explaining the limit and when it resets. Wait for the specified time (typically 1 minute) and try again.

Can I increase my rate limits?

Yes, contact support with your business case. We can configure higher limits for your account.

Why do you have application limits on top of QuickBooks limits?

To ensure reliability and prevent accidental mass invoice creation (e.g., if user clicks “Create” 100 times by mistake).

Do limits apply per user or per account?

Both. There are per-user limits (to prevent individual mistakes) and per-account limits (total across all users).

What if my QuickBooks subscription has lower limits?

The integration respects QuickBooks limits. If QuickBooks rejects an invoice due to subscription limits, you’ll see the error and must upgrade your QuickBooks plan.

Are there limits on invoice amounts or line item prices?

No application limits. QuickBooks may have limits (e.g., maximum invoice amount is $9,999,999.99). See QuickBooks documentation for details.

Can I create invoices faster than the rate limits allow?

No. Rate limits are strictly enforced to comply with QuickBooks API requirements and ensure system stability.

What if I need to create 10,000 invoices in a day?

Contact support before attempting this. We can configure temporary higher limits and provide guidance on batch processing strategies.


Additional Resources

Last updated on