Quickbooks Online
Quickbooks Online Website Quickbooks Online Api
Connection
- App Type: Production.
- Protocol: OAuth 2.0.
- Parameters:
- Name - (Required)
Connection name.
- Name - (Required)
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...
- Purchase Order:
- Query: select * from Invoice where id = '239' (https://quickbooks.api.intuit.com/v3/company/%7BRealmId%7D/query?query=%7BselectStatement%7D)
- https://quickbooks.api.intuit.com/v3/company/%7BRealmId%7D/invoice/%7BinvoiceId%7D
- Query: select * from Invoice where id = '239' (https://quickbooks.api.intuit.com/v3/company/%7BRealmId%7D/query?query=%7BselectStatement%7D)
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}).