Skip to main content

QuickBooks

The Seven20 integration with QuickBooks is designed to streamline the process of creating bills and invoices in QuickBooks but is not intended to be a complete end-to-end solution. Billing data is sent from Seven20 to QuickBooks, but invoices will need to be issued directly from within QuickBooks and no financial transaction data is stored in Seven20.

The Seven20 integration only interacts with four QuickBooks objects - Customers, Vendors, Bills and Invoices. Further information on these can be found in QuickBooks's API documentation.

Create a QuickBooks Invoice/Bill

To send a Billing (seven20__Billing__c) and its Billing Items (seven20__Billing_Item__c) to QuickBooks, two conditions must be met:

  • The required fields must be populated
  • The Send To QuickBooks Status (seven20__Send_To_QuickBooks_Status__c) field on Billing must be set Queued

If sending is successful the Send To QuickBooks Status will be set to Synced; if there is an error the status will be Error and the QuickBooks Error (seven20__QuickBooks_Error__c) field will be populated with details of the error.

It is recommended that this process is done using the Billing Builder Component by adding the mapped fields to the component alongside the Send To QuickBooks Status field.

DocNum Mapping

By default, the Name field on the Billing record will be sent to QuickBooks and populated in the Document Number field on the resulting Invoice/Bill. This allows for easier reference of data between the Seven20 and QuickBooks. However, it is possible to configure a different field to be used by completing the following steps:

  • Copy the API name of the field on Billing you wish to use
  • Navigate to the Seven20 Configuration Settings metadata type in Setup
  • Edit the Value field on the QuickBooks Doc Num record to be the API name of the new field
  • Click save
danger

QuickBooks will not create the invoice if the field value for DocNum does not contain 0 - 21 characters.

warning

If the field does not exist, can not be found, or the metadata is deactivated, the Name field will be used instead.

tip

It is recommended that any custom field used is of the Auto Number type; if other field types are used, it is strongly advised to use permissions to limit users' ability to edit the field values.

Ensure your QuickBooks users have permissions to view the field you choose for the new mapping.

Updating Bills/Invoices in QuickBooks from Seven20

Changes made to Billings or Billing Items that have already been sent to QuickBooks as a Bill/Invoice are not updated automatically; instead, syncing of updates can be achieved by setting the Send To Quickbooks Status field on the Billing back to Queued.

info

Changes to fields on Address or Account records in Seven20 are never synced to Customers or Vendors in QuickBooks after their initial creation.

tip

Minor amendments to Customers/Vendors must be made manually in QuickBooks and for any significant changes we would recommend using a new Address or Account.

Create a QuickBooks Customer/Vendor

If a QuickBooks Customer/Vendor does not already exist it will automatically be created when a Billing is sent to QuickBooks; if the QuickBooks Customer/Vendor has already been created via Seven20 it will automatically be linked to the resulting Bill/Invoice in QuickBooks.

Customer/Vendor in QuickBooks can be mapped from two objects in Seven20, Address or Account. If the Address lookup (seven20__Billing_Address__c) is populated on the Billing, the Customer/Vendor will be created using the mapped fields from the Address; otherwise, it will be created using the Account from the lookup (seven20__Account__c) on the Billing record.

The integration is designed primarily to use the Address object as this allows for a more flexible hierarchy due to the one-to-many relationship between Account and Address. As such, the field mappings for Address are more comprehensive and it is recommended to use Address, with Account acting as a fallback.

info

Whether a Vendor or Customer is created depends on the Type (seven20__Type__c) of the sent Billing; sending a Bill (ACCPAY) will create a Vendor, sending an Invoice (ACCREC) will create a Customer.

Receive status updates

If the webhook has been correctly set up, Seven20 will receive and reflect updates to the Billing Status (seven20__Status__c) field and the Billing Item Status (seven20__Status__c) field on the relevant records when an update to the status occurs in QuickBooks.

info

The webhook only supports marking the status as Paid and does not reflect any other status.

Add existing QuickBooks Customers/Vendors into Seven20

If integrating with an existing QuickBooks account that contains data, some data migration will be required to allow users to create bills and invoices against the correct entity in their QuickBooks. Additional steps are required to achieve this beyond a simple data migration due to the multi-organisational nature of the integration.

The integration supports multiple QuickBooks companies through an additional object, QuickBooks Realm Relationship (seven20__QuickBooks_Realm_Relationship__c). Most of the time these records are created in the background without the need for user interaction. However, for each existing QuickBooks Customer/Vendor not created via Seven20, a _ QuickBooks Realm Relationship_ record must be created.

The _ QuickBooks Realm Relationship_ object acts as a junction object between either the Address or Account object (it is possible to map from either object) and the QuickBooks Company object. It is structured as below:

QuickBooks Realm RelationshipTypeDetails
seven20__Account__cLookup(Account)The Account record being mapped to a QuickBooks customer/vendor
seven20__Address__cLookup(seven20__Address__c)The Address record being mapped to a QuickBooks customer/vendor
seven20__QuickBooks_Id__cText(255)The Id from QuickBooks for the relevant customer/vendor record
seven20__QuickBooks_Company__cLookup(seven20__QuickBooks_Company__c)The QuickBooks Company this customer/vendor belongs to
seven20__Contact_Type__cPicklistDefines whether this is a customer or a vendor in QuickBooks
danger

Only one of seven20__Account__c or seven20__Address__c should ever be populated.