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.
The tax year the run was prepared for, for example
2025.The return form:
F1040, F1041, F1065, F1120, F1120S, or F990 (see
ReturnType).A human-readable summary of the prepared return.
Number of documents processed from the client’s binder.
Number of forms extracted from those documents.
Number of review items produced. Use this as a quick “needs attention” count
before paging through
reviewItems.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
The client to prepare the return for.
The return form to prepare. Must match the client’s
returnType (see
clients).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.
The tax software provider key, as exposed by the workspace’s connected tax
software integrations. Required only when
runDataEntry is true.The client identifier inside the tax software. Required only when
runDataEntry is true.The tax software client version string, when relevant to the integration.
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.When
true, re-run reconciliation even if a prior reconcile already
succeeded.When
true, start a fresh run even if another tax prep task for this client
is already RUNNING.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
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
The workspace the client belongs to.
The client whose tax prep run you want to re-run a step for.
The stage to re-run:
IMPORT_PRIOR_YEAR, EXTRACT, RECONCILE,
PRE_ENTRY_EXPORT, DATA_ENTRY, POST_ENTRY_EXPORT, or VALIDATE.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).
The client identifier inside the tax software. Pass it alongside
software
for the data-entry and export stages.Returns: BackofficeTriggerResult
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
The workspace the task belongs to.
The tax prep task whose status you want to set.
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.