Retrieve a custom detail report
Retrieves a custom transaction detail report built from the row grouping, included columns, date period, and filters you request. This report is useful when no preset detail report exposes the transaction rows or report-only columns you need; QuickBooks Desktop does not choose default columns for this report.
Query parameters
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.
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.
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.
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.
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.
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.
A QuickBooks Desktop relative date macro for the report period. Choose either reportDateMacro or reportDateFrom/reportDateTo.
A QuickBooks Desktop relative date macro for the report period. Choose either reportDateMacro or reportDateFrom/reportDateTo.
Filter report rows by account type. Choose only one account filter per request: accountType, accountIds, or accountFullNames.
Filter report rows by account type. Choose only one account filter per request: accountType, accountIds, or accountFullNames.
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.
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.
[ "80000001-1234567890" ]
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.
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.
[ "Corporate:Accounts-Payable" ]
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.
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.
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.
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.
[ "80000001-1234567890" ]
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.
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.
[ "ABC Corporation:Website Redesign Project" ]
Filter report rows by item type. Choose only one item filter per request: itemType, itemIds, or itemFullNames.
Filter report rows by item type. Choose only one item filter per request: itemType, itemIds, or itemFullNames.
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.
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.
[ "80000001-1234567890" ]
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.
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.
[ "Services:Consulting" ]
Filter report rows by QuickBooks-assigned class IDs. Accepts one or more class IDs. Choose only one class filter per request: classIds or classFullNames.
Filter report rows by QuickBooks-assigned class IDs. Accepts one or more class IDs. Choose only one class filter per request: classIds or classFullNames.
[ "80000001-1234567890" ]
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.
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.
[ "Department:Marketing" ]
Filter report rows by transaction type. Accepts one or more transaction types.
Filter report rows by transaction type. Accepts one or more transaction types.
[ "invoice", "sales_receipt" ]
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.
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.
Filter report rows that are posting, non-posting, or either. Posting status refers to whether QuickBooks records the transaction in an account register.
Filter report rows that are posting, non-posting, or either. Posting status refers to whether QuickBooks records the transaction in an account register.
Filter report rows updated on or after this date, in ISO 8601 format (YYYY-MM-DD). Choose either updatedDateMacro or updatedAfter/updatedBefore.
Filter report rows updated on or after this date, in ISO 8601 format (YYYY-MM-DD). Choose either updatedDateMacro or updatedAfter/updatedBefore.
Filter report rows updated on or before this date, in ISO 8601 format (YYYY-MM-DD). Choose either updatedDateMacro or updatedAfter/updatedBefore.
Filter report rows updated on or before this date, in ISO 8601 format (YYYY-MM-DD). Choose either updatedDateMacro or updatedAfter/updatedBefore.
A QuickBooks Desktop relative updated-date macro. Choose either updatedDateMacro or updatedAfter/updatedBefore.
A QuickBooks Desktop relative updated-date macro. Choose either updatedDateMacro or updatedAfter/updatedBefore.
Whether to include all accounts or only accounts in use.
Whether to include all accounts or only accounts in use.
The date through which QuickBooks Desktop calculates open balance information.
The date through which QuickBooks Desktop calculates open balance information.
How QuickBooks Desktop calculates report data and labels report rows.
How QuickBooks Desktop calculates report data and labels report rows.
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.
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.
[ "date", "transaction_type", "amount" ]
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.
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.
Headers
The ID of the End-User to receive this request.
The ID of the End-User to receive this request.
Response
Returns the requested custom detail report.
Example response
{
"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
}