triggerTaxPrep
mutation and follow the resulting task to completion with the
tasks API.
Tax prep operations are reached through the me query resolved as
a WorkspaceUser, so the trigger mutation and the task poll both require a
workspaceToken (see Authentication). The two
backoffice operations on this page (retriggerTaxPrepStep and
setTaxPrepTaskStatus) require a user token instead, called out below. All
requests go to:
Tax prep runs as a polled background task. This page documents how to start a
run and read its result. For the polling pattern itself (listing tasks, reading
status, subTasks, and the TaskResult union), see
Tasks; this page does not re-explain it.The TaskTaxPrepResult type
When a TAX_PREP task reaches status: COMPLETED, its result field resolves
to TaskTaxPrepResult. It carries a summary plus document and form counts, and
the individual review items the run produced.
Int!
The tax year the run was prepared for, for example
2025.ReturnType!
The return form:
F1040, F1041, F1065, F1120, F1120S, or F990 (see
ReturnType).String!
A human-readable summary of the prepared return.
Int!
Number of documents processed from the client’s binder.
Int!
Number of forms extracted from those documents.
Int!
Number of review items produced. Use this as a quick “needs attention” count
before paging through
reviewItems.[TaxPrepReviewItem!]!
The review items. Each has
severity, category, and description (all
String!).TaskTaxPrepResult is one member of the TaskResult union. The other tax
members are TaskTaxReviewResult (returned for TAX_REVIEW tasks, with issue
counts by severity and form) and TaskTaxAdvisorResult (returned for
TAX_ADVISOR tasks). See Tasks, task result for the
full union and the inline-fragment pattern used to select it.Start a tax prep run
triggerTaxPrep starts a tax prep run for a client and returns the
taskId you poll. It requires a workspaceToken.
Input: TriggerTaxPrepInput
ID!
required
The client to prepare the return for.
ID
Optional. Pass an existing tax prep task ID to target an in-flight or prior run
rather than starting a brand-new one. Omit for a fresh run.
String
The tax software provider key, as exposed by the workspace’s connected tax
software integrations. Required only when
runDataEntry is true.String
The client identifier inside the tax software. Required only when
runDataEntry is true.String
The tax software client version string, when relevant to the integration.
Boolean
When
true, the pipeline continues past extraction and reconciliation into
data entry, writing the prepared return back to the tax software. Requires
software and softwareClientId.Boolean
When
true, re-run reconciliation even if a prior reconcile already
succeeded.Boolean
When
true, start a fresh run even if another tax prep task for this client
is already RUNNING.RunSkillSelectionInput
Optional. Override which workspace and user skills apply to this run. Omit to
apply all active skills; pass an empty list for a scope to censor every skill
in that scope.
Returns: TriggerTaskResult
ID!
The ID of the started
TAX_PREP task. Poll it until status is
no longer RUNNING, then read result as TaskTaxPrepResult.Poll the task to completion
There is notask(id:) query. Poll the task you just started by listing the
client’s TAX_PREP tasks and reading the entry whose id matches the
taskId returned above. The polling mechanics are documented on
Tasks; the short version:
Read the completed result
When the task isCOMPLETED, select result with an inline fragment on
TaskTaxPrepResult to read the summary, counts, and review items.
Always read
__typename on result and include a ... on TaskUnknownResult
fallback. A TAX_PREP task that fails after the run starts can resolve to
TaskUnknownResult instead of TaskTaxPrepResult; branching on __typename
keeps your client from throwing on the unexpected member.Re-trigger a tax prep step
retriggerTaxPrepStep re-runs a single stage of an existing tax prep task. It
is a backoffice operation and requires a user token (not a
workspaceToken); the schema marks it @requiresScopes(scopes: [["user"]]).
Input: RetriggerTaxPrepStepInput
ID!
required
The workspace the client belongs to.
ID!
required
The client whose tax prep run you want to re-run a step for.
TaxPrepStep!
required
The stage to re-run:
IMPORT_PRIOR_YEAR, EXTRACT, RECONCILE,
PRE_ENTRY_EXPORT, DATA_ENTRY, POST_ENTRY_EXPORT, or VALIDATE.String
The tax software provider key. Pass it when the re-triggered step writes to or
reads from the tax software (the data-entry and export stages).
String
The client identifier inside the tax software. Pass it alongside
software
for the data-entry and export stages.Returns: BackofficeTriggerResult
ID!
The ID of the task the re-triggered step belongs to. Poll it with the
tasks API for the new stage’s
outcome.
Set a tax prep task’s status
setTaxPrepTaskStatus forces a tax prep task into a given TaskStatus. Like
retriggerTaxPrepStep, it is a backoffice operation and requires a user
token (@requiresScopes(scopes: [["user"]])).
Input: SetTaxPrepTaskStatusInput
ID!
required
The workspace the task belongs to.
ID!
required
The tax prep task whose status you want to set.
TaskStatus!
required
The status to force the task into:
RUNNING, COMPLETED, or FAILED.Returns: BackofficeTriggerResult
The same BackofficeTriggerResult { taskId: ID! } shape as
retriggerTaxPrepStep. See above for the
field.