Our migration tool allows you to import an SMB’s historical accounting data from QuickBooks into Teal.

Setup your QuickBooks integration

QuickBooks requires that Platforms create an “app” to manage how their end users securely grant permissions to their QuickBooks accounting data. The app controls the authorization process, and generates secure access tokens that Teal uses to read and/or write accounting data.

The app will reflect your branding. It’s crucial to understand this since end users will see this app in their QuickBooks account once they grant you permission. We manage the app’s setup, hosting, and maintenance.

By default, the QuickBooks integration is disabled; contact us if you want it enabled. Intuit requires that Platforms complete several manual steps to set up a QuickBooks integration — we handle this for you. It can take up to a few business days for this application to process.

Once set up, the integration will read information directly from the user’s QuickBooks Company and transform the data to follow our schemas.

Get in touch with your Teal contact to get the application for your process started. We’ll need a 120px x 120px version of your company logo. JPG or PNG are the only accepted formats and no more than 1MB is recommended. We’ll contact you if we need additional information.

Migration steps


Create a new Instance

Create an instance for your user using the Create Instance endpoint. You must select a coa_template_id, but the chart of accounts from the imported QuickBooks account will replace this.


Generate your auth link

Use the Create a QuickBooks Auth Link endpoint, /v0/quickbooks/auth-link with redirect_url parameters to generate a link for your users to login to their QuickBooks account.

This will establish a connection between the Instance and the QuickBooks account that we will use to import data.

Users that have completed the auth flow will be sent to the specified redirect_url.


Run the migration

Instances that have been connected to QuickBooks can be migrated to by calling the Migrate QuickBooks Instance endpoint, /v0/quickbooks/migrate.

Calling the endpoint will start a one-time, one-way migration that will import the QuickBooks data for the period of time specified in the API call.

  • Chart of accounts will be imported into PlatformGL.
  • Opening balances will be set on ledgers as of the provided migration start_date.
  • All historic journal entries will be imported for dates between the migration start_date and end_date.

You may check on the status of the migration by calling the Get Migrate QuickBooks Task endpoint, /v0/quickbooks/migrate/task.

Avoiding duplicate transaction data

The data that you migrate may already contain transactions from a bank connection in QuickBooks. If this is the case, you will want to avoid duplicating those transactions if you use our data integrations to import from the same financial account to PlatformGL.

When creating a new connection using our data integrations, such as Plaid, we provide an optional start_date parameter to prevent importing transactions prior to the start_date. You can set the date to be after the migration end_date to avoid duplicate transaction data.

Relevant resources