Missing documents
IMPORT_DOCUMENTS_MISSING is raised when an import is still at AWAITING_DOCUMENTS a day after it was created. doola checks once a day, and raises at most one per import.
requestedDocumentTypes is empty for this code. Read documentRequirements on the company for what is still missing: every entry with status: "missing" still needs uploading. The reason lists what was missing when the action opened, for example Upload the missing documents to continue: ArticlesOfOrganization, EinLetter., and is not updated as documents arrive.
To clear it, upload each missing document. Once the last one is on file, the action closes as resolved and the import moves to IN_REVIEW. There is nothing to submit: posting a resolution for this action answers 422 E_REQUIRED_ACTION_NOT_RESOLVABLE.
If the documents never arrive, nothing else happens. The import stays at AWAITING_DOCUMENTS and the action stays open.
More information needed
IMPORT_INFO_REQUIRED is raised when doola’s review finds something on the imported company that needs correcting. The action says exactly what it needs:
requestedFieldIds: the company fields to send back, corrected.requestedDocumentTypes: the document types to upload.
reason is built from the same picks, for example Update these company details: EIN, company addresses. Upload: EIN letter.
requestedFieldIds or requestedDocumentTypes when it is empty. The required-action reads always return both.
The flow
Field ids
requestedFieldIds uses these ids. Each is sent back under importCorrections with the same key, except legalName, which is sent as nameOptions.
requestedDocumentTypes uses ArticlesOfOrganization, EinLetter, OperatingAgreement (LLC) and CorporateBylaws (CCorp).
Sending the corrections
First upload each requested document and keep the returnedid. Then call the resolution endpoint with importCorrections and documentIds:
1
Send exactly the requested fields
Every id in
requestedFieldIds must be in importCorrections, and nothing else. A missing field answers E_REQUIRED_ACTION_FIELD_MISSING, an extra one E_REQUIRED_ACTION_FIELD_NOT_REQUESTED. A blank text value counts as not sent, so a requested field sent blank is refused as missing.2
Cover every requested document type
documentIds holds up to 10 ids of documents on this company. Together they must cover every type in requestedDocumentTypes. Adding an EIN to a company that had none also needs an EinLetter, even when none was requested.3
Follow the import's rules
Each value follows the rule the import applies to the same field.
nameOptions, addresses and companyDetails at the top level of the body belong to other action codes and are refused here.resolved, with its full history. Its submitted step echoes what you sent, with every SSN masked. The corrections are on the company at once: read it back to see them. The import’s status does not change; doola continues its review.
The endpoint takes no Idempotency-Key. After a timeout, read the action back instead of retrying: once it is closed, a second call answers 409 E_REQUIRED_ACTION_CLOSED.
Lists and people
A list you send replaces what doola holds. A person you leave out is removed. Every person on the company comes back from Get a company with anid: the responsibleParty, each member, each executive member and each manager. To keep a person, send them back with that id:
- Their SSN stays as it is when you send it back masked, exactly as the company returned it (
****-**-6789), or leave it out. A masked SSN whose last four digits differ answers400 E_REQUEST_BODY_INVALID. - To change their SSN, send the new value in full.
- A person without an
idis new and has no SSN unless you send one. A masked SSN on a new member or manager answers400 E_REQUEST_BODY_INVALID. - An
idmust belong to a person of the same kind on this company, and appear once. Anything else answers400 E_VALIDATION_FAILEDunderimportCorrections.<field>.
Changing the state or filing number
When a correction changesstate, formationFilingNumber or both, the pair the company ends up with is checked by the same rule as the import. If another company already holds it, the answer is 409 E_COMPANY_ALREADY_REGISTERED and nothing changes. As on the import, the message names the other company only when it is one of yours, and an archived company never counts.
After doola verifies the import
Verification closes anyIMPORT_INFO_REQUIRED still open, as resolved. A correction that arrives after the import was verified answers 409 E_REQUIRED_ACTION_CLOSED with the message the import was verified after this action was raised, and changes nothing. If doola later takes the import back to IN_REVIEW and needs more, it can raise a new action.
After doola applies for the EIN
Once doola has applied for the company’s EIN, the application carries the company’s details as they are. Until the IRS issues the EIN, a correction answers409 E_REQUIRED_ACTION_CLOSED with the message doola already applied for this company's EIN with its details as they are, and changes nothing. This holds even when doola takes the import back to IN_REVIEW, and doola raises no new IMPORT_INFO_REQUIRED in that time.
Errors
Checks run in a fixed order: body shape, company and action scope,actionCode match, then the correction checks. Any refusal changes nothing, and the action stays open.
See Errors for the response envelope and the global codes any endpoint can return.