Skip to main content
GET
/
quickbooks-desktop
/
reports
/
custom-detail
JavaScript
import Conductor from 'conductor-node';

const conductor = new Conductor({
  apiKey: process.env['CONDUCTOR_SECRET_KEY'], // This is the default and can be omitted
});

const report = await conductor.qbd.reports.customDetail({
  includeColumns: ['date', 'transaction_type', 'amount'],
  summarizeRowsBy: 'account',
  conductorEndUserId: 'end_usr_1234567abcdefg',
});

console.log(report.basis);
{
  "objectType": "qbd_report",
  "category": "general_summary",
  "reportType": "trial_balance",
  "title": "Trial Balance",
  "subtitle": "As of February 1, 2025",
  "basis": "accrual",
  "rowCount": 7,
  "columnCount": 3,
  "columnTitleRowCount": 2,
  "columns": [
    {
      "columnId": "<string>",
      "columnType": "<string>",
      "dataType": "<string>",
      "titles": [
        {
          "rowNumber": 123,
          "value": "<string>"
        }
      ]
    }
  ],
  "rows": [
    {
      "kind": "<string>",
      "rowNumber": 123,
      "text": "<string>"
    }
  ]
}

Authorizations

Authorization
string
header
required

Your Conductor secret key using Bearer auth (e.g., "Authorization: Bearer {{YOUR_SECRET_KEY}}").

Headers

Conductor-End-User-Id
string
required

The ID of the End-User to receive this request.

Example:

"end_usr_1234567abcdefg"

Query Parameters

reportType
enum<string>
default:custom_transaction_detail

The custom detail report type to retrieve. This endpoint supports only custom_transaction_detail, so this parameter is optional and defaults to custom_transaction_detail.

Available options:
custom_transaction_detail
Example:

"custom_transaction_detail"

reportDateFrom
string<date>

Filter report rows dated on or after this date, in ISO 8601 format (YYYY-MM-DD). Choose either reportDateMacro or reportDateFrom/reportDateTo. If you omit reportDateFrom, reportDateTo, and reportDateMacro, QuickBooks Desktop uses the current fiscal year to date.

Example:

"2025-01-01"

reportDateTo
string<date>

Filter report rows dated on or before this date, in ISO 8601 format (YYYY-MM-DD). Choose either reportDateMacro or reportDateFrom/reportDateTo. If you omit reportDateFrom, reportDateTo, and reportDateMacro, QuickBooks Desktop uses the current fiscal year to date.

Example:

"2025-02-01"

reportDateMacro
enum<string>

A QuickBooks Desktop relative date macro for the report period. Choose either reportDateMacro or reportDateFrom/reportDateTo.

Available options:
all,
today,
this_week,
this_week_to_date,
this_month,
this_month_to_date,
this_quarter,
this_quarter_to_date,
this_year,
this_year_to_date,
yesterday,
last_week,
last_week_to_date,
last_month,
last_month_to_date,
last_quarter,
last_quarter_to_date,
last_year,
last_year_to_date,
next_week,
next_four_weeks,
next_month,
next_quarter,
next_year
Example:

"this_year_to_date"

accountType
enum<string>

Filter report rows by account type. Choose only one account filter per request: accountType, accountIds, or accountFullNames.

Available options:
accounts_payable,
accounts_receivable,
allowed_for_1099,
ap_and_sales_tax,
ap_or_credit_card,
ar_and_ap,
asset,
balance_sheet,
bank,
bank_and_ar_and_ap_and_uf,
bank_and_uf,
cost_of_sales,
credit_card,
current_asset,
current_asset_and_expense,
current_liability,
equity,
equity_and_income_and_expense,
expense_and_other_expense,
fixed_asset,
income_and_expense,
income_and_other_income,
liability,
liability_and_equity,
long_term_liability,
non_posting,
ordinary_expense,
ordinary_income,
ordinary_income_and_cogs,
ordinary_income_and_expense,
other_asset,
other_current_asset,
other_current_liability,
other_expense,
other_income,
other_income_or_expense
Example:

"bank"

accountIds
string[]

Filter report rows by QuickBooks-assigned account IDs. Accepts one or more account IDs. Choose only one account filter per request: accountType, accountIds, or accountFullNames.

Example:
["80000001-1234567890"]
accountFullNames
string[]

Filter report rows by account fullName values, case-insensitive. A fullName is a fully qualified QuickBooks name formed by joining parent object names with the object's name using colons. Accepts one or more account full names. Choose only one account filter per request: accountType, accountIds, or accountFullNames.

Example:
["Corporate:Accounts-Payable"]
entityType
enum<string>

Filter report rows by entity type, such as customer, vendor, employee, or other name. Choose only one entity filter per request: entityType, entityIds, or entityFullNames.

Available options:
customer,
employee,
other_name,
vendor
Example:

"customer"

entityIds
string[]

Filter report rows by QuickBooks-assigned entity IDs. Accepts one or more entity IDs. Choose only one entity filter per request: entityType, entityIds, or entityFullNames.

Example:
["80000001-1234567890"]
entityFullNames
string[]

Filter report rows by entity fullName values, case-insensitive. A fullName is a fully qualified QuickBooks name formed by joining parent object names with the object's name using colons. Accepts one or more entity full names. Choose only one entity filter per request: entityType, entityIds, or entityFullNames.

Example:
["ABC Corporation:Website Redesign Project"]
itemType
enum<string>

Filter report rows by item type. Choose only one item filter per request: itemType, itemIds, or itemFullNames.

Available options:
all_except_fixed_asset,
assembly,
discount,
fixed_asset,
inventory,
inventory_and_assembly,
non_inventory,
other_charge,
payment,
sales,
sales_tax,
service
Example:

"inventory"

itemIds
string[]

Filter report rows by QuickBooks-assigned item IDs. Accepts one or more item IDs. Choose only one item filter per request: itemType, itemIds, or itemFullNames.

Example:
["80000001-1234567890"]
itemFullNames
string[]

Filter report rows by item fullName values, case-insensitive. A fullName is a fully qualified QuickBooks name formed by joining parent object names with the object's name using colons. Accepts one or more item full names. Choose only one item filter per request: itemType, itemIds, or itemFullNames.

Example:
["Services:Consulting"]
classIds
string[]

Filter report rows by QuickBooks-assigned class IDs. Accepts one or more class IDs. Choose only one class filter per request: classIds or classFullNames.

Example:
["80000001-1234567890"]
classFullNames
string[]

Filter report rows by class fullName values, case-insensitive. A fullName is a fully qualified QuickBooks name formed by joining parent object names with the object's name using colons. Accepts one or more class full names. Choose only one class filter per request: classIds or classFullNames.

Example:
["Department:Marketing"]
transactionTypes
enum<string>[]

Filter report rows by transaction type. Accepts one or more transaction types.

Available options:
all,
ar_refund_credit_card,
bill,
bill_payment_check,
bill_payment_credit_card,
build_assembly,
charge,
check,
credit_card_charge,
credit_card_credit,
credit_memo,
deposit,
estimate,
inventory_adjustment,
invoice,
item_receipt,
journal_entry,
liability_adjustment,
paycheck,
payroll_liability_check,
purchase_order,
receive_payment,
sales_order,
sales_receipt,
sales_tax_payment_check,
transfer,
vendor_credit,
ytd_adjustment
Example:
["invoice", "sales_receipt"]
detailLevel
enum<string>
default:all

The report detail level to include. Use all for all rows, all_except_summary to omit summary rows, or summary_only to return only summary rows.

Available options:
all,
all_except_summary,
summary_only
Example:

"all_except_summary"

postingStatus
enum<string>

Filter report rows that are posting, non-posting, or either. Posting status refers to whether QuickBooks records the transaction in an account register.

Available options:
either,
non_posting,
posting
Example:

"posting"

updatedAfter
string<date>

Filter report rows updated on or after this date, in ISO 8601 format (YYYY-MM-DD). Choose either updatedDateMacro or updatedAfter/updatedBefore.

Example:

"2025-01-01"

updatedBefore
string<date>

Filter report rows updated on or before this date, in ISO 8601 format (YYYY-MM-DD). Choose either updatedDateMacro or updatedAfter/updatedBefore.

Example:

"2025-02-01"

updatedDateMacro
enum<string>

A QuickBooks Desktop relative updated-date macro. Choose either updatedDateMacro or updatedAfter/updatedBefore.

Available options:
all,
today,
this_week,
this_week_to_date,
this_month,
this_month_to_date,
this_quarter,
this_quarter_to_date,
this_year,
this_year_to_date,
yesterday,
last_week,
last_week_to_date,
last_month,
last_month_to_date,
last_quarter,
last_quarter_to_date,
last_year,
last_year_to_date,
next_week,
next_four_weeks,
next_month,
next_quarter,
next_year
Example:

"this_month_to_date"

accountsToInclude
enum<string>

Whether to include all accounts or only accounts in use.

Available options:
all,
in_use
Example:

"all"

openBalanceAsOf
enum<string>
default:today

The date through which QuickBooks Desktop calculates open balance information.

Available options:
report_end_date,
today
Example:

"report_end_date"

summarizeRowsBy
enum<string>
required

How QuickBooks Desktop calculates report data and labels report rows.

Available options:
account,
balance_sheet,
class,
customer,
customer_type,
day,
employee,
four_week,
half_month,
income_statement,
item_detail,
item_type,
month,
payee,
payment_method,
payroll_item_detail,
payroll_ytd_detail,
quarter,
sales_representative,
sales_tax_code,
shipping_method,
tax_line,
terms,
total_only,
two_week,
vendor,
vendor_type,
week,
year
Example:

"account"

includeColumns
enum<string>[]
required

The report columns to include, by column type. Accepts one or more columns.

IMPORTANT: When this parameter is present, QuickBooks Desktop omits its default report columns unless you include them here.

Available options:
account,
aging,
amount,
amount_difference,
average_cost,
billed_date,
billing_status,
calculated_amount,
class,
cleared_status,
cost_price,
credit,
currency,
date,
debit,
delivery_date,
due_date,
estimate_active,
exchange_rate,
shipment_origin,
income_subject_to_tax,
invoiced,
item,
description,
last_modified_by,
latest_or_prior_state,
memo,
updated_at,
name,
name_account_number,
name_address,
name_city,
name_contact,
name_email,
name_fax,
name_phone,
name_state,
name_postal_code,
open_balance,
original_amount,
paid_amount,
paid_status,
paid_through_date,
payment_method,
payroll_item,
purchase_order_number,
print_status,
progress_amount,
progress_percent,
quantity,
quantity_available,
quantity_on_hand,
quantity_on_sales_order,
received_quantity,
ref_number,
running_balance,
sales_representative,
sales_tax_code,
serial_or_lot_number,
shipping_date,
shipping_method,
source_name,
split_account,
ssn_or_tax_identification_number,
tax_line,
tax_table_version,
terms,
transaction_id,
transaction_number,
transaction_type,
unit_price,
user_edit,
value_on_hand,
wage_base,
wage_base_tips
Example:
["date", "transaction_type", "amount"]
basis
enum<string>
default:none

The accounting basis to use for the report. Use cash to base income and expenses on when money changes hands, accrual to base them on invoice and bill dates, or none to use the QuickBooks Desktop default for the report.

Available options:
accrual,
cash,
none
Example:

"accrual"

Response

200 - application/json

Returns the requested custom detail report.

objectType
string
required

The type of object. This value is always "qbd_report".

Allowed value: "qbd_report"
Example:

"qbd_report"

category
enum<string>
required

The report category.

Available options:
general_summary,
general_detail,
aging,
budget_summary,
job,
time,
custom_detail,
custom_summary,
payroll_detail,
payroll_summary
Example:

"general_summary"

reportType
enum<string>
required

The report type.

Available options:
balance_sheet_by_class,
balance_sheet_previous_year_comparison,
balance_sheet_standard,
balance_sheet_summary,
customer_balance_summary,
expense_by_vendor_summary,
income_by_customer_summary,
inventory_stock_status_by_item,
inventory_stock_status_by_vendor,
income_tax_summary,
inventory_valuation_summary,
inventory_valuation_summary_by_site,
lot_number_in_stock_by_site,
physical_inventory_worksheet,
profit_and_loss_by_class,
profit_and_loss_by_job,
profit_and_loss_previous_year_comparison,
profit_and_loss_standard,
profit_and_loss_ytd_comparison,
purchase_by_item_summary,
purchase_by_vendor_summary,
sales_by_customer_summary,
sales_by_item_summary,
sales_by_sales_representative_summary,
sales_tax_liability,
sales_tax_revenue_summary,
serial_number_in_stock_by_site,
trial_balance,
vendor_balance_summary,
1099_detail,
audit_trail,
balance_sheet_detail,
check_detail,
customer_balance_detail,
deposit_detail,
estimates_by_job,
expense_by_vendor_detail,
general_ledger,
income_by_customer_detail,
income_tax_detail,
inventory_valuation_detail,
job_progress_invoices_vs_estimates,
journal,
missing_checks,
open_invoices,
open_purchase_orders,
open_purchase_orders_by_job,
open_sales_order_by_customer,
open_sales_order_by_item,
pending_sales,
profit_and_loss_detail,
purchase_by_item_detail,
purchase_by_vendor_detail,
sales_by_customer_detail,
sales_by_item_detail,
sales_by_sales_representative_detail,
transaction_detail_by_account,
transaction_list_by_customer,
transaction_list_by_date,
transaction_list_by_vendor,
unpaid_bills_detail,
unbilled_costs_by_job,
vendor_balance_detail,
ap_aging_detail,
ap_aging_summary,
ar_aging_detail,
ar_aging_summary,
collections_report,
balance_sheet_budget_overview,
balance_sheet_budget_vs_actual,
profit_and_loss_budget_overview,
profit_and_loss_budget_performance,
profit_and_loss_budget_vs_actual,
item_estimates_vs_actuals,
item_profitability,
job_estimates_vs_actuals_detail,
job_estimates_vs_actuals_summary,
job_profitability_detail,
job_profitability_summary,
time_by_item,
time_by_job_detail,
time_by_job_summary,
time_by_name,
custom_transaction_detail,
custom_summary,
employee_state_taxes_detail,
payroll_item_detail,
payroll_review_detail,
payroll_transaction_detail,
payroll_transactions_by_payee,
employee_earnings_summary,
payroll_liability_balances,
payroll_summary
Example:

"trial_balance"

title
string | null
required

The report title.

Example:

"Trial Balance"

subtitle
string | null
required

The report subtitle.

Example:

"As of February 1, 2025"

basis
enum<string> | null
required

The accounting basis.

Available options:
accrual,
cash,
none
Example:

"accrual"

rowCount
number | null
required

The number of rows in the report.

Example:

7

columnCount
number | null
required

The number of columns in the report.

Example:

3

columnTitleRowCount
number | null
required

The number of title rows for the report columns.

Example:

2

columns
object[]
required

The report columns, in display order. Use each column's columnId to match row cells to columns.

rows
(Text row · object | Data row · object | Subtotal row · object | Total row · object)[]
required

The report rows, in display order. Rows can be text rows, detail data rows, subtotal rows, or total rows.