Skip to content

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 at EXPORTED. BizFinx XLSX uploaded to ACRA's BizFinx Preparation Tool (out-of-band); ACRA filing reference received. Post-state: Filing at FILED. filedAt and filedById populated. 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) ​

  1. Open the Exports tab on the filing; download the latest BizFinx XLSX.
  2. Open ACRA's BizFinx Preparation Tool. Upload the workbook. Resolve any tool-side prompts.
  3. Submit. Capture the ACRA filing reference from the acknowledgement (a string identifier, e.g. BIZFINX-2026-NNNNN).

1.2 Mark filed in the platform ​

http
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:

  1. Asserts MARK_XBRL_FILED (XBRL_REVIEWER or PLATFORM_ADMIN only).
  2. Asserts filing is at EXPORTED.
  3. Persists the ACRA filing reference and the filedAt timestamp.
  4. Records filedById = <staff user>.
  5. Transitions filing EXPORTED → FILED.
  6. Emits AuditEvent xbrl.filing.marked_filed.

2. Verification ​

Database ​

sql
SELECT status, acra_filing_reference, filed_at, filed_by_id
  FROM xbrl_filings WHERE id = '<filingId>';
-- expect status = 'FILED', reference + timestamp populated

Audit log ​

Event typeNotes
xbrl.filing.marked_filedPayload 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_ACCOUNTANT is rejected here even though they can do everything else.
  • Filing not at EXPORTED — 409 Conflict. The status machine refuses the transition (only EXPORTED → FILED is valid).
  • Missing or empty ACRA reference — 400 Bad Request reason: "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_PROGRESS is allowed (and FILED → MAPPING_IN_PROGRESS is not — the filing must be reverted to EXPORTED first via a manual SQL fix or a future support endpoint). Fix; re-export; re-submit.

Next ​

Proceed to X-08 · Archive filing.

Internal use only — BreezyCorp