Updated Jan 15, 2026

How To Create An App Using Quickbooks data

Table of Contents
Text Link

Want to connect QuickBooks data to a custom app without writing code? Platforms like Adalo make it simple to build apps that automate tasks like syncing invoices, tracking expenses, and managing customer records - all while saving time and reducing errors. Here's a quick summary of how you can do it:

  • Set up QuickBooks API Access: Create an Intuit Developer account to obtain your Client ID, Client Secret, and configure API settings.
  • Use Adalo for App Building: Link QuickBooks data to Adalo collections and design user-friendly screens for invoices, expenses, and dashboards.
  • Add Middleware for Authentication: Tools like DreamFactory handle OAuth 2.0 and ensure secure data flow.
  • Test and Deploy: Use the QuickBooks Sandbox to refine your app, then publish it to web, iOS, and Android without rebuilding for each platform.

Adalo simplifies the process by letting you build a single app and deploy it across platforms seamlessly. Follow these steps to create a powerful app tailored to your QuickBooks data needs.

4-Step Process to Build a QuickBooks App with Adalo

4-Step Process to Build a QuickBooks App with Adalo

What You Need Before Starting

Before you can connect QuickBooks data to your app, there are three key things you’ll need to have ready. Start by setting up both your QuickBooks and Adalo accounts with the necessary integrations.

QuickBooks Online Account Setup

QuickBooks Online

First, you’ll need an active QuickBooks Online account with access to the financial data you want to use - such as invoices, customer records, expenses, or payment statuses. This is crucial for syncing QuickBooks data with your app. Alongside your QuickBooks credentials, you’ll also need to create an Intuit Developer account at developer.intuit.com.

Once logged into the Intuit Developer portal, create an app to obtain your Client ID and Client Secret. You’ll also need to configure a Redirect URI and enable the "com.intuit.quickbooks.accounting" scope. If you’re building a private app for your business, you’ll need to complete Intuit’s App Assessment and Compliance Questionnaire before you can connect to live production data.

Adalo Account with API Integration

Adalo

Next, ensure you have an Adalo account that supports external API connections. This allows you to link QuickBooks data directly to your app. Adalo’s platform makes it easy to map external data sources - like QuickBooks - into your app’s collections. With this setup, you can display lists of invoices, trigger updates with buttons, and create workflows - all without needing to write code.

API Access and Middleware via DreamFactory

DreamFactory

Finally, you’ll need middleware to act as a bridge between QuickBooks and your app. Middleware handles OAuth 2.0 authentication and data mapping, making it an essential part of the integration process. DreamFactory is a great tool for this - it functions as a REST API gateway, managing OAuth 2.0 authentication, refreshing access tokens every 60 minutes, and testing your integration in a QuickBooks Sandbox.

The QuickBooks Sandbox, which you can set up through the Intuit Developer portal, lets you work with sample data. This gives you a safe environment to test and refine your app without risking real financial records - a crucial step to avoid accidental data loss during development.

Step 1: Set Up API Access for QuickBooks

To get started, head over to developer.intuit.com and sign up for a free Intuit Developer account. Once you've created your account, complete your profile to unlock the developer dashboard. This is where you’ll manage your apps. Be sure to use a permanent company email to avoid losing access down the line.

After logging in, click on "Create an app", select QuickBooks Online, and give your app a name. Intuit will then generate your Client ID and Client Secret, which you can find under the "Keys & credentials" tab.

"QuickBooks doesn't use traditional API keys. Instead, it uses OAuth 2.0 authentication with Client ID and Client Secret credentials." - Saurabh Rai

Next, set up your Redirect URI. This is where QuickBooks will send users after they authorize your app. For testing purposes, you can use http://localhost, but for production, make sure to use a secure HTTPS URL. Don’t forget to enable the com.intuit.quickbooks.accounting scope. This will allow your app to access financial data like invoices, expenses, and customer records.

Intuit provides two types of keys: Development keys for sandbox testing and Production keys for live data. Always start with sandbox testing to iron out any issues before going live. Keep in mind that access tokens expire after 60 minutes, and refresh tokens are valid for 100 days. To maintain seamless access, you’ll need to implement logic to automatically refresh tokens when they expire.

Step 2: Configure QuickBooks Data in Adalo

To integrate QuickBooks data with Adalo, you need to map API entities to collections and establish a secure connection to ensure smooth data flow and protection.

Map QuickBooks Data Objects to Adalo Collections

Start by linking QuickBooks API entities to Adalo collections. This step connects QuickBooks data, like Invoices, Customers, or Expenses, to your app's database. Each entity in QuickBooks should have a matching collection in Adalo, with properties aligned to the data fields you plan to display.

Use Adalo's External Collections to enable real-time access to QuickBooks data. If your app requires actions like creating or updating records, you’ll need to use Custom Actions to initiate specific API calls. Keep in mind that every request to QuickBooks must include the realmId (Company ID) to route data to the correct company.

Here’s a quick guide to mapping common QuickBooks objects to Adalo collections using U.S. formatting:

QuickBooks Object Adalo Collection Property Data Type Example (U.S. Formatting)
Invoice: DocNumber Invoice Number Text 1001
Invoice: TxnDate Date Created Date 01/15/2026
Invoice: TotalAmt Total Amount Number/Currency $1,250.00
Customer: DisplayName Client Name Text John Doe
Expense: TotalAmt Expense Amount Number/Currency $45.50
Expense: TxnDate Transaction Date Date 12/01/2025

When sending updates from your app back to QuickBooks, use sparse updates by including sparse="true" in your API request. This ensures only the specified fields are updated, preventing unintended data loss. For entities like Customers or Vendors, implement soft deletes by setting the active field to false instead of permanently deleting records.

Once your data is mapped, the next step is securing your API connections to protect sensitive information.

Set Up Secure API Connections

QuickBooks relies on OAuth 2.0 for authentication, using your Client ID and Client Secret to establish secure connections. Ensure your Redirect URI matches exactly with the settings in the Intuit Developer portal; even minor discrepancies can cause authorization errors.

To enhance security, request only the API scopes your app needs. For most accounting applications, com.intuit.quickbooks.accounting will suffice. Add scopes like openid, profile, or email only if you need user identity verification.

Begin testing in QuickBooks' Sandbox environment (https://sandbox-quickbooks.api.intuit.com) before moving to Production (https://quickbooks.api.intuit.com). This approach safeguards your live financial data while you refine your setup. QuickBooks enforces a rate limit of 500 requests per minute per company and 40 concurrent requests. If your app exceeds these limits, a 429 error will be returned, potentially disrupting the user experience.

Access tokens are valid for 60 minutes, while refresh tokens last for 100 days. To prevent disconnections, automate token refreshes around day 50. This ensures uninterrupted access to QuickBooks data for your app.

Step 3: Build App Features Using QuickBooks Data

Now that your QuickBooks data is connected, it's time to create interfaces and workflows that turn raw data into practical tools for users.

Design Screens to Display Financial Data

Use Adalo's Custom List components to design screens that showcase invoices, expenses, or customer details. Add features like search and filter options so users can sort by date, status, or category. For example, an invoice screen might display the invoice number, client name, date (e.g., 01/15/2026), and amount (e.g., $1,250.00).

Include Detail Screens to provide a deeper dive into specific transactions. For instance, selecting an invoice could show its line items, payment terms, and notes. For expense tracking, integrate an image picker component so users can upload receipt photos directly - perfect for capturing expenses while on the move. Additionally, design Dashboard Screens to present high-level summaries, such as total monthly spending or profit and loss overviews.

Keep mobile users in mind when designing these interfaces. Since many users will input financial data on the go, make sure to include large touch-friendly buttons and minimize the need for typing by incorporating dropdown menus. Limit expense categories to 8–12 options that align with the QuickBooks chart of accounts, reducing miscategorization and overuse of vague "Other" categories.

Once your screens are designed, shift your attention to workflows that keep QuickBooks data updated seamlessly.

Create Workflows for Data Updates

With the screens ready, focus on building workflows that ensure smooth data synchronization with QuickBooks. Use Adalo's Custom Actions to connect form inputs directly to QuickBooks API endpoints. For example, when a user submits a new expense, the workflow should immediately send details like the transaction date, amount, and category to QuickBooks.

To maintain real-time data consistency, use sparse updates and soft deletes. Sparse updates allow you to modify only specific fields without affecting the rest of the data. For instance, if you’re updating an invoice’s due date, the line items and customer details remain unchanged. This not only prevents accidental overwrites but also reduces data payloads, which is helpful for users with slower internet connections. To implement sparse updates, include sparse="true" in your API requests. For deletions, use soft deletes by setting the active field to false instead of permanently removing records, which preserves links to existing transactions. Reserve hard deletes for entities like invoices or estimates when necessary.

Introduce tiered approval workflows to simplify transaction processing. For example, automatically approve expenses under $50.00, while routing larger transactions to a manager for review before syncing them with QuickBooks.

Always test your workflows in QuickBooks' Sandbox environment before deploying them live. This precaution ensures your workflows function correctly without risking real financial data. Also, remember that QuickBooks enforces a rate limit of 500 requests per minute per company. To stay within this limit, design workflows that can batch operations when needed.

Step 4: Test and Publish Your App

Once your app's features are built and workflows are configured, it's time to thoroughly test everything before deployment. Testing helps catch data errors and ensures your users enjoy a seamless experience across all platforms.

Test Data Sync and Functionality

Begin by testing in QuickBooks' Sandbox environment, which provides a safe space to simulate real-world scenarios. Create test cases for every endpoint - such as invoices, client data, and expenses - to confirm the API is functioning as expected.

Use Change Data Capture (CDC) operations to check how well your app identifies changes in entities over specific periods. This is crucial for apps that periodically poll QuickBooks to refresh local data. Make sure sparse updates only modify the intended fields rather than overwriting unrelated data. For instance, if you update an invoice's due date (e.g., from 01/15/2026 to 01/30/2026), ensure it doesn’t affect line items or customer details.

Don’t overlook throttling limits. QuickBooks enforces a limit of 10 requests per second per realm ID. Test how your app handles this by deliberately triggering rapid API calls. Confirm that your retry logic displays appropriate error messages or queues requests effectively. Also, check that your app adheres to QuickBooks Online subscription tier limits. For example, QuickBooks Online Plus restricts accounts to 250, and exceeding this returns error code 6570.

Before moving to production, use tools like Postman to independently set up and test queries. Verify that API responses meet your expectations. Test edge cases, such as malformed data (e.g., negative invoice amounts or duplicate transaction IDs), to ensure your app can handle errors robustly.

"A sandbox environment is an isolated testing environment that mimics the live QuickBooks ecosystem. It enables developers to test their apps without touching real data".

Once you’ve confirmed that data sync and error handling work as intended, you’re ready to move to the publishing stage.

Publish to Web, iOS, and Android

After testing is complete, finalize your deployment settings. Replace sandbox keys with production keys and update the base URL to point to live endpoints (https://quickbooks.api.intuit.com).

Complete the required App Assessment and Compliance Questionnaire. This step is mandatory for all apps connecting to production QuickBooks Online companies, even for private or unlisted apps. Implement OAuth 2.0 and OpenID Connect protocols to safeguard user data. Always route API requests through a backend to securely store access and refresh tokens - never expose these tokens in the browser. Ensure your redirect URIs are configured correctly in the Intuit Developer Portal to avoid "invalid redirect" errors during the live OAuth flow.

Set up exponential backoff retry logic to gracefully handle errors like 429 (Rate Limit) or 500 (Internal Server Error). Monitor your API usage to ensure you stay within the Builder Tier limit of 500,000 CorePlus API calls per month - exceeding this may result in additional fees.

Finally, deploy your app using Adalo’s publishing tools for web, iOS, and Android. With one deployment, you can update all platforms simultaneously. Sparse updates optimize performance, especially on slower mobile connections.

Conclusion

Bringing QuickBooks data into an app is simpler than you might think. By following the four key steps outlined in this guide - setting up API access, configuring QuickBooks data in Adalo, designing user-friendly financial screens, and rigorously testing your workflows - you can build an app that syncs invoices, expenses, and customer data in real time.

Adalo speeds up development significantly, cutting timelines by 40-60% and enabling you to transform an idea into a functional MVP in as little as 90 days. Will Hawkins, CEO of Bootstrapped, highlights this advantage:

"Nocode tools allow us to develop and deploy your new application 40-60% faster than regular app development methods".

This rapid development not only gets your app to market faster but also reduces costs, allowing you to refine your product based on real user feedback. Faster iterations lead to more efficient and scalable financial workflows.

Scalability is another major benefit of this approach. With batch operations, you can handle both small and large transaction volumes with ease. Whether it’s 10 invoices or 10,000, automated workflows eliminate manual processes and minimize errors. Plus, a unified codebase ensures your app functions smoothly across web, iOS, and Android platforms.

Adalo is designed to help you build, launch, and scale live apps effortlessly. With support for Progressive Web Apps (PWA) and native deployment to iOS and Android app stores, you can deliver a seamless experience without the need for rebuilding.

FAQs

How can I securely connect my QuickBooks data to an Adalo app?

To securely integrate QuickBooks data with your Adalo app, the first step is to create a developer account on the Intuit Developer Portal and set up a QuickBooks app. During this setup, you'll configure a Redirect URI and receive your Client ID and Client Secret, which are critical for authentication. Make sure to keep these credentials confidential.

Next, leverage Adalo’s Custom Actions or External Collections to implement OAuth 2.0 authentication. This process ensures a secure link between your app and QuickBooks. Request only the permissions your app requires, and store access tokens securely within Adalo’s encrypted environment to safeguard sensitive data.

Before launching, test the connection thoroughly using QuickBooks’ sandbox mode to ensure everything functions as intended. Once the integration is validated, switch to production credentials to enable real-time data syncing. This allows your app to securely handle key tasks, such as managing invoices, tracking expenses, and generating reports.

How can I test my app before launching it with QuickBooks data?

To make sure your app runs smoothly with QuickBooks data, start by setting up a QuickBooks sandbox environment. This gives you a safe space to test with sample data, like invoices and expenses in U.S. currency (e.g., $1,234.56), without touching live records. Use your Client ID and Client Secret provided by QuickBooks to authenticate your API requests in Adalo.

Run test API calls to check data formats and handle errors effectively before integrating them into your app. In Adalo, link the QuickBooks API, map fields like amounts and dates (formatted as MM/DD/YYYY), and preview your app to ensure everything displays as expected. Simulate real-world scenarios, such as creating or updating records, and verify that the app syncs accurately with QuickBooks. Once all tests are successful, your app will be ready for deployment.

How can I make sure my app follows QuickBooks API usage limits?

To ensure your Adalo app stays within QuickBooks Online API usage limits, it's important to focus on making efficient API calls. Start by requesting only the specific data you need - this can be achieved by setting detailed permissions when creating your app in the Intuit Developer Portal. To further optimize, use batch requests to process multiple records simultaneously and rely on pagination to retrieve data in smaller, manageable chunks rather than pulling large tables.

During development, use a sandbox environment to test how your app interacts with the API. This lets you monitor request usage without affecting production limits. Once your app goes live, implement a rate-limit monitor to track API calls and temporarily pause or delay requests if you're nearing the limit. Additionally, caching frequently accessed data - like customer lists or invoice summaries - can help cut down on repetitive API calls.

Lastly, ensure your app is always running on the most recent QuickBooks API version. Newer versions often come with improved efficiency and may even include higher usage limits. By following these practices, your app can maintain compliance while providing a seamless integration with QuickBooks data.

Related Blog Posts

Start Building With An App Template
Build your app fast with one of our pre-made app templates
Try it now
Read This Next

Looking For More?

Ready to Get Started on Adalo?