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 OnlineKey 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 Type | Source | Destination | Access Level | When It Flows | Stored by Integration | Purpose |
|---|---|---|---|---|---|---|
| Contact Name | HubSpot | QuickBooks | Read (HS) / Write (QB) | Invoice creation, customer sync | ❌ No (transient) | Create/update QB customer |
| Contact Email | HubSpot | QuickBooks | Read (HS) / Write (QB) | Invoice creation, customer sync | ❌ No (transient) | Customer contact info, invoice delivery |
| Contact Phone | HubSpot | QuickBooks | Read (HS) / Write (QB) | Customer sync | ❌ No (transient) | Customer contact info |
| Billing Address | HubSpot | QuickBooks | Read (HS) / Write (QB) | Customer sync | ❌ No (transient) | Invoice billing address |
| Deal Name | HubSpot | QuickBooks | Read (HS) / Write (QB) | Invoice creation | ❌ No (transient) | Invoice memo/description |
| Deal Amount | HubSpot | QuickBooks | Read (HS) / Write (QB) | Invoice creation | ❌ No (transient) | Invoice total amount |
| Deal Stage | HubSpot | Integration | Read (HS) | Card display | ❌ No (transient) | Display deal context |
| Quote Amount | HubSpot | QuickBooks | Read (HS) / Write (QB) | Quote-based invoice | ❌ No (transient) | Invoice amount from quote |
| Quote Line Items | HubSpot | QuickBooks | Read (HS) / Write (QB) | Quote-based invoice | ❌ No (transient) | Itemized invoice lines |
| Line Item Details | HubSpot | QuickBooks | Read (HS) / Write (QB) | Itemized invoices | ❌ No (transient) | Product, quantity, price |
| Client ID | User Input | Integration DB | Write (User) / Read (Integration) | Configuration | ✅ Yes (encrypted) | QuickBooks OAuth authentication |
| Client Secret | User Input | Integration DB | Write (User) / Read (Integration) | Configuration | ✅ Yes (encrypted) | QuickBooks OAuth authentication |
| OAuth Access Token | QuickBooks | Integration DB | Write (QB) / Read (Integration) | OAuth flow | ✅ Yes (encrypted, temporary) | QuickBooks API access |
| OAuth Refresh Token | QuickBooks | Integration DB | Write (QB) / Read (Integration) | OAuth flow | ✅ Yes (encrypted, temporary) | Token renewal |
| Default Tax Code | User Input | Integration DB | Write (User) / Read (Integration) | Configuration | ✅ Yes | Invoice creation default |
| Default Product | User Input | Integration DB | Write (User) / Read (Integration) | Configuration | ✅ Yes | Invoice creation default |
| Invoice | Integration | QuickBooks | Write (QB) | Invoice creation | ❌ No | Customer invoice |
| Customer | Integration | QuickBooks | Write (QB) | Customer sync | ❌ No | QB customer record |
| Tax Codes | QuickBooks | Integration | Read (QB) | Settings page | ❌ No (transient) | Display in dropdowns |
| Products/Services | QuickBooks | Integration | Read (QB) | Settings page, invoice creation | ❌ No (transient) | Display in dropdowns |
| QB Company Name | QuickBooks | Integration | Read (QB) | After OAuth | ❌ No (transient) | Display connection status |
| HubSpot Account ID | HubSpot | Integration DB | Read (HS) | Installation | ✅ Yes | Account identification |
| User Email | HubSpot | Integration | Read (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:
-
Read from HubSpot:
- Contact first name
- Contact last name
- Contact email
- Contact phone
- Billing address (street, city, state, zip, country)
-
Process in Integration Backend:
- Search QuickBooks for existing customer by email
- If not found, prepare customer creation request
- Format data for QuickBooks API
-
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:
-
Read from HubSpot:
- Deal name
- Deal amount
- Associated contact (for customer)
- Line items (if itemized invoice)
- Quote data (if quote-based invoice)
-
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)
-
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
- Create invoice with:
-
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:
-
User Provides:
- Client ID (entered in settings)
- Client Secret (entered in settings)
- Environment selection (Sandbox or Production)
-
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)
-
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
-
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
-
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:
-
Read from QuickBooks (via API):
- List of tax codes
- List of products/services
- Displayed in dropdown menus
-
User Selects:
- Default tax code ID
- Default product ID
-
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 Type | Storage Duration | Encryption | Purpose |
|---|---|---|---|
| Client ID | Until disconnect/uninstall | ✅ AES-256-GCM | QuickBooks OAuth |
| Client Secret | Until disconnect/uninstall | ✅ AES-256-GCM | QuickBooks OAuth |
| Access Token | 1 hour (auto-refreshed) | ✅ AES-256-GCM | QuickBooks API access |
| Refresh Token | Until disconnect/uninstall | ✅ AES-256-GCM | Token renewal |
| QuickBooks Realm ID | Until disconnect/uninstall | ✅ AES-256-GCM | Company identification |
| Default Tax Code ID | Until user changes/uninstalls | ❌ No (non-sensitive ID) | Invoice creation |
| Default Product ID | Until user changes/uninstalls | ❌ No (non-sensitive ID) | Invoice creation |
| HubSpot Account ID | Until uninstall | ❌ No (non-sensitive ID) | Account identification |
| Environment Setting | Until 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:
- OAuth tokens are the only method to access HubSpot and QuickBooks APIs
- Tokens are permanently deleted upon disconnection (< 1 second)
- Encrypted tokens become unreadable after key rotation
- No alternative access paths exist (we don’t store passwords)
- 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
- OAuth Scopes Reference - Detailed scope documentation
- Data Impact Warning - What happens during uninstall
- Security Best Practices - Encryption technical details
- Privacy Policy - Full privacy policy
- Terms of Service - Terms and conditions