QuickBooks Online Webhooks using OttoFMS

OttoFMS from Proof+Geist can be used to receive webhooks from QuickBooks Online when certain events happen in QuickBooks Online. We've included scripts to work with the following QuickBooks Online event triggers:

  • Customers: create and update
  • Invoices: create and update
  • Payments: create and update

When one of these events are triggered QuickBooks will send a JSON payload to the webhook’s configured URL. You can easily add support for additional event triggers by following the pattern we have used in our FileMaker scripts.

You will need to create your own QuickBooks Online app to work with Webhooks in the Developer/Sandbox and Production environments. You can get more information about creating a QuickBooks Online app and the changes you need to make to your copy of the fmAccounting Link (QuickBooks Online Edition) file so it connects to your QuickBooks Online app here.

Support for OttoFMS webhooks was added to fmAccounting Link (QuickBooks Online Edition) Single Company and v1.07 of fmAccounting Link (QuickBooks Online Edition) Multiple Companies. You can easily retrofit this into an earlier version or custom integrations as well..

If you're using an earlier version of fmAccounting Link the required changes are outlined on the OttoFMS website here and include creating a new layout, 2 new fields and 1 new script. You can copy/paste the OttoReceiver script from the latest fmAccounting Link file to your file. Your new OttoReceiver layout (based on the Webhooks table) should look like this:

In the following example we will show you how to create an OttoFMS webhook to receive notifications from QuickBooks when new records are created or existing records updated for Customers, Invoices and Payments in QuickBooks Online.

Once you've made the necessary changes you need to register a new webhook in the OttoFMS web console - follow the instructions here to register a new webhook.

When registering the new webhook for the fmAccounting Link (QuickBooks Online Edition) file you can use the same FileMaker account that the fmAccountingLinkWebhook.php file uses here as it has the required access privileges for receiving incoming webhooks via the Data API.

When registering a new webhook you'll first be prompted to select your FileMaker file and enter the FileMaker Username and Password to use:

The webhook you create should look like the following screenshot:


Once you've registered the new webhook the OttoFMS Webhook Registry should look like this:

Once you've registered the webhook click the three dots icon to the right of the webhook entry and select View/Test to view the webhook, then click the copy button to copy the Webhook URL. The Webhook URL should look something like this:

https://otto-server-url/otto/receiver/fmAccounting Link (QuickBooks Online Edition).fmp12/quickbooks?apiKey=dk_lmo1enc6Ox7GmWV4x6TPkbvINuSm18JT

You then need to enter the Webhook URL into the Endpoint URL field for your Sandbox or Production app:

Make sure you click the Save button after entering the OttoFMS webhook URL.

You'll also need to enable the following Event triggers which are supported by the fmAccounting Link file (you can extend our scripts to support additional Event triggers if required):


You are now ready to start receiving webhook notifications from QuickBooks Online. You can test these out by either creating or editing a Customer, Invoice or Payment in QuickBooks Online.

When the QuickBooks Online Webhook makes a successful request it performs the following actions:

  • it creates a new record in the Webhooks table and populates the Payload field with the JSON webhook payload data
  • it then performs the OttoReceiver script which calls the processQuickBooksOnlineWebHook script which loops through any webhook events in the payload and performs the appropriate actions
  • for Create events it will create a new Customer, Invoice or Payment record and then call a subscript to update the Customer, Invoice or Payment record from QuickBooks Online
  • for Update events it will attempt to find the matching Contact or Invoice record using the QuickBooks Online ID and if a match is found it will then call a subscript to update the Customer, Invoice or Payment record from QuickBooks Online

You can get more information about QuickBooks Webhooks on the QuickBooks Developer site here:

https://developer.intuit.com/app/developer/qbo/docs/develop/webhooks

Intuit also have a Best practices for using webhooks with QuickBooks Online guide.

Still need help? Contact Us Contact Us