Skip to main content

QuickBooks

This connector captures data from QuickBooks into Flow collections.

It is available for use in the Flow web application. For local development or open-source workflows, ghcr.io/estuary/source-quickbooks:dev provides the latest version of the connector as a Docker image. You can also follow the link in your browser to see past image versions.

Supported data resources

The following data resources are supported through the QuickBooks API:

By default, each resource is mapped to a Flow collection through a separate binding.

Prerequisites

To set up the QuickBooks source connector, you'll need a QuickBooks company ID.

Configuration

You configure connectors either in the Flow web app, or by directly editing the catalog specification file. See connectors to learn more about using connectors. The values and specification sample below provide configuration details specific to the QuickBooks source connector.

Properties

Endpoint

PropertyTitleDescriptionTypeRequired/Default
/realm_idCompany IDID for the Company to Request Data FromstringRequired
/credentials/access_tokenAccess TokenThe access token received from the OAuth app.stringRequired
/credentials/access_token_expires_atAccess Token Expiration DatetimeThe access token's expiration date and time in the format 2025-04-24T00:00:00Z.stringRequired
/credentials/client_idOAuth Client IDThe OAuth app's client ID.stringRequired
/credentials/client_secretOAuth Client SecretThe OAuth app's client secret.stringRequired
/credentials/credentials_titleAuthentication MethodName of the credentials set. Set to OAuth Credentials.stringRequired
/credentials/refresh_tokenRefresh TokenThe refresh token received from the OAuth app.stringRequired
/start_dateStart DateThe date from which you'd like to replicate data, in the format YYYY-MM-DDT00:00:00Z. All data modified after this date will be replicated.stringDefault: 30 days ago

Bindings

PropertyTitleDescriptionTypeRequired/Default
/nameResource NameName of the QuickBooks resource from which collections are capturedstringRequired
/intervalPolling IntervalFrequency at which to poll for new datastringDefault: 5 minutes

Sample

captures:
${PREFIX}/${CAPTURE_NAME}:
endpoint:
connector:
image: ghcr.io/estuary/source-quickbooks:dev
config:
realm_id: <your realm id>
credentials:
access_token: <secret>
access_token_expires_at: "2025-04-24T12:00:00Z"
credentials_title: "OAuth Credentials"
client_id: <secret>
client_secret: <secret>
refresh_token: <secret>
start_date: 2024-01-01T00:00:00Z
bindings:
- resource:
name: Invoices
interval: PT5M
target: ${PREFIX}/invoices
- resource:
name: Customers
interval: PT5M
target: ${PREFIX}/customers