Get started with QuickBooks

QuickBooks is an accounting software package developed and marketed by Intuit. QuickBooks can be used to manage sales and expenses and keep track of daily business transactions. You can use it to invoice customers, pay bills, generate reports for planning and tax filing, and more.

If you are unfamiliar with QuickBooks, the following QuickBooks resources are recommended to get you started:


Integrating QuickBooks and Linx

When integrating Linx and QuickBooks, do the following:


1. Create a QuickBooks developer account


2. Create an App on QuickBooks

The following notes serve as a guide to help make the overall integration process easier. Please refer to Intuit's QuickBooks documentation for specific details on process and usage:

  • Sign in on QuickBooks

  • Click on My Apps

  • Create your QuickBooks App

  • Click on the Keys tab

  • Copy your ClientID, Client Secret and the Base URL (for later use in Linx)

    Note: for use in Linx, prepend the Base URL with https:// if it is not included already

  • Click View Sandbox to manage your sandbox company's settings

  • Click the Settings icon (gear) on the toolbar

  • Click Company Settings

  • Click the Sales tab

  • Enable Deposit


3. Get an OAuth 2.0 access token

The following notes serve as a guide to help make the overall integration process easier. Please refer to Intuit's QuickBooks and OAuth documentation for specific details on process and usage:

  • Go to https://developer.intuit.com/v2/ui#/playground

  • In the Get authorization code section, select the relevant scopes (All except for Payments)

  • Click the Get Authorisation Code button

  • Click the Connect button

  • On the next page, in the Get OAuth 2.0 token from auth code section, click the Get tokens button

  • In the Response section (on the right), copy the Refresh Token and the Access Token (for later use in Linx)


4. Create a Linx Solution

Steps:

  1. Add a Solution, Project and Process

  2. Add the QuickBooks plugin to your Solution

  3. From the QuickBooks plugin, add a Function or Type to your Process

  4. Set the relevant Properties:

  • CBO Credentials to make the connection to QuickBooks:
    Property Where to get the value from
    AccessToken OAuth 2.0 Playground - see step 3 above
    Note: an Access Token has a limited lifespan and may have to be re-generated when expired. (This is especially the case when the token has not been initiated yet by your Linx solution with a first call to QuickBooks. After the first call Linx will refresh your token automatically.)
    RefreshToken OAuth 2.0 Playground
    RealmID OAuth 2.0 Playground
    BaseURL QuickBooks app (Sandbox) - see step 2 above
    ClientID QuickBooks app
    ClientSecret QuickBooks app
    DiscoveryURL Use the following value when testing on the QuickBooks sandbox:

    https://developer.api.intuit.com/.well-known/openid_sandbox_configuration

    Use the following value for your live production environment:

    https://developer.api.intuit.com/.well-known/openid_configuration

    • Properties specific to the Function or Type


    Examples

    Retrieve Invoices from QuickBooks

    Prerequisites:

    • You have registered on QuickBooks and have an active developer account.
    • You have created an App for Linx on the QuickBooks developers platform.
    • You have created an OAuth 2.0 Refresh Token and Access Token

    Steps:

    1. Add the QuickBooks plugin to your solution
    2. Drag the GetInvoices function from the Plugins panel (QuickBooks) and drop it on the main canvas
    3. Add these properties:

      • Name: Enter any name (unique to your project)
      • QBO credentials: (see point 4 above for details on where the values for these settings can be found)
        • AccessToken
        • RefreshToken
        • RealmIDy
        • BaseURL
        • ClientID
        • ClientSecret
        • DiscoveryURL
      • InvoiceID: The Id of the invoice to retrieve. All other filters are ignored if this is set.
      • Document number: The document number of the invoice to retrieve.
      • Transaction date from: Filter results that have a transaction date greater than or equal to this date. The hours, minutes and seconds are ignored.
      • Transaction date to: Filter results that have a transaction date smaller than or equal to this date. The hours, minutes and seconds are ignored.
      • Return options: Select how the data is to be returned: only the first item, The first item or an empty item, all the items one by one, or all of the items at once.
      • Max results: The maximum number of items retrieved. If not specified, all existing entities are retrieved.
    4. Add other Plugins and Functions that are relevant to your business process, e.g. the File plugin and the TextFileWrite function to write the retrieved invoice details to a text or CSV file.

    5. Add a a Service, like the Timer service from the Utilities plugin, to automate your Process.

    6. Debug your Process

      Note: If you encounter an "invalid_grant" error, create a new Access Token (OAuth 2.0 Playground)

    7. Deploy your Solution