What you will learn
This manual is designed for those who work in a fiduciary-type organization on Accountex: accountants, bookkeepers and audit teams managing multiple mandates for Swiss client companies.
It covers both the functions specific to the fiduciary role (mandates, chat, document requests, consolidation) and the accounting work performed on behalf of the client within the actAs context. By following the 8 operational sections you will master the entire firm workflow.
Conventions: code-style paths like /fiduciary/mandates are application URLs, UI actions are in bold. All URLs are localized /[locale]/... for IT/EN/DE/FR.
For detailed accounting procedures (invoices, expenses, VAT) this manual refers to the Client Tutorial: they are identical but executed in actAs context.
First access, onboarding and dashboard
Before you can invite clients you must correctly create your fiduciary organization. The process takes a few minutes but determines the FID-… association code you will use to link mandates.
Registration and firm security
As a fiduciary you are responsible for your clients' data: security must be maximum from first access.
- Open /auth/register and enter first name, last name, firm's professional email and password of at least 8 characters.
- Confirm the email received from Brevo. Login is automatic and you are redirected to /onboard.
- Immediately activate 2FA in /settings/security and store the backup codes in the firm's safe.
- For subsequent login you can use email/password or Google OAuth from /auth.
- In case of loss use /auth/forgot-password to receive a reset link via email.
Create the fiduciary organization
In /onboard, when asked "What type of organization do you want to create?" select Fiduciary. Fill in company name, legal form, address, postcode (≥4 digits), canton, IBAN and bank. At the end the system generates a unique FID-… association code visible in /settings or in the mandates section.
Upload the firm logo immediately (max 2 MB): it will be applied to PDFs generated on behalf of clients if configured in /settings. The initial plan is free: consider upgrading if you manage more than a few clients.
Dashboard and orientation
The interface is identical to that of a company, with some additional entries designed for the firm:
- Fiduciary sidebar with Mandates (/fiduciary/mandates) and Document requests (/fiduciary/document-requests).
- "Acting as" selector with banner in header that reminds which client you are managing.
- Chat FAB showing conversations with all active clients and a badge for unread messages.
- Notification badge including client events (uploaded documents, completed requests, received invitations).
- Fiscal Year Switcher in actAs context to quickly switch between client fiscal years during review.
A special banner appears if one of your invitations was rejected: you can remove it from the main list with dismissRejection while keeping it in history.
Mandates: invite, associate and create managed clients
Each client relationship in Accountex is represented by a mandate (FiduciaryAssociation record). The full list is in /fiduciary/mandates with filters by status (pending, active, rejected, terminated) and search by company name.
Mandates overview
Open /fiduciary/mandates for the list or /fiduciary/mandates/[id] for single mandate detail. You have three ways to establish a client relationship, chosen based on the client's degree of autonomy.
| Method | When to use | Initial status |
|---|---|---|
| Email invitation | The client participates actively: registration, login, full visibility. | Pending → Active |
| FID-… code | The client already has an account and requests association. | Request → Active |
| Managed client | Bookkeeping fully delegated; the client does not operate on the system. | Immediately active |
Invite a client company
From the /fiduciary/mandates menu click Invite client (or New mandate) to send an onboarding link via email.
- Click Invite client or New mandate in the mandates page.
- Enter the email of the client company's contact person.
- Add a personalized message (optional but recommended).
- Click Send invitation: a FiduciaryInvitation record is created and an email sent to the client.
- The invitation appears in the list as Pending; when the client accepts, the mandate becomes Active.
Association via fiduciary code
If the client already has an Accountex account they can self-request association by entering your FID-… code in their area. The request appears in /fiduciary/mandates under Pending requests: review the company's information and click Approve or Reject.
The FID-… code is visible in /settings → Organization → Association code of the fiduciary (read-only). Copy it and share with the client via a secure channel.
Create a managed client directly
When the client has no Accountex account yet and you prefer to manage their bookkeeping entirely, use the Create managed client button. In a single transaction the system creates a company-type organization with managed:true flag, free subscription, Swiss chart of accounts, first fiscal year, FiduciaryAssociation already approved and ready-to-use chat.
- In /fiduciary/mandates click Create managed client.
- Company data section: company name, legal form, sector, UID and VAT number (optional).
- Location section: street, postcode 4 digits, city, canton.
- Accounting settings: fiscal year start/end, accounting year, IBAN and bank.
- Click Create managed client: the mandate is immediately active.
If later the client wants to access, register them in /auth/register with their email and add them as a member of the existing managed organization; then adjust visibility with the client access toggle.
ActAs context: operating as the client
Once a mandate is approved, you access the client's bookkeeping via the ?actAs=<orgId> parameter. All tRPC/API calls automatically include the x-acting-as-org header and every action is tracked in the client's audit log with your userId as author.
Starting and exiting actAs context
- Open
/fiduciary/mandatesand on the mandate row click Access, or open the detail and click Open accounting. - The URL takes the format
/?actAs=<orgId>and the banner "You are operating as <Client Company Name>" appears in the header. - You navigate dashboard, invoices, expenses, reports and VAT of the client with owner-level company permissions.
- To exit click Exit client in the banner, or return to
/fiduciary/mandateswithout parameter.
Tip: use multiple browser tabs to work on multiple clients in parallel (one tab per client).
Operating on bookkeeping
You perform all accounting operations as the company would. Every mutation is logged with your user as author. Do not change sensitive settings (IBAN, tax data) without agreeing with the client: you could break existing payment flows.
Double-check the context: before every significant operation verify the "Acting as …" banner in header to avoid recording operations in the wrong client.
Manage client access to their bookkeeping
On active mandates you can decide whether the client can view/edit their own bookkeeping or whether management is exclusive to the firm (toggleClientAccountingAccess mutation, allowClientAccountingAccess field). The switch is in the mandate tab at /fiduciary/mandates/[id].
- During year-end closings: disable access to prevent client postings while you make adjustments.
- For managed clients: avoid accidental access when the client has no interest in operating.
- During consolidation periods: keep balances stable while working on the multi-mandate cluster.
The change is immediate: on next load the client will see a "bookkeeping managed by fiduciary" screen. The action is recorded in the audit log and the client receives notification.
Communication: chat, document requests and public upload
Accountex offers three complementary channels to collect information and documents from clients. Use the right one based on the required level of formality.
Fiduciary-client chat
Open the chat FAB at the bottom right to see conversations with all active clients, or click Chat from the mandate detail. Delivery is real-time via Socket.IO (org:[id] room).
- Direct file attachments via paperclip icon (ChatMessage supports attachments).
- FAB badge with total unread messages (getTotalUnread); automatic read-marking on open.
- Push/email notification to the client if configured in their organization.
- Ideal for quick clarifications; for formal requests with tracking and deadlines use Document Requests instead.
Document requests to clients
From the /fiduciary/document-requests menu create formal requests with a public link that the client opens without login. Each uploaded document is automatically sealed (SHA-256 + RSA-PSS + TSA) for audit.
- Click New request and select the recipient client from active mandates.
- Fill in title (e.g. "Q2 2026 VAT documents"), description and list of requested documents.
- Set an optional deadline to activate automatic reminders.
- The system creates a unique token, sends email to the client with
/r/[token]link and generatesdocument_request_pendingnotification. - Monitor upload status in
/fiduciary/document-requests/[id]with timeline and integrity download. - Send manual reminder from the detail or let
/api/cron/document-reminderssend automatic reminders until completion.
Each uploaded document is sealed with SHA-256 hash + RSA-PSS signature + TSA timestamp: certain timestamp for audit and FTA controls. You can also create recurring request templates from the document-request-template router.
Client public upload /r/[token]
The client receives the email with /r/[token] link, opens a public page without login showing the fiduciary's name, request title and document list. Uploads each file (max 10 MB via presigned S3 URL); on completion you receive email + document_uploaded notification.
If the client reports that the link doesn't work, probably the token has expired or the request was already completed. Create a new request and send the new link; if it persists, open a support ticket with the request ID.
Year-end closings, VAT and reports
For each managed client you typically run a pre-checked closing cycle, the FTA VAT declaration and production of key reports for annual audit.
Year-end closing flow
- In
/fiscal-yearsselect the fiscal year and click Closing preview; in the Pre-closing report step download the PDF (/api/reports/pre-closing/pdf) with draft postings, unreconciled accounts and missing documents. - Complete bank reconciliations in
/tools/bank-statement-importand asset depreciation in/assets. - Post accruals, deferrals and other year-end adjustments in
/journal. - Compile financial notes in
/reports/financial-notes: have the client review in Draft, then switch to Final. - In
/fiscal-yearsuseclosingPreviewWithAdjustmentsfor preview with adjustments and send to client for confirmation. - Click Close: status becomes
closed, opening balances are generated; export the journal from/tools/accounting-exportfor the firm archive.
Only close the fiscal year after the Pre-closing is "green" (no warnings) and after explicit client confirmation on financial notes. Closing is a delicate operation not to be rushed.
FTA VAT Declaration
In actAs context open /vat/afc-declaration to manage periodic declarations for each client.
- Click New declaration and select period and method (effective/agreed).
- Click Generate and review totals by rate.
- Export XML from
/api/vat/declaration/xmlfor upload to the FTA portal. - Export PDF for client archive and attach to chat as proof of filing.
- After submission to the portal, click Mark as submitted to close the status.
Periodic reports for audit
For each client and at regular intervals produce the standard report set, attachable to chat for review with the client:
- Balance sheet (
/reports/balance-sheet) and income statement (/reports/income-statement) in PDF. - Trial balance (
/reports/trial-balance) and general ledger / subsidiary ledger (/reports/subsidiary-ledger) essential for audit and FTA controls. - Account ledger for a single account from
/chart-of-accounts/[code]→ Export PDF account ledger (/api/reports/account-ledger/pdf). - AR/AP aging (
/reports/aging) to monitor collections and payments. - Cost center analytics (
/reports/cost-center-analytics) and currency report for multi-currency clients. - Budget report from
/budget/[id]detail → Export PDF (/api/reports/budget/pdf) for forecast/actual comparison.
For stable historical archive use consolidation snapshots (Consolidation section) or accounting export /tools/accounting-export with Abacus, Banana, DATEV and CSV formats.
Multi-mandate consolidation
If you manage multiple related companies (group of companies of the same client) you can create consolidation groups in /consolidation with account mapping, intercompany reconciliation and adjustments.
Create and manage a consolidation group
- Go to
/consolidation/newand enter group name, presentation currency, parent company. - In
/consolidation/[groupId]/membersadd members (getAvailableClients) with share, method (full/proportional/equity) and functional currency. - In
/consolidation/[groupId]/account-mappingclick Auto-map (autoMapAccounts) and correct manually where needed. - In
/consolidation/[groupId]/intercompanycreate rules to identify reciprocal items and click Reconcile. - In
/consolidation/[groupId]/adjustmentsenter consolidation adjustments (eliminations, reclassifications) and generate consolidated PDF reports.
| Feature | Path |
|---|---|
| New group | /consolidation/new |
| Members | /consolidation/[groupId]/members |
| Account mapping | /consolidation/[groupId]/account-mapping |
| Intercompany | /consolidation/[groupId]/intercompany |
| Adjustments | /consolidation/[groupId]/adjustments |
| Snapshots | /consolidation/[groupId]/snapshots |
Use snapshots to freeze a stable version of the consolidation (useful for period balance sheets) and compare historical series for trend analysis. You can create multiple independent groups for different partitions of the same perimeter.
Firm management: settings, collaborators, subscription
All firm administration functions are under /settings. Here you manage master data, collaborators, Stripe subscription and notifications.
Terminate a mandate
Open /fiduciary/mandates/[id] and click Terminate mandate: the association is deactivated, you lose actAs access and the client receives notification. If your invitation was rejected click Dismiss to remove it from the main list (it remains in history).
Before terminating a mandate always download accounting exports (Abacus/Banana/DATEV/CSV) and period balance sheets for the firm archive: there is no native "reopen" and re-association requires a new invitation.
Firm settings
In /settings you find tabs identical to companies, with some fiduciary-specific particularities:
- Read-only association code
FID-…visible in Organization (copy to share with clients). - Firm data: company name, address, IBAN for fees, logo applied to PDFs generated for clients if configured.
- Invoice/reminder prefixes: used only for billing issued by the firm (your own fees).
- Custom colors applied to PDFs and firm documents.
- Privacy and processing register (
/settings/privacy/registro-trattamenti) mandatory per Art. 30 GDPR / Art. 12 nLPD.
Firm collaborators
In /settings/collaborators click Invite collaborator (plan limit applies) and enter the email: a CollaboratorInvitation is created and email sent. The collaborator has collaborator role on the fiduciary organization, sees mandates and accesses actAs.
Every collaborator action is logged in the audit log of the client they operate on. Remove makes them lose access to firm and all mandates. For external auditors you can invite them as collaborators or share accounting exports offline.
Firm subscription
In /settings/subscription view current plan and limits (OCR/month, storage, collaborators). Click Change plan for upgrade via Stripe or access the Stripe Customer Portal for payment methods and invoices. History in /settings/billing.
OCR and storage usage is summed across all firm operations and all managed clients: monitor consumption to avoid blocks (429 OCR error when saturated). Upgrade before peak periods such as closings or VAT filings.
Notifications for the fiduciary
In /settings/notifications configure in-app (Socket.IO real-time), browser push and email digest (daily or weekly). Relevant events: document_uploaded, chat messages, association invitations/requests, client overdue invoices. Enable push for urgent events and email digest for overview.
Compliance: audit log, sealing, privacy, API
Fiduciaries are responsible for traceability and regulatory compliance (nLPD, LIP, 10-year archiving). Accountex offers integrated tools to cover these obligations.
Audit log
The key tool for audit and tax controls is available both at firm level (/audit-log) and in actAs context (showing actions on the client organization, including those performed by you).
- At firm level: actions of members on the firm's own account.
- In actAs context: actions on client organization tracked with your userId.
- Filters by user, action, date, entity; sensitive keys (passwords, tokens) are sanitized.
- Essential for periodic reviews (recommended monthly if there are multiple collaborators).
Document sealing
Every document in the client's /documents is sealed with SHA-256 hash, RSA-PSS signature and TSA timestamp. For reviews open /documents, click Verify integrity on the document: if authentic and untampered, the check passes.
The retention policy (retentionUntil) respects the 10 years required by Swiss legislation. For historical backfill use sealExisting from the client documents menu.
Privacy, GDPR and nLPD
In /settings/privacy manage firm consents and requests to export/delete personal data. In /settings/privacy/registro-trattamenti fill the mandatory register (purpose, legal basis, data categories, recipients, retention, security measures) for each processing activity performed for clients.
API Keys and webhooks
In /settings/api create API keys (name + scopes, value shown only once) and webhooks (URL + invoice.*, expense.* events + HMAC secret). Monitor Delivery history and use Send test to verify the endpoint. For client operations always use x-acting-as-org header.
Integrated support
Click Support in sidebar/header to open a SupportTicket: if none exists one is created automatically. Write the request, attach screenshots; Accountex admins reply in-app. Unread admin messages are counted in the notification badge; attachments are available via presigned URL.
Operational best practices
- Maximum security: 2FA mandatory for all firm members; backup codes stored in the safe.
- Consistent naming: use similar conventions for chart of accounts and cost centers across all clients to facilitate consolidation.
- Use Document requests instead of chat for formal collection: you get tracking, deadlines and automatic sealing.
- Download periodic exports (Abacus/Banana/DATEV/CSV) from
/tools/accounting-exportfor external archive beyond the one in the system. - Verify actAs before every significant action: a flag in header confirms the organization you are operating on.
- Monitor subscription: OCR and storage are shared across all managed clients, upgrade before seasonal peaks.
FAQ and troubleshooting
The client does not receive the invitation email
Ask to check spam. Alternatively share the FID-… code and have them request association from their /settings.
I can't find a function while operating in actAs
Some /fiduciary/... sections are visible only to the fiduciary organization, not to the client. Exit actAs context to return to fiduciary functions.
"you're acting as another organization" API error
The client sent the x-acting-as-org header but you don't have an active mandate on that organization. Check the mandates list and restart actAs context from the UI.
I terminated a mandate by mistake
There is no native "reopen": send the client a new invitation in /fiduciary/mandates and have them approve again. The history of previous operations remains visible in the client's audit log.
Simplify your Swiss accounting
AccountEX handles VAT, QR-invoices and bookings with AI. Start for free.
Start Free