All Collections
Integrations
Connection with Quickbooks
Connection with Quickbooks

QuickBooksOnline Integration Document

A
Written by Artem Tuzlukov
Updated over a week ago

How to connect

1. From QuickBooksOnline Developer Console (https://developer.intuit.com/app/developer/appdetail/test/keys) we need Client ID and Client Secret

2. In QuickBooksOnline Developer Console (https://developer.intuit.com/app/developer/appdetail/test/keys) you need set up correct redirect url (https://digifabster.com/manage/complete_quickbooksonline_registration/ by default)

3. In QuickBooksOnline Developer Console (https://developer.intuit.com/app/developer/sandbox) on sandbox or production app page we need Company ID

4. We need environment (can be either sandbox or production)

Status Flow

Triggers

In this case a request will be sent to QuickBooksOnline when the DF Order gets one of the processing statuses.

By default they are:

– Manufacturing status: Placed

NOTE: The set of statuses can be configured.

Records mapping

Records mapping is the correspondence of data on our side (Digifabster) with QuickBooksOnline integration.

By default in QuickBooksOnline we create: Account, Customer, Invoice.

Account

By default we sent – Name, AccountType.

1. Name – DF Order company name

(Name is derived from the DF Order address or from the first and last names, depending on whether the billing or delivery addresses exists)

2. AccountType – hardcoded “Income” type by default

3. AccountSubType – hardcoded “OtherPrimaryIncome” type by default

NOTE: A set of fields can be configured.

Customer

By default we sent – DisplayName, GivenName, FamilyName, EmailAddr, CompanyName

  1. DisplayName – DF Order buyer’s fullname

  2. GivenName – DF Order first name

  3. FamilyName DF Order last name

  4. EmailAddr – DF Order email

  5. CompanyName – DF Order company name

NOTE: A set of fields can be configured.

Invoice

By default we sent – CustomerRef, ShipAddr, BillAddr, Line, TxnTaxDetail, TotalAmt.

  1. CustomerRef – QuickBooksOnline Customer ID which was created in a previous step

  2. ShipAddr – DF Order delivery address

  3. BillAddr – DF Order billing address

  4. Line – DF Order purchases (DetailType, Amount, Description, Qty, UnitPrice)

    4.1 DetailType hardcoded “SalesItemLineDetail”

    4.2 Amount – DF Order unit price * DF Order amount

    example: “10.00”

    4.3 Description – string with next data

    Order #<df_order_id>, Model <df_model_title>, Material <df_material_title>: <df_material_description>, Notes: <df_order_notes>

    4.4 Qty – DF Purchase amount

    example: “10”

    4.5 UnitPrice – DF Purchase unit price

    example “1000.01”

5. TxnTaxDetail – dict with key “TotalTax” and value DF Order tax value

example: {“TotalTax”: “10”}

6. TotalAmt – DF Order total price

example: “1000.1”

NOTE: A set of fields can be configured

We sent the DF Order startup cost and DF Order delivery price to QuickBooksOnline as one of the line items.

Create or Update logic

After first creating an entity (Contact, Sales Order, Invoice) we store contact_id, sales_order_id, invoice_id in DF, which are used to update already existing entities in QuickBooksOnline.

We send an entity update request to QuickBooksOnline every time we change an order in DF, as long as its status matches the trigger conditions (see Status Flow)

Updating occurs with the same set of fields that are relevant for each entity (Account, Customer, Invoice).

Webhooks

We don’t provide webhooks for QuickBooksOnline integration at this time and only work one way (DF -> QuickBooksOnline)

Did this answer your question?