Receber por email
← Voltar para o catálogo

QuickBooks Online Reports

Use this skill when working with QuickBooks Online reports - generating Profit & Loss, Balance Sheet, Accounts Receivable Aging, Accounts Payable Aging, General Ledger, and other financial reports. Covers report parameters, date ranges, column customization, and MSP-specific financial analysis patterns like client profitability and aged receivables for collections.

31estrelas
Atualizado há 4 meses

Ver no GitHub ↗ Licença: Apache-2.0

Como adicionar

/plugin marketplace add wyre-technology/msp-claude-plugins

O comando exato pode variar conforme o repositório. Confira o README no GitHub.

Para o autor da skill

Cole no README do seu repo

Mostra que sua skill está catalogada na Skillteca, gera backlink e tráfego rastreável.

[![Skillteca](https://www.skillteca.com.br/api/badge/quickbooks-online-reports/svg)](https://www.skillteca.com.br/skills/quickbooks-online-reports)

Skills relacionadas

Ver todas de Documentos →

Alerta por categoria

Receba novas skills de Documentos toda segunda

1 email curto, só com as skills novas de Documentos. 4 minutos de leitura, sem spam, cancela com 1 clique.

Você confirma o email no primeiro envio. Sem spam. Cancela com 1 clique.

Ler descrição completa

QuickBooks Online Reports

Overview

QuickBooks Online provides a comprehensive set of financial reports accessible via the API. For MSPs, the most critical reports are Accounts Receivable Aging (tracking which clients owe money and how overdue), Profit & Loss (measuring overall and per-client profitability), Balance Sheet (financial position), and Accounts Payable Aging (tracking vendor obligations). Reports are read-only API calls that return structured data suitable for dashboards, alerts, and automated analysis.

Key Concepts

Report Categories

| Category | Reports | MSP Relevance | |----------|---------|---------------| | Profit & Loss | ProfitAndLoss, ProfitAndLossDetail | Revenue and expense by period | | Balance Sheet | BalanceSheet, BalanceSheetDetail | Financial position snapshot | | A/R Aging | AgedReceivables, AgedReceivableDetail | Client collections tracking | | A/P Aging | AgedPayables, AgedPayableDetail | Vendor payment obligations | | General Ledger | GeneralLedger, GeneralLedgerDetail | Transaction-level audit trail | | Sales | CustomerSales, CustomerIncome, ItemSales | Revenue by customer/item | | Expenses | ExpensesByVendor | Cost tracking by vendor | | Tax | TaxSummary | Sales tax obligations | | Cash Flow | CashFlow | Cash inflows and outflows |

Report Parameters

All reports support common parameters for filtering and customization:

| Parameter | Description | Example | |-----------|-------------|---------| | start_date | Period start | 2026-01-01 | | end_date | Period end | 2026-01-31 | | accounting_method | Accrual or Cash | Accrual | | date_macro | Preset period | Last Month, This Fiscal Year | | summarize_column_by | Column grouping | Month, Quarter, Year, Customers | | customer | Filter by customer ID | 123 | | department | Filter by department | 1 |

Date Macros

| Macro | Description | |-------|-------------| | Today | Current day | | This Week | Current week | | This Month | Current month | | This Fiscal Quarter | Current fiscal quarter | | This Fiscal Year | Current fiscal year | | Last Month | Previous month | | Last Fiscal Quarter | Previous quarter | | Last Fiscal Year | Previous fiscal year | | This Fiscal Year-to-date | Year to date |

Report Response Structure

All reports return a common structure:

{
  "Header": {
    "ReportName": "ProfitAndLoss",
    "DateMacro": "Last Month",
    "StartPeriod": "2026-01-01",
    "EndPeriod": "2026-01-31",
    "Currency": "USD",
    "Option": [
      { "Name": "AccountingMethod", "Value": "Accrual" }
    ]
  },
  "Columns": {
    "Column": [
      { "ColTitle": "", "ColType": "Account" },
      { "ColTitle": "Total", "ColType": "Money" }
    ]
  },
  "Rows": {
    "Row": [...]
  }
}

Report Types

Profit & Loss (Income Statement)

Shows revenue and expenses over a period.

GET /v3/company/{realmId}/reports/ProfitAndLoss?start_date=2026-01-01&end_date=2026-01-31&accounting_method=Accrual&minorversion=73
Authorization: Bearer {access_token}
Accept: application/json
curl -s -H "Authorization: Bearer $QBO_ACCESS_TOKEN" \
  -H "Accept: application/json" \
  "https://quickbooks.api.intuit.com/v3/company/$QBO_REALM_ID/reports/ProfitAndLoss?start_date=2026-01-01&end_date=2026-01-31&accounting_method=Accrual&minorversion=73"

By month:

GET /v3/company/{realmId}/reports/ProfitAndLoss?start_date=2026-01-01&end_date=2026-06-30&summarize_column_by=Month&minorversion=73

By customer (MSP client profitability):

GET /v3/company/{realmId}/reports/ProfitAndLoss?start_date=2026-01-01&end_date=2026-01-31&summarize_column_by=Customers&minorversion=73

Filtered to a single customer:

GET /v3/company/{realmId}/reports/ProfitAndLoss?start_date=2026-01-01&end_date=2026-01-31&customer=123&minorversion=73

Balance Sheet

Shows assets, liabilities, and equity at a point in time.

GET /v3/company/{realmId}/reports/BalanceSheet?date_macro=Today&minorversion=73
Authorization: Bearer {access_token}
curl -s -H "Authorization: Bearer $QBO_ACCESS_TOKEN" \
  -H "Accept: application/json" \
  "https://quickbooks.api.intuit.com/v3/company/$QBO_REALM_ID/reports/BalanceSheet?date_macro=Today&minorversion=73"

Comparison by quarter:

GET /v3/company/{realmId}/reports/BalanceSheet?start_date=2025-01-01&end_date=2026-01-31&summarize_column_by=Quarter&minorversion=73

Accounts Receivable Aging

Shows outstanding customer balances grouped by aging period. Critical for MSP collections.

Summary (by customer):

GET /v3/company/{realmId}/reports/AgedReceivables?date_macro=Today&minorversion=73
Authorization: Bearer {access_token}
curl -s -H "Authorization: Bearer $QBO_ACCESS_TOKEN" \
  -H "Accept: application/json" \
  "https://quickbooks.api.intuit.com/v3/company/$QBO_REALM_ID/reports/AgedReceivables?date_macro=Today&minorversion=73"

Detail (individual invoices):

GET /v3/company/{realmId}/reports/AgedReceivableDetail?date_macro=Today&minorversion=73

For a specific customer:

GET /v3/company/{realmId}/reports/AgedReceivableDetail?date_macro=Today&customer=123&minorversion=73

Aging periods in the response:

| Column | Description | |--------|-------------| | Current | Not yet due | | 1-30 | 1-30 days past due | | 31-60 | 31-60 days past due | | 61-90 | 61-90 days past due | | 91 and over | 91+ days past due |

Accounts Payable Aging

Shows outstanding vendor balances.

GET /v3/company/{realmId}/reports/AgedPayables?date_macro=Today&minorversion=73

Detail level:

GET /v3/company/{realmId}/reports/AgedPayableDetail?date_macro=Today&minorversion=73

General Ledger

Transaction-level detail for all accounts.

GET /v3/company/{realmId}/reports/GeneralLedger?start_date=2026-01-01&end_date=2026-01-31&minorversion=73

For a specific account:

GET /v3/company/{realmId}/reports/GeneralLedger?start_date=2026-01-01&end_date=2026-01-31&account=35&minorversion=73

Customer Sales Summary

Revenue by customer.

GET /v3/company/{realmId}/reports/CustomerSales?start_date=2026-01-01&end_date=2026-01-31&minorversion=73

Customer Income

Income detail by customer.

GET /v3/company/{realmId}/reports/CustomerIncome?start_date=2026-01-01&end_date=2026-01-31&minorversion=73

Cash Flow Statement

GET /v3/company/{realmId}/reports/CashFlow?start_date=2026-01-01&end_date=2026-01-31&minorversion=73

Parsing Report Data

Row Structure

Report rows are nested and can contain groups (sections) and data rows:

{
  "Row": [
    {
      "Header": { "ColData": [{ "value": "Income" }] },
      "Rows": {
        "Row": [
          {
            "ColData": [
              { "value": "Managed Services Revenue", "id": "1" },
              { "value": "25000.00" }
            ]
          },
          {
            "ColData": [
              { "value": "Project Revenue", "id": "2" },
              { "value": "8500.00" }
            ]
          }
        ]
      },
      "Summary": { "ColData": [{ "value": "Total Income" }, { "value": "33500.00" }] },
      "type": "Section",
      "group": "Income"
    }
  ]
}

Recursive Row Parser

function parseReportRows(rows, depth = 0) {
  const results = [];

  for (const row of rows || []) {
    if (row.type === 'Section') {
      // Section with header, nested rows, and summary
      const sectionName = row.Header?.ColData?.[0]?.value || '';
      const children = parseReportRows(row.Rows?.Row, depth + 1);
      const summary = row.Summary?.ColData?.map(c => c.value);

      results.push({
        type: 'section',
        name: sectionName,
        children,
        summary,
        depth
      });
    } else if (row.ColData) {
      // Data row
      const value
Compartilhar X LinkedIn