Getting Started
Basic Concepts
Tutorials
Advanced Concepts
How-to Guides
Building integration flows
Data transformation
Integration patterns
Developing Components
Tenant Management
Components
CRM Components
ERP Components
E-Commerce Components
Basic Components
Utility Components
References
Sailor
Component Descriptor
Covered in this article
Related articles
Contracts and Workspaces Understanding credentials Data Sample Overview Creating your first integration flow Getting Started What is an integration component? What is an integration flow? What is a tenant? Take a tour of the product Creating a webhook flow Building a component in Java Building a component in Node.js Content-Based Routing Deploying a component How-to Guides Managing flow history Managing OAuth Clients Managing user roles in a tenant Managing Workspaces Mapping data Building real-time flows Sending data to a list of recipients REST API component Managing your SSH keys Managing your Teams/Components Allmysms component Amazon MWS component AMQP component AppDirect Component AWS Lambda component AWS SNS component Bazaarvoice component ChannelAdvisor component Code component Configuration component CSV component Docusign component Dun-and-bradstreet component Ebay component Edifact-parser component Email component Exact Online component Filter component Google PubSub component Google-shopping component Google-translate component Goto-webinar component Google Spreadsheets component Components JDBC Component JDBC Component JDBC Component Jsonata component Key-value-component component Ldap component Lightspeed-ecom component Lightspeed-retail component Lionbridge-translation component Magento1 component Magento2 component Mailchimp component Mandrillapp component Mapper component Microsoft Dynamics CRM component MsSQL component NetSuite component ODATA component Outlook component Petstore-nodejs component Pipedrive component Postgresql component Request-reply component Rest API component Router component Salesforce-cpq component Salesfoce Component Sdl-translate component Sftp component Shopify-admin component Shopware component Simple-trigger component Smarty-streets component Soap component Splitter component Stripe component Sugar-crm component Timer component Twitter component Webhook component Xml component Component Descriptor Structure References Sailor compatibility matrix View Classes

Quickbooks-component component

elastic.io iPaaS integration component / connector for speaking with QuickBooks API.

OAuth keys and credentials

Information about how to retrieve OAuth keys you can find here: https://developer.intuit.com/docs/00_quickbooks_online/1_get_started/40_get_development_keys The keys could be found here: https://developer.intuit.com/v2/ui#/app/appdetail///keys

image

Minor api version

This field represents current API minor version. For default it’s 26.

Working with dynamic metadata

Create custom fields On the “Configure input” step, firstly, you should choose an entity (object) type you want to work with. Click on the “Object type to…” and wait for data uploading. Then you’ll see a list of entities which are available for this action or trigger. You should choose one.

image

Then you wait for uploading metadata (input object structure). After metadata uploaded you can complete input object to retrieve response sample.

image

Structure of the input object will be based on entityType field content.

Triggers

Polling Trigger

Allows to get entries by chosen type. On first request, trigger will provide all existing objects by current type. On the next iterations, trigger will provide ONLY objects which were changed since a previous request. This trigger supports all type of business entities.

This trigger supports response pagination. The maximum number of entities that can be returned in a response is 1000. If the result size is not specified, the default number is 1000. If a query returns many entities, fetch the entities in chunks. To set response size you you should set/change ‘Batch Size for request pagination’ field in trigger settings.

Actions

Insert Object

Allows to add a new entity to your company. To Insert entity you must provide mandatory fields and fields which you want to update. This action is available ONLY for entities which can’t be updated with API

This action contains dynamic metadata

Json schema location folder
schemas/io/…

Upsert Object

Allows to add a new object or update one of the existing objects in your company. To add a new object you should provide business required fields in the request body. To update entity you should provide primary key and fields which you want to update.

This action contains dynamic metadata

Json schema location folder
schemas/io/…

Delete Object

Allows to remove existing entity in your division. To remove contact you need to provide a primary key in the request body.

This action contains dynamic metadata

Json schema location folder
schemas/io/…

Current Limitations

For now, API XSD description doesn’t have any information about required fields, so be careful while creating insert, update or upsert requests. Entities metadata structure was created from ` v3_minor_version_26 ` XSD version. Be careful, metadata was created once from the XSD, and now is storing in the component.

The QuickBooks API has some limitations for request number:
  • Sandbox servers: Throttled at 100 requests per minute, per individual app.
  • Production servers: Throttled to 500 requests per minute, per realm ID.

Here is more information about request limitations.

Actions

General Update & Upsert Actions

To prevent problems with concurrent access QuickBooks API entities have SyncToken field. This field is required for update API request. If you provide wrong SyncToken your request will be rejected with 400 code.

Additional info

QuickBooks Online REST API documentation: https://developer.intuit.com/docs/00_quickbooks_online/2_build/20_explore_the_quickbooks_online_api

https://developer.intuit.com/docs/00_quickbooks_online/2_build/60_tutorials/0040_create_custom_fieldsGuide how to create custom fields for QuickBooks API.