Skip to Content

Data Sharing Reference

This page provides a comprehensive overview of what data flows between HubSpot, the QuickBooks Invoicing integration, and QuickBooks Online. Understanding data flow is critical for privacy, compliance, and security.

Overview

The QuickBooks Invoicing integration acts as a bridge between HubSpot and QuickBooks:

HubSpot CRM ←→ Integration Backend ←→ QuickBooks Online

Key Principles:

  • Data flows only when you initiate actions (creating invoices, syncing customers)
  • Read-only access to HubSpot data
  • Write access to QuickBooks (to create invoices and customers)
  • No data storage: Data is processed in real-time and not permanently stored
  • Encrypted in transit: All API calls use HTTPS/TLS encryption

Comprehensive Data Sharing Table

Data TypeSourceDestinationAccess LevelWhen It FlowsStored by IntegrationPurpose
Contact NameHubSpotQuickBooksRead (HS) / Write (QB)Invoice creation, customer sync❌ No (transient)Create/update QB customer
Contact EmailHubSpotQuickBooksRead (HS) / Write (QB)Invoice creation, customer sync❌ No (transient)Customer contact info, invoice delivery
Contact PhoneHubSpotQuickBooksRead (HS) / Write (QB)Customer sync❌ No (transient)Customer contact info
Billing AddressHubSpotQuickBooksRead (HS) / Write (QB)Customer sync❌ No (transient)Invoice billing address
Deal NameHubSpotQuickBooksRead (HS) / Write (QB)Invoice creation❌ No (transient)Invoice memo/description
Deal AmountHubSpotQuickBooksRead (HS) / Write (QB)Invoice creation❌ No (transient)Invoice total amount
Deal StageHubSpotIntegrationRead (HS)Card display❌ No (transient)Display deal context
Quote AmountHubSpotQuickBooksRead (HS) / Write (QB)Quote-based invoice❌ No (transient)Invoice amount from quote
Quote Line ItemsHubSpotQuickBooksRead (HS) / Write (QB)Quote-based invoice❌ No (transient)Itemized invoice lines
Line Item DetailsHubSpotQuickBooksRead (HS) / Write (QB)Itemized invoices❌ No (transient)Product, quantity, price
Client IDUser InputIntegration DBWrite (User) / Read (Integration)Configuration✅ Yes (encrypted)QuickBooks OAuth authentication
Client SecretUser InputIntegration DBWrite (User) / Read (Integration)Configuration✅ Yes (encrypted)QuickBooks OAuth authentication
OAuth Access TokenQuickBooksIntegration DBWrite (QB) / Read (Integration)OAuth flow✅ Yes (encrypted, temporary)QuickBooks API access
OAuth Refresh TokenQuickBooksIntegration DBWrite (QB) / Read (Integration)OAuth flow✅ Yes (encrypted, temporary)Token renewal
Default Tax CodeUser InputIntegration DBWrite (User) / Read (Integration)Configuration✅ YesInvoice creation default
Default ProductUser InputIntegration DBWrite (User) / Read (Integration)Configuration✅ YesInvoice creation default
InvoiceIntegrationQuickBooksWrite (QB)Invoice creation❌ NoCustomer invoice
CustomerIntegrationQuickBooksWrite (QB)Customer sync❌ NoQB customer record
Tax CodesQuickBooksIntegrationRead (QB)Settings page❌ No (transient)Display in dropdowns
Products/ServicesQuickBooksIntegrationRead (QB)Settings page, invoice creation❌ No (transient)Display in dropdowns
QB Company NameQuickBooksIntegrationRead (QB)After OAuth❌ No (transient)Display connection status
HubSpot Account IDHubSpotIntegration DBRead (HS)Installation✅ YesAccount identification
User EmailHubSpotIntegrationRead (HS)Card display❌ No (transient)Audit logging

Data Flow by Feature

Feature 1: Customer Sync (HubSpot Contact → QuickBooks Customer)

Trigger: User creates invoice from a deal with an associated contact not yet in QuickBooks

Data Flow:

  1. Read from HubSpot:

    • Contact first name
    • Contact last name
    • Contact email
    • Contact phone
    • Billing address (street, city, state, zip, country)
  2. Process in Integration Backend:

    • Search QuickBooks for existing customer by email
    • If not found, prepare customer creation request
    • Format data for QuickBooks API
  3. Write to QuickBooks:

    • Create new customer with HubSpot contact data
    • QuickBooks assigns Customer ID
    • Customer appears in QuickBooks customer list

Data Stored by Integration: ❌ None. Customer data flows through and is not stored.

Data Retention:

  • HubSpot: Contact data remains unchanged
  • QuickBooks: Customer record is permanent
  • Integration: No customer data stored

Feature 2: Invoice Creation from Deal

Trigger: User clicks “Create Invoice” on a deal’s QuickBooks Invoices card

Data Flow:

  1. Read from HubSpot:

    • Deal name
    • Deal amount
    • Associated contact (for customer)
    • Line items (if itemized invoice)
    • Quote data (if quote-based invoice)
  2. Process in Integration Backend:

    • Retrieve user-selected invoice type (Deposit, Follow-up, Final)
    • Calculate invoice amount based on type and percentage
    • Format invoice payload for QuickBooks API
    • Apply default tax code and product (if configured)
  3. Write to QuickBooks:

    • Create invoice with:
      • Customer (from synced HubSpot contact)
      • Amount (from deal or quote)
      • Line items (products, quantities, prices)
      • Tax code
      • Payment terms
      • Due date
    • QuickBooks assigns Invoice Number
    • Invoice appears in QuickBooks invoices list
  4. Optional: Send Email:

    • If user selects “Send now” or “Schedule send”
    • QuickBooks sends invoice email to customer
    • Email handled entirely by QuickBooks

Data Stored by Integration: ❌ None. Invoice data flows through and is not stored.

Data Retention:

  • HubSpot: Deal data remains unchanged
  • QuickBooks: Invoice record is permanent
  • Integration: No invoice data stored

Feature 3: OAuth Authentication

Trigger: User clicks “Connect to QuickBooks” in settings

Data Flow:

  1. User Provides:

    • Client ID (entered in settings)
    • Client Secret (entered in settings)
    • Environment selection (Sandbox or Production)
  2. Integration Stores (Encrypted):

    • Client ID → Database (AES-256-GCM encryption)
    • Client Secret → Database (AES-256-GCM encryption)
    • Encryption key derived from HubSpot Account ID + App Secret (PBKDF2, 100k iterations)
  3. OAuth Flow:

    • User redirected to Intuit authorization page
    • User signs in to QuickBooks
    • User selects QuickBooks company
    • User approves permissions
    • Intuit redirects back with authorization code
  4. Token Exchange:

    • Integration exchanges authorization code for tokens
    • Receives access token (valid 1 hour)
    • Receives refresh token (valid 100 days)
    • Tokens encrypted and stored in database
  5. Integration Stores (Encrypted):

    • Access token → Database (encrypted, temporary)
    • Refresh token → Database (encrypted, temporary)
    • QuickBooks Realm ID → Database (encrypted)

Data Stored by Integration: ✅ Yes (encrypted credentials and tokens)

Data Retention:

  • OAuth tokens: Until user disconnects or uninstalls
  • Client credentials: Until user disconnects or uninstalls
  • All deleted immediately upon disconnection

Feature 4: Settings Configuration

Trigger: User configures default tax codes and products

Data Flow:

  1. Read from QuickBooks (via API):

    • List of tax codes
    • List of products/services
    • Displayed in dropdown menus
  2. User Selects:

    • Default tax code ID
    • Default product ID
  3. Integration Stores:

    • Default tax code ID → Database (unencrypted, non-sensitive)
    • Default product ID → Database (unencrypted, non-sensitive)

Data Stored by Integration: ✅ Yes (tax code and product IDs only, not full details)

Data Retention:

  • Until user changes defaults or uninstalls
  • Deleted upon uninstall

What Data is NOT Shared

From HubSpot to QuickBooks

We do NOT share:

  • ❌ Contact notes or activities
  • ❌ Deal notes or activities
  • ❌ Company records
  • ❌ Ticket data
  • ❌ Marketing email data
  • ❌ Workflow or automation data
  • ❌ Custom object data
  • ❌ User passwords or credentials
  • ❌ Payment information (credit cards, bank accounts)
  • ❌ Custom properties (unless specifically configured for customer sync)

From QuickBooks to HubSpot

We do NOT share:

  • ❌ Invoice payment status back to HubSpot
  • ❌ Customer data from QuickBooks to HubSpot
  • ❌ Financial reports or data
  • ❌ Bank account information
  • ❌ Expense or bill data
  • ❌ Payroll data
  • ❌ Tax filing information

With Third Parties

We do NOT share any data with:

  • ❌ Third-party analytics services
  • ❌ Marketing platforms
  • ❌ Data brokers
  • ❌ Advertising networks
  • ❌ Any other external services

Data flow is exclusively: HubSpot ↔ Integration ↔ QuickBooks


Data Storage and Retention

What We Store

Data TypeStorage DurationEncryptionPurpose
Client IDUntil disconnect/uninstall✅ AES-256-GCMQuickBooks OAuth
Client SecretUntil disconnect/uninstall✅ AES-256-GCMQuickBooks OAuth
Access Token1 hour (auto-refreshed)✅ AES-256-GCMQuickBooks API access
Refresh TokenUntil disconnect/uninstall✅ AES-256-GCMToken renewal
QuickBooks Realm IDUntil disconnect/uninstall✅ AES-256-GCMCompany identification
Default Tax Code IDUntil user changes/uninstalls❌ No (non-sensitive ID)Invoice creation
Default Product IDUntil user changes/uninstalls❌ No (non-sensitive ID)Invoice creation
HubSpot Account IDUntil uninstall❌ No (non-sensitive ID)Account identification
Environment SettingUntil user changes/uninstalls❌ No (sandbox/production flag)API routing

What We DON’T Store

  • ❌ Contact personal information (names, emails, addresses)
  • ❌ Deal data (amounts, names, stages)
  • ❌ Invoice data
  • ❌ Customer data
  • ❌ Line item data
  • ❌ Quote data
  • ❌ QuickBooks company data
  • ❌ Payment information
  • ❌ Financial reports

Transient Data: Contact, deal, invoice, and customer data flows through our backend but is never persisted to database or logs.

Data Deletion

Upon Disconnection:

  • OAuth access token → Deleted immediately (< 1 second)
  • OAuth refresh token → Deleted immediately (< 1 second)
  • Encryption keys → Rotated (old encrypted data unreadable)
  • Client ID and Secret → Deleted (< 5 seconds)

Upon Uninstallation:

  • All stored data deleted (< 30 seconds)
  • Default settings deleted
  • Environment preference reset
  • Only uninstall timestamp retained (for 90 days, account ID only)

After 90 Days:

  • Even uninstall metadata purged
  • Zero data retention

Privacy Guarantees

We Cannot Access Your Data After Disconnection

Critical Privacy Guarantee: Once you disconnect or uninstall, we lose all ability to access your HubSpot or QuickBooks data.

Why:

  1. OAuth tokens are the only method to access HubSpot and QuickBooks APIs
  2. Tokens are permanently deleted upon disconnection (< 1 second)
  3. Encrypted tokens become unreadable after key rotation
  4. No alternative access paths exist (we don’t store passwords)
  5. No background processes can access data without tokens

Result: Complete data privacy restored immediately after disconnection.

No Data Sold or Shared

  • ✅ Your data is never sold to third parties
  • ✅ Your data is never shared with advertisers or data brokers
  • ✅ Your data is never used for marketing purposes
  • ✅ Your data is only used to provide the integration service

GDPR Compliance

The integration follows GDPR principles:

  • Data minimization: Only collect necessary data
  • Purpose limitation: Data used only for invoicing
  • Storage limitation: No unnecessary data retention
  • Security: Encryption at rest and in transit
  • Right to erasure: Complete data deletion upon uninstall
  • Transparency: This page documents all data flows

CCPA Compliance

California Consumer Privacy Act protections:

  • Right to know: This page discloses all data collection
  • Right to delete: Uninstall deletes all data
  • Right to opt-out: Uninstall stops all data collection
  • No sale of data: We do not sell personal information

Encryption and Security

Data in Transit

All API calls use HTTPS/TLS 1.2+ encryption:

  • HubSpot API calls: https://api.hubapi.com/...
  • QuickBooks API calls: https://quickbooks.api.intuit.com/...
  • OAuth flows: https://appcenter.intuit.com/...

Encryption: TLS 1.2+ with strong cipher suites

Data at Rest

Credentials and tokens encrypted using:

  • Algorithm: AES-256-GCM (authenticated encryption)
  • Key Derivation: PBKDF2 with 100,000 iterations
  • Key Material: Application secret + HubSpot account ID
  • Unique Keys: Each account has unique encryption key
  • Key Rotation: Keys rotated upon disconnection

Technical Details:

Encryption Key = PBKDF2( password: Application Secret, salt: HubSpot Account ID, iterations: 100,000, algorithm: SHA-256 ) Ciphertext = AES-256-GCM(Plaintext, Encryption Key, IV, AAD)

See Security Best Practices for more details.

Database Security

  • Access Control: Role-based access, principle of least privilege
  • Audit Logging: All database access logged
  • Encryption at Rest: Database storage encrypted
  • Secure Backups: Encrypted backups with limited retention
  • No Plain-Text: Sensitive data never stored in plain text

Data Access Controls

Who Can Access Your Data

Integration Backend:

  • ✅ Automated processes (invoice creation, customer sync)
  • ✅ API request handlers (when you initiate actions)
  • ❌ No manual access by developers or support staff
  • ❌ No background polling or continuous access

Your Control:

  • ✅ You initiate all data flows (creating invoices, syncing customers)
  • ✅ You can disconnect anytime (immediate data access revocation)
  • ✅ You can uninstall anytime (complete data deletion)

Audit Logging

All API calls and data access logged:

  • Timestamp of access
  • HubSpot account ID
  • Action performed (invoice created, customer synced)
  • API endpoints called
  • Success/failure status

Logs do NOT contain:

  • ❌ Personal information (names, emails, addresses)
  • ❌ Financial data (invoice amounts, payment details)
  • ❌ OAuth tokens or credentials

Log Retention: 90 days for security and troubleshooting


Compliance and Certifications

Standards Followed

  • OAuth 2.0: Industry-standard authorization framework
  • HTTPS/TLS: Encrypted data transmission
  • AES-256: Strong encryption at rest
  • PBKDF2: Secure key derivation
  • GDPR: European data protection regulation
  • CCPA: California privacy law

Third-Party Audits

  • Infrastructure hosted on SOC 2 certified platforms
  • Database on certified secure hosting
  • Regular security audits and penetration testing

Frequently Asked Questions

What data do you store permanently?

We only store encrypted OAuth credentials, default settings, and HubSpot account ID. No contact, deal, invoice, or customer data is permanently stored.

Can you access my QuickBooks data without my permission?

No. All access requires OAuth tokens which you explicitly authorize. We cannot access your data without your consent.

Do you share data with third parties?

No. Data flows only between HubSpot and QuickBooks. No third-party sharing.

What happens to my data if I disconnect?

OAuth tokens are permanently deleted immediately. We lose all access to your HubSpot and QuickBooks data.

Can you recover my data after uninstall?

No. All data is permanently deleted upon uninstall. There are no backups or recovery mechanisms.

Do you use my data for analytics or training?

No. Your data is only used to provide the invoicing service. No analytics, machine learning, or other purposes.

How long do you keep my data after uninstall?

90 days for uninstall metadata only (timestamp and account ID). All other data deleted immediately.

Is my data encrypted?

Yes. OAuth credentials and tokens are encrypted using AES-256-GCM. All API calls use HTTPS/TLS encryption.

Can your employees access my data?

No. Automated processes handle data flows. No manual access by employees. Sensitive data is encrypted and access-controlled.

What if there’s a data breach?

Encrypted data is useless without encryption keys. Tokens are deleted upon disconnection. We follow industry-standard security practices to prevent breaches.


Additional Resources

Last updated on