quickbooks
QuickBooks is a small business accounting software that helps your small business track expenses, manage cash flow, send custom invoices and create financial reports.
| Read | Create | Update | Delete | Webhook | ||
|---|---|---|---|---|---|---|
| Accounts | ||||||
| Async task | ||||||
| Bank accounts | ||||||
| Bills | ||||||
| Bill lines | ||||||
| Booking proposals | ||||||
| Contacts | ||||||
| Customers | ||||||
| Credit notes | ||||||
| Dimensions | ||||||
| Expenses | ||||||
| Files | ||||||
| Goods receipts | ||||||
| Goods receipt lines | ||||||
| Invoices | ||||||
| Invoice lines | ||||||
| Items | ||||||
| Journals | ||||||
| Journal entries | ||||||
| Offers | ||||||
| Offer lines | ||||||
| Open items | ||||||
| Payments | ||||||
| Payment terms | ||||||
| Projects | ||||||
| Purchase orders | ||||||
| Purchase order lines | ||||||
| Sales orders | ||||||
| Sales order lines | ||||||
| Suppliers | ||||||
| Tax rates | ||||||
| Transactions | ||||||
| Trial balance | ||||||
| Units | ||||||
| Users | ||||||
| Vendor credits |
= Not supported by Maesn at this time
= Not supported by QuickBooks
How to connect to QuickBooks
To allow your customers to link your application with their QuickBooks accounts, you need to set up a QuickBooks App and submit your application credentials to maesn.1
Prerequisites
Before you begin, make sure you have the following:
- A QuickBooks account with administrator permissions.
2
Create the QuickBooks App
In this step we create the App that a user can choose to install into their QuickBooks instance to authorize the integration with your application.
- Navigate to the QuickBooks developer portal and log in, if you are not already logged in.
- On the tab “Apps”, click “Create an app”.
- Select the QuickBooks Online and Payments option.
- Give your app name: This should be your application’s name. When your users link their QuickBooks account, they will see that “App Name” is requesting to integrate with their QuickBooks account.
- Select the com.intuit.quickbooks.accounting scope.
- Click “Create App”.
- In the next screen, click on “Key & credentials” in the left-hand menu.
- Click on “Add URI” and add the redirect URI: https://api.maesn.dev/auth/callback/quickbooks
3
Configure your integration in the maesn API
In the last step, we setup your API tenant with your App’s details:
- Get in touch with your contact person at maesn to submit the client id and client secret.
Sandbox environment
QuickBooks has different URLs and credentials for their production and sandbox environments. To generate a sandbox end user account you have to use thequickbooks-sandbox target system.
Inside quickbooks, you can create sandbox credentials with the same steps as the production credentials, you just need to create sandbox credentials instead of production credentials.
You also have to use the following callback URL for the sandbox environment: https://api.maesn.dev/auth/callback/quickbooks-sandbox
Becoming a QuickBooks Partner
Anyone can become a QuickBooks app partner. The requirements and steps to become a partner are detailed here. Note that before you become a QuickBooks partner you will only have access to their development environment. Once you become a partner you will have access to their production environment.Webhooks
Quickbooks supports the following resource types:ACCOUNTBILLCUSTOMERINVOICEITEMJOURNAL_ENTRYPAYMENTSUPPLIEREXPENSE
CREATED, UPDATED, DELETED, MERGED, VOIDED and EMAILED events.
In the case of QuickBooks, webhooks are App-based. This means they must be created for a given app as described here.
To set this up, call Maesn’s create webhook endpoint POST /webhooks/tenant with the following body:
Example code snippet
eventType and resource parameters since you can set them up directly in your QuickBooks App configuration.
Instead, you will need to provide the targetSystem parameter with the value quickbooks or quickbooks-sandbox depending on which environment you want to create the webhook for.
It will return an id and url that can be used in your App’s configuration:
Example response
userId that can be used to identify the user:
Example event body
userId : this allows you to match each webhook event to the correct customer.
To delete the webhook subscription, you can call the DELETE /webhooks/tenant/{webhookId} endpoint.