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

# Retrieve a payroll summary report

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

Retrieves a QuickBooks Desktop payroll summary report, including payroll totals by employee, employee earnings by payroll item, and payroll liability balances. This report is useful for wage, tax, deduction, addition, employer contribution, and unpaid payroll liability reporting.

## Query parameters

- `reportType` 'employee_earnings_summary' | 'payroll_liability_balances' | 'payroll_summary', required — The payroll 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`.
- `accountType` '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' — Filter report rows by account type. Choose only one account filter per request: `accountType`, `accountIds`, or `accountFullNames`.
- `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`.
- `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`.
- `entityType` 'customer' | 'employee' | 'other_name' | 'vendor' — 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`.
- `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`.
- `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`.
- `itemType` 'all_except_fixed_asset' | 'assembly' | 'discount' | 'fixed_asset' | 'inventory' | 'inventory_and_assembly' | 'non_inventory' | 'other_charge' | 'payment' | 'sales' | 'sales_tax' | 'service' — Filter report rows by item type. Choose only one item filter per request: `itemType`, `itemIds`, or `itemFullNames`.
- `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`.
- `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`.
- `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`.
- `detailLevel` 'all' | 'all_except_summary' | 'summary_only' — 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.
- `postingStatus` 'either' | 'non_posting' | 'posting' — Filter report rows that are posting, non-posting, or either. Posting status refers to whether QuickBooks records the transaction in an account register.
- `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`.
- `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`.
- `updatedDateMacro` '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 updated-date macro. Choose either `updatedDateMacro` or `updatedAfter`/`updatedBefore`.
- `reportCalendar` 'calendar_year' | 'fiscal_year' | 'tax_year' — The type of year to use for the report.
- `rowsToReturn` 'active_only' | 'non_zero' | 'all' — Filters which report rows QuickBooks returns. Use `active_only` for active rows, `non_zero` for rows with non-zero values, or `all` for all rows.
- `columnsToReturn` 'active_only' | 'non_zero' | 'all' — Filters which report columns QuickBooks returns. Use `active_only` for active columns, `non_zero` for columns with non-zero values, or `all` for all columns.
- `summarizeColumnsBy` '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' | 'terms' | 'total_only' | 'two_week' | 'vendor' | 'vendor_type' | 'week' | 'year' — How QuickBooks Desktop calculates report data and labels report column headers.
- `includeSubcolumns` boolean — Whether to include subcolumns in the report. **NOTE**: QuickBooks Desktop may still omit subcolumns that it can easily compute from other returned values.

## Headers

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

## Response `200`

Returns the requested payroll 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)
