Top 5 QuickBooks API Limitations to Know Before Developing your QBO App Chintan Prajapati December 18, 2024 5 min read When listing a QuickBooks Online (QBO) app in the app store, there are several limitations you should be aware of to avoid potential setbacks.Here are some key limitations you need to know before Starting QuickBooks App development:When integrating an application with QuickBooks Online (QBO) through its API, QuickBooks developers need to be aware of specific limitations related to tags, custom fields, and certain fields in bill payments. Here are detailed insights into these 5 QuickBooks API limitations:1. Tags API LimitationsLimited Functionality:The QuickBooks Online API has limited support for managing tags. While you can retrieve and list tags, the ability to create, update, or delete tags via the API is restricted. This limitation can impact how you categorize and organize transactions programmatically.(Intuit Developer Hub) – https://help.developer.intuit.com/s/article/QuickBooks-Online-API-Best-PracticesUsage in Reports:Tags in QBO can be useful for generating reports within the QuickBooks interface. However, the API may not fully support querying tags across all report types, limiting the ability to programmatically create comprehensive reports.(Intuit Developer) – https://help.developer.intuit.com/s/article/Platform-Throttling-limitI have written a detailed guide on a workaround to overcome this limitation https://satvasolutions.com/blog/no-tags-in-quickbooks-online-api-3-hacks-to-workaround2. Custom Fields API LimitationsRead-Only Access:While you can retrieve custom fields, updating or creating custom fields via the QBO API is not fully supported. This means that any customization done within the QBO interface needs to be manually mirrored if it’s to be used programmatically(Intuit Developer Hub) – QuickBooks Online API Best PracticesField Types:Custom fields in QuickBooks Online have specific data types, such as text, number, and date. However, the API may not support all operations for each type. This can limit how custom data is handled and manipulated through your application.With QuickBooks Online Advanced, customers now have the ability to create up to 10 custom fields with various data types. In order to retain compatibility with an app using custom fields, the Only first three String custom fields in QuickBooks Online Advanced will be available through the existing API functions outlined here.Source: https://help.developer.intuit.com/s/article/Enhanced-Custom-Fields-for-QuickBooks-Online-Advanced3. Bill Payment Field LimitationsThe QuickBooks Online API has specific limitations when it comes to returning certain fields in bill payments. Notably, the API does not return the following fields: Approval Status: This field indicates whether a bill payment has been approved. Tags: These are used to categorize transactions within QuickBooks. Payment Method: This field specifies how the payment was made (e.g., credit card, bank transfer). Attachments Confirmation: Indicates whether any attachments are associated with the bill payment.These limitations can impact how you manage and report on bill payments in your QuickBooks Online integrations.To address these limitations, the article from Satva Solutions suggests using a Robotic Process Automation (RPA) Solution with Microsoft Power Automate. This approach involves automating the process of retrieving these fields directly from the QuickBooks Online interface and storing them in an SQL database. By doing RPA, you can overcome the API limitations and ensure that all necessary information is captured and accessible for your application.For more information on solving this limitation, you can read my full article Solving QuickBooks Online API Limitations with RPA4. QuickBooks Bank Feeds APIThe most common questions I encounter when working with accountants and CPAs for their Accounting automation projects.Does QuickBooks have an API for downloading bank statements or transactions?When I asked ChatGPT’s latest model the same question, I found the answer wrong.Additionally, chatGPT was hallucinating about having an endpoint to access bank transactions; check the answer below from chatGPT.and the reality is that there is no endpoint named banktransactions “/v3/company/{company_id}/banktransactions” available in QuickBooks online’s official API reference. check the screenshot below.The QuickBooks Online (QBO) API allows access to bank transactions that have been added or matched within QuickBooks. These transactions can be queried like any other transaction type, such as expenses, checks, or deposits.However, transactions in the “For Review” status — those imported via bank feeds but not yet categorized or matched — are not accessible through the API.Bank Feed line items which are not yet categorized, NOT available for download via APITechnical Perspective:Due to economic and security constraints, QuickBooks Online will not provide an API endpoint for retrieving original bank statement line items. The platform relies on third-party paid services like Plaid and Yodlee for bank statement retrieval, which incur per-access costs. Exposing a direct API could enable potential misuse, such as programmatically accessing multiple bank accounts without substantial financial compensation to these data providers.Key risks of an open API include: Unauthorized mass bank statement extraction Circumvention of service provider payment structures Potential data privacy and security vulnerabilitiesThe current approach protects QuickBooks Online’s financial interests and data integration partnerships.5) Projects API in QuickBooksProject-wise tracking is disabled in QuickBooks Online, though it can be very powerful for some industries like Construction Companies, Architecture Firms, Professional Services Businesses, Consulting Firms, and Marketing and Creative Agencies.by default use of project financial tracking is disabled in QuickBooks online, you need to go to advanced settings and enable it.Shows way to enable project-wise tracking of income, expense, and time.Once enabled, QuickBooks lets you see all your sales, expenses, and timesheets by project.A summary view of project profitability, cost, and expenses.However, QuickBooks Doesn’t have any Direct API for adding, editing, updating, and deleting projects.LimitationsNo Dedicated Project EntityQuickBooks uses a special flag (IsProject) to manage projects as sub-customers. This may not offer the same granularity as a dedicated project entity.Limited Advanced FeatureAdvanced project features, like profitability tracking or time tracking, are not directly accessible through the API.General Recommendations for Better QuickBooks App Development Efficient Error Handling: Given the various limitations and potential for incomplete data, implementing robust error handling and logging mechanisms is essential. Use of Webhooks: To keep data synchronized and up-to-date, leveraging QBO webhooks can provide real-time updates and reduce the need for frequent polling, which is subject to rate limits (Intuit Developer Hub) Refurring Documentation: Regularly referring to the QuickBooks Online API Documentation for updates and best practices can help mitigate some of these limitations. Change Data Capture CDD: Use change data capture to see which API entities and what data changed within a certain timeframe. the maximum you can query for changes up to the past 30 days. https://developer.intuit.com/app/developer/qbo/docs/learn/explore-the-quickbooks-online-api/change-data-captureUnderstanding these limitations will help you design more resilient and efficient integrations with QuickBooks Online, ensuring your application can handle the quirks and constraints of the API effectively.ConclusionQuickbooks may remove some of these restrictions sooner or later. Therefore, always refer to the latest documentation from QuickBooks API and check the developer news to understand those changes. alternatively, you can consult an expert company that has already faced this challenge many times and can save you time for QuickBooks app development.If you’re looking for custom QuickBooks integration solutions or need help navigating API challenges, contact Satva Solutions today!