Overview

  • SERVICE DESCRIPTION

This service provides integration with the QuickBooks platform through the GHUBEE interface. It enables comprehensive financial data management including accounts retrieval, purchase transaction management (create, read, update), and vendor management operations. The service supports advanced filtering and pagination for large datasets.

  • INTEGRATION SPECIFICATION
  • Service Details
Service Name QuickBooks Accounts, QuickBooks Purchases, QuickBooks Vendors
Context /quickbooks/accounts/
/quickbooks/accounts/{account_id}/
/quickbooks/purchases/
/quickbooks/purchases/{purchase_id}/
/quickbooks/purchases/update
/quickbooks/vendors/
/quickbooks/vendors/{vendor_id}/
/quickbooks/vendors/update
Description Provides endpoints to retrieve accounts, manage purchase transactions (create/read/update), and manage vendor information (create/read/update) from QuickBooks Online accounting system.
Endpoint

https://hml.ghubee.com/api/quickbooks/accounts/

https://hml.ghubee.com/api/quickbooks/accounts/{account_id}/

https://hml.ghubee.com/api/quickbooks/purchases/

https://hml.ghubee.com/api/quickbooks/purchases/{purchase_id}/

https://hml.ghubee.com/api/quickbooks/purchases/update

https://hml.ghubee.com/api/quickbooks/vendors/

https://hml.ghubee.com/api/quickbooks/vendors/{vendor_id}/

https://hml.ghubee.com/api/quickbooks/vendors/update

Environment Specifications https://ghubee.com/api
Protocol/Transport HTTPS
Method GET / POST / PUT
Representation format JSON
Input/Output Interface or Both Both
Data transformation No
  • Assumption

The service must be invoked with all mandatory parameters correctly filled.

Authentication is required to access QuickBooks services through GHUBEE using Bearer token.

QuickBooks OAuth2 access token must be provided in the request header for authentication with QuickBooks Online API.

A valid QuickBooks Company Realm ID must be provided as a query parameter for all requests.


ENDPOINT 1: Get List of Accounts

URL: GET https://hml.ghubee.com/api/quickbooks/accounts/

  • Data input
Field Description Format Required Remarks
Token_Ghubee GHUBEE authentication token Authorization Header Yes Bearer token
access-token-quickbooks QuickBooks OAuth2 access token Custom Header Yes QuickBooks API authentication
realmId QuickBooks Company ID Query Parameter Yes Company identifier
minorversion QuickBooks API minor version Query Parameter No API version (e.g., 65)
filter SQL-like filter query Query Parameter No WHERE clause for filtering

Example:

GET https://hml.ghubee.com/api/quickbooks/accounts/?realmId=1234567890&minorversion=65
Authorization: Bearer token_ghubee
access-token-quickbooks: your_quickbooks_access_token
  • Data output
Field Description Format Required Remarks
status Response status String Yes Success / Error
message Response message String Yes Status description
data Array of accounts Array Yes Account records
data[].Id Account ID String Yes Unique identifier
data[].Name Account name String Yes Account display name
data[].AccountType Account type String Yes Bank, Expense, Income, etc.
data[].AccountSubType Account sub-type String Yes Detailed classification
data[].CurrentBalance Current balance Decimal Yes Account balance
data[].Active Active status Boolean Yes true/false

ENDPOINT 2: Get Specific Account

URL: GET https://hml.ghubee.com/api/quickbooks/accounts/{account_id}/

  • Data input
Field Description Format Required Remarks
Token_Ghubee GHUBEE authentication token Authorization Header Yes Bearer token
access-token-quickbooks QuickBooks OAuth2 access token Custom Header Yes QuickBooks API authentication
account_id Account unique identifier URL Path Parameter Yes Numeric ID
realmId QuickBooks Company ID Query Parameter Yes Company identifier
minorversion QuickBooks API minor version Query Parameter No API version

Example:

GET https://hml.ghubee.com/api/quickbooks/accounts/123/?realmId=1234567890&minorversion=65
Authorization: Bearer token_ghubee
access-token-quickbooks: your_quickbooks_access_token
  • Data output
Field Description Format Required Remarks
status Response status String Yes Success / Error
message Response message String Yes Status description
data Account object Object Yes Single account record
data.Id Account ID String Yes Unique identifier
data.Name Account name String Yes Account display name
data.AccountType Account type String Yes Bank, Expense, Income, etc.
data.AccountSubType Account sub-type String Yes Detailed classification
data.CurrentBalance Current balance Decimal Yes Account balance
data.Active Active status Boolean Yes true/false

ENDPOINT 3: Get List of Purchases

URL: GET https://hml.ghubee.com/api/quickbooks/purchases/

  • Data input
Field Description Format Required Remarks
Token_Ghubee GHUBEE authentication token Authorization Header Yes Bearer token
access-token-quickbooks QuickBooks OAuth2 access token Custom Header Yes QuickBooks API authentication
realmId QuickBooks Company ID Query Parameter Yes Company identifier
filter SQL-like filter query Query Parameter No WHERE TxnDate > '2024-01-01'

Example:

GET https://hml.ghubee.com/api/quickbooks/purchases/?realmId=1234567890&filter=WHERE TxnDate > '2024-01-01'
Authorization: Bearer token_ghubee
access-token-quickbooks: your_quickbooks_access_token
  • Data output
Field Description Format Required Remarks
status Response status String Yes Success / Error
message Response message String Yes Status description
data Array of purchases Array Yes Purchase records
data[].Id Purchase ID String Yes Unique identifier
data[].SyncToken Sync token String Yes Concurrency control
data[].TotalAmt Total amount Decimal Yes Purchase total
data[].TxnDate Transaction date String Yes YYYY-MM-DD
data[].PaymentType Payment method String Yes Cash, CreditCard, Check
data[].AccountRef Account reference Object Yes Associated account
data[].Line Line items array Array Yes Purchase line items

ENDPOINT 4: Get Specific Purchase

URL: GET https://hml.ghubee.com/api/quickbooks/purchases/{purchase_id}/

  • Data input
Field Description Format Required Remarks
Token_Ghubee GHUBEE authentication token Authorization Header Yes Bearer token
access-token-quickbooks QuickBooks OAuth2 access token Custom Header Yes QuickBooks API authentication
purchase_id Purchase unique identifier URL Path Parameter Yes Numeric ID
realmId QuickBooks Company ID Query Parameter Yes Company identifier
minorversion QuickBooks API minor version Query Parameter No API version

Example:

GET https://hml.ghubee.com/api/quickbooks/purchases/456/?realmId=1234567890&minorversion=65
Authorization: Bearer token_ghubee
access-token-quickbooks: your_quickbooks_access_token
  • Data output
Field Description Format Required Remarks
status Response status String Yes Success / Error
message Response message String Yes Status description
data Purchase object Object Yes Single purchase record
data.Id Purchase ID String Yes Unique identifier
data.SyncToken Sync token String Yes Concurrency control
data.TotalAmt Total amount Decimal Yes Purchase total
data.TxnDate Transaction date String Yes YYYY-MM-DD
data.PaymentType Payment method String Yes Cash, CreditCard, Check
data.Line Line items array Array Yes Purchase line items

ENDPOINT 5: Create Purchase

URL: POST https://hml.ghubee.com/api/quickbooks/purchases/

  • Data input
Field Description Format Required Remarks
Token_Ghubee GHUBEE authentication token Authorization Header Yes Bearer token
access-token-quickbooks QuickBooks OAuth2 access token Custom Header Yes QuickBooks API authentication
realmId QuickBooks Company ID Query Parameter Yes Company identifier
minorversion QuickBooks API minor version Query Parameter No API version
payment_type Payment method JSON Body Yes Cash, CreditCard, Check
account.id Account reference ID JSON Body Yes QuickBooks account ID
account.name Account name JSON Body Yes Account display name
currency.value Currency code JSON Body Yes USD, BRL, etc.
currency.name Currency name JSON Body No Currency display name
lines Purchase line items array JSON Body Array Yes Array of line items
lines[].detail_type Line item type String Yes AccountBasedExpenseLineDetail
lines[].amount Line item amount Decimal Yes Item total
lines[].description Line item description String No Item description
lines[].line_num Line number Integer No Sequential line number
lines[].account_detail Account-based expense details JSON Object Yes Expense line details
account_detail.account.id Expense account ID String Yes Account for expense
account_detail.account.name Expense account name String Yes Account name
account_detail.tax_amount Tax amount Decimal No Tax for line item
account_detail.tax_inclusive_amount Tax inclusive amount Decimal No Amount including tax
account_detail.class.id Class ID String No QuickBooks class
account_detail.class.name Class name String No Class display name
account_detail.tax_code.value Tax code value String No Tax code identifier
account_detail.tax_code.name Tax code name String No Tax code display name
account_detail.markup_info Markup information JSON Object No Price markup details
markup_info.price_level.value Price level value String No Price level ID
markup_info.percent Markup percentage Decimal No Markup percent
markup_info.mark_up_income_account.value Markup income account String No Income account ID
account_detail.billable_status Billable status String No Billable/NotBillable/HasBeenBilled
account_detail.customer.id Customer ID String No Associated customer
account_detail.customer.name Customer name String No Customer display name
account_detail.project.value Project ID String No Project identifier
account_detail.project.name Project name String No Project display name

Example:

POST https://hml.ghubee.com/api/quickbooks/purchases/?realmId=1234567890&minorversion=65
Authorization: Bearer token_ghubee
access-token-quickbooks: your_quickbooks_access_token
Content-Type: application/json

{
"payment_type": "CreditCard",
"account": {
"id": "42",
"name": "Visa"
},
"currency": {
"value": "USD",
"name": "Dollar"
},
"lines": [
{
"detail_type": "AccountBasedExpenseLineDetail",
"amount": 100.0,
"account_detail": {
"account": {
"id": "13",
"name": "Meals and Entertainment"
},
"tax_amount": null,
"tax_inclusive_amount": null,
"class": {
"id": null,
"name": null
},
"tax_code": {
"value": null,
"name": null
},
"markup_info": {
"price_level": {
"value": null,
"name": null
},
"percent": null,
"mark_up_income_account": {
"value": null,
"name": null
}
},
"billable_status": null,
"customer": {
"id": null,
"name": null
},
"project": {
"value": null,
"name": null
}
},
"description": null,
"line_num": null
},
{
"detail_type": "AccountBasedExpenseLineDetail",
"amount": 100.0,
"account_detail": {
"account": {
"id": "13",
"name": "Meals and Entertainment"
},
"tax_amount": null,
"tax_inclusive_amount": null,
"class": {
"id": null,
"name": null
},
"tax_code": {
"value": null,
"name": null
},
"markup_info": {
"price_level": {
"value": null,
"name": null
},
"percent": null,
"mark_up_income_account": {
"value": null,
"name": null
}
},
"billable_status": null,
"customer": {
"id": null,
"name": null
},
"project": {
"value": null,
"name": null
}
},
"description": null,
"line_num": null
}
]
}

  • Data output
Field Description Format Required Remarks
status Response status String Yes Success / Error
message Response message String Yes Status description
data Created purchase object Object Yes New purchase record
data.Id Purchase ID String Yes Assigned by QuickBooks
data.SyncToken Sync token String Yes Initial value: "0"
data.TotalAmt Total amount Decimal Yes Purchase total
data.TxnDate Transaction date String Yes YYYY-MM-DD
data.Line Line items array Array Yes Created line items

ENDPOINT 6: Update Purchase

URL: PUT https://hml.ghubee.com/api/quickbooks/purchases/update

  • Data input
Field Description Format Required Remarks
Token_Ghubee GHUBEE authentication token Authorization Header Yes Bearer token
access-token-quickbooks QuickBooks OAuth2 access token Custom Header Yes QuickBooks API authentication
realmId QuickBooks Company ID Query Parameter Yes Company identifier
id Purchase ID JSON Body Yes Existing purchase ID
sync_token Sync token JSON Body Yes From previous read/create
credit Credit flag Boolean No true/false
total_amount Total purchase amount Decimal Yes Updated amount
txn_date Transaction date String Yes YYYY-MM-DD
payment_type Payment method String Yes Cash, CreditCard, Check
account.id Account reference ID JSON Body Yes QuickBooks account ID
account.name Account name JSON Body Yes Account display name
currency.value Currency code JSON Body Yes USD, BRL, etc.
lines Purchase line items JSON Body Array Yes Updated line items
lines[].id Line item ID String Conditional Required for existing lines
lines[].detail_type Line item type String Yes AccountBasedExpenseLineDetail
lines[].amount Line item amount Decimal Yes Item total
lines[].account_detail Account-based expense details JSON Object Yes Expense line details
Same account_detail fields as Create Purchase

Example:

PUT https://hml.ghubee.com/api/quickbooks/purchases/update?realmId=1234567890
Authorization: Bearer token_ghubee
access-token-quickbooks: your_quickbooks_access_token
Content-Type: application/json

{
"id": "172",
"payment_type": "CreditCard",
"sync_token": "0",
"credit": false,
"total_amount": 50.00,
"txn_date": "2025-07-22",
"account": {
"id": "42",
"name": "Visa"
},
"currency": {
"value": "USD",
"name": "Dollar"
},
"lines": [
{
"id": "1",
"detail_type": "AccountBasedExpenseLineDetail",
"amount": 100.0,
"account_detail": {
"account": {
"id": "13",
"name": "Meals and Entertainment"
},
"tax_amount": null,
"tax_inclusive_amount": null,
"class": {
"id": null,
"name": null
},
"tax_code": {
"value": null,
"name": null
},
"markup_info": {
"price_level": {
"value": null,
"name": null
},
"percent": null,
"mark_up_income_account": {
"value": null,
"name": null
}
},
"billable_status": null,
"customer": {
"id": null,
"name": null
},
"project": {
"value": null,
"name": null
}
},
"description": null,
"line_num": null
}
]
}

  • Data output
Field Description Format Required Remarks
status Response status String Yes Success / Error
message Response message String Yes Status description
data Updated purchase object Object Yes Modified purchase record
data.Id Purchase ID String Yes Same as input
data.SyncToken Sync token String Yes Incremented value
data.TotalAmt Total amount Decimal Yes Updated amount
data.TxnDate Transaction date String Yes Updated date

ENDPOINT 7: Get List of Vendors

URL: GET https://hml.ghubee.com/api/quickbooks/vendors/

  • Data input
Field Description Format Required Remarks
Token_Ghubee GHUBEE authentication token Authorization Header Yes Bearer token
access-token-quickbooks QuickBooks OAuth2 access token Custom Header Yes QuickBooks API authentication
realmId QuickBooks Company ID Query Parameter Yes Company identifier
filter SQL-like filter query Query Parameter No WHERE Active = true

Example:

GET https://hml.ghubee.com/api/quickbooks/vendors/?realmId=1234567890
Authorization: Bearer token_ghubee
access-token-quickbooks: your_quickbooks_access_token
  • Data output
Field Description Format Required Remarks
status Response status String Yes Success / Error
message Response message String Yes Status description
data Array of vendors Array Yes Vendor records
data[].Id Vendor ID String Yes Unique identifier
data[].DisplayName Display name String Yes Vendor display name
data[].CompanyName Company name String No Legal company name
data[].GivenName First name String No Contact first name
data[].FamilyName Last name String No Contact last name
data[].Active Active status Boolean Yes true/false

ENDPOINT 8: Get Specific Vendor

URL: GET https://hml.ghubee.com/api/quickbooks/vendors/{vendor_id}/

  • Data input
Field Description Format Required Remarks
Token_Ghubee GHUBEE authentication token Authorization Header Yes Bearer token
access-token-quickbooks QuickBooks OAuth2 access token Custom Header Yes QuickBooks API authentication
vendor_id Vendor unique identifier URL Path Parameter Yes Numeric ID
realmId QuickBooks Company ID Query Parameter Yes Company identifier

Example:

GET https://hml.ghubee.com/api/quickbooks/vendors/789/?realmId=1234567890
Authorization: Bearer token_ghubee
access-token-quickbooks: your_quickbooks_access_token
  • Data output
Field Description Format Required Remarks
status Response status String Yes Success / Error
message Response message String Yes Status description
data Vendor object Object Yes Single vendor record
data.Id Vendor ID String Yes Unique identifier
data.DisplayName Display name String Yes Vendor display name
data.CompanyName Company name String No Legal company name
data.BillAddr Billing address Object No Complete address
data.PrimaryPhone Phone number Object No Contact phone
data.PrimaryEmailAddr Email address Object No Contact email

ENDPOINT 9: Create Vendor

URL: POST https://hml.ghubee.com/api/quickbooks/vendors/

  • Data input
Field Description Format Required Remarks
Token_Ghubee GHUBEE authentication token Authorization Header Yes Bearer token
access-token-quickbooks QuickBooks OAuth2 access token Custom Header Yes QuickBooks API authentication
realmId QuickBooks Company ID Query Parameter Yes Company identifier
display_name Vendor display name JSON Body Yes Must be unique
account_num Account number JSON Body No Vendor account number
title Title/Prefix JSON Body No Mr., Ms., Dr., etc.
given_name First name JSON Body No Contact first name
family_name Last name JSON Body No Contact last name
suffix Suffix JSON Body No Jr., Sr., III, etc.
company_name Company name JSON Body No Vendor company name
print_on_check_name Name to print on checks JSON Body No Check payee name
tax_identifier Tax ID / EIN JSON Body No Federal tax identifier
bill_address.line1 Address line 1 JSON Body No Street address or company name
bill_address.line2 Address line 2 JSON Body No Additional address info
bill_address.line3 Address line 3 JSON Body No Additional address info
bill_address.city City JSON Body No City name
bill_address.state State/Province code JSON Body No State abbreviation
bill_address.country Country JSON Body No Country name
bill_address.postal Postal code JSON Body No ZIP/Postal code
bill_address.latitude Latitude coordinate JSON Body No Decimal degrees
bill_address.longitude Longitude coordinate JSON Body No Decimal degrees
phone.number Primary phone number JSON Body No Contact phone
mobile.number Mobile phone number JSON Body No Mobile contact
email.address Email address JSON Body No Primary email
website.uri Website URL JSON Body No Company website

Example:

POST https://hml.ghubee.com/api/quickbooks/vendors/?realmId=1234567890&minorversion=65
Authorization: Bearer token_ghubee
access-token-quickbooks: your_quickbooks_access_token
Content-Type: application/json

{
"display_name": "Teste07",
"account_num": "35372649",
"title": "Ms.",
"given_name": "Dianne",
"family_name": "Bradley",
"tax_identifier": "99-5688293",
"suffix": "Sr.",
"company_name": "Dianne's Auto Shop",
"print_on_check_name": "Dianne's Auto Shop",
"bill_address": {
"line1": "Dianne's Auto Shop",
"line2": "Dianne Bradley",
"line3": "29834 Mustang Ave.",
"city": "Millbrae",
"state": "CA",
"country": "U.S.A",
"postal": "94030",
"latitude": "43.8249453",
"longitude": "-79.2639122"
},
"phone": {
"number": "(650) 555-2342"
},
"mobile": {
"number": "(650) 555-2000"
},
"email": {
"address": "[email protected]"
},
"website": {
"uri": "http://DiannesAutoShop.com"
}
}

  • Data output
Field Description Format Required Remarks
status Response status String Yes Success / Error
message Response message String Yes Status description
data Created vendor object Object Yes New vendor record
data.Id Vendor ID String Yes Assigned by QuickBooks
data.SyncToken Sync token String Yes Initial value: "0"
data.DisplayName Display name String Yes As provided
data.Active Active status Boolean Yes Default: true

ENDPOINT 10: Update Vendor

URL: PUT https://hml.ghubee.com/api/quickbooks/vendors/update

  • Data input
Field Description Format Required Remarks
Token_Ghubee GHUBEE authentication token Authorization Header Yes Bearer token
access-token-quickbooks QuickBooks OAuth2 access token Custom Header Yes QuickBooks API authentication
realmId QuickBooks Company ID Query Parameter Yes Company identifier
id Vendor ID JSON Body Yes Existing vendor ID
sync_token Sync token JSON Body Yes From previous read/create
display_name Vendor display name JSON Body Yes Updated name (must be unique)
Same fields as Create Vendor

Example:

PUT https://hml.ghubee.com/api/quickbooks/vendors/update?realmId=1234567890
Authorization: Bearer token_ghubee
access-token-quickbooks: your_quickbooks_access_token
Content-Type: application/json

{
"id": "65",
"sync_token": "0",
"display_name": "Teste55",
"account_num": "35372649",
"title": "Ms.",
"given_name": "Dianne",
"family_name": "Bradley",
"tax_identifier": "99-5688293",
"suffix": "Sr.",
"company_name": "Dianne's Auto Shop",
"print_on_check_name": "Dianne's Auto Shop",
"bill_address": {
"line1": "Dianne's Auto Shop",
"line2": "Dianne Bradley",
"line3": "29834 Mustang Ave.",
"city": "Millbrae",
"state": "CA",
"country": "U.S.A",
"postal": "94030",
"latitude": "43.8249453",
"longitude": "-79.2639122"
},
"phone": {
"number": "(650) 555-2342"
},
"mobile": {
"number": "(650) 555-2000"
},
"email": {
"address": "[email protected]"
},
"website": {
"uri": "http://DiannesAutoShop.com"
}
}

  • Data output
Field Description Format Required Remarks
status Response status String Yes Success / Error
message Response message String Yes Status description
data Updated vendor object Object Yes Modified vendor record
data.Id Vendor ID String Yes Same as input
data.SyncToken Sync token String Yes Incremented value
data.DisplayName Display name String Yes Updated name

  • Error messages

 Identification and description of error message types.

Situation Message Code Message description
Unauthenticated { "status": "Error", "message": "Unauthenticated", "data": null } Authentication error with GHUBEE. Bearer token missing or invalid.
QuickBooks Authentication Error { "status": "Error", "message": "Error: [detail] QuickBooks" } QuickBooks OAuth2 access token is invalid or expired.
QuickBooks Validation Error { "status": "Error", "message": "Error QuickBooks: [message]" } Validation error in request data sent to QuickBooks.
Missing realmId { "status": "Error", "message": "realmId is required" } QuickBooks Company Realm ID not provided in query parameters.
Invalid JSON Response { "status": "Error", "message": "Invalid JSON response" } QuickBooks API returned invalid JSON data.
cURL Error { "status": "Error", "message": "cURL error: [error details]" } Communication error with QuickBooks API.

  

  • ENDPOINT DESCRIPTIONS
Endpoint Method Description
/quickbooks/accounts/ GET Get List of Accounts: Retrieves all chart of accounts from QuickBooks Online, including account details such as name, type, sub-type, and current balance. Supports SQL-like filtering and automatic pagination for large datasets.
/quickbooks/accounts/{account_id}/ GET Get Specific Account: Retrieves detailed information for a single account by its unique ID, including all account properties, balance, and metadata from QuickBooks Online.
/quickbooks/purchases/ GET Get List of Purchases: Retrieves all purchase transactions from QuickBooks Online with comprehensive details including line items, amounts, payment types, and associated accounts. Supports advanced filtering with WHERE clauses and automatic pagination.
/quickbooks/purchases/{purchase_id}/ GET Get Specific Purchase: Retrieves complete details for a single purchase transaction by its unique ID, including all line items, expense details, tax information, and payment details.
/quickbooks/purchases/ POST Create Purchase: Creates a new purchase transaction in QuickBooks Online with line items, expense details, payment information, and account associations. Validates required fields and returns the created purchase with assigned ID.
/quickbooks/purchases/update PUT Update Purchase: Updates an existing purchase transaction in QuickBooks Online. Requires purchase ID and sync token for concurrency control. Allows modification of amounts, dates, line items, and other purchase details.
/quickbooks/vendors/ GET Get List of Vendors: Retrieves all vendor records from QuickBooks Online including company information, contact details, billing addresses, and tax identifiers. Supports SQL-like filtering and automatic pagination for large vendor lists.
/quickbooks/vendors/{vendor_id}/ GET Get Specific Vendor: Retrieves complete information for a single vendor by its unique ID, including all contact details, addresses, phone numbers, email addresses, and associated metadata.
/quickbooks/vendors/ POST Create Vendor: Creates a new vendor record in QuickBooks Online with company information, contact details, billing address, tax identifier, and communication preferences. Returns the created vendor with assigned ID.
/quickbooks/vendors/update PUT Update Vendor: Updates an existing vendor record in QuickBooks Online. Requires vendor ID and sync token for concurrency control. Allows modification of company information, contact details, addresses, and other vendor properties.