Agent access

Datavrn for AI agents

Datavrn is a deterministic financial-statement engine. Your AI assistant drives it; Datavrn computes the statutory numbers — no AI generates or computes your figures, and no classification is ever applied without your explicit approval. An agent can take an entity from trial-balance upload to a finished Schedule III workbook: every suggestion is reviewed by your user, every data change is attributed in the audit log, and ungrouped accounts are always called out, never hidden.

Assistants can read figures in the connection’s enabled data categories — figures come from Datavrn’s deterministic engines and persisted runs; interpretation happens in your assistant.

Getting started, step by step

New to Datavrn? Here is the whole path from an empty account to a finished Schedule III statement. Your assistant can do the numbered steps for you; ask it to call get_setup_status at any point and it will tell you exactly where you are and what is next.

  1. Connect your assistant to Datavrn (OAuth for chat assistants, or an API key for scripts — see the sections below).
  2. Create the entity (the company the statement is for) — ask your assistant to create it, or add it in the web app.
  3. Give Datavrn the trial balance: your assistant makes a one-time upload link and you upload the file in your browser (the file never passes through the assistant).
  4. Confirm the column mapping — your assistant shows how it read the file’s columns; you check and approve them.
  5. Review the grouping suggestions together — Datavrn suggests which statement line each account belongs to; you approve each one. Nothing is applied automatically.
  6. Capture the extras the statement needs — statement settings (rounding, signatories) and any asset or provision movement schedules. Previous-year comparative figures fill in automatically from last year’s Trial Balance read through your current groupings; override a line only when your audited figures differ.
  7. Generate the statement — this runs as a short background job; your assistant tells you when the workbook is ready (a few minutes is normal).
  8. Download the workbook — your assistant gives you a short-lived link to open the Excel file in your browser.
  9. Ask questions of the finished statement — once generated, your assistant can read the figures and notes back to you, and list what is still pending across your entities.

Ask your assistant to call get_setup_status any time to see exactly where you are and the one next step to take.

Connecting a chat assistant (OAuth)

The simplest way in. Chat assistants that support connectors — such as Claude and ChatGPT — connect with OAuth: no key to create or paste.

In your assistant, add Datavrn as a connector and give it https://app.datavrn.com/api/mcp. In Claude that is Settings → Connectors → Add custom connector.

Your assistant sends you to a Datavrn consent screen: sign in, choose which organization the assistant may act in, and pick an access profile — Setup assistant, Support, Analyst, or Full access — that decides what it may see and do. The safe default (Support) shows progress and statuses but no figures; you consciously choose Analyst or Full to let it read statement numbers. An Owner or Admin can narrow a connection any time in Settings → Agent access; widening it needs a fresh approval (reconnect and choose the wider profile).

The assistant then acts as you, at your current role, and every action is recorded in that organization’s audit log under your name. You can disconnect your own app at any time from Settings → Agent access; it loses access immediately.

To confirm it worked, just ask your assistant to “check my Datavrn connection” — it calls verify_connection and reports the organization and access profile it is connected with. That check also turns the connection green in Settings → Agent access.

Statutory figures are the data-access floor. Management reporting figures are a separate, default-off choice. Adding them later requires reconnecting so the connecting member approves the wider data access. Consolidated group figures are not currently published to agent connections while Datavrn completes financial-statement validation.

For developers and automations (API key)

Scripts, agent frameworks, and developer tools that can send a request header authenticate with an org API key instead. (Chat assistants can’t use a key — connect them with OAuth.)

An Owner or Admin creates an API key in Settings → Agent access. Choose the key’s role — Viewer, Contributor, or Manager — its access profile (Setup assistant, Support, Analyst, or Full access — what it may see and do), and optionally restrict it to specific entities. Role is who the key acts as; the profile is what it may see and do.

Choose data access separately: statutory figures are always included, while management reporting figures are optional and default off. Consolidated group figures are not currently published to agent connections while Datavrn completes financial-statement validation. An Owner or Admin can change a key’s data access later in Settings → Agent access.

You can run several agents, not one agent doing every job: create several keys, each named, profiled, and entity-scoped for its purpose (a Setup assistant that never sees figures, an Analyst that reads figures but changes nothing, and so on). Each is metered and audited separately. An Owner or Admin can change any key’s profile later in Settings → Agent access.

Point your MCP-capable tool at https://app.datavrn.com/api/mcp (Streamable HTTP) with the key as the Bearer token. Every tool call authenticates with it; there is no anonymous access to any data. The full tool surface is published below; a connection only ever sees and can call the tools its profile admits.

Reading a statement as data

Once a Schedule III statement has been generated, an assistant can read its figures without downloading the workbook: get_statement_figures returns the balance-sheet and profit-and-loss faces plus separate current-year and previous-year tie checks, bounded accounting-exception counts, and frozen control changes versus the immediately previous version; get_statement_notes returns the note breakdowns; get_tb_rows returns the trial-balance source data.

The figures are snapshot-anchored — they come from the exact version that was generated, so a number quoted in chat matches the workbook. A statement generated before this feature existed reports figures as not yet available; generate it again, then read the latest version.

Assistants can read figures in the connection’s enabled data categories — figures come from Datavrn’s deterministic engines and persisted runs; interpretation happens in your assistant.

Reading management and consolidated figures

When Management reporting figures are enabled, an Analyst or Full connection can read persisted allocation runs at account or target grain, spreading reconciliation, budgets, and budget-vs-actual variance. Results are source-pinned and paged; amounts are decimal strings, warnings and staleness stay disclosed, and internal or personal fields are not returned.

For allocation, start with list_allocation_runs to inspect the separate cost-centre and profit-centre reconciliations. They are independent views of the same P&L activity and must not be added. Then choose allocation_dimension cost for cost-centre or step-down questions, or profit for profit-centre questions, before reading account or target figures. Target labels use the current governed centre timeline evaluated at the run period (target_labels_frozen: false); amounts remain persisted. If an in-period controlled correction changes a label, the signed page token becomes stale: restart at page 1 without regenerating allocation. Review run staleness and methodology, and regenerate when either changed. If the figures fail their integrity check, regenerate, retry, then contact support if it recurs.

When Consolidated group figures are enabled, a connection can read a sealed group profit-and-loss, balance-sheet, or eligible cash-flow face only when it can access every entity in the group. Member names, journals, eliminations, components, and lineage are not returned.

A consolidated response can carry qualifications on specific statement lines — owned_share_capital_caveat (at seal, share capital owned by the group could not be eliminated, so those amounts remained inside consolidated share capital as the engine computed it; where a manual journal also moved that line the displayed amount may differ in either direction, so do not characterise the direction from this field alone) and domestic_cash_flow_caveat. Present a qualified figure together with its qualification, never the number alone. owned_share_capital_caveat is null when the run was read and carries no such qualification; a status of "unavailable" means the run’s qualification record could not be read at all, which is not the same as clean — say so rather than presenting the figures as final.

Consolidated cash-flow is available only for an all-domestic group in v1. If any member uses a foreign currency, Datavrn does not present a consolidated cash-flow statement. Where it is presented, it is prepared by the indirect method from balance-sheet movements rather than from cash records, and classified into operating, investing and financing activities using each entity’s reporting-line mapping. Interest paid and taxes paid are not disclosed separately, so they remain inside the operating movement; a movement whose reporting line carries no cash classification is shown under “Unclassified movements — review” rather than assigned to an activity. Datavrn does not present other comprehensive income or total comprehensive income in the consolidated output.

Knowing what is left to do

get_pending_work answers "what’s left across my entities?" in one call: one row per entity you can see, showing whether its trial balance is in, how many accounts are still ungrouped, which statement version exists, and whether it has been finalised.

It also carries restorable_replacements: every place an AUTOMATIC sync overwrote a past period and the 30-day window to undo it is still open, with the entity and connection to act through. Nothing announces that window closing, so this is where it becomes visible.

Tools (67)

The server is self-describing (tools/list); this list is generated from the same contract. Tool names and schemas are versioned and only change additively. This is the full public tool surface. A connection sees only the intersection permitted by its access profile and enabled data categories.

Replace a period’s trial balance — only a profile that can upload can do this. If it uploads a trial balance for a period that already has one, the earlier trial balance for that period is permanently deleted and replaced — whoever uploaded it, from an assistant or from the Datavrn app — and there is no undo. Datavrn never replaces a period unless the assistant explicitly confirms: the first attempt is refused with nothing written, and Datavrn tells the assistant exactly how many records would be deleted along with a short-lived approval it must send back before anything happens. Your assistant cannot skip that step. It is required to show you that count and get your go-ahead first, but Datavrn cannot verify that it did — so ask to see the count before you let it replace a period. Selected write-capable tools can replace or explicitly remove saved Schedule III rows. Before such a change, Datavrn returns the affected type and count together with a short-lived approval token. It carries out only that exact proposed removal after the token is sent back. Nothing is saved or removed in the first response. To review the current rows before approval, open the Schedule III workspace. Replace the Significant Accounting Policies and the Other Regulatory Information affirmations. Each save replaces the WHOLE set for that note: any policy or affirmation the assistant leaves out of the save is dropped back to Datavrn’s template wording, even if someone answered it earlier in the Datavrn app. Datavrn does not let that happen silently — if a save would drop answers, nothing is saved and Datavrn returns the number that would be dropped together with a short-lived approval, and carries out the change only when that approval is sent back. A save that carries the complete set drops nothing and goes through straight away. Ask your assistant to send the complete set every time, and check the notes in the Schedule III workspace after a change. Previously finalised versions are not affected. Some write tools replace the value currently saved in a staged choice, comparative, schedule, statement setting, or disclosure section. The submitted value becomes current and the previous value is no longer current, even when Datavrn keeps its audit history. Review the exact values your assistant will send before allowing the change. Withdrawing a capture answer makes that section unanswered again but preserves who originally recorded and withdrew it. Finalising a statement permanently seals that version and cannot be undone; later changes require a new version. Undo an automatic sync that replaced a past period — putting the earlier records back. THIS DESTROYS whatever is held for that period now, including anything you or a colleague uploaded since, and Datavrn does not offer that back to an assistant afterwards. Only syncs that ran on their own are offered, only for 30 days after they ran, and never one someone on your team previewed and confirmed themselves. Datavrn never undoes a sync in one step: the first call writes nothing and returns exactly how many records would be destroyed and how many put back, together with a short-lived approval tied to those exact numbers and to the member you name. Your assistant cannot skip that step or adjust those numbers, and if the period’s data changes in between the approval is spent and it has to start again. It is required to show you the two counts and get your go-ahead first, but Datavrn cannot verify that it did — so ask to see them.

Guarantees and limits