Finance Module - Document Management
Overview
The Finance module provides document management capabilities for accounting, financial reporting, and compliance. This guide covers document handling for two key Finance entities: Journal Entries and Chart of Accounts.
Finance Document Capabilities:
- Journal entry supporting documents and receipts
- Account policy and procedure documentation
- Bank statements and reconciliation documents
- Audit trail and compliance documentation
- Approval workflows and authorization documents
- Tax and regulatory filings
Supported Entities
The Finance module supports document management for these entities:
| Entity | Purpose | Common Document Types | Max File Size |
|---|---|---|---|
| Journal Entry | Transaction documentation | Receipts, invoices, bank statements, approvals | 50 MB |
| Chart of Account | Account documentation | Policies, procedures, compliance documents | 50 MB |
Journal Entry Documents
Overview
Journal Entry documents include receipts, invoices, supporting documents, bank statements, approval documents, reconciliation reports, and audit trail documentation. These documents provide proof and justification for accounting transactions and support financial audits.
Endpoint: /api/v1/finance/journal-entries/{journalEntryId}/documents
Supported Tags
| Tag | Purpose | Example Use Case |
|---|---|---|
receipt | Expense receipts | Purchase receipts, payment receipts |
invoice | Invoice documents | Vendor invoices, supplier invoices |
supporting_document | Supporting documentation | Contracts, agreements, other proof |
bank_statement | Bank statements | Bank transaction statements |
approval | Approval documents | Management approvals, authorizations |
attachment | General attachments | Miscellaneous supporting files |
proof | Proof documents | Transaction proof, payment proof |
reconciliation | Reconciliation documents | Bank reconciliation reports |
audit_trail | Audit documentation | Audit supporting documents |
Common Scenarios
Scenario 1: Expense Journal Entry
Document expense transaction with receipt:
# Upload expense receipt
curl -X POST https://api.crm.test/api/v1/finance/journal-entries/10001/documents \
-H "Authorization: Bearer YOUR_ACCESS_TOKEN" \
-F "file=@expense_receipt.pdf" \
-F "type=receipt" \
-F "tags[]=receipt" \
-F "tags[]=proof" \
-F "name=Office Supplies Receipt - Staples" \
-F "description=Office supplies purchase for Q1" \
-F "is_public=false" \
-F "is_sensitive=true"Scenario 2: Vendor Invoice Payment
Document invoice payment with supporting documents:
# Upload vendor invoice
curl -X POST https://api.crm.test/api/v1/finance/journal-entries/10002/documents \
-H "Authorization: Bearer YOUR_ACCESS_TOKEN" \
-F "file=@vendor_invoice.pdf" \
-F "type=invoice" \
-F "tags[]=invoice" \
-F "tags[]=supporting_document" \
-F "name=Vendor Invoice #INV-12345" \
-F "description=Software license annual renewal" \
-F "is_public=false" \
-F "is_sensitive=true"
# Upload payment approval
curl -X POST https://api.crm.test/api/v1/finance/journal-entries/10002/documents \
-H "Authorization: Bearer YOUR_ACCESS_TOKEN" \
-F "file=@payment_approval.pdf" \
-F "type=form" \
-F "tags[]=approval" \
-F "name=Payment Approval - Manager Signature" \
-F "description=CFO approval for payment" \
-F "is_public=false" \
-F "is_sensitive=true"
# Upload bank statement showing payment
curl -X POST https://api.crm.test/api/v1/finance/journal-entries/10002/documents \
-H "Authorization: Bearer YOUR_ACCESS_TOKEN" \
-F "file=@bank_statement.pdf" \
-F "type=financial" \
-F "tags[]=bank_statement" \
-F "tags[]=proof" \
-F "name=Bank Statement - Wire Transfer Confirmation" \
-F "is_public=false" \
-F "is_sensitive=true"Scenario 3: Accrual Adjustment
Document accrual entry with supporting calculation:
# Upload accrual calculation worksheet
curl -X POST https://api.crm.test/api/v1/finance/journal-entries/10003/documents \
-H "Authorization: Bearer YOUR_ACCESS_TOKEN" \
-F "file=@accrual_calculation.xlsx" \
-F "type=report" \
-F "tags[]=supporting_document" \
-F "tags[]=attachment" \
-F "name=Accrual Calculation - Q4 2024" \
-F "description=Detailed accrual calculation worksheet" \
-F "is_public=false" \
-F "is_sensitive=true"
# Upload supporting contract
curl -X POST https://api.crm.test/api/v1/finance/journal-entries/10003/documents \
-H "Authorization: Bearer YOUR_ACCESS_TOKEN" \
-F "file=@service_contract.pdf" \
-F "type=contract" \
-F "tags[]=supporting_document" \
-F "name=Service Contract - Accrual Basis" \
-F "description=Contract showing accrual requirement" \
-F "is_public=false" \
-F "is_sensitive=true"Scenario 4: Bank Reconciliation
Document bank reconciliation with statements and adjustments:
# Upload bank statement
curl -X POST https://api.crm.test/api/v1/finance/journal-entries/10004/documents \
-H "Authorization: Bearer YOUR_ACCESS_TOKEN" \
-F "file=@bank_statement_december.pdf" \
-F "type=financial" \
-F "tags[]=bank_statement" \
-F "tags[]=reconciliation" \
-F "name=Bank Statement - December 2024" \
-F "is_public=false" \
-F "is_sensitive=true"
# Upload reconciliation report
curl -X POST https://api.crm.test/api/v1/finance/journal-entries/10004/documents \
-H "Authorization: Bearer YOUR_ACCESS_TOKEN" \
-F "file=@reconciliation_report.pdf" \
-F "type=report" \
-F "tags[]=reconciliation" \
-F "tags[]=audit_trail" \
-F "name=Bank Reconciliation Report - December 2024" \
-F "description=Monthly bank reconciliation with adjustments" \
-F "is_public=false" \
-F "is_sensitive=true"Scenario 5: Year-End Adjustments
Document year-end closing entries:
# Upload depreciation schedule
curl -X POST https://api.crm.test/api/v1/finance/journal-entries/10005/documents \
-H "Authorization: Bearer YOUR_ACCESS_TOKEN" \
-F "file=@depreciation_schedule.xlsx" \
-F "type=report" \
-F "tags[]=supporting_document" \
-F "tags[]=audit_trail" \
-F "name=Depreciation Schedule 2024" \
-F "description=Annual depreciation calculation" \
-F "is_public=false" \
-F "is_sensitive=true"
# Upload auditor approval
curl -X POST https://api.crm.test/api/v1/finance/journal-entries/10005/documents \
-H "Authorization: Bearer YOUR_ACCESS_TOKEN" \
-F "file=@auditor_approval.pdf" \
-F "type=form" \
-F "tags[]=approval" \
-F "tags[]=audit_trail" \
-F "name=External Auditor Approval" \
-F "description=Auditor sign-off on year-end adjustments" \
-F "is_public=false" \
-F "is_sensitive=true"Validation Rules
File Requirements:
- Maximum size: 50 MB
- All file types accepted (PDFs, Excel files, images for receipts)
Required Fields:
file- The document filetype- Document type
Optional Fields:
tags- Array of tags (validated against allowed list)name,descriptionis_public- Default: false (all finance documents should be private)is_sensitive- Recommended: true for all financial documentsexpires_at- Optional expiration date
Chart of Account Documents
Overview
Chart of Account documents include account policies, procedures, compliance documents, audit guidelines, regulatory documentation, and reference materials. These documents define accounting policies and ensure compliance with accounting standards.
Endpoint: /api/v1/finance/chart-of-accounts/{chartOfAccountId}/documents
Supported Tags
| Tag | Purpose | Example Use Case |
|---|---|---|
policy | Accounting policies | Account-specific policies |
documentation | General documentation | Account usage guidelines |
compliance | Compliance documents | Regulatory compliance docs |
audit | Audit documentation | Audit guidelines, checklists |
procedure | Accounting procedures | Posting procedures, workflows |
guideline | Usage guidelines | Account usage instructions |
reference | Reference materials | GAAP references, standards |
regulation | Regulatory documents | Tax regulations, legal requirements |
Common Scenarios
Scenario 1: Account Setup Documentation
Document new account setup with policies:
# Upload account policy document
curl -X POST https://api.crm.test/api/v1/finance/chart-of-accounts/20001/documents \
-H "Authorization: Bearer YOUR_ACCESS_TOKEN" \
-F "file=@account_policy.pdf" \
-F "type=policy" \
-F "tags[]=policy" \
-F "tags[]=documentation" \
-F "name=Account 1000 - Cash Policy" \
-F "description=Cash account usage policy and procedures" \
-F "is_public=false" \
-F "is_sensitive=true"
# Upload account posting procedure
curl -X POST https://api.crm.test/api/v1/finance/chart-of-accounts/20001/documents \
-H "Authorization: Bearer YOUR_ACCESS_TOKEN" \
-F "file=@posting_procedure.pdf" \
-F "type=procedure" \
-F "tags[]=procedure" \
-F "tags[]=guideline" \
-F "name=Cash Posting Procedures" \
-F "description=Step-by-step posting guidelines for cash account" \
-F "is_public=false"Scenario 2: Compliance Documentation
Upload compliance and regulatory documents:
# Upload GAAP reference
curl -X POST https://api.crm.test/api/v1/finance/chart-of-accounts/20002/documents \
-H "Authorization: Bearer YOUR_ACCESS_TOKEN" \
-F "file=@gaap_reference.pdf" \
-F "type=policy" \
-F "tags[]=reference" \
-F "tags[]=compliance" \
-F "name=GAAP Revenue Recognition Guidance" \
-F "description=ASC 606 revenue recognition standards" \
-F "is_public=false"
# Upload tax regulation document
curl -X POST https://api.crm.test/api/v1/finance/chart-of-accounts/20002/documents \
-H "Authorization: Bearer YOUR_ACCESS_TOKEN" \
-F "file=@tax_regulation.pdf" \
-F "type=legal" \
-F "tags[]=regulation" \
-F "tags[]=compliance" \
-F "name=Tax Treatment - Revenue Account" \
-F "description=IRS guidance on revenue account treatment" \
-F "is_public=false" \
-F "is_sensitive=true"Scenario 3: Audit Documentation
Upload audit-related documents:
# Upload audit checklist
curl -X POST https://api.crm.test/api/v1/finance/chart-of-accounts/20003/documents \
-H "Authorization: Bearer YOUR_ACCESS_TOKEN" \
-F "file=@audit_checklist.pdf" \
-F "type=procedure" \
-F "tags[]=audit" \
-F "tags[]=guideline" \
-F "name=Account Audit Checklist" \
-F "description=Annual audit verification procedures" \
-F "is_public=false"
# Upload compliance certification
curl -X POST https://api.crm.test/api/v1/finance/chart-of-accounts/20003/documents \
-H "Authorization: Bearer YOUR_ACCESS_TOKEN" \
-F "file=@compliance_cert.pdf" \
-F "type=certificate" \
-F "tags[]=compliance" \
-F "tags[]=audit" \
-F "name=SOX Compliance Certification" \
-F "description=Sarbanes-Oxley compliance for account controls" \
-F "is_public=false" \
-F "is_sensitive=true" \
-F "expires_at=2025-12-31T23:59:59Z"Scenario 4: Account Usage Guidelines
Document account-specific instructions:
# Upload usage guidelines
curl -X POST https://api.crm.test/api/v1/finance/chart-of-accounts/20004/documents \
-H "Authorization: Bearer YOUR_ACCESS_TOKEN" \
-F "file=@usage_guidelines.pdf" \
-F "type=procedure" \
-F "tags[]=guideline" \
-F "tags[]=documentation" \
-F "name=Expense Account Usage Guidelines" \
-F "description=When and how to use account 5000 - Travel Expenses" \
-F "is_public=false"
# Upload approval workflow
curl -X POST https://api.crm.test/api/v1/finance/chart-of-accounts/20004/documents \
-H "Authorization: Bearer YOUR_ACCESS_TOKEN" \
-F "file=@approval_workflow.pdf" \
-F "type=procedure" \
-F "tags[]=procedure" \
-F "tags[]=guideline" \
-F "name=Approval Workflow - Travel Expenses" \
-F "description=Required approvals for travel expense postings" \
-F "is_public=false"Validation Rules
File Requirements:
- Maximum size: 50 MB
- All file types accepted (typically PDFs, Word documents)
Required Fields:
file,type
Optional Fields:
tags,name,descriptionis_public- Default: false (all CoA documents should be private)is_sensitive- Recommended: true for compliance and audit documentsexpires_at- For time-limited policies or certifications
Cross-Entity Workflows
Journal Entry Audit Trail
Complete audit documentation workflow:
# 1. Upload supporting documents when creating journal entry
POST /api/v1/finance/journal-entries/10001/documents
{
"file": <receipt.pdf>,
"tags": ["receipt", "proof"]
}
# 2. Upload approval document after review
POST /api/v1/finance/journal-entries/10001/documents
{
"file": <approval.pdf>,
"tags": ["approval"]
}
# 3. Upload reconciliation document at month-end
POST /api/v1/finance/journal-entries/10001/documents
{
"file": <reconciliation.pdf>,
"tags": ["reconciliation", "audit_trail"]
}
# 4. Retrieve complete audit trail
GET /api/v1/finance/journal-entries/10001/documentsAccount Policy Updates
Manage policy version control:
# 1. Upload new policy version
POST /api/v1/finance/chart-of-accounts/20001/documents
{
"file": <policy_v2.pdf>,
"tags": ["policy", "documentation"],
"name": "Account Policy v2.0 - Effective 2025"
}
# Note: Old policy automatically archived
# 2. Retrieve policy history
GET /api/v1/finance/chart-of-accounts/20001/documents?tags=policy&include_archived=trueBest Practices
1. Journal Entry Documentation
Complete Documentation:
- Upload supporting documents for every journal entry
- Include receipts, invoices, or other proof
- Document approval workflows
- Maintain clear audit trail
Naming Conventions:
- Include journal entry number in document names
- Reference transaction date in descriptions
- Use consistent tag combinations for similar transactions
- Example: "JE-10001 - Expense Receipt - Office Supplies - 2025-01-15"
Required Documents:
- Expense Entries: Receipt or invoice
- Revenue Entries: Invoice, contract, or proof of delivery
- Adjustments: Calculation worksheet, approval document
- Transfers: Supporting documentation showing reason
- Accruals: Contract or agreement showing accrual basis
2. Chart of Account Documentation
Policy Documentation:
- Document usage policies for all accounts
- Define posting procedures clearly
- Include approval requirements
- Update policies when standards change
Compliance:
- Reference applicable accounting standards (GAAP, IFRS)
- Document regulatory requirements
- Upload audit guidelines and checklists
- Set expiration dates for time-limited policies
Version Control:
- Name policies with version numbers
- Include effective dates in document names
- Archive old versions (don't delete)
- Maintain complete policy history
3. Audit Compliance
Audit Trail:
- Tag all audit-related documents with
audit_trail - Maintain complete documentation for financial audits
- Upload external auditor correspondence
- Document management approvals for significant transactions
SOX Compliance:
- Document internal controls for financial accounts
- Upload control testing documentation
- Maintain evidence of control effectiveness
- Set review dates for periodic control assessments
Document Retention:
- Retain financial documents per regulatory requirements (typically 7 years)
- Never hard-delete audit documentation
- Archive vs delete based on retention policies
- Mark retention period in document metadata
4. Security and Access Control
Mark All Documents as Sensitive:
- All finance documents should be
is_sensitive: true - Restrict access to finance team and auditors
- Implement role-based access controls
- Audit document access regularly
Data Protection:
- Never make financial documents public
- Encrypt sensitive financial data
- Control download access
- Track who accesses financial documents
Approval Workflows:
- Document all approvals digitally
- Upload signed approval forms
- Track approval chain in metadata
- Maintain approval authority documentation
5. Reconciliation and Review
Monthly Close:
- Upload bank statements for reconciliation
- Document reconciling items with supporting proof
- Upload month-end adjustment documentation
- Maintain complete close checklist with documents
Periodic Reviews:
- Review account documentation quarterly
- Update policies when accounting standards change
- Verify compliance documentation is current
- Check expiration dates on certifications
Troubleshooting
Common Issues
Problem: Journal entry rejected by auditor due to missing documentation
Solution:
- Verify all required supporting documents uploaded
- Check that documents include proper approval signatures
- Ensure tags include
audit_trailfor audit compliance - Upload supplementary documentation as needed
Problem: Cannot find supporting documents for historical journal entries
Solution:
- Use
include_archived=trueto see historical documents - Search by journal entry number in document names
- Filter by date range using created_at timestamps
- Check that documents weren't hard-deleted (should only be archived)
Problem: Policy document upload fails
Solution:
- Check file size is under 50 MB
- Verify file is not corrupted
- Compress large policy manuals
- Split multi-section policies into separate documents
Problem: Compliance document expired but still showing
Solution:
- System doesn't automatically hide expired documents
- Query documents and filter by
expires_atclient-side - Upload renewed compliance documents
- Old documents automatically archived when replaced
Related Documentation
- Main Document Management Guide - System-wide documentation
- Financial Reporting - Complete reporting documentation
- Journal Entry Workflows - Journal entry management
- Chart of Accounts Setup - Account setup and configuration
API Reference
For complete API specifications:
- OpenAPI Specification:
/docs/openapi.yaml - Interactive Documentation: Scribe-generated API docs
- Endpoint Group: Finance Module → Document Management
Compliance Notes
Accounting Standards:
- Document compliance with GAAP or IFRS as applicable
- Reference specific ASC codifications in account policies
- Upload relevant standard interpretations
Tax Compliance:
- Maintain documentation supporting tax positions
- Upload IRS or tax authority guidance
- Document transfer pricing policies
- Retain records per tax law requirements
SOX Compliance (for public companies):
- Document internal controls over financial reporting
- Upload control testing evidence
- Maintain segregation of duties documentation
- Document IT general controls
Audit Requirements:
- Provide complete documentation to external auditors
- Maintain audit trails for all financial transactions
- Document significant accounting judgments
- Upload management representation letters