Skip to main content

QuickBooks Component

Create and manage customers and invoices within Intuit QuickBooks

Component key: quickbooks

Description#

Quickbooks is an accounting and payment platform for individuals and businesses. This component allows you to generate invoices, manage customers, and more within the QuickBooks platform.

The QuickBooks Sandbox allows developers to develop and test integrations without affecting real customer data. You can point your integrations at this sandbox as you assemble them.

Authorization Notes#

QuickBooks uses OAuth 2.0 to authenticate requests against the Quickbooks Online API. To configure an OAuth 2.0 credential through Quickbooks, you will need to create an app within the Intuit developer portal. When you create your app, be sure to enter Prismatic's OAuth callback URL - https://oauth2.prismatic.io/callback - as a Callback URL. Consult Quickbooks to determine the proper OAuth Scopes to assign. Once the app has been created, you will be provided with a Client ID and Client Secret. Now, configure OAuth 2.0 settings in Prismatic. Create a new credential of type OAuth 2.0 - Authorization Code.

  • For Client ID and Client Secret enter the Client ID and Client Secret that you received from the Intuit developer portal.
  • Set Scopes to something like com.intuit.quickbooks.accounting com.intuit.quickbooks.payment openid (you can pare down that list as desired).
  • For Authorization URL enter https://appcenter.intuit.com/connect/oauth2
  • For Access Token URL enter https://oauth.platform.intuit.com/oauth2/v1/tokens/bearer

Actions#

Create a sales receipt#

Create a new Sales Receipt in Quickbooks | key: createReceipt

InputKeyDefaultNotesExample

Account Id

string
accountIdProvide a value for the Id of the account to which payment money is deposited. If you do not specify this account, payment is applied to the Undeposited Funds account.35

Account Name

string
accountNameProvide a value for the name of the account to which payment money is deposited. If you do not specify this account, payment is applied to the Undeposited Funds account.Checking

Apply Tax After Discount

boolean
/ Required
applyTaxAfterDiscountfalseSpecify weather or not to apply tax after discount.

Create Time

string
createTimeProvide a date time value for the point in time this record was created2014-09-16T14:59:48-07:00

Customer Id

string
customerIdfalseProvide a value for the Id of the customer you would like to attach to the receipt.56

Customer Name

string
customerNameProvide a value for the name of the customer that will show on the receipt.John Doe

Custom Fields

code
customFields

[  {    "DefinitionId": "1",    "Type": "StringType",    "Name": "Crew #"  }]
Specify any optional custom fields to be attached. A custom field is a JavaScript Object that consists of a DefinitionId: String, Type: String, and Name: String. If you don't want to supply any custom fields, simply provide an empty JavaScript Array []

Line Items

code
/ Required
lineItems

[  {    "Description": "Pest Control Services",    "DetailType": "SalesItemLineDetail",    "SalesItemLineDetail": {      "TaxCodeRef": {        "value": "NON"      },      "Qty": 1,      "UnitPrice": 35,      "ItemRef": {        "name": "Pest Control",        "value": "10"      }    },    "LineNum": 1,    "Amount": 35.0,    "Id": "1"  },  {    "DetailType": "SubTotalLineDetail",    "Amount": 337.5,    "SubTotalLineDetail": {}  }]  
For each list item, provide a JavaScript Object that represents an individual line item. Please follow the shape provided in the example. For more information on the line item object refer to the quickbooks documentation: https://developer.intuit.com/app/developer/qbo/docs/api/accounting/all-entities/salesreceipt#create-a-salesreceipt

Payment Method Id

string
paymentMethodIdProvide a value for the id of a payment method associated with this transaction.2

Payment Method Name

string
paymentMethodNameProvide a value for the name of a payment method associated with this transaction.Check

Use Sandbox

boolean
/ Required
useSandboxChoose whether or not to use QuickBooks' sandbox. This is helpful for integration testing.false

Authorization#

Authorization is required for this action.
Auth TypeKeyDescriptionFields
OAuth 2.0 - Authorization Codeoauth2OAuth 2.0 authorization using the authorization code grant type

Client ID |  client_id

Client Secret |  client_secret

Scopes |  scopes

Authorization URL |  auth_uri

Access Token URL |  token_uri


Create Invoice#

Create an Invoice with the specified data | key: createInvoice

InputKeyNotesExample

Data

string
/ Required
dataThis is a string of JSON data that represents a QuickBooks invoice.
{  "CustomerRef": {    "value": "73",    "name": "John Doe"  },  "TotalAmt": 1100,  "Line": [    {      "Amount": 1100,      "LinkedTxn": [        {          "TxnId": "250",          "TxnType": "CreditMemo"        }      ]    }  ]}

Use Sandbox

boolean
/ Required
useSandboxChoose whether or not to use QuickBooks' sandbox. This is helpful for integration testing.false

Authorization#

Authorization is required for this action.
Auth TypeKeyDescriptionFields
OAuth 2.0 - Authorization Codeoauth2OAuth 2.0 authorization using the authorization code grant type

Client ID |  client_id

Client Secret |  client_secret

Scopes |  scopes

Authorization URL |  auth_uri

Access Token URL |  token_uri


Get Company Info#

Retrieve information about the company | key: getCompanyInfo

InputKeyNotesExample

Use Sandbox

boolean
/ Required
useSandboxChoose whether or not to use QuickBooks' sandbox. This is helpful for integration testing.false

Authorization#

Authorization is required for this action.
Auth TypeKeyDescriptionFields
OAuth 2.0 - Authorization Codeoauth2OAuth 2.0 authorization using the authorization code grant type

Client ID |  client_id

Client Secret |  client_secret

Scopes |  scopes

Authorization URL |  auth_uri

Access Token URL |  token_uri

Output Example Payload#

{  "data": {    "CompanyName": "Example Corp",    "Id": "1234",    "SyncToken": "exampleSyncToken",    "CompanyAddr": {      "City": "Mountain View",      "Country": "USA",      "CountrySubDviisionCode": "CA",      "Line1": "2500 Garcia Ave",      "PostalCode": "94043"    }  }}

Get Customer By Display Name#

Retrieve information about the Customer which matches the given Display Name | key: getCustomerByDisplayName

InputKeyNotesExample

Customer Display Name

string
/ Required
customerDisplayNameThis represents the customer's display nameSmith Rocket Company

Use Sandbox

boolean
/ Required
useSandboxChoose whether or not to use QuickBooks' sandbox. This is helpful for integration testing.false

Authorization#

Authorization is required for this action.
Auth TypeKeyDescriptionFields
OAuth 2.0 - Authorization Codeoauth2OAuth 2.0 authorization using the authorization code grant type

Client ID |  client_id

Client Secret |  client_secret

Scopes |  scopes

Authorization URL |  auth_uri

Access Token URL |  token_uri

Output Example Payload#

{  "data": {    "Id": "exampleId",    "SyncToken": "asdf123",    "MetaData": {},    "EmailMessagesPrefs": {},    "ProductAndServicesPrefs": {},    "ReportPrefs": {}  }}

Get Customer By Id#

Retrieve information about the Customer which matches the given id | key: getCustomerById

InputKeyNotesExample

Id

string
/ Required
idThis represents a resource's unique ID. It must be an integer number.1234

Use Sandbox

boolean
/ Required
useSandboxChoose whether or not to use QuickBooks' sandbox. This is helpful for integration testing.false

Authorization#

Authorization is required for this action.
Auth TypeKeyDescriptionFields
OAuth 2.0 - Authorization Codeoauth2OAuth 2.0 authorization using the authorization code grant type

Client ID |  client_id

Client Secret |  client_secret

Scopes |  scopes

Authorization URL |  auth_uri

Access Token URL |  token_uri

Output Example Payload#

{  "data": {    "Id": "exampleId",    "SyncToken": "asdf123",    "MetaData": {},    "EmailMessagesPrefs": {},    "ProductAndServicesPrefs": {},    "ReportPrefs": {}  }}

Get Invoice By Id#

Retrieve information about the Invoice which matches the given id | key: getInvoiceById

InputKeyNotesExample

Id

string
/ Required
idThis represents a resource's unique ID. It must be an integer number.1234

Use Sandbox

boolean
/ Required
useSandboxChoose whether or not to use QuickBooks' sandbox. This is helpful for integration testing.false

Authorization#

Authorization is required for this action.
Auth TypeKeyDescriptionFields
OAuth 2.0 - Authorization Codeoauth2OAuth 2.0 authorization using the authorization code grant type

Client ID |  client_id

Client Secret |  client_secret

Scopes |  scopes

Authorization URL |  auth_uri

Access Token URL |  token_uri


Get Resource#

Retrieve a QuickBooks resource using their SQL-like data query language | key: queryResource

InputKeyNotesExample

Query String

string
/ Required
queryStringMust be a valid query string as defined by the QuickBooks API. Single quotes must be escaped with a backslash.select * from department

Use Sandbox

boolean
/ Required
useSandboxChoose whether or not to use QuickBooks' sandbox. This is helpful for integration testing.false

Authorization#

Authorization is required for this action.
Auth TypeKeyDescriptionFields
OAuth 2.0 - Authorization Codeoauth2OAuth 2.0 authorization using the authorization code grant type

Client ID |  client_id

Client Secret |  client_secret

Scopes |  scopes

Authorization URL |  auth_uri

Access Token URL |  token_uri


Get Sales Receipt#

Get the information and metadata of a Sales Receipt by Id | key: getReceipt

InputKeyNotesExample

Receipt Id

string
/ Required
receiptIdProvide a value for Id of the sales receipt.101

Use Sandbox

boolean
/ Required
useSandboxChoose whether or not to use QuickBooks' sandbox. This is helpful for integration testing.false

Authorization#

Authorization is required for this action.
Auth TypeKeyDescriptionFields
OAuth 2.0 - Authorization Codeoauth2OAuth 2.0 authorization using the authorization code grant type

Client ID |  client_id

Client Secret |  client_secret

Scopes |  scopes

Authorization URL |  auth_uri

Access Token URL |  token_uri


Get Vendor Expenses#

Retrieve information about vendor expenses | key: queryVendorExpenses

InputKeyNotesExample

Query Params

string
queryParamsCustomize the information returned in the report by specifying query parameters with the query. Listed here are the query parameters available for this report: customer, vendor, end_date, date_macro, class, sort_order, summarize_column_id, department, accounting_method, and start_date

Use Sandbox

boolean
/ Required
useSandboxChoose whether or not to use QuickBooks' sandbox. This is helpful for integration testing.false

This action wraps Quickbooks' Query a Report API endpoint. Query parameters can be added to filter results by customer, vendor, department, accounting_method, or class. Keys summarize_column_by and sort_order determine how the result should be structured. You can also specify a date_macro, or a combination of a start_date and end_date (both need to be specified) to get expenses from a particular date range.

Authorization#

Authorization is required for this action.
Auth TypeKeyDescriptionFields
OAuth 2.0 - Authorization Codeoauth2OAuth 2.0 authorization using the authorization code grant type

Client ID |  client_id

Client Secret |  client_secret

Scopes |  scopes

Authorization URL |  auth_uri

Access Token URL |  token_uri