Skip to content
This repository was archived by the owner on Nov 14, 2025. It is now read-only.

slingr-stack/quickbooks-endpoint

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

43 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

title keywords last_updated tags summary
QuickBooks endpoint
May 10, 2023
Detailed description of the API of the QuickBooks endpoint.

Overview

The QuickBooks endpoint allows you to interact with the QuickBooks Account API.

Some futures are:

  • Shortcuts for the REST API
  • Helpers to convert date times

Apart from helpers you will see that in order to use the REST API of QuickBooks you will be making regular HTTP request to the REST API. For example:

var res = app.endpoints.quickbooks.get('/account/1');

In most cases the provided helpers and events are enough, but if you need to use the QuickBooks REST API you should go to their documentation for API explorer.

Configuration

To obtain the requested fields for configuration you need to log in to your intuit developer account and go to Test connect to app (OAuth). On this page you need to:

  • Complete the form selecting the app you want to configure on the endpoint.

  • Once you select the app the Client ID and Client Secret fields are being populated. You can copy this values to the endpoint configuration.

  • Select the Scopes (Accounting is the only available for now).

  • Click on Get authorization code and authorize the app.

  • Then click on Get Tokens button.

  • Once you have the Tokens you can start making calls to the API. On this screen you need to access to the step 4 and copy the Access Token and the Refresh Token to the endpoint configuration. QuickBooks Online data services support minor versions in order to provide a way for you to access incremental changes without breaking existing apps.

Webhooks

In order to use API Web-hooks you need to copy the generated Webhook URL to the QuickBooks webhooks app configuration. For now, the only supported events are the ones for Account.

To verify Webhooks request to your endpoint you need to configure the Webhooks Verifier Token to make your endpoint more secure. This is recommended although is not required. You can find more information about QuickBooks Webhooks here

Javascript API

The Javascript API of the quickbooks endpoint has three pieces:

  • HTTP requests: These allow to make regular HTTP requests.
  • Shortcuts: These are helpers to make HTTP request to the API in a more convenient way.
  • Additional Helpers: These helpers provide additional features that facilitate or improves the endpoint usage in SLINGR.

HTTP requests

You can make POST,GET requests to the quickbooks API like this:

var response = app.endpoints.quickbooks.post('/taxservice/taxcode', body)
var response = app.endpoints.quickbooks.post('/taxservice/taxcode')
var response = app.endpoints.quickbooks.get('/class/:entityId')

Please take a look at the documentation of the HTTP endpoint for more information about generic requests.

Shortcuts

Instead of having to use the generic HTTP methods, you can (and should) make use of the helpers provided in the endpoint:

Click here to see all the helpers
app.endpoints.quickbooks.account.post(body)

app.endpoints.quickbooks.account.get(entityId)

app.endpoints.quickbooks.account.update.post(body)

app.endpoints.quickbooks.attachable.post(body)

app.endpoints.quickbooks.attachable.get(entityId)

app.endpoints.quickbooks.attachable.delete.post(body)

app.endpoints.quickbooks.attachable.update.post(body)

app.endpoints.quickbooks.batch.post(body)

app.endpoints.quickbooks.bill.post(body)

app.endpoints.quickbooks.bill.get(entityId)

app.endpoints.quickbooks.bill.delete.post(body)

app.endpoints.quickbooks.bill.update.post(body)

app.endpoints.quickbooks.billpayment.post(body)

app.endpoints.quickbooks.billpayment.get(entityId)

app.endpoints.quickbooks.billpayment.delete.post(body)

app.endpoints.quickbooks.billpayment.update.post(body)

app.endpoints.quickbooks.cdc.get()

app.endpoints.quickbooks.class.post(body)

app.endpoints.quickbooks.class.get(entityId)

app.endpoints.quickbooks.class.update.post(body)

app.endpoints.quickbooks.companyinfo.get(companyId)

app.endpoints.quickbooks.creditmemo.post(body)

app.endpoints.quickbooks.creditmemo.get(entityId)

app.endpoints.quickbooks.creditmemo.delete.post(body)

app.endpoints.quickbooks.creditmemo.update.post(body)

app.endpoints.quickbooks.customer.post(body)

app.endpoints.quickbooks.customer.get(entityId)

app.endpoints.quickbooks.customer.update.post(body)

app.endpoints.quickbooks.department.post(body)

app.endpoints.quickbooks.department.get(entityId)

app.endpoints.quickbooks.department.update.post(body)

app.endpoints.quickbooks.deposit.post(body)

app.endpoints.quickbooks.deposit.get(entityId)

app.endpoints.quickbooks.deposit.delete.post(body)

app.endpoints.quickbooks.deposit.update.post(body)

app.endpoints.quickbooks.employee.post(body)

app.endpoints.quickbooks.employee.get(entityId)

app.endpoints.quickbooks.employee.update.post(body)

app.endpoints.quickbooks.estimate.post(body)

app.endpoints.quickbooks.estimate.get(entityId)

app.endpoints.quickbooks.estimate.delete.post(body)

app.endpoints.quickbooks.estimate.update.post(body)

app.endpoints.quickbooks.invoice.post(body)

app.endpoints.quickbooks.invoice.get(entityId)

app.endpoints.quickbooks.invoice.send.post(entityId, body)

app.endpoints.quickbooks.invoice.delete.post(body)

app.endpoints.quickbooks.invoice.update.post(body)

app.endpoints.quickbooks.item.post(body)

app.endpoints.quickbooks.item.get(entityId)

app.endpoints.quickbooks.item.update.post(body)

app.endpoints.quickbooks.journalentry.post(body)

app.endpoints.quickbooks.journalentry.get(entityId)

app.endpoints.quickbooks.journalentry.delete.post(body)

app.endpoints.quickbooks.payment.post(body)

app.endpoints.quickbooks.payment.get(entityId)

app.endpoints.quickbooks.payment.delete.post(body)

app.endpoints.quickbooks.payment.update.post(body)

app.endpoints.quickbooks.paymentmethod.post(body)

app.endpoints.quickbooks.paymentmethod.get(entityId)

app.endpoints.quickbooks.paymentmethod.update.post(body)

app.endpoints.quickbooks.preferences.get()

app.endpoints.quickbooks.preferences.update.post(body)

app.endpoints.quickbooks.purchase.post(body)

app.endpoints.quickbooks.purchase.get(entityId)

app.endpoints.quickbooks.purchase.delete.post(body)

app.endpoints.quickbooks.purchase.update.post(body)

app.endpoints.quickbooks.purchaseorder.post(body)

app.endpoints.quickbooks.purchaseorder.get(entityId)

app.endpoints.quickbooks.purchaseorder.delete.post(body)

app.endpoints.quickbooks.purchaseorder.update.post(body)

app.endpoints.quickbooks.query.get()

app.endpoints.quickbooks.refundreceipt.post(body)

app.endpoints.quickbooks.refundreceipt.get(entityId)

app.endpoints.quickbooks.refundreceipt.delete.post(body)

app.endpoints.quickbooks.refundreceipt.update.post(body)

app.endpoints.quickbooks.reports.get(reportType)

app.endpoints.quickbooks.salesreceipt.post(body)

app.endpoints.quickbooks.salesreceipt.get(entityId)

app.endpoints.quickbooks.salesreceipt.delete.post(body)

app.endpoints.quickbooks.salesreceipt.update.post(body)

app.endpoints.quickbooks.taxagency.post(body)

app.endpoints.quickbooks.taxagency.get(entityId)

app.endpoints.quickbooks.taxcode.get(entityId)

app.endpoints.quickbooks.taxrate.get(entityId)

app.endpoints.quickbooks.taxservice.taxcode.post(body)

app.endpoints.quickbooks.term.post(body)

app.endpoints.quickbooks.term.get(entityId)

app.endpoints.quickbooks.term.update.post(body)

app.endpoints.quickbooks.timeactivity.post(body)

app.endpoints.quickbooks.timeactivity.get(entityId)

app.endpoints.quickbooks.timeactivity.delete.post(body)

app.endpoints.quickbooks.timeactivity.update.post(body)

app.endpoints.quickbooks.transfer.post(body)

app.endpoints.quickbooks.transfer.get(entityId)

app.endpoints.quickbooks.transfer.delete.post(body)

app.endpoints.quickbooks.transfer.update.post(body)

app.endpoints.quickbooks.vendor.post(body)

app.endpoints.quickbooks.vendor.get(entityId)

app.endpoints.quickbooks.vendor.update.post(body)

app.endpoints.quickbooks.vendorcredit.post(body)

app.endpoints.quickbooks.vendorcredit.get(entityId)

app.endpoints.quickbooks.vendorcredit.delete.post(body)

app.endpoints.quickbooks.vendorcredit.update.post(body)

Flow Step

As an alternative option to using scripts, you can make use of Flows and Flow Steps specifically created for the endpoint:

Click here to see the Flow Steps

Generic Flow Step

Generic flow step for full use of the entire endpoint and its services.

Inputs

Label Type Required Default Visibility Description
URL (Method) choice yes - Always This is the http method to be used against the endpoint.
Possible values are:
POST,GET
URL (Path) choice yes - Always The url to which this endpoint will send the request. This is the exact service to which the http request will be made.
Possible values are:
/account
/account?operation=update
/attachable
/attachable?operation=update
/attachable?operation=delete
/batch
/bill
/bill?operation=update
/bill?operation=delete
/billpayment
/billpayment?operation=update
/billpayment?operation=delete
/class
/class?operation=update
/creditmemo
/creditmemo?operation=update
/creditmemo?operation=delete
/customer
/customer?operation=update
/department
/department?operation=update
/deposit
/deposit?operation=update
/deposit?operation=delete
/employee
/employee?operation=update
/estimate
/estimate?operation=update
/estimate?operation=delete
/invoice
/invoice?operation=update
/invoice?operation=delete
/invoice/{entityId}/send
/item
/item?operation=update
/journalentry
/journalentry?operation=delete
/payment
/payment?operation=update
/payment?operation=delete
/paymentmethod
/paymentmethod?operation=update
/preferences?operation=update
/purchase
/purchase?operation=update
/purchase?operation=delete
/purchaseorder
/purchaseorder?operation=update
/purchaseorder?operation=delete
/refundreceipt
/refundreceipt?operation=update
/refundreceipt?operation=delete
/salesreceipt
/salesreceipt?operation=update
/salesreceipt?operation=delete
/taxagency
/taxservice/taxcode
/term
/term?operation=update
/timeactivity
/timeactivity?operation=update
/timeactivity?operation=delete
/transfer
/transfer?operation=update
/transfer?operation=delete
/vendor
/vendor?operation=update
/vendorcredit
/vendorcredit?operation=update
/vendorcredit?operation=delete
/account/{entityId}
/query?query=' + httpOptions.query.query + '
/attachable/{entityId}
/bill/{entityId}
/billpayment/{entityId}
/cdc?entities=' + httpOptions.query.entities + '&changedSince=' + httpOptions.query.changedSince + '
/class/{entityId}
/companyinfo/{companyId}
/creditmemo/{entityId}
/customer/{entityId}
/department/{entityId}
/deposit/{entityId}
/employee/{entityId}
/estimate/{entityId}
/invoice/{entityId}
/item/{entityId}
/journalentry/{entityId}
/payment/{entityId}
/paymentmethod/{entityId}
/preferences
/purchase/{entityId}
/purchaseorder/{entityId}
/refundreceipt/{entityId}
/reports/{reportType}
/salesreceipt/{entityId}
/taxagency/{entityId}
/taxcode/{entityId}
/taxrate/{entityId}
/term/{entityId}
/timeactivity/{entityId}
/transfer/{entityId}
/vendor/{entityId}
/vendorcredit/{entityId}
Headers keyValue no - Always Used when you want to have a custom http header for the request.
Query Params keyValue no - Always Used when you want to have a custom query params for the http call.
Body json no - Always A payload of data can be sent to the server in the body of the request.
Override Settings boolean no false Always
Follow Redirect boolean no false overrideSettings Indicates that the resource has to be downloaded into a file instead of returning it in the response.
Download boolean no false overrideSettings If true the method won't return until the file has been downloaded, and it will return all the information of the file.
File name text no overrideSettings If provided, the file will be stored with this name. If empty the file name will be calculated from the URL.
Full response boolean no false overrideSettings Include extended information about response
Connection Timeout number no 5000 overrideSettings Connect timeout interval, in milliseconds (0 = infinity).
Read Timeout number no 60000 overrideSettings Read timeout interval, in milliseconds (0 = infinity).

Outputs

Name Type Description
response object Object resulting from the response to the endpoint call.

For more information about how shortcuts or flow steps works, and how they are generated, take a look at the slingr-helpgen tool.

Additional Flow Step

Click here to see the Customs Flow Steps

Create Account

This step allow you to create a new account in the system of quickbook accounting.

Inputs

Label Type Required Default Visibility Description
Name text yes Allways Name for the account
Account Type choice yes - Always This is the Account Type required by Quickbook.
Possible values are:
Bank, Other Current Asset, Fixed Asset, Other Asset, Accounts Receivable

Outputs

Name Type Description
response object Object resulting from the response to the endpoint call.

Create Costumer

This step allow you to create a new costumer in the system of quickbook accounting.

Inputs

Label Type Required Default Visibility Description
Display Name text yes Always Name to display for the costumer

Outputs

Name Type Description
response object Object resulting from the response to the endpoint call.

Get All Bills

This step allow you to obtain all the bills from the system of quickbook accounting.

Outputs

Name Type Description
response object Object resulting from the response to the endpoint call.

Additional Helpers

MANUALLY ADD THE DOCUMENTATION OF THESE HELPERS HERE...

About SLINGR

SLINGR is a low-code rapid application development platform that accelerates development, with robust architecture for integrations and executing custom workflows and automation.

More info about SLINGR

License

This endpoint is licensed under the Apache License 2.0. See the LICENSE file for more details.

About

QuickBooks endpoint

Resources

License

Stars

Watchers

Forks

Packages

No packages published

Contributors 8