QuickBooks General Ledger API

The information below provides a reference on how to access the General Ledger Detail report from the QuickBooks Report Service. For each specified account, the report shows all the transactions that occurred in that account over a period of time. It includes the beginning balance and total for each account. NoteThe QuickBooks Reports API response for the General Ledger report hierarchy is broken in certain circumstances when there are sub accounts configured in the QuickBooks Online company.

Business capability
General Ledger Management BC-200.10

Operations 1

GET /v3/company/{realmID}/reports/GeneralLedger Query a report #

Documentation

Specifications

Schemas & Data

Other Resources

Work with this as data

Every API here is available over the APIs.io API and to AI agents over MCP.

MCP server

One button, every client — Claude, Cursor, VS Code and the rest.

https://apis.io/mcp

Tools for apis

7 MCP tools reach this
  • find_apisBrowse and filter every API in the catalog.
  • get_api_artifactsOne API's artifacts, grouped by type.
  • get_openapiThe primary OpenAPI for this API.
  • find_similar_apisAPIs that look like this one.
  • apis_io_searchSTART HERE — APIs, providers and tags for one query, each with its total.
  • resolveTurn a domain, URL or GitHub org into the provider it belongs to.
  • find_cohortsEvery scored population of providers in the catalog.
All 92 tools →

Call it yourself

curl for this page
This API
curl "https://apis.io/api/v1/apis/quickbooks:quickbooks-generalledger-api"
All apis
curl "https://apis.io/api/v1/apis?limit=25"

Calls without X-API-Key need no key. Calls with it need a paid plan — get a key.

Get an API key

Free tier, no form to fill in. Signing in shares your email address with us — we store it to create your key and to recognise you if you sign in with another provider. See our Privacy Policy and Terms.

A second provider on the same verified email joins the account you already have.

OpenAPI Specification

quickbooks-generalledger-api-openapi.yml Raw ↑
openapi: 3.2.0
info:
  title: QuickBooks Online Accounting General Ledger API
  version: '2026-11-05'
  description: QuickBooks Online Accounting API (v3). Entities, reports, query, batch and change-data-capture operations for a QuickBooks Online company (realmId). Generated from the JSON Intuit's API Explorer renders; Intuit publishes no OpenAPI document.
  termsOfService: https://developer.intuit.com/app/developer/qbo/docs/legal-agreements/intuit-terms-of-service-for-intuit-developer-services
  contact:
    name: Intuit Developer Support
    url: https://help.developer.intuit.com/s/
  x-generated-from: documentation
  x-generator: convert-intuit-api-explorer.py (deterministic conversion of the provider's API Explorer JSON; no model)
  x-source:
  - https://static.developer.intuit.com/JSONObjects/EntityJsonObject_v1.json
  - https://static.developer.intuit.com/JSONObjects/CodesModelsJsonObjects_v2.json
  - https://static.developer.intuit.com/JSONObjects/TocJsonObject_v1.json
  x-generated: '2026-11-05'
servers:
- url: https://quickbooks.api.intuit.com
  description: Production
- url: https://sandbox-quickbooks.api.intuit.com
  description: Sandbox
security:
- oauth2:
  - com.intuit.quickbooks.accounting
tags:
- name: GeneralLedger
  description: 'The information below provides a reference on how to access the General Ledger Detail report from the QuickBooks Report Service. For each specified account, the report shows all the transactions that occurred in that account over a period of time. It includes the beginning balance and total for each account.

    NoteThe QuickBooks Reports API response for the General Ledger report hierarchy is broken in certain circumstances when there are sub accounts configured in the QuickBooks Online company.'
paths:
  /v3/company/{realmID}/reports/GeneralLedger:
    get:
      operationId: queryGeneralLedger
      summary: Query a report
      tags:
      - GeneralLedger
      x-source: https://developer.intuit.com/app/developer/qbo/docs/api/accounting/all-entities/generalledger
      x-intuit-operation: GET /v3/company/<realmID>/reports/GeneralLedger?<name>=<value>[&...]
      x-intuit-parameters-note:
      - 'Query Parameters: Customize the information returned in the report by specifying query parameters with the query. Listed below are query parameters available for this report.'
      parameters:
      - name: realmID
        in: path
        required: true
        schema:
          type: string
      - name: customer
        in: query
        schema:
          type: string
        description: 'Filters report contents to include information for specified customers.

          Supported Values: One or more comma separated customer IDs as returned in the attribute, Customer.Id, of the Customer object response code.'
      - name: account
        in: query
        schema:
          type: string
        description: 'Filters report contents to include information for specified accounts.

          Supported Values: One or more comma separated account IDs as returned in the attribute, Account.Id, of the Account object response code.'
      - name: accounting_method
        in: query
        schema:
          type: string
        description: The accounting method used in the report. Supported Values:Cash, Accrual
      - name: source_account
        in: query
        schema:
          type: string
        description: 'Filters report contents to include information for specified source accounts.

          Supported Values: One or more comma separated account IDs as returned in the attribute, Account.Id, of the Account object response code.'
      - name: end_date
        in: query
        schema:
          type: string
        description: The end date of the report, in the format YYYY-MM-DD. start_date must be less than end_date. Use if you want the report to cover an explicit date range; otherwise, use date_macro to cover a standard report date range. If not specified value of date_macro is used
      - name: date_macro
        in: query
        schema:
          type: string
        description: 'Predefined date range. Use if you want the report to cover a standard report date range; otherwise, use the start_date and end_date to cover an explicit report date range.

          Supported Values: Today, Yesterday, This Week, Last Week, This Week-to-date, Last Week-to-date, Next Week, Next 4 Weeks, This Month, Last Month, This Month-to-date, Last Month-to-date, Next Month, This Fiscal Quarter, Last Fiscal Quarter, This Fiscal Quarter-to-date, Last Fiscal Quarter-to-date, Next Fiscal Quarter, This Fiscal Year, Last Fiscal Year, This Fiscal Year-to-date, Last Fiscal Year-to-date, Next Fiscal Year'
      - name: account_type
        in: query
        schema:
          type: string
        description: '(source_account_type) Account type from which transactions are included in the report.

          Supported Values: AccountsPayable, AccountsReceivable, Bank, CostOfGoodsSold, CreditCard, Equity, Expense, FixedAsset, Income, LongTermLiability, NonPosting, OtherAsset, OtherCurrentAsset, OtherCurrentLiability, OtherExpense, OtherIncome'
      - name: sort_by
        in: query
        schema:
          type: string
        description: The column type used in sorting report rows. Specify a column type as defined with the columns query parameter.
      - name: sort_order
        in: query
        schema:
          type: string
        description: 'The sort order.

          Supported Values: ascend, descend'
      - name: start_date
        in: query
        schema:
          type: string
        description: The start date of the report, in the format YYYY-MM-DD. start_date must be less than end_date. Use if you want the report to cover an explicit date range; otherwise, use date_macro to cover a standard report date range. If not specified value of date_macro is used
      - name: summarize_column_by
        in: query
        schema:
          type: string
        description: 'The criteria by which to group the report results.

          Supported Values: Total, Month, Week, Days, Quarter, Year, Customers, Vendors, Classes, Departments, Employees, ProductsAndServices'
      - name: department
        in: query
        schema:
          type: string
        description: 'Filters report contents to include information for specified departments if so configured in the company file.

          Supported Values: One or more comma separated department IDs as returned in the attribute, Department.Id of the Department object response code.'
      - name: vendor
        in: query
        schema:
          type: string
        description: 'Filters report contents to include information for specified vendors.

          Supported Values: One or more comma separated vendor IDs as returned in the attribute, Vendor.Id, of the Vendor object response code.'
      - name: class
        in: query
        schema:
          type: string
        description: "Filters report contents to include information for specified classes if so configured in the company file. \nSupported Values: One or more comma separated class IDs as returned in the attribute, Class.Id, of the Class entity response code."
      - name: columns
        in: query
        schema:
          type: string
        description: "Column types to be shown in the report.\n Supported Values: account_name, chk_print_state, create_by, create_date, cust_name, doc_num*, emp_name, inv_date, is_adj*, is_ap_paid, is_ar_paid, is_cleared, item_name, last_mod_by, last_mod_date, memo*, name*, quantity, rate, split_acc*, tx_date*, txn_type*, vend_name.\nAdditional columns when sales tax enabled: net_amount, tax_amount, tax_code. \n Additional columns when sales tax enabled: net_amount, tax_amount, tax_code \nAdditional columns when account numbering enabled: account_num.\nAdditional columns when class tracking enabled: klass_name*.\nAdditional columns when location tracking enabled: dept_name*. \n Multicurrency is enabled for the company if Preferences.MultiCurrencyEnabled is set to true. Read more about multicurrency support here. \nNonTracking status is enabled for the company if CompanyInfo.NameValue.Name.NonTracking is set to  true. Currently enabled for Canadian company, other locales can be added in the future."
      responses:
        '200':
          description: Returns the report object.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/reporttoplevel'
        '400':
          $ref: '#/components/responses/Fault'
        '401':
          $ref: '#/components/responses/Fault'
        '429':
          $ref: '#/components/responses/Throttled'
      security:
      - oauth2:
        - com.intuit.quickbooks.accounting
components:
  responses:
    Fault:
      description: Error. The body carries a Fault element (type ValidationFault, SystemFault, AuthenticationFault or AuthorizationFault) with one or more Error entries (code, element, Message, Detail).
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/IntuitFault'
    Throttled:
      description: 'HTTP 429: the request was throttled. Wait 60 seconds before retrying.'
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/IntuitFault'
  schemas:
    IntuitFault:
      type: object
      properties:
        Fault:
          type: object
          properties:
            type:
              type: string
              enum:
              - ValidationFault
              - SystemFault
              - AuthenticationFault
              - AuthorizationFault
            Error:
              type: array
              items:
                type: object
                properties:
                  code:
                    type: string
                  element:
                    type: string
                  Message:
                    type: string
                  Detail:
                    type: string
        time:
          type: string
          format: date-time
    reporttoplevel:
      type: object
      title: reporttoplevel
      properties:
        Header:
          description: The report header.
        Rows:
          description: Top level container holding information for report rows.
        Columns:
          description: Top level container holding information for report columns or subcolumns.
  securitySchemes:
    oauth2:
      type: oauth2
      description: 'Intuit OAuth 2.0 (authorization code). Discovery: https://developer.api.intuit.com/.well-known/openid_configuration'
      flows:
        authorizationCode:
          authorizationUrl: https://appcenter.intuit.com/connect/oauth2
          tokenUrl: https://oauth.platform.intuit.com/oauth2/v1/tokens/bearer
          refreshUrl: https://oauth.platform.intuit.com/oauth2/v1/tokens/bearer
          scopes:
            com.intuit.quickbooks.accounting: Grants access to the QuickBooks Online Accounting API, which focuses on accounting data.
            com.intuit.quickbooks.payment: Grants access to the QuickBooks Payments API, which focuses on payments processing.
            openid: Grants access to OpenID Connect features.
            profile: User's given and family names info
            email: User's email address
            phone: User's phone number
            address: User's physical address
x-generated-from: documentation
x-provenance:
  method: generated
  generated: '2026-11-05'
  source: https://developer.intuit.com/app/developer/qbo/docs/api/accounting/all-entities/account
  note: Converted from the JSON the developer.intuit.com API Explorer loads (static.developer.intuit.com/JSONObjects). Intuit publishes no OpenAPI document; this is a faithful machine transformation of its own reference data, graded as generated.