X-07 · Mark filed with ACRA
SOP:
SOP_XBRL_Filing.md§6 / Step 7.0 (EXPORTED → FILED)Actors: XBRL Reviewer (xbrl-reviewer@spade.local) or Platform Admin only —MARK_XBRL_FILED. Senior Accountant does not hold this permission. Pre-state: Filing atEXPORTED. BizFinx XLSX uploaded to ACRA's BizFinx Preparation Tool (out-of-band); ACRA filing reference received. Post-state: Filing atFILED.filedAtandfiledByIdpopulated. ACRA filing reference captured.
0. Prerequisites
- Filing at
EXPORTED(see X-05). - BizFinx XLSX uploaded to ACRA via the BizFinx Preparation Tool (manual, out-of-band).
- ACRA filing reference / acknowledgement received.
IMPORTANT
MARK_XBRL_FILED is the most restricted action in the XBRL module. Only XBRL_REVIEWER and PLATFORM_ADMIN hold it. The boundary deliberately matches human accountability with the regulator — whoever marks the filing is the one taking responsibility with ACRA. Even Senior Accountants who can do everything else short of filing cannot do this.
1. Steps
1.1 Submit through BizFinx (out-of-band)
- Open the Exports tab on the filing; download the latest BizFinx XLSX.
- Open ACRA's BizFinx Preparation Tool. Upload the workbook. Resolve any tool-side prompts.
- Submit. Capture the ACRA filing reference from the acknowledgement (a string identifier, e.g.
BIZFINX-2026-NNNNN).
1.2 Mark filed in the platform
POST /ops/xbrl/filings/<filingId>/mark-filed
Content-Type: application/json
Authorization: Bearer <xbrl-reviewer-jwt>
{ "acraFilingReference": "BIZFINX-2026-12345", "filedAt": "2026-05-15T10:30:00Z" }(Or click Mark filed on the filing detail page; fill the reference; submit.)
The handler:
- Asserts
MARK_XBRL_FILED(XBRL_REVIEWERorPLATFORM_ADMINonly). - Asserts filing is at
EXPORTED. - Persists the ACRA filing reference and the
filedAttimestamp. - Records
filedById = <staff user>. - Transitions filing
EXPORTED → FILED. - Emits
AuditEventxbrl.filing.marked_filed.
2. Verification
Database
SELECT status, acra_filing_reference, filed_at, filed_by_id
FROM xbrl_filings WHERE id = '<filingId>';
-- expect status = 'FILED', reference + timestamp populatedAudit log
| Event type | Notes |
|---|---|
xbrl.filing.marked_filed | Payload includes the ACRA filing reference, filedAt, and the actor staff user |
UI
Filing detail page shows FILED and the ACRA reference as a read-only field. Edit controls disappear.
3. Negative & edge cases
- Caller without
MARK_XBRL_FILED—403 Forbidden.SENIOR_ACCOUNTANTis rejected here even though they can do everything else. - Filing not at
EXPORTED—409 Conflict. The status machine refuses the transition (onlyEXPORTED → FILEDis valid). - Missing or empty ACRA reference —
400 Bad Requestreason: "missing_acra_reference". The reference is the audit trail with the regulator; without it the mark-filed is meaningless. - Mark-filed before BizFinx upload to ACRA — the platform cannot detect this; the audit trail is the only safeguard. Don't do it.
- ACRA rejected the filing after marking — back-route the filing:
EXPORTED → MAPPING_IN_PROGRESSis allowed (andFILED → MAPPING_IN_PROGRESSis not — the filing must be reverted toEXPORTEDfirst via a manual SQL fix or a future support endpoint). Fix; re-export; re-submit.
Next
Proceed to X-08 · Archive filing.