This document provides a detailed schema model for QuickBooks integration, outlining key objects, relationships, and important fields for seamless data synchronization.
1. Object Schema
1.1 QuickBooks Company
Description: Stores each company's information as a record.
Relationships: Linked to all QuickBooks objects via Lookup Relationship.
Important Fields:
|
Name |
Data Type |
Description |
|---|---|---|
|
Active |
Boolean |
Indicates whether the company is currently active and available for transactions in QuickBooks. |
|
Company ID |
Text (Realm Id) |
Unique identifier assigned by QuickBooks to each company; used for API interactions and authentication. |
|
Company Name |
Text |
The legal or display name of the company as stored in QuickBooks. |
|
Default |
Boolean |
Specifies whether this company is set as the default company in the integration or system. |
|
QuickBooks Id |
Text |
External reference identifier linking this record to the corresponding company record in QuickBooks Online. |
1.2 QuickBooks Account
Description: Stores account data for QuickBooks (e.g., Accounts Payable).
Relationships:
-
QuickBooks Company (Lookup to QuickBooks Company)
Important Fields:
|
Name |
Data Type |
Description |
|---|---|---|
|
Account Type |
Text |
The primary classification of the account (e.g., Bank, Accounts Receivable, Income, Expense) as defined by QuickBooks. |
|
Account Sub Type |
Text |
Further categorization of the account type, providing more detailed classification (e.g., Checking, Savings, Credit Card). |
|
Active |
Boolean |
Indicates whether the account is active and available for transactions within QuickBooks. |
|
Current Balance |
Currency |
The current balance of the account as maintained in QuickBooks, reflecting recent transactions. |
|
QuickBooks Id |
Text |
Unique identifier assigned by QuickBooks to this account; used for API synchronization and reference. |
|
Status |
Picklist |
Represents the operational status of the account (e.g., Active, Inactive, Archived). |
|
Sub Account |
Boolean |
Indicates whether the account is a sub-account of another parent account within the QuickBooks chart of accounts. |
1.3 QuickBooks Customer
Description: Stores customer data from QuickBooks.
Relationships:
-
QuickBooks Company (Lookup to QuickBooks Company)
-
Parent QuickBooks Customer (Self Lookup for hierarchical customer structure)
Important Fields:
|
Name |
Data Type |
Description |
|---|---|---|
|
Active |
Boolean |
Indicates whether the record (e.g., customer, vendor, or entity) is active and available for use in QuickBooks. |
|
Balance |
Currency |
The outstanding balance associated with the record, as maintained in QuickBooks. |
|
Display Name |
Text |
The name displayed in QuickBooks for this record, typically used for identification in transactions and reports. |
|
Ignore Webhook |
Boolean |
Specifies whether incoming QuickBooks webhook notifications should be ignored for this record during synchronization. |
|
Parent Record Id |
Text |
Stores the Record ID of the source object that triggered the workflow initiation. |
|
Process Via Batch |
Boolean |
Indicates whether operations related to this record should be processed in batch mode rather than individually. |
|
QuickBooks Id |
Text |
Unique identifier assigned by QuickBooks to this record; used for integration and external references. |
|
Status |
Picklist |
Represents the current operational state of the record |
1.4 QuickBooks Vendor
Description: Stores vendors' data from QuickBooks.
Relationships:
-
QuickBooks Company (Lookup to QuickBooks Company)
-
Parent QuickBooks Customer (Self Lookup for hierarchical customer structure)
Important Fields:
|
Name |
Data Type |
Description |
|---|---|---|
|
Account Number |
Text |
Stores the Account number of the Vendor |
|
Active |
Boolean |
Indicates whether the record (e.g., customer, vendor, or entity) is active and available for use in QuickBooks. |
|
Balance |
Currency |
The outstanding balance associated with the record, as maintained in QuickBooks. |
|
Display Name |
Text |
The name displayed in QuickBooks for this record, typically used for identification in transactions and reports. |
|
Ignore Webhook |
Boolean |
Specifies whether incoming QuickBooks webhook notifications should be ignored for this record during synchronization. |
|
Parent Record Id |
Text |
Stores the Record ID of the source object that triggered the workflow initiation. |
|
Process Via Batch |
Boolean |
Indicates whether operations related to this record should be processed in batch mode rather than individually. |
|
QuickBooks Id |
Text |
Unique identifier assigned by QuickBooks to this record; used for integration and external references. |
|
Status |
Picklist |
Represents the current operational state of the record |
1.5 QuickBooks Class
Description: Stores class records as per QuickBooks configuration.
Relationships:
-
QuickBooks Company (Lookup to QuickBooks Company)
-
Parent QuickBooks Class (Self Lookup for hierarchical class structure)
Important Fields:
|
Name |
Data Type |
Description |
|---|---|---|
|
Active |
Boolean |
Indicates whether the class is active and available for use in QuickBooks transactions. |
|
Class Name |
Text |
The name of the class as defined in QuickBooks, used to categorize transactions for tracking and reporting. |
|
QuickBooks Id |
Text |
Unique identifier assigned by QuickBooks to this class; used for API synchronization and reference. |
1.6 QuickBooks Custom Field
Description: Stores custom fields configured for Sales forms (e.g., Invoices) in QuickBooks.
Relationships:
-
QuickBooks Company (Lookup to QuickBooks Company)
Important Fields:
|
Name |
Data Type |
Description |
|---|---|---|
|
Custom Field Name |
Text |
The name or label of the custom field as defined in QuickBooks, used to capture additional information on entities or transactions. |
|
Definition Id |
Text |
Unique identifier assigned by QuickBooks to the custom field definition; used for referencing and mapping in integrations. |
1.7 QuickBooks Invoice
Description: Stores invoices from QuickBooks.
Relationships:
-
QuickBooks Company (Lookup to QuickBooks Company)
-
QuickBooks Customer (Lookup to QuickBooks Customer)
Important Fields:
|
Name |
Data Type |
Description |
|---|---|---|
|
Balance |
Currency |
The remaining balance due on the invoice after payments and credits are applied. |
|
Custom Field 1, 2, 3 |
Text |
User-defined custom fields from QuickBooks used to store additional invoice-related information. |
|
Deposit |
Currency |
Any deposit or upfront payment applied to the invoice amount. |
|
Document Number |
Text |
The unique invoice number assigned to this transaction in QuickBooks. |
|
Due Date |
Date |
The date by which payment for the invoice is due, based on the terms associated with the customer. |
|
Ignore Webhook |
Boolean |
Indicates whether webhook updates from QuickBooks should be ignored for this invoice during synchronization. |
|
Invoice Date |
Date |
The date on which the invoice was created in QuickBooks. |
|
PDF Generated |
Boolean |
Denotes whether a PDF version of the invoice has been generated or stored. |
|
Process Via Batch |
Boolean |
Specifies if the invoice should be processed in batch mode for bulk synchronization or posting. |
|
QuickBooks Id |
Text |
Unique identifier assigned by QuickBooks to this invoice; used for external references and integrations. |
|
Status |
Picklist |
Represents the current state of the invoice (e.g., Open, Paid, Void). |
|
Total Amount |
Currency |
The total amount of the invoice before payments or credits are applied. |
1.8 QuickBooks Invoice Item
Description: Junction object storing invoice and product relationships.
Relationships:
-
QuickBooks Invoice (Lookup to QuickBooks Invoice)
-
QuickBooks Product (Lookup to QuickBooks Product)
-
QuickBooks Class (Lookup to QuickBooks Class)
Important Fields:
|
Name |
Data Type |
Description |
|---|---|---|
|
Archived |
Boolean |
Indicates whether the invoice line item has been archived or excluded from active processing. |
|
Invoice Line Id |
Text |
Unique identifier for the specific invoice line item, used to distinguish it from other lines within the same invoice. |
|
Rate |
Currency |
The rate applied per unit for the product or service on this invoice line. |
|
Unit Price |
Currency |
The price per unit of the item before discounts or taxes are applied. |
1.9 QuickBooks Product
Description: Stores items present in QuickBooks.
Relationships:
-
QuickBooks Company (Lookup to QuickBooks Company)
-
Asset Account (Lookup to QuickBooks Account)
-
Expense Account (Lookup to QuickBooks Account)
-
Income Account (Lookup to QuickBooks Account)
Important Fields:
|
Name |
Data Type |
Description |
|---|---|---|
|
Active |
Boolean |
Indicates whether the product or service is active and available for use in QuickBooks transactions. |
|
Ignore Webhook |
Boolean |
Specifies whether incoming QuickBooks webhook updates should be ignored for this product during synchronization. |
|
Parent Record Id |
Text |
External reference to the parent item, if this product or service is a sub-item in QuickBooks. |
|
Process Via Batch |
Boolean |
Indicates whether the product record should be processed in batch mode during integration or synchronization. |
|
Product Name |
Text |
The name of the product or service as defined in QuickBooks, used for display in transactions. |
|
QuickBooks Id |
Text |
Unique identifier assigned by QuickBooks to this product or service; used for external references and API synchronization. |
|
Status |
Picklist |
Represents the current state of the product or service (e.g., Active, Inactive). |
|
Type Of Product |
Picklist |
Specifies the product or service type (e.g., Inventory, Non-Inventory, Service, Bundle) as defined in QuickBooks. |
1.10 Tax Rate
Description: Stores tax rates present in QuickBooks.
Relationships:
-
QuickBooks Company (Lookup to QuickBooks Company)
Important Fields:
|
Name |
Data Type |
Description |
|---|---|---|
|
Active |
Boolean |
Indicates whether the rate is active and available for use in QuickBooks transactions. |
|
Description |
Text |
A descriptive label for the rate, typically identifying the purpose or type of the rate (e.g., Sales Tax, Discount). |
|
Rate Value |
Percentage |
The percentage value of the rate applied in calculations (e.g., 18% for GST). |
|
UID (QuickBooks Id) |
Text |
Unique identifier assigned by QuickBooks to this rate; used for API synchronization and external reference. |
1.11 Custom Field Mapping
Description: Stores the mapping of custom fields between Salesforce and QuickBooks.
Relationships:
-
QuickBooks Company (Lookup to QuickBooks Company)
Important Fields:
|
Name |
Data Type |
Description |
|---|---|---|
|
Source |
Text |
Indicates the origin of the data (e.g., Salesforce or QuickBooks) that drives the synchronization. |
|
sObject API Name |
Text |
The Salesforce object API name (e.g., Account, Invoice__c) that is being mapped to a QuickBooks entity. |
|
Mapping Type |
Picklist |
Specifies the type of mapping (e.g., Field Mapping, Custom Field Mapping, Static Value). |
|
Field Mapping |
Text |
Defines the relationship between Salesforce fields and corresponding QuickBooks fields for data synchronization. |
|
QB Custom Field Mapping |
Text |
Specifies the mapping of Salesforce fields to QuickBooks custom fields defined in the QuickBooks environment. |
1.12 QuickBooks Journal Entry
Description: Stores journal entries from QuickBooks.
Relationships:
-
QuickBooks Company (Lookup to QuickBooks Company)
Important Fields:
|
Name |
Data Type |
Description |
|---|---|---|
|
Journal Date |
Date |
The date on which the Journal entry was recorded. |
|
Parent Record Id |
Text |
Stores the Record ID of the source object that triggered the workflow initiation. |
|
Private Note |
Text |
A note that the user wants to enter on the Journal entry. |
|
QuickBooks Id |
Text |
Unique identifier assigned by QuickBooks to this Journal entry; used for external references and integrations. |
|
Status |
Picklist |
Represents the current state of the journal entry (e.g., Successfully Synced, Failed). |
1.13 QuickBooks Journal Entry Line Item
Description: Child object storing Journal entry line item details and customer/vendor relationships.
Relationships:
-
QuickBooks Journal Entry (Lookup to QuickBooks Journal Entry)
-
QuickBooks Account (Lookup to QuickBooks Account)
-
QuickBooks Customer (Lookup to QuickBooks Customer)
-
QuickBooks Vendor (Lookup to QuickBooks Vendor)
Important Fields:
|
Name |
Data Type |
Description |
|---|---|---|
|
Amount |
Currency |
The amount for the journal entry line item. |
|
Description |
Text |
Description for the line item. |
|
Detail Type |
Currency |
The rate applied per unit for the product or service on this invoice line. |
|
Entity Type |
Picklist |
When Account Payable or Account Receivable is selected in the QuickBooks Account field, we need to specify whether this entry is for Vendor/Customer (Valid values - Vendor, Customer). |
|
Line ID |
Text |
Unique Identifier for QuickBooks Journal Entry Line Item. |
|
Transaction Type |
Picklist |
Specifies whether the entry is of Debit/Credit. |
1.14 QuickBooks Sales Receipt
Description: Stores sales receipts from QuickBooks, representing payments received for goods or services at the time of sale.
Relationships:
-
QuickBooks Company (Lookup to QuickBooks Company)
-
QuickBooks Customer (Lookup to QuickBooks Customer)
-
QuickBooks Payment Method (Lookup to the payment method used for the receipt, where configured)
-
QuickBooks Account (Lookup to the deposit-to account, where configured)
Important Fields:
|
Name |
Data Type |
Description |
|---|---|---|
|
Transaction Date |
Date |
The date on which the sales receipt was created or the sale occurred. |
|
Customer |
Lookup |
The QuickBooks customer associated with the sales receipt. |
|
Payment Method |
Lookup / Picklist |
Identifies how the customer paid, such as cash, check, credit card, or bank transfer. |
|
Deposit To Account |
Lookup |
The QuickBooks account where the payment is deposited or recorded. |
|
Document Number |
Text |
The receipt number or transaction number assigned by QuickBooks. |
|
Total Amount |
Currency |
The total sales receipt amount, including applicable taxes and adjustments. |
|
Custom Field 1, 2, 3 |
Text |
User-defined custom fields from QuickBooks used to store additional receipt information. |
|
Private Note |
Text |
An internal note associated with the sales receipt. |
|
Ignore Webhook |
Boolean |
Indicates whether incoming QuickBooks webhook updates should be ignored for this sales receipt during synchronization. |
|
Process Via Batch |
Boolean |
Indicates whether the sales receipt should be processed in batch mode during synchronization. |
|
Parent Record Id |
Text |
Stores the Salesforce record ID that initiated the sales receipt workflow. |
|
QuickBooks Id |
Text |
Unique identifier assigned by QuickBooks to the sales receipt. |
|
Status |
Picklist |
Represents the current synchronization state of the sales receipt, such as Successfully Synced or Failed. |
1.15 QuickBooks Sales Receipt Item
Description: Child object storing the products or services included on a sales receipt and the amounts recorded for each line.
Relationships:
-
QuickBooks Sales Receipt (Lookup to QuickBooks Sales Receipt)
-
QuickBooks Product (Lookup to QuickBooks Product)
-
QuickBooks Class (Lookup to QuickBooks Class, where configured)
Important Fields:
|
Name |
Data Type |
Description |
|---|---|---|
|
Sales Receipt Line Id |
Text |
Unique identifier for the sales receipt line item in QuickBooks. |
|
Product |
Lookup |
The QuickBooks product or service referenced by the line. |
|
Description |
Text |
Description of the product or service shown on the receipt. |
|
Quantity |
Number |
Number of units sold. |
|
Rate |
Currency |
Price charged per unit for the product or service. |
|
Unit Price |
Currency |
Unit price before the line amount, discounts, or taxes are calculated. |
|
Amount |
Currency |
Total amount for the line, generally calculated as quantity multiplied by rate. |
|
Tax Code |
Lookup / Text |
Tax code applied to the line item. |
|
Class |
Lookup |
QuickBooks class used to categorize the line for reporting. |
|
Archived |
Boolean |
Indicates whether the sales receipt line item has been archived or excluded from active processing. |
2. Entity Relationship Model for Quickbooks
Conclusion
This schema ensures structured data flow and synchronization between QuickBooks and Salesforce, supporting accurate data management and operational efficiency.