Software tips, techniques, and news.

By Brendan McBride  Posted on  April 5th, 2017  in  Free Downloads, FileMaker, Web

FileMaker QuickBooks Online Integration

Intuit's QuickBooks Online is a powerful tool that allows for easy management of invoices, payments, and other accounting tasks. Intuit announced they will have over 2.55 million subscribers at the end of the year. Many companies find themselves with both QuickBooks and FileMaker end up having to do double data entry from one system to the next. We will demonstrate how you can eliminate the hassle of manually copying the information by integrating your FileMaker solution with QuickBooks Online.

Creating a Free Intuit Developer Account

The first step of this integration is to create an Intuit developer account . Once you have an account, you will then need to create a new QuickBooks Online app by navigating to the My Apps page. This will take you to a setup process where you select the API you will be using. To start, you will click the Select APIs button under the "Just Start Coding" section. You will then need to select the Accounting box and then click the Create App button.

FileMaker QuickBooks OnlineNow that you have the QBO App created, you will need to set it up and get your keys. First, navigate to the settings page for your app. In here you can change the name and other options for the app. You will need to set the Redirect URL to https://dbservices.com or any valid website. This is only used as a landing page for authentication and does not need to be anything special. Now that the launch URL is set, you will need to go to the Keys page. There, you will need to copy the Client ID and Client Secret into your solution. Keep your secret hidden from the world as the combination of the ID and Secret will be used to authorize your solution to make changes to the end user's QuickBooks.

If you don't have access to a QuickBooks company that already exists, you need to be invited by the administrator to become an accountant. Ask the admin to log in to QuickBooks Online, click Company, Manage Users, and Invite Accountant. You will receive an email with a link to connect your developer account and the company.

Authenticating with QuickBooks Online Using OAuth 2.0

*Note: As of July 17, 2017 QuickBooks Online uses OAuth 2.0 for all new apps.

Once you have your API information, you will need to authenticate your solution with the QuickBooks Online Accounting API. For any questions regarding how requests should be built, please reference the QuickBooks Online Accounting API Documentation. To authenticate your solution, please reference the documentation on OAuth 2.0. To authenticate your solution, place the user into a web viewer at the API authentication screen. This will prompt the user to login with their own account and allow your solution to make changes to their QuickBooks.

FileMaker QuickBooks Online authenticationOnce they have agreed, they will be sent to the address specified in your Redirect URL. In the address, there will be URL encoded parameters, one of which will be the code and another the realm ID (QuickBooks Company ID). Finally, you will use the code provided, along with your ID and secret to get your access token which will be used to make any API requests.

Making Requests and Parsing the Response

Many of the QuickBooks Online API requests require additional parameters outside of the URL encoded parameters. The Create Customer request, for example, is a POST request which requires additional fields like the company, billing address, and many other settings for the customer. These extra fields will need to be JSON-encoded text, passed as the parameter.

Insert from URL [ Select ; With Dialog: Off ; $result ; "https://quickbooks.api.intuit.com/v3/company/[Realm ID Here]/customer" ; $cURL ; Do not automatically encode URL ]

Once a successful request has been made, a JSON encoded response will returned. You will then be able to use the function JSONGetElement () to pull any information out of the response that you wish.

{
  "Customer": {
    "Taxable": true,
    "BillAddr": {
      "Id": "1",
      "Line1": "8604 Allisonville Road",
      "Line2": "Suite 231",
      "City": "Indianapolis",
      "Country": "USA",
      "CountrySubDivisionCode": "IN",
      "PostalCode": "46250"
    },
    "Notes": "Some notes can go in here!",
    "Job": false,
    "BillWithParent": false,
    "Balance": 0,
    "BalanceWithJobs": 0,
    "CurrencyRef": {
      "value": "USD",
      "name": "United States Dollar"
    },
    "PreferredDeliveryMethod": "Print",
    "domain": "QBO",
    "sparse": false,
    "Id": "1",
    "SyncToken": "0",
    "MetaData": {
      "CreateTime": "2017-03-20T13:55:13-07:00",
      "LastUpdatedTime": "2017-03-20T13:55:13-07:00"
    },
    "GivenName": "Brendan",
    "FamilyName": "McBride",
    "FullyQualifiedName": "Database Services",
    "CompanyName": "DB Services",
    "DisplayName": "Database Services",
    "PrintOnCheckName": "DB Services",
    "Active": true,
    "PrimaryPhone": {
      "FreeFormNumber": "(317) 288-4244"
    },
    "PrimaryEmailAddr": {
      "Address": "consulting@dbservices.com"
    },
    "DefaultTaxCodeRef": {
      "value": "2"
    }
  },
  "time": "2017-03-20T13:55:13.630-07:00"
}

For example, you can get the newly created customer ID by using the following set of functions:

Set Variable [ JSONGetElement ( $result ; "Customer.Id") ]

Sandbox QuickBooks Company

When you create a developer account, you will be given a sandbox QuickBooks Online company for testing. This is great, as this allows you to test your integration without fear of deleting or modifying anything in your live QuickBooks company account. If you go to the My Apps Dashboard, and go into your app, you will notice that you are on the Development section by default. If your integration is ready to go live, you will need to go into the Production section. In here you will set up your production settings and then submit your request. You will then be given a production consumer key and secret.

QuickBooks Online: Things to Keep In Mind

There are a couple of important items to remember when working with the QuickBooks Online API. Here are a few points to look out for when integrating your FileMaker solution with QuickBooks Online:

  • The QBO API uses SyncTokens when making updates to existing records. A SyncToken is a way to lock a record. If you do not pass the expected SyncToken when making an update, the request will fail.
  • Certain tables in QuickBooks require other related records to already exist. For example, when adding an invoice to QuickBooks, the customer assigned to the invoice needs to exist in QuickBooks before the invoice can be created.
  • You may use Web Hooks to have QuickBooks Online automatically make updates to FileMaker as well.
  • QuickBooks Online integration with FileMaker is very different then QuickBooks Desktop integration with FileMaker.
  • QuickBooks Online integration with FileMaker does not require a plugin and everything is done natively.

Conclusion

QuickBooks Online can be fully integrated with your FileMaker solution! You can create, update, query, or delete just about any QuickBooks entity you would like all from within FileMaker. Automate your accounting processes, eliminate double data entry, and human blunders. Feel free to contact us if you need further assistance or to discuss getting your QuickBooks system integrated with FileMaker.

Did you know we are an authorized reseller for FileMaker Licensing?
Contact us to discuss upgrading your FileMaker software.

Download
Download the FileMaker QuickBooks Online Integration File
Please complete the form below to download your FREE FileMaker file.
FileMaker Experience *
Terms of Use *
OPT-IN: I agree that I am downloading a completely free FileMaker application file with no strings attached. This file is unlocked, and I may use it for my business or organization as I see fit. Because I am downloading a free file, I agree that I should receive occasional marketing. I understand that I can OPT-OUT of these emails at anytime.
Brendan McBride thumbnail
Brendan McBride

Brendan is a certified FileMaker and web developer and is a very friendly, hard-working, and technically-astute engineer ready to solve any problem you throw at him. Brendan went to Purdue, receiving a Bachelors in Computer Science and minored in Economics.

FileMaker 18 Certified Developer
FileMaker 17 Certified Developer
FileMaker 16 Certified Developer
FileMaker 15 Certified Developer
FileMaker 14 Certified Developer
FileMaker 13 Certified Developer
FileMaker 12 Certified Developer
FileMaker 11 Certified Developer
"We were actually able to add more features than we thought would be possible within our budget. We always experienced a ‘can do’ attitude and DB Services was incredibly patient and easy to work with."
Courtney Hartman
Art Director
"The new FileMaker custom website interface is very user-friendly and easy to follow for our clients. In addition, it is much faster than the old Instant Web Publishing (IWP) interface. Thank you and all the others who have helped us out at DB Services. I am very grateful for the excellent service you provide us. Its nice to know we can call you for help if we have an issue."
Wayne Capek
President
"We needed a solution that would simplify the administration of our responsibilities under our contract with the State of Indiana. We have seen a dramatic increase across the state in the number of potential foster and adoptive parents that have begun the preparation and training process. This increase has resulted in a significant opportunity for children available for adoption. That’s a big win for everyone! And it’s all because we can refer potential parents to the proper state contacts efficiently and quickly."
Chris Morrison
Executive Director
"Thank you for all of your expertise and valuable help. I am so grateful to have found DB Services."
Linda Findlay
Owner
"Thank you for our new database system. We transitioned from a carbon copy paper based system to a digital database. The software has saved us time and money. We used to archive all our jobs in cabinets, now we can look up a job in seconds from anywhere. The software allows us to easily email estimates to our customers in pdf format. In a year there was a return on investment just from eliminating the purchasing of our carbon forms."
Todd Cartmel
Owner
"The new system allows us to create and track jobs for customers along with inventory, something we had been doing with separate word and spreadsheet files. Because it’s now so intuitive, new staff members are able to begin using the database immediately without our usual training session and ‘cheat sheets’ for getting around within the file."
Tom Andrews
President