> ## Documentation Index
> Fetch the complete documentation index at: https://docs.conductor.is/llms.txt
> Use this file to discover all available pages before exploring further.

# Reports

> How to fetch QuickBooks Desktop reports via Conductor's passthrough endpoint.

export const Image = ({src, alt, width, align = "center", noShadow = false, noBorder = false, noZoom = false}) => <img src={`https://mintlify.s3-us-west-1.amazonaws.com/conductor${src}`} alt={alt} style={{
  width: width
}} noZoom={noZoom} className={`rounded-xl ${align === "center" ? "mx-auto" : ""} ${!noBorder ? "border border-gray-200 dark:border-0" : ""} ${!noShadow ? "shadow-md dark:shadow-none" : ""}`} />;

QuickBooks Desktop "reports" are a unique data type that is less commonly used than other QuickBooks Desktop features. For this reason, Conductor’s fully typed API does not yet support the Reports API directly, but **reports are fully accessible via the Conductor passthrough endpoint**.

1. To use the [passthrough endpoint](/api-ref/qbd/utilities/passthrough), see the examples to the right. You'll provide a JSON object using QuickBooks Desktop's native field names and structure, and receive a JSON object as a response. The response shapes the data as a table with `rows` and `columns`.

2. To determine the correct names and structure to use for your request input, reference the official QuickBooks Desktop SDK documentation as follows:

   1. Visit [Intuit's official QuickBooks Desktop SDK docs site](https://developer.intuit.com/app/developer/qbdesktop/docs/api-reference/qbdesktop).
   2. Search the page for "report" to find the various report types in the sidebar. For example, see the documentation for the [`GeneralSummaryReportQuery`](https://developer.intuit.com/app/developer/qbdesktop/docs/api-reference/qbdesktop/generalsummaryreportquery) report type used in the example to the right.
   3. Once on the page for the report type you want to use, click the `XMLOps` tab to more easily see the correct names and structure to use for your request input and the expected response fields.

      <Image src="/images/reports/qbd-reports-docs.png" alt="Intuit Reports XMLOps reference page" width="900px" />

The example to the right shows how to use the Conductor passthrough endpoint to request QuickBooks Desktop's `GeneralSummaryReportQuery` report type.

<Tip>
  You can swap `GeneralSummaryReportType` with any supported value listed on the XMLOps
  tab (e.g., `BalanceSheetStandard`, `ProfitAndLossStandard`, etc.).
</Tip>

While the passthrough route requires more manual configuration than our native endpoints, once configured, it provides a reliable way to access all QuickBooks Desktop reports via Conductor.

<RequestExample>
  ```ts Node.js theme={"system"}
  import Conductor from "conductor-node";

  const conductor = new Conductor({ apiKey: "sk_conductor_..." });
  const CONDUCTOR_END_USER_ID = "end_usr_...";

  async function main() {
    const report = await conductor.endUsers.passthrough(
      CONDUCTOR_END_USER_ID,
      "quickbooks_desktop",
      {
        GeneralSummaryReportQueryRq: {
          GeneralSummaryReportType: "TrialBalance",
        },
      },
    );

    console.log(JSON.stringify(report, null, 2));
  }

  main();
  ```

  ```py Python theme={"system"}
  from conductor import Conductor

  conductor = Conductor(api_key="sk_conductor_...")
  CONDUCTOR_END_USER_ID = "end_usr_..."

  report = conductor.end_users.passthrough(
      conductor_end_user_id=CONDUCTOR_END_USER_ID,
      integration_slug="quickbooks_desktop",
      body={
          "GeneralSummaryReportQueryRq": {
              "GeneralSummaryReportType": "TrialBalance"
          }
      },
  )

  print(report)
  ```

  ```bash cURL theme={"system"}
  curl --request POST \
    --url "https://api.conductor.is/v1/end-users/${CONDUCTOR_END_USER_ID}/passthrough/quickbooks_desktop" \
    --header "Authorization: Bearer sk_conductor_..." \
    --header "Content-Type: application/json" \
    --data '{
      "GeneralSummaryReportQueryRq": {
        "GeneralSummaryReportType": "TrialBalance"
      }
    }'
  ```
</RequestExample>

<ResponseExample>
  ```json Response theme={"system"}
  {
    "GeneralSummaryReportQueryRs": {
      "ReportRet": {
        "ReportTitle": "Trial Balance",
        "ReportSubtitle": "As of June 19, 2025",
        "ReportBasis": "Accrual",
        "NumRows": 7,
        "NumColumns": 3,
        "ColDesc": {
          "ColTitle": [
            { "TitleRow": 1, "Value": "" },
            { "TitleRow": 2, "Value": "" }
          ],
          "ColTitle2": [
            { "ColType": "Label", "ColID": 1, "DataType": "STRTYPE" },
            { "ColType": "Amount", "ColID": 2, "DataType": "AMTTYPE" },
            { "ColType": "Amount", "ColID": 3, "DataType": "AMTTYPE" }
          ]
        },
        "ReportData": {
          "DataRow": [
            {
              "RowData": { "RowType": "account", "Value": "?" },
              "ColData": [
                { "ColID": 1, "Value": "?" },
                { "ColID": 2, "Value": "-100.00" }
              ],
              "RowNumber": 1
            },
            {
              "RowData": { "RowType": "account", "Value": "?" },
              "ColData": [
                { "ColID": 1, "Value": "?" },
                { "ColID": 2, "Value": "100.00" },
                { "ColID": 3, "Value": "" }
              ],
              "RowNumber": 2
            }
            // ...additional rows...
          ]
        }
      }
    }
  }
  ```
</ResponseExample>


Built with [Mintlify](https://mintlify.com).