Generate & download reports

Create tax reports for a year or date range and retrieve completed files safely.

Generate a report

getReportExportV2 starts the export. Common types include Irs8949, IrsScheduleD, IrsSchedule1, IncomeReport, BalanceReport, and SalesCSV. dateQueryType must be year or date_range.

graphql
query ExportReport($clientId: ID!) {
getReportExportV2(
clientId: $clientId
type: Irs8949
dateQueryType: year
year: "2025"
shouldDownload: true
) {
downloadUrl
message
}
}

Handle the result

When downloadUrl is present, the file is ready. When only message is returned, generation or email delivery is still in progress. Do not start duplicate exports while one is being prepared.

Reports use settled ledger data

Confirm countDirty is zero and no recalculation job is active before producing final tax forms.

Retrieve a completed report

List previous reports, choose the completed report ID, then request its download URL as a separate root operation.

graphql
query Reports($clientId: ID!) {
getReports(clientId: $clientId) {
id title type createdAt
}
}

Get the download URL

graphql
query ReportDownload($reportId: ID!) {
getReportDownloadUrl(reportId: $reportId)
}

Export a filtered transaction CSV

Use getTransactionHistoryReportV2 when you need a custom slice of the ledger. It accepts transaction filters such as dates, accounts, assets, labels, and isMissingBasis, then returns a downloadUrl.