Reports Run

Reports Run

Certified

Run a QuickBooks report

Runs a report of the QuickBooks Reports API and flattens its rows into rows (or an Ion file with fetchType: STORE). The untouched response is returned in raw when includeRaw is true.

yaml
type: io.kestra.plugin.quickbooks.reports.Run

Run the Profit and Loss report for the quarter

yaml
id: qbo_profit_and_loss
namespace: company.finance

tasks:
  - id: pnl
    type: io.kestra.plugin.quickbooks.reports.Run
    clientId: "{{ secret('QBO_CLIENT_ID') }}"
    clientSecret: "{{ secret('QBO_CLIENT_SECRET') }}"
    refreshToken: "{{ secret('QBO_REFRESH_TOKEN') }}"
    realmId: "{{ secret('QBO_REALM_ID') }}"
    report: ProfitAndLoss
    startDate: "2026-01-01"
    endDate: "2026-03-31"

Run the Aged Receivables report on an accrual basis for one customer

yaml
id: qbo_aged_receivables
namespace: company.finance

tasks:
  - id: aged_receivables
    type: io.kestra.plugin.quickbooks.reports.Run
    clientId: "{{ secret('QBO_CLIENT_ID') }}"
    clientSecret: "{{ secret('QBO_CLIENT_SECRET') }}"
    refreshToken: "{{ secret('QBO_REFRESH_TOKEN') }}"
    realmId: "{{ secret('QBO_REALM_ID') }}"
    report: AgedReceivables
    customer: "58"
    accountingMethod: ACCRUAL

Store a large General Ledger report in internal storage and keep the raw response

yaml
id: qbo_general_ledger
namespace: company.finance

tasks:
  - id: general_ledger
    type: io.kestra.plugin.quickbooks.reports.Run
    clientId: "{{ secret('QBO_CLIENT_ID') }}"
    clientSecret: "{{ secret('QBO_CLIENT_SECRET') }}"
    refreshToken: "{{ secret('QBO_REFRESH_TOKEN') }}"
    realmId: "{{ secret('QBO_REALM_ID') }}"
    report: GeneralLedger
    startDate: "2026-01-01"
    endDate: "2026-12-31"
    fetchType: STORE
    includeRaw: true
Properties

QuickBooks Client ID

The OAuth2 Client ID for your QuickBooks application

QuickBooks Client Secret

The OAuth2 Client Secret for your QuickBooks application

QuickBooks Realm ID

The Realm ID (Company ID) for the QuickBooks account. Digits only, checked after rendering.

QuickBooks Refresh Token

A valid OAuth2 refresh token. Kestra will automatically rotate and persist it in the KV Store. Note: Token rotation is not cross-worker concurrency safe, and failed KV store writes may result in lost tokens.

Report

The report to run. Case-insensitive, one of AgedReceivables, AgedReceivableDetail, AgedPayables, ProfitAndLoss, BalanceSheet, GeneralLedger, CustomerBalance, TrialBalance or CashFlow.

Possible Values
CASHACCRUAL

Accounting method

CASH or ACCRUAL (uppercase, case-sensitive). Sent to QuickBooks as Cash or Accrual in accounting_method; QuickBooks uses the company preference when unset.

Assets this task consumes as inputs or produces as outputs, for lineage tracking and the asset graph (Enterprise Edition). A flow declaring this property on a task is rejected in the open-source edition.

Definitions
assetFailureBehaviorstring
Possible Values
IGNOREFAILWARN

Asset failure behavior

Behavior applied to the task state when a declared asset fails to render, emit, or be persisted (e.g. a lock conflict): FAIL escalates it to FAILED, WARN (default) warns it if it would otherwise succeed, IGNORE leaves the state untouched.

enableAutobooleanstring

Whether to auto-register assets referenced dynamically at runtime that are not statically declared in inputs or outputs.

inputsarray

The assets consumed as inputs.

id*string
Min length1
typestring
outputs

The assets produced as outputs.

id*string
Min length1
Max length150
type*object
descriptionstring
displayNamestring
metadataobject
Default{}
namespacestring
Min length1
Max length150
id*string
Min length1
Max length150
type*object
descriptionstring
displayNamestring
metadataobject
Default{}
namespacestring
Min length1
Max length150
id*string
Min length1
Max length150
type*object
descriptionstring
displayNamestring
metadataobject
Default{}
namespacestring
Min length1
Max length150
id*string
Min length1
Max length150
type*object
descriptionstring
displayNamestring
metadataobject
Default{}
namespacestring
Min length1
Max length150
id*string
Min length1
Max length150
type*object
descriptionstring
displayNamestring
metadataobject
Default{}
namespacestring
Min length1
Max length150
id*string
Min length1
Max length150
type*string
Min length1

Custom asset type

descriptionstring
displayNamestring
metadataobject
Default{}
namespacestring
Min length1
Max length150
Defaulthttps://oauth.platform.intuit.com/oauth2/v1/tokens/bearer

Authentication URL

The OAuth2 token endpoint. Must be an intuit.com domain.

Defaulthttps://quickbooks.api.intuit.com

Base URL

The Base URL for QuickBooks API. Must be an intuit.com domain. Defaults to production.

Customer

Restricts the report to this customer id, sent as customer.

End date

Last day of the report period (yyyy-MM-dd). Sent as end_date; QuickBooks applies its own default when unset.

DefaultFETCH
Possible Values
STOREFETCHFETCH_ONENONE

The way to consume the report rows

FETCH returns the flattened rows in the rows output (fine for small reports). STORE writes them to an internal storage Ion file returned as uri, which is safer for a GeneralLedger or TrialBalance over a long period. NONE returns neither, only size. FETCH_ONE is not supported.

Defaultfalse

Include the raw response

When true, the untouched QuickBooks response is also returned in the raw output. It is off by default because it repeats the data of rows and doubles the size of the execution outputs.

Default75

Minor Version

The minor version of the QuickBooks API to use. Must be 1 or more, checked after rendering.

Additional report parameters

Any other query parameter of the report, for example department or class. The typed properties win over a parameter with the same name.

Start date

First day of the report period (yyyy-MM-dd). Sent as start_date; QuickBooks applies its own default when unset.

Summarize columns by

How the columns are grouped, sent as summarize_column_by. For example Total, Month, Week, Days, Quarter, Year, Customers or Vendors. The accepted values depend on the report, see the QuickBooks documentation.

Raw report

The parsed JSON response of QuickBooks, with Header, Columns and Rows. Only set when includeRaw is true.

SubTypeobject

Rows

One map per data or summary row of the report, keyed by column title. section holds the enclosing section names joined with > and type is Data or Summary. Only set with fetchType: FETCH.

Size

The number of flattened rows of the report.

Formaturi

Rows URI

The internal storage URI of the Ion file holding the flattened rows. Only set with fetchType: STORE.