Finalize a statement
Finalize statement
Description
Finalize statement Transitions the active Statement for(tenantUserId, periodStart..periodEnd) from draft to
finalized. If no persisted draft row exists yet, one is first
generated from the ledger (generateAndPersistStatement) then
finalized. Appends a StatementStatusEvent to statusHistory and
writes an explicit AuditLog row (Statement does not extend
AuditableModel, so auto-audit hooks never fire here).
Authorization:
- Required role:
adminor higher
Code Examples
Authorizations
JWT Authorization header using the Bearer scheme. Format: "Bearer {token}"
Path Parameters
Response
Statement finalized.
Every statements response wraps the payload in { status, message, data }.
data carries the per-endpoint payload PLUS the per-tenant feature flag.
success, error Response payload shared by the ITEM 2 lifecycle mutations (finalize,
payments, adjustments, hold, resume, void, disputes): the updated
Statement row, shaped via the same shapeForClient mapper as
StatementRosterRow, plus ok: true. The underlying Sequelize row
carries additional endpoint-specific detail (e.g. statusHistory)
not exhaustively modeled here — treat this as the roster-row core.