Skip to main content
AccountEX
All guides
18 min read·Last updated: 2026-04-15·For Swiss fiduciaries and firms

Fiduciary Tutorial: how to use Accountex in your firm

Operational guide for Swiss accountants, fiduciaries and bookkeeping firms. Learn to manage multiple mandates, operate on behalf of the client (actAs), collect documents via public links, close fiscal years and consolidate corporate groups.

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.

MethodWhen to useInitial status
Email invitationThe client participates actively: registration, login, full visibility.Pending → Active
FID-… codeThe client already has an account and requests association.Request → Active
Managed clientBookkeeping 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/mandates and 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/mandates without 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 generates document_request_pending notification.
  • Monitor upload status in /fiduciary/document-requests/[id] with timeline and integrity download.
  • Send manual reminder from the detail or let /api/cron/document-reminders send 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-years select 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-import and 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-years use closingPreviewWithAdjustments for preview with adjustments and send to client for confirmation.
  • Click Close: status becomes closed, opening balances are generated; export the journal from /tools/accounting-export for 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/xml for 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/new and enter group name, presentation currency, parent company.
  • In /consolidation/[groupId]/members add members (getAvailableClients) with share, method (full/proportional/equity) and functional currency.
  • In /consolidation/[groupId]/account-mapping click Auto-map (autoMapAccounts) and correct manually where needed.
  • In /consolidation/[groupId]/intercompany create rules to identify reciprocal items and click Reconcile.
  • In /consolidation/[groupId]/adjustments enter consolidation adjustments (eliminations, reclassifications) and generate consolidated PDF reports.
FeaturePath
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-export for 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