Skip to main content

Table of Contents

  1. Overview
  2. Permission Configuration
  3. Checklist Template Setup
  4. Integration Configuration
  5. Event Contracts
  6. API Contracts
  7. Security Considerations
  8. Troubleshooting

Overview

This guide covers the administrative configuration and technical details for the Financial Close Management module (FA-19). It is intended for system administrators, finance managers, and technical staff responsible for setting up and maintaining the close management process.

Module Architecture

FA-19 consists of four primary database tables:

Key Dependencies

  • FA-02 (General Ledger): Fiscal period linking
  • FA-07 (Financial Reporting): Close status verification for reports
  • PF-10 (Notifications): Task assignments and approval alerts
  • PF-11 (Documents): File storage for attachments
  • FW-03 (Approval Workflow): Close period approval events

Permission Configuration

Permission Keys

FA-19 uses the following permission keys for access control:

Role Assignment Matrix

Configuring Permissions

  1. Navigate to Settings > Permissions
  2. Select the role to modify
  3. Under Finance & Accounting > Close Management:
    • Enable/disable each permission as needed
  4. Click Save Changes

Permission Check Pattern

In code, use the useHasPermission hook:

Checklist Template Setup

Standard Template Structure

Create templates for each close type:

Month-End Close Template

Quarter-End Close Template

Include all month-end tasks plus:

Year-End Close Template

Include all quarter-end tasks plus:

Template Management Best Practices

  1. Version Control: Include version numbers in template names
  2. Annual Review: Review and update templates annually
  3. Document Changes: Add notes when updating templates
  4. Test New Templates: Create a test period before production use

Integration Configuration

FA-02 (General Ledger) Integration

Close periods can be linked to fiscal periods:
  • Linking: When creating a close period, select the corresponding fiscal period
  • Status Sync: Close period status does not automatically update fiscal period
  • Use Case: Financial reports can verify close period status before generating final statements

FA-07 (Financial Reporting) Integration

Financial Reporting checks close status:

PF-10 (Notifications) Integration

Notifications are triggered for:

PF-11 (Documents) Integration

Document storage uses the platform document service:
  • Bucket: fa-close-documents
  • Path Pattern: {organization_id}/{close_period_id}/{document_id}
  • Max File Size: 50MB per document
  • Allowed Types: PDF, Excel, Word, images

Event Contracts

FA-19 publishes the following events to the fa_events channel:

close_period_started

Trigger: When close period status changes to ‘in_progress’

close_period_completed

Trigger: When close period status changes to ‘completed’

close_period_approved

Trigger: When close period status changes to ‘approved’

close_task_assigned

Trigger: When a task’s assigned_to field changes

close_task_completed

Trigger: When a task’s status changes to ‘completed’

Subscribing to Events


API Contracts

Close Period Approval API

Endpoint: /api/v1/fa/close/periods/{period_id}/approve
Method: POST
Permission: fa.close.approve
Request:
Response:
Error Codes:
  • 403: Access denied (no permission or wrong organization)
  • 404: Period not found
  • 409: Invalid status or incomplete tasks

Close Period Status API

Endpoint: /api/v1/fa/close/periods/{period_id}/status
Method: GET
Permission: fa.close.view
Response:
See API_CONTRACTS.md for complete documentation.

Security Considerations

Row-Level Security (RLS)

All FA-19 tables have RLS policies:

Defense-in-Depth

All mutations include organization_id validation:

Audit Trail

All close management actions are logged:
  • Task completion with user and timestamp
  • Status changes with actor information
  • Document uploads with user and timestamp
  • Approval decisions with comments

Locked Period Protection

Completed/locked periods cannot be modified:

Task Dependency Validation

Circular dependencies are prevented:

Troubleshooting

Common Administrative Issues

Users Can’t See Close Periods

Cause: Missing fa.close.view permission Solution:
  1. Check user’s role assignment
  2. Verify role has fa.close.view permission
  3. Clear browser cache and retry

Template Changes Not Reflected

Cause: Template changes don’t update existing periods Solution:
  1. Template changes only affect new periods
  2. For existing periods, manually add/update tasks
  3. Consider creating a new period with updated template

Approval Notification Not Sent

Cause: Notification service issue or user preferences Solution:
  1. Check notification service logs
  2. Verify user has email notifications enabled
  3. Check user’s notification preferences in profile

Period Stuck in “Pending Approval”

Cause: No users with fa.close.approve permission Solution:
  1. Verify users have approval permission
  2. Check if approvers are active in the organization
  3. Grant approval permission to appropriate user

Database Queries for Troubleshooting

Check Close Period Status

Find Incomplete Tasks

Check Event Publishing



Document Version: 1.0.0
Last Updated: 2026-01-19
Next Review: 2026-04-19