---
title: "Retrieve a budget summary report"
method: GET
path: "/quickbooks-desktop/reports/budget-summary"
---

# Retrieve a budget summary report

`GET /quickbooks-desktop/reports/budget-summary`

Retrieves a QuickBooks Desktop budget summary report for Balance Sheet or Profit and Loss budgets, including budget overview, budget versus actual, and performance views. This report compares budgeted amounts against actual activity for a fiscal year and budget criterion; the target budget must already exist in QuickBooks Desktop.

## Query parameters

- `reportType` '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', required — The budget summary report type to retrieve.
- `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.
- `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.
- `reportDateMacro` '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' — A QuickBooks Desktop relative date macro for the report period. Choose either `reportDateMacro` or `reportDateFrom`/`reportDateTo`.
- `fiscalYear` number, required — The fiscal year of the QuickBooks budget. QuickBooks Desktop returns the full fiscal year for prior years and year-to-date data for the current fiscal year.
- `budgetCriterion` 'accounts' | 'accounts_and_classes' | 'accounts_and_customers' — What the budget covers, such as accounts, accounts and classes, or accounts and customers.
- `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`.
- `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`.
- `summarizeColumnsBy` 'class' | 'customer' | 'date' — How QuickBooks Desktop calculates budget report columns and labels column headers.
- `summarizeRowsBy` 'account' | 'class' | 'customer' — How QuickBooks Desktop labels budget report rows.

## Headers

- `Conductor-End-User-Id` string, required — The ID of the End-User to receive this request.

## Response `200`

Returns the requested budget summary report.

- QbdReport
  - `objectType` 'qbd_report', required — The type of object. This value is always `"qbd_report"`.
  - `category` 'general_summary' | 'general_detail' | 'aging' | 'budget_summary' | 'job' | 'time' | 'custom_detail' | 'custom_summary' | 'payroll_detail' | 'payroll_summary', required — The report category.
  - `reportType` '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', required — The report type.
  - `title` string, nullable, required — The report title.
  - `subtitle` string, nullable, required — The report subtitle.
  - `basis` 'accrual' | 'cash' | 'none', nullable, required — The accounting basis.
  - `rowCount` number, nullable, required — The number of rows in the report.
  - `columnCount` number, nullable, required — The number of columns in the report.
  - `columnTitleRowCount` number, nullable, required — The number of title rows for the report columns.
  - `columns` object[], required — The report columns, in display order. Use each column's `columnId` to match row cells to columns.
    - `columnId` string, required — The report column identifier. QuickBooks Desktop numbers columns from left to right, starting at 1. Use this value to match row cells to columns.
    - `columnType` string, required — The report column type, describing the business meaning of the column, such as `date`, `amount`, or `transaction_type`.
    - `dataType` string, nullable, required — The raw value data type for this column, such as `string`, `amount`, or `date`. This is `null` if QuickBooks Desktop does not provide a data type.
    - `titles` object[], required — The column title cells. Reports can use multiple title rows.
      - `rowNumber` number, required — The one-based title row number. Reports can have multiple title rows.
      - `value` string, nullable, required — The title text for this column title row. This is `null` if QuickBooks Desktop does not provide one.
  - `rows` union[], required — The report rows, in display order. Rows can be text rows, detail data rows, subtotal rows, or total rows.
    - union
      - object
        - `kind` 'text', required — The row kind. This value is always `"text"`.
        - `rowNumber` number, required — The one-based row number from the report.
        - `text` string, nullable, required — The text row value. Text rows are mainly used for headings. This is `null` if QuickBooks Desktop does not provide one.
      - object
        - `kind` 'data', required — The row kind. This value is always `"data"`.
        - `rowNumber` number, required — The one-based row number from the report.
        - `rowDescriptor` object, nullable, required — The row-level descriptor provided by QuickBooks Desktop. This is separate from the row's table values in `cells` and is `null` when QuickBooks Desktop does not provide one.
          - `type` string, nullable, required — The kind of row-level descriptor, such as `account`, `customer`, or `vendor`. This is `null` if QuickBooks Desktop does not provide one.
          - `value` string, nullable, required — The row-level descriptor value. This can differ from the first cell value and is `null` if QuickBooks Desktop does not provide one.
        - `cells` object[], required — The cells in this report row. Report rows are sparse, so cells appear only for columns where QuickBooks Desktop returned a value.
          - `columnId` string, required — The column identifier for this cell. This matches a column's `columnId` and refers to the column's left-to-right position in the report.
          - `value` string, nullable, required — The cell value as a QuickBooks Desktop-formatted string. This is `null` if QuickBooks Desktop does not provide a value for the cell.
          - `dataType` string, nullable, required — The value data type for this cell. If QuickBooks Desktop omits the cell data type, this uses the matching column's `dataType` when available.
      - object
        - `kind` 'subtotal', required — The row kind. This value is always `"subtotal"`.
        - `rowNumber` number, required — The one-based row number from the report.
        - `rowDescriptor` object, nullable, required — The row-level descriptor provided by QuickBooks Desktop. This is separate from the row's table values in `cells` and is `null` when QuickBooks Desktop does not provide one.
          - `type` string, nullable, required — The kind of row-level descriptor, such as `account`, `customer`, or `vendor`. This is `null` if QuickBooks Desktop does not provide one.
          - `value` string, nullable, required — The row-level descriptor value. This can differ from the first cell value and is `null` if QuickBooks Desktop does not provide one.
        - `cells` object[], required — The cells in this report row. Report rows are sparse, so cells appear only for columns where QuickBooks Desktop returned a value.
          - `columnId` string, required — The column identifier for this cell. This matches a column's `columnId` and refers to the column's left-to-right position in the report.
          - `value` string, nullable, required — The cell value as a QuickBooks Desktop-formatted string. This is `null` if QuickBooks Desktop does not provide a value for the cell.
          - `dataType` string, nullable, required — The value data type for this cell. If QuickBooks Desktop omits the cell data type, this uses the matching column's `dataType` when available.
      - object
        - `kind` 'total', required — The row kind. This value is always `"total"`.
        - `rowNumber` number, required — The one-based row number from the report.
        - `rowDescriptor` object, nullable, required — The row-level descriptor provided by QuickBooks Desktop. This is separate from the row's table values in `cells` and is `null` when QuickBooks Desktop does not provide one.
          - `type` string, nullable, required — The kind of row-level descriptor, such as `account`, `customer`, or `vendor`. This is `null` if QuickBooks Desktop does not provide one.
          - `value` string, nullable, required — The row-level descriptor value. This can differ from the first cell value and is `null` if QuickBooks Desktop does not provide one.
        - `cells` object[], required — The cells in this report row. Report rows are sparse, so cells appear only for columns where QuickBooks Desktop returned a value.
          - `columnId` string, required — The column identifier for this cell. This matches a column's `columnId` and refers to the column's left-to-right position in the report.
          - `value` string, nullable, required — The cell value as a QuickBooks Desktop-formatted string. This is `null` if QuickBooks Desktop does not provide a value for the cell.
          - `dataType` string, nullable, required — The value data type for this cell. If QuickBooks Desktop omits the cell data type, this uses the matching column's `dataType` when available.

---

[API](https://skmtc.net/conductor-is/apis/conductor-api.md) · [All operations](https://skmtc.net/conductor-is/apis/conductor-api/llms.txt) · [OpenAPI document](https://skmtc-service-staging.skmtc.workers.dev/v1/apis/conductor-is/conductor-api/revisions/0b07b3ebe160/schema)
