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.

API Documentation: QuickBooks Online API Documentation

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.

Connections

QuickBooks OAuth 2.0

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.

  • Enter the Client ID and Client Secret that you received from the Intuit developer portal.
  • Set Scopes to any of the values in this list.

Actions

Create a refund receipt

Create a new Refund Receipt in QuickBooks | key: createRefundReceipt


Create a sales receipt

Create a new Sales Receipt in QuickBooks | key: createReceipt


Create Invoice

Create an Invoice with the specified data | key: createInvoice


Create Note Attachment

Use this endpoint to attach a note to an object. | key: createNoteAttachment


Create Purchase Order

Create a new Purchase Order | key: createPurchaseOrder

Output Example Payload

{
"data": {
"PurchaseOrder": {
"DocNumber": "1005",
"SyncToken": "0",
"POEmail": {
"Address": "send_email@intuit.com"
},
"APAccountRef": {
"name": "Accounts Payable (A/P)",
"value": "33"
},
"CurrencyRef": {
"name": "United States Dollar",
"value": "USD"
},
"TxnDate": "2015-07-28",
"TotalAmt": 25,
"ShipAddr": {
"Line4": "Half Moon Bay, CA 94213",
"Line3": "65 Ocean Dr.",
"Id": "121",
"Line1": "Grace Pariente",
"Line2": "Cool Cars"
},
"domain": "QBO",
"Id": "257",
"POStatus": "Open",
"sparse": false,
"EmailStatus": "NotSet",
"VendorRef": {
"name": "Hicks Hardware",
"value": "41"
},
"Line": [
{
"DetailType": "ItemBasedExpenseLineDetail",
"Amount": 25,
"Id": "1",
"ItemBasedExpenseLineDetail": {
"ItemRef": {
"name": "Garden Supplies",
"value": "38"
},
"CustomerRef": {
"name": "Cool Cars",
"value": "3"
},
"Qty": 1,
"TaxCodeRef": {
"value": "NON"
},
"BillableStatus": "NotBillable",
"UnitPrice": 25
}
}
],
"CustomField": [
{
"DefinitionId": "1",
"Type": "StringType",
"Name": "Crew #"
},
{
"DefinitionId": "2",
"Type": "StringType",
"Name": "Sales Rep"
}
],
"VendorAddr": {
"Line4": "Middlefield, CA 94303",
"Line3": "42 Main St.",
"Id": "120",
"Line1": "Geoff Hicks",
"Line2": "Hicks Hardware"
},
"MetaData": {
"CreateTime": "2015-07-28T16:01:47-07:00",
"LastUpdatedTime": "2015-07-28T16:01:47-07:00"
}
},
"time": "2015-07-28T16:04:49.874-07:00"
}
}

Create Resource

Create a new Resource in QuickBooks | key: createResource


Delete a refund receipt

Delete an existing Refund Receipt in QuickBooks | key: deleteRefundReceipt


Delete Attachable

This operation deletes an attachable object. | key: deleteAttachable


Delete Purchase Order

Delete an existing Purchase Order | key: deletePurchaseOrder

Output Example Payload

{
"data": {
"PurchaseOrder": {
"status": "Deleted",
"domain": "QBO",
"Id": "125"
},
"time": "2015-05-26T14:08:39.858-07:00"
}
}

Download Attachment

Retrieves a temporary download URL to the specified attachableID. | key: downloadAttachment


Find Resource by Id

Returns a full Resource in QuickBooks | key: findResource


Get a refund receipt

Get the value of an existing Refund Receipt in QuickBooks | key: getRefundReceipt


Get a refund receipt as PDF

Get the value of an existing Refund Receipt in QuickBooks as a PDF | key: getRefundReceiptAsPDF


Get Company Info

Retrieve information about the company | key: getCompanyInfo

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

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

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


Get Resource

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

This action allows for sending queries to the Query endpoint. Please refer to QuickBooks' documentation for building custom queries.


Get Sales Receipt

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


Get Vendor Expenses

Retrieve information about vendor expenses | key: queryVendorExpenses

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.


Raw Request

Send raw HTTP request to QuickBooks | key: rawRequest


Read an Attachable

Read one attachable | key: readAnAttachable


Send a refund receipt

send an existing Refund Receipt to the email saved in QuickBooks | key: sendRefundReceipt


Send a refund receipt

Send an existing Refund Receipt in QuickBooks to any email | key: sendRefundReceiptToEmail


Update Attachable

Update any of the writable fields of an existing attachable object. | key: updateAttachable


Update Purchase Order

Update an existing Purchase Order | key: updatePurchaseOrder

Output Example Payload

{
"data": {
"PurchaseOrder": {
"DocNumber": "1005",
"SyncToken": "0",
"POEmail": {
"Address": "send_email@intuit.com"
},
"APAccountRef": {
"name": "Accounts Payable (A/P)",
"value": "33"
},
"CurrencyRef": {
"name": "United States Dollar",
"value": "USD"
},
"TxnDate": "2015-07-28",
"TotalAmt": 25,
"ShipAddr": {
"Line4": "Half Moon Bay, CA 94213",
"Line3": "65 Ocean Dr.",
"Id": "121",
"Line1": "Grace Pariente",
"Line2": "Cool Cars"
},
"domain": "QBO",
"Id": "257",
"POStatus": "Open",
"sparse": false,
"EmailStatus": "NotSet",
"VendorRef": {
"name": "Hicks Hardware",
"value": "41"
},
"Line": [
{
"DetailType": "ItemBasedExpenseLineDetail",
"Amount": 25,
"Id": "1",
"ItemBasedExpenseLineDetail": {
"ItemRef": {
"name": "Garden Supplies",
"value": "38"
},
"CustomerRef": {
"name": "Cool Cars",
"value": "3"
},
"Qty": 1,
"TaxCodeRef": {
"value": "NON"
},
"BillableStatus": "NotBillable",
"UnitPrice": 25
}
}
],
"CustomField": [
{
"DefinitionId": "1",
"Type": "StringType",
"Name": "Crew #"
},
{
"DefinitionId": "2",
"Type": "StringType",
"Name": "Sales Rep"
}
],
"VendorAddr": {
"Line4": "Middlefield, CA 94303",
"Line3": "42 Main St.",
"Id": "120",
"Line1": "Geoff Hicks",
"Line2": "Hicks Hardware"
},
"MetaData": {
"CreateTime": "2015-07-28T16:01:47-07:00",
"LastUpdatedTime": "2015-07-28T16:01:47-07:00"
}
},
"time": "2015-07-28T16:04:49.874-07:00"
}
}

Update refund receipt

Update the contents of an existing Refund Receipt in QuickBooks | key: updateRefundReceipt


Update Resource

Updates a Resource in QuickBooks | key: updateResource


Upload Attachment

Upload one attachment | key: uploadAttachment


Void Invoice

Voids an Invoice | key: voidInvoice