Submissions & statuses
A submission is a request to prepare a return for one client from its uploaded documents. Creating one kicks off asynchronous processing.
Create
POST /v1/clients/{id}/submissions
| Field | Required | Notes |
|---|---|---|
tax_software |
✅ | Which tax software to prepare in (see below) |
tax_year |
✅ | e.g. 2025 |
is_fully_automated |
— | Default false |
proconnect_client_id |
— | Required only when tax_software is ProConnect |
proconnect_engagement_id |
— | Required only when tax_software is ProConnect |
All of the client's uploaded (finalized) input documents are attached automatically.
Valid tax_software values
Drake · Lacerte · ProConnect · ProSeries · ProSystem · Axcess · UltraTax
A client can only have one active submission at a time. Creating a second while one is in flight returns
409— wait for it to complete or cancel it first.
Statuses
GET /v1/submissions/{id} (or GET /v1/submissions to list, filterable by ?client_id= and ?status=).
status |
Meaning |
|---|---|
received |
Created, documents attached, queued |
processing |
Being prepared |
completed |
Done — output_documents are ready to download |
failed |
Could not be completed |
cancelled |
Cancelled by you or by us |
Each submission carries expected_completion_at — a forward-looking ETA set from our SLA (default ~3 business days) when you create it. Poll a few times a day rather than aggressively; you'll also be able to subscribe to webhooks once available.
Shape
{
"id": "sub_789",
"client_id": "cli_123",
"status": "completed",
"tax_year": 2025,
"tax_software": "Drake",
"expected_completion_at": "2026-06-26T20:00:00Z",
"created_at": "2026-06-23T20:00:00Z",
"input_documents": [ { "id": "doc_456", "filename": "W2.pdf", "download_url": "https://…" } ],
"output_documents": [ { "id": "doc_999", "filename": "..._Return.pdf", "download_url": "https://…" } ]
}
Download URLs are presigned and time-limited; fetch them fresh from the submission when you need them.