AWAITING_INFORMATION, and waits for you.
Two codes do this, and you answer both the same way.
Do not hardcode that third column. Each action publishes what it wants in
requestedFieldIds, and that list is the contract. See Reading what is asked.
You are told by the company_annual_report_info_required webhook, which both codes use. See Required actions for the payload, the status model, and how to read actions back.
These actions are about a report doola is filing for the company. They are unrelated to a report you submitted yourself through Annual Report Filing and have not confirmed; that one you correct by submitting it again.
The flow
The report stays atAWAITING_INFORMATION while the action is still waiting on you. That is awaitingResponse, not open. Submitting clears it and the report moves on once no other correction on that report is still waiting (see After you submit), while the action itself stays open. Nothing is filed with the state and no company_annual_report_completed fires until doola has filed the corrected report.
Reading what is asked
Read the action before answering it.requestedFieldIds names the fields this action wants, spelled as the annual report requirements spell them:
reason to your user verbatim; it is written for a person and says which state refused what.
Sending the correction
Post to the resolution endpoint with the action’s code and acompanyDetails object keyed by the field ids the action named.
companyDetails accepts the full vocabulary of company detail fields, but a field this action did not name is refused with 400 E_VALIDATION_FAILED. Answering an action is not a channel for rewriting details nobody asked about; those go through the endpoints that own them. A field the action did name and you leave out keeps the value doola already holds, so send every field you want changed in one call.
After you submit
The response is the action atsubmitted, not resolved.
Two things are worth knowing about what happens next.
Ops can have two corrections open on the same report, one per code. Answering one of them does not move the report: it goes back to the filing queue only when the last outstanding correction on that report has been answered. An action on a different report of the same company is independent and does not hold yours back, as long as both name their report. If either names none, the two cannot be told apart, so doola falls back to treating every open correction on the company as blocking. That delays a hand-back rather than risking two.
A correction never changes what you were charged. The price of an annual report is fixed when the report is priced, and the money is already taken. Lowering a share count through this action corrects what gets filed with the state; it does not reprice the report or trigger a refund. If the figures you send should have produced a lower price, raise it with doola rather than expecting the API to settle it.
Errors
E_ANNUAL_REPORT_NOT_CORRECTABLE does not mean the company has no reports. It covers every way the correction cannot land right now:
- The report the action names is no longer
AWAITING_INFORMATION. - The action names no report and the company has none awaiting, or more than one, so there is nothing to pick.
- The report still reads as awaiting, but the underlying ticket moved on: filed, closed as unresponsive, or put back on the customer’s payment.