Quickbooks Online

Quickbooks Online Website  Quickbooks Online Api


Connection

Quickbooks App

  • App Type: Production.
  • Protocol: OAuth 2.0.
  • Parameters:
    • Name - (Required)

      Connection name.


Trigger

Webhook Triggers

  • Quickbooks Receive Invoice.


Action

  • Quickbooks Create Invoice.


How to

Get Accounts

curl --request GET \

--url 'https://quickbooks.api.intuit.com/v3/company/{RealmId}/query?query={selectStatement} \

--header 'Authorization: Bearer eyJlbmMiOiJBMTI4Q0JDLU...'


Sample Query: select * from Account where Metadata.CreateTime > '2014-12-31'


Register Webhook

Quickbooks App -> Webhooks


Detect Connection

Parse RealmId in EventNotifications (request body)


Check Data in Quickbooks

Header

Authorization:Bearer eyJlbmMiOiJBMTI4Q0JDLU...

Special Things

When creating an invoice, the invoice model contains some information such as customerRef, itemRef, accountRef... this information needs to exist before creating the invoice. So we need to have a custom process (SyncQuickbooksData) before creating an invoice.


How does it work?

This custom process will be before the map.


In a specific case, we have the flow: Shopify Order => Quickbook Invoice. Before mapping (Shopify Order => Quickbook Invoice), we will get product variants and customers in Shopify Order and synchronize with Quickbooks. The results will be saved into the lookup table with the name being the ID from Shopify and the value being the ID from QuickBooks.


While mapping, we will have functions to retrieve those values: MapCustomerIdFromShopifyToQb({shopifyCustomerId}), MapProductIdFromShopifyToQb({shopifyVariantId}).