com.datavrn/schedule-iii
REMOTE · APP.DATAVRN.COM · SCANNED AUG 13
Deterministic Schedule III statements for Indian companies: trial balance in, Excel workbook out.
Available components
How this component scores in each security and reliability category. Every signal is checked automatically against the live server, and we only credit what we can confirm. How we score →
Endpoint Security94
- The endpoint's TLS certificate is valid, in date, and uses a strong key. View diagnostics → Pass
- Authorisation is enforced on tool calls, advertised via RFC 9728 protected-resource metadata. Discovery is public, which costs nothing: no tool can be invoked without a token. View diagnostics → Pass
- HTTPS is enforced; there's no plaintext access path. View diagnostics → Pass
- The HSTS (Strict-Transport-Security) header is present. View diagnostics → Pass
- DNSSEC check failed: this domain isn't protected by DNSSEC. See how to fix → View diagnostics → Fail
- The authorisation server offers only Dynamic Client Registration (RFC 7591), which MCP 2026-07-28 deprecated in favour of Client ID Metadata Documents. View diagnostics → Partial
Transport & Reachability100
- Verified streamable-http transport via a live MCP handshake. View diagnostics → Pass
Schema Quality & AI Usability63
- AI-judged instruction clarity (excellent).Pass
- Context-footprint check failed: tool/resource definitions use about 12828 tokens (~217/item across 59 items; 59 tools + 0 resources), over budget; trim descriptions and params. See how to fix → Fail
- Usage-examples check failed: none of the tools include examples. See how to fix → Fail
Stability & Change Management23
- Stability observed for 7 of 30 days with no destabilising changes; credit accrues until the full window elapses.Partial
Tool Coverage88
- 100% of tools have a non-trivial description (not blank, and not just the tool's name).Pass
- 63% of tool parameters carry a description.Partial
Capabilities100
- Implements a supported MCP spec version (2025-11-25); the latest is 2026-07-28.Pass
Add this component to your MCP client. Where a client-specific snippet is available, pick your client below and copy it straight into your config; otherwise use the connection detail shown.
remote · app.datavrn.com
claude mcp add --transport http com-datavrn-schedule-iii https://app.datavrn.com/api/mcp
[mcp_servers.com-datavrn-schedule-iii] url = "https://app.datavrn.com/api/mcp"
{
"$schema": "https://opencode.ai/config.json",
"mcp": {
"com-datavrn-schedule-iii": {
"type": "remote",
"url": "https://app.datavrn.com/api/mcp",
"enabled": true
}
}
} openclaw mcp add com-datavrn-schedule-iii --url https://app.datavrn.com/api/mcp --transport streamable-http
mcp_servers:
com-datavrn-schedule-iii:
url: "https://app.datavrn.com/api/mcp" {
"mcpServers": {
"com-datavrn-schedule-iii": {
"type": "http",
"url": "https://app.datavrn.com/api/mcp"
}
}
} The mcpServers block is a cross-client convention. Remote transports vary, so check your client's docs.
Every change we have recorded for this component, newest first. Security-relevant changes are always shown. ▲ marks a change for the better, ▼ a change for the worse; unmarked changes are neutral.
- 13 Aug 26 0
- Tool “set_header_row” is now declared destructive security
- Tool “revoke_capture_declaration” is now declared destructive security
- Tool “save_asset_movements” is now declared destructive security
- Tool “save_disclosures” is now declared destructive security
- Tool “save_py_values” is now declared destructive security
- Tool “save_share_capital” is now declared destructive security
- Tool “save_statement_settings” is now declared destructive security
- Tool “confirm_column_mapping” is now declared destructive security
- Tool “finalise_statement” is now declared destructive security
- 12 Aug 26 0
- Tool “get_consolidated_statements” rewrote its description, which is the text the model reads security
- 11 Aug 26 +3
- We updated how we score, so this day's move reflects our rubric, not a change to the server See what changed → functional
- 9 Aug 26 +1
No change was recorded against any check on this day. Stability & Change Management went from 7 to 10. That category is still filling its 30-day observation window: 2 days of observed history at the previous scan, 3 at this one. The score rises as the window fills, whether or not the server changes.
- 7 Aug 26 +1
- Stability: unverified → 0.03 ▲ functional
- 6 Aug 26 72
First indexed and scored.
Diagnostic detail from the automated scan of this channel: what the scanner observed at each step, so you can see exactly where a check passed or failed. It is informational only and never changes the trust score.
Captured 13 Aug 2026 · Probed https://app.datavrn.com/api/mcp
TLS valid
Negotiated TLS 1.3 with TLS_AES_128_GCM_SHA256 .
| Subject | Issuer | Valid from | Valid until | Key | Signature | Serial |
|---|---|---|---|---|---|---|
| CN=app.datavrn.com | CN=YR1,O=Let's Encrypt,C=US | 22 Jun 2026 | 20 Sept 2026 | RSA 2048 | SHA256-RSA | 5c88e9b147bd7ae4c8cf2dec2bf215ed780 |
| SANs: app.datavrn.com | ||||||
| CN=YR1,O=Let's Encrypt,C=US (CA) | CN=Root YR,O=ISRG,C=US | 3 Sept 2025 | 2 Sept 2028 | RSA 2048 | SHA256-RSA | a20253f15f2691c05dc1ce13b9bcca4e |
| CN=Root YR,O=ISRG,C=US (CA) | CN=ISRG Root X1,O=Internet Security Research Group,C=US | 13 May 2026 | 2 Sept 2032 | RSA 4096 | SHA256-RSA | f24b6d17f9d9ad7cb1c9fea78782699f |
DNSSEC insecure
Validation of app.datavrn.com. — Not signed
| Zone | DS | Keys | Algorithms | Outcome |
|---|---|---|---|---|
| . | trust_anchor | 20326, 38696 | 8, 8 | Verified |
| com. | present | 19718 | 13 | Verified |
| datavrn.com. | absent | Unsigned (proven) parent-signed NSEC/NSEC3 proves an unsigned delegation |
Authentication Enforced and verified
The endpoint asked for a token and published valid RFC 9728 metadata describing how to get one.
| Result | Enforced and verified |
|---|---|
| Enforced | On tool calls |
| HTTP status | 200 |
WWW-Authenticate challenge Bearer resource_metadata="https://app.datavrn.com/.well-known/oauth-protected-resource/api/mcp"
Bearer resource_metadata="https://app.datavrn.com/.well-known/oauth-protected-resource/api/mcp" | Header | Value |
|---|---|
| strict-transport-security | max-age=15552000; includeSubDomains; preload |
| content-security-policy | default-src 'self'; base-uri 'self'; object-src 'none'; frame-ancestors 'none'; form-action 'self' https://api.razorpay.com; img-src 'self' data: blob: https://jmkgxtzscatvuqefbiyq.supabase.co https://*.razorpay.com; font-src 'self' data:; style-src 'self' 'unsafe-inline'; script-src 'self' 'unsafe-inline' https://*.razorpay.com; connect-src 'self' https://jmkgxtzscatvuqefbiyq.supabase.co wss://jmkgxtzscatvuqefbiyq.supabase.co https://o4511541413740544.ingest.de.sentry.io https://*.razorpay.com; frame-src 'self' https://api.razorpay.com https://checkout.razorpay.com; worker-src 'self' blob:; manifest-src 'self' |
| x-content-type-options | nosniff |
| x-frame-options | DENY |
| referrer-policy | strict-origin-when-cross-origin |
| permissions-policy | camera=(), microphone=(), geolocation=(), payment=(), usb=(), browsing-topics=() |
Protected resource metadata
| Document | https://app.datavrn.com/.well-known/oauth-protected-resource/api/mcp |
|---|---|
| Retrieved | Yes |
| Resource | https://app.datavrn.com/api/mcp |
| Authorisation server | https://jmkgxtzscatvuqefbiyq.supabase.co/auth/v1 |
Transports 2 probes
| Transport | URL | Outcome | Status | Location |
|---|---|---|---|---|
| streamable-http | https://app.datavrn.com/api/mcp | Verified | 200 | |
| http (plaintext) | http://app.datavrn.com/api/mcp | HTTPS enforced | 308 | https://app.datavrn.com/api/mcp |
The tools this component advertises to a client, with an estimated token cost for each. Expand a tool to see its parameters and schema. The per-tool counts are indicative and are not scored directly; the schema's total context footprint is one signal in Schema Quality & AI Usability.
confirm_capture_review Confirm a section has been reviewed ~334
Record your user’s confirmation that they have REVIEWED a whole section and it is complete — the entire previous-year comparative column, or the entire disclosure set. A review confirmation is your user’s professional assertion, recorded as authorised by them. Before calling this, show them what you are confirming — the whole comparative, or the whole disclosure set — and get their explicit go-ahead. Never confirm a review that has not happened. Saving figures or text does NOT complete these two sections and never has; only this confirmation does. The confirmation is pinned to the exact set that was reviewed, so ANY later save to that section withdraws it — if a confirmation appears not to stick, the next step is to re-review and confirm again, never to retry. Only two sections take a review confirmation: the previous-year comparative and the disclosure set. Every other section is answered by saving its rows, or by declare_capture_na. Datavrn notifies the member you name that this was recorded in their name. Generate a fresh version after your last capture change — finalisation checks the version’s frozen capture state, not today’s.
| Name | Type | Req | Description |
|---|---|---|---|
| capture_kind | string | yes | – |
| client_id | string | yes | The entity (client) id — from list_clients. |
| note | string | – | – |
| on_behalf_of | string | yes | The email address your user signs in to Datavrn with. This records who authorised the change alongside the connection that made it. Ask them for it — do not guess. |
| period_id | string | yes | – |
| reason_code | string | yes | – |
| template_id | string | yes | – |
No output schema declared.
No examples provided.
confirm_centre_mappings Confirm cost-centre mappings ~206
Persist only the explicit account-to-centre decisions the user approved. Before calling, show the proposal grouped by confidence tier and target with exact counts, call out every medium/low-confidence row, and get a clear approval for the enumerated items. Omitted accounts stay unchanged; there is no apply-all, auto-confirm, or use-suggestions flag. After the write, report confirmed, unmapped_total, and unmapped_with_balance so the user knows exactly what remains. This tool never returns rupee amounts.
| Name | Type | Req | Description |
|---|---|---|---|
| client_id | string | yes | The entity (client) id — from list_clients. |
| effective_from | string | yes | The effective date shown to the user. |
| items | array | yes | Every account decision explicitly approved by the user; never a blanket flag. |
| removal_count | integer | – | The exact removal count returned by the removal preview. |
| removal_token | string | – | Only include the short-lived token returned by the removal preview for this exact proposal. |
No output schema declared.
No examples provided.
confirm_column_mapping Confirm column mapping ~102
Confirm the column→field mapping for a staged upload and run validation. Returns the full validation result (row counts, warnings, blocking issues). Mapping suggestions are never auto-applied — pass exactly the mapping your user approved. Review any warnings with your user before ingesting.
| Name | Type | Req | Description |
|---|---|---|---|
| mapping | object | yes | – |
| options | object | – | – |
| save_as | string | – | – |
| upload_id | string | yes | The upload session id returned by upload_trial_balance. |
No output schema declared.
No examples provided.
confirm_groupings Confirm account groupings ~165
Persist USER-approved account→line groupings. Omitted accounts stay unchanged. Only explicit leaf_code:null clears a saved grouping. When clearing a saved grouping, use the current grouping_version from list_grouping_suggestions. An actual clear first returns an approval request; nothing changes then. Resend the unchanged request with the approval details to proceed. Clearing an already-unclassified account is an idempotent no-op. Every row must be explicit — there is deliberately no "apply all suggestions" option.
| Name | Type | Req | Description |
|---|---|---|---|
| client_id | string | yes | The entity (client) id — from list_clients. |
| decisions | array | yes | – |
| grouping_version | integer | – | – |
| removal_count | integer | – | – |
| removal_token | string | – | – |
| template_id | string | yes | – |
No output schema declared.
No examples provided.
confirm_reporting_lines Confirm reporting-line mappings ~189
Persist only the explicit reporting-line decisions the user approved. Before calling, show the proposal grouped by confidence tier and target with exact counts, flag every medium/low-confidence row, and get clear approval for the enumerated decisions. Omitted accounts stay unchanged. Sending leaf_code:null permanently removes that account saved reporting line; send it only when the user explicitly asked to clear that row. There is no apply-all or auto-confirm flag. The response tells you how many were confirmed, cleared, and whether the balance-bearing set is fully mapped; never claim completion without checking those fields.
| Name | Type | Req | Description |
|---|---|---|---|
| client_id | string | yes | The entity (client) id — from list_clients. |
| decisions | array | yes | – |
| removal_count | integer | – | The exact removal count returned by the removal preview. |
| removal_token | string | – | Only include the short-lived token returned by the removal preview for this exact proposal. |
No output schema declared.
No examples provided.
copy_capture_declarations Copy last period’s capture answers ~205
Copy the previous period’s "nothing this period" and "does not apply" answers into this period, for sections that have no answer yet. It NEVER copies a review confirmation — a review is about this period’s content and cannot be inherited. Last period’s answer is not evidence about this period: list what it would copy to your user, section by section, and get their go-ahead before calling it. Answers already recorded for this period are left alone. Generate a fresh version after your last capture change — finalisation checks the version’s frozen capture state, not today’s.
| Name | Type | Req | Description |
|---|---|---|---|
| client_id | string | yes | The entity (client) id — from list_clients. |
| on_behalf_of | string | yes | The email address your user signs in to Datavrn with. This records who authorised the change alongside the connection that made it. Ask them for it — do not guess. |
| period_id | string | yes | – |
| template_id | string | yes | – |
No output schema declared.
No examples provided.
create_client Create entity ~62
Create a new entity (company) in the organization. Requires a Manager-role key. Use only when the user explicitly asks to set up a new entity; show them the name you will create first.
| Name | Type | Req | Description |
|---|---|---|---|
| business_model_code | – | – | – |
| name | string | yes | – |
No output schema declared.
No examples provided.
create_cost_centre Create a cost centre ~190
Create one cost centre for an entity after showing the user the exact name, kind, parent, effective date, and reason. This is one explicit centre at a time; there is no apply-all shortcut. After creating it, call list_cost_centres again and explain which mapping suggestions can now use it.
| Name | Type | Req | Description |
|---|---|---|---|
| centre_kind | string | – | Operating or shared-support centre; defaults to operating. |
| client_id | string | yes | The entity (client) id — from list_clients. |
| code | – | – | Optional short code. |
| description | – | – | Optional plain-language description. |
| effective_from | string | – | Date from which this centre applies; defaults to the start of the entity data. |
| name | string | yes | The cost-centre name to create. |
| parent_cost_centre_id | – | – | Optional existing parent cost-centre id. |
| reason | string | yes | Why the user asked for this centre. |
No output schema declared.
No examples provided.
create_profit_centre Create a profit centre ~123
Create one profit centre for an entity after showing the user the exact name, optional parent, and description. This is one explicit centre at a time; there is no apply-all shortcut. Re-list the centres after creation so the user can see the new target before any mapping confirmation.
| Name | Type | Req | Description |
|---|---|---|---|
| client_id | string | yes | The entity (client) id — from list_clients. |
| description | – | – | Optional plain-language description. |
| name | string | yes | The profit-centre name to create. |
| parent_profit_centre_id | – | – | Optional existing parent profit-centre id. |
No output schema declared.
No examples provided.
create_upload_link Create upload link ~200
Mint a single-use, login-free upload link so YOUR USER can give Datavrn a file directly from their browser — the file never passes through you, so it cannot truncate or corrupt. Use this whenever a human has the file (a trial balance export, etc.). The link stages the file for ONE entity and expires in about 15 minutes; nothing is ingested until the column mapping is confirmed.
| Name | Type | Req | Description |
|---|---|---|---|
| client_id | string | yes | The entity (client) id — from list_clients. |
| file_name | string | yes | The file the user is expected to upload, e.g. 'tb-2026-03.xlsx' (shown on the upload page). |
| format | string | – | Leave unset — the assistant handles Trial Balances only; any other format is refused (use the Datavrn web app). |
| source | string | – | Set 'tally_file' when the file is a Tally xlsx export; omit otherwise. |
No output schema declared.
No examples provided.
declare_capture_na Record nothing to report, or not applicable ~402
Record that a capture section had NOTHING to report this period, DOES NOT APPLY to this entity, or that this is the entity’s FIRST YEAR (previous-year figures only). These are three different statements and are not interchangeable: "nothing this period" means the section applies but had no activity; "does not apply" means it never applies to this entity at all. This is your user’s professional assertion, recorded as authorised by them — ask which one is true, and never guess. NOT every reason is available for every section — call get_schedule3_workspace and read allowed_reason_codes on the section before you ask your user, so you never put a choice to them that Datavrn will refuse. The restrictions: Settings takes NO answer here at all (it is only answered by saving the settings); share capital and partner capital take only "nothing this period", because those sections are shown only for statement formats they apply to, so "does not apply" can never be true; and "first year" belongs only to previous-year figures. To record a REVIEW being complete (previous-year figures, disclosures) use confirm_capture_review instead; this tool cannot make that assertion. A section can only hold one active answer: to change one, revoke it with revoke_capture_declaration and record a new one — an answer is never edited in place. Generate a fresh version after your last capture change — finalisation checks the version’s frozen capture state, not today’s.
| Name | Type | Req | Description |
|---|---|---|---|
| capture_kind | string | yes | – |
| client_id | string | yes | The entity (client) id — from list_clients. |
| note | string | – | – |
| on_behalf_of | string | yes | The email address your user signs in to Datavrn with. This records who authorised the change alongside the connection that made it. Ask them for it — do not guess. |
| period_id | string | yes | – |
| reason_code | string | yes | – |
| template_id | string | yes | – |
No output schema declared.
No examples provided.
finalise_statement Seal the permanent client copy of a version ~378
Seal a statement version as Datavrn’s permanent client copy, recorded as authorised by the member you name. THIS IS NOT APPROVAL OR ADOPTION OF THE FINANCIAL STATEMENTS AND IT IS NOT A SIGNATURE. It does not discharge section 134(1) for a company or section 34(3) for an LLP. THERE IS NO UNDO. A change afterwards means generating a new version and finalising that one; the version you seal here stays sealed. Call get_finalise_readiness first, show your user every gate and every warning it returns, get their explicit go-ahead, and only then send the confirm_token it gave you together with the acknowledgements. Never acknowledge a warning your user has not seen, and never write the acceptance reason yourself — it is their professional judgment in their own words. Datavrn will refuse if anything about the statement changed after you read the state, and nothing will be finalised. If the response comes back with reused set to true, a finalisation of this same version was already under way: nothing new was done and your approval was not used. Do not call finalise_statement again — the status field says where that finalisation is (queued, running, or paused, which means it hit a temporary problem and Datavrn will retry it on its own). Poll get_job with the job_id and tell your user what it says.
| Name | Type | Req | Description |
|---|---|---|---|
| acknowledgments | object | yes | – |
| client_id | string | yes | The entity (client) id — from list_clients. |
| confirm_token | string | yes | – |
| on_behalf_of | string | yes | The email address your user signs in to Datavrn with. This records who authorised the change alongside the connection that made it. Ask them for it — do not guess. |
| snapshot_id | string | yes | – |
No output schema declared.
No examples provided.
generate_schedule_iii Generate Schedule III statements ~246
Queue the Schedule III workbook build (returns a job_id to poll with get_job — the build runs as a background job). REFUSES when ungrouped accounts exist unless acknowledged: before acknowledging, present the ungrouped accounts to your user and obtain their explicit go-ahead; record it in acknowledge_reason and pass the exact count in acknowledge_count — an acknowledgement WITHOUT its count is always re-demanded. A multi-month statement period additionally requires acknowledge_multi_month_pnl WITH acknowledge_month_count (confirm with your user that the TBs are period movements, not cumulative). Never acknowledge anything the user has not seen. Once queued, the build usually completes in a few minutes — tell your user their statements are being prepared and poll get_job periodically; do not present the wait as a problem.
| Name | Type | Req | Description |
|---|---|---|---|
| acknowledge_count | integer | – | – |
| acknowledge_month_count | integer | – | – |
| acknowledge_multi_month_pnl | boolean | – | – |
| acknowledge_reason | string | – | – |
| acknowledge_unclassified | boolean | – | – |
| client_id | string | yes | The entity (client) id — from list_clients. |
| period_id | string | yes | – |
| template_id | string | yes | – |
No output schema declared.
No examples provided.
get_allocation_account_figures Read allocation account figures ~236
MANAGEMENT data class. Read the current persisted allocation run at account grain: books figure plus spreading adjustment equals MIS figure, all as decimal-string rupees. Filter account names or minimum absolute MIS amount before paging. The summary covers the full filtered set and ties the spreading reconciliation; no target-level split or source transactions are returned. The signed page_token is source-pinned, so restart at page 1 if source_changed. known_stale and not_assessed disclose run state; neither means fresh.
| Name | Type | Req | Description |
|---|---|---|---|
| account_name_patterns | array | – | Up to 10 case-insensitive account-name substrings; any match is retained. |
| client_id | string | yes | The entity (client) id — from list_clients. |
| min_abs_mis | string | – | Minimum absolute MIS figure in rupees as a decimal string, e.g. '100000'. |
| page_size | integer | – | Rows per source-pinned page (default 50, max 200). |
| page_token | string | – | Signed continuation from the prior page; restart without it if source_changed. |
| period | string | yes | Management month in YYYY-MM. |
No output schema declared.
No examples provided.
get_allocation_target_figures Read allocation target figures ~274
MANAGEMENT data class. Read the current persisted allocation run at account × target × source × mode grain, with decimal-string allocated amounts. For step-down, filter allocation_sources=['step_down']; for profit centres, filter target_types=['profit_centre','sub_profit_centre']. Use filters before paging; the signed page_token is source-pinned, so restart at page 1 if source_changed. Target labels are cost-centre names as of the run and current profit-centre names; no owners, descriptions, source transactions, or recomputation are returned.
| Name | Type | Req | Description |
|---|---|---|---|
| account_name_patterns | array | – | Up to 10 case-insensitive account-name substrings; any match is retained. |
| allocation_sources | array | – | Restrict to allocation sources. |
| client_id | string | yes | The entity (client) id — from list_clients. |
| min_abs_amount | string | – | Minimum absolute allocated amount in rupees as a decimal string, e.g. '100000'. |
| page_size | integer | – | Rows per source-pinned page (default 50, max 200). |
| page_token | string | – | Signed continuation from the prior page; restart without it if source_changed. |
| period | string | yes | Management month in YYYY-MM. |
| target_types | array | – | Restrict to allocation target types. |
No output schema declared.
No examples provided.
get_budget Read budget ~258
MANAGEMENT data class. Read one versioned budget: identity-free header, its pinned P&L tree, and filtered/paginated cells with entered-versus-inferred truth. Amounts and locked FX rate are decimal strings. Filter months, lines, centres, or inference before paging; the signed page_token is source-pinned, so restart at page 1 if source_changed. Cells across different P&L lines are not one meaningful grand total, so no cross-line grand total is exposed. No people, ownership, editability, or approval identities are returned.
| Name | Type | Req | Description |
|---|---|---|---|
| budget_id | string | yes | Budget id from list_budgets. |
| client_id | string | yes | The entity (client) id — from list_clients. |
| cost_centre_ids | array | – | Up to 25 cost-centre ids. |
| inference | string | – | Cell inference state (default all). |
| line_codes | array | – | Up to 25 P&L line codes. |
| month | string | – | Optional budget month in YYYY-MM. |
| page_size | integer | – | Cells per source-pinned page (default 100, max 200). |
| page_token | string | – | Signed continuation from the prior page; restart without it if source_changed. |
No output schema declared.
No examples provided.
get_consolidated_statements Read sealed consolidated statements ~475
CONSOLIDATED data class. Read one sealed group profit-and-loss, balance-sheet, or cash-flow face for an exact periodicity and period. The response exposes presentation currency and exactly one decimal-string amount per line: section-natural for P&L/BS, signed cash movement for CFS. Amounts are persisted on the sealed run; P&L/BS labels are current display metadata and the signed page_token is source-fingerprinted across the complete safe face, so a changed value or label requires restarting at page 1. A stale sealed run is disclosed on every page and is never called current. Member names, components, eliminations, journal references and lineage are not returned. QUALIFICATIONS. A response may carry `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; the DISPLAYED line may differ in either direction where a manual journal also moved it, so never characterise the direction from this field alone) and always carries `domestic_cash_flow_caveat`. These qualify specific statement lines. When a caveat is present, any figure it qualifies MUST be presented together with its qualification — never the number alone. `owned_share_capital_caveat` is null when the run was read and carries no such qualification, and `{status: "unavailable"}` when 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.
| Name | Type | Req | Description |
|---|---|---|---|
| group | string | yes | An active group UUID or its exact case-insensitive display name. |
| page_size | integer | – | Rows per source-pinned page (default 50, max 100). |
| page_token | string | – | Signed continuation from the prior page; restart without it if source_changed. |
| period | string | yes | The period matching periodicity. |
| periodicity | string | yes | Period grammar: monthly YYYY-MM, quarterly FYyyyy-Qn, annual FYyyyy. |
| statement | string | – | Statement face (default pnl). |
No output schema declared.
No examples provided.
get_finalise_readiness Check finalisation state and get approval ~363
Read the full finalisation state of one statement version, and get the approval finalise_statement needs. Call it ONCE immediately before finalising — it re-reads the stored workbook, so do not poll it. SHOW YOUR USER EVERY ROW THIS RETURNS — the gates that must be green, each warning they would be accepting and why, how many input cells are still empty, any control that could not be evaluated, and capture_live_diverged_message when it is present — before you finalise. Do not summarise the warnings away. capture_live_diverged_message means a capture answer changed after this version was generated: the version can still be sealed as it stands, and generating a fresh one is the alternative. Read it out and let your user choose. A control that "could not be evaluated" is not a pass: it is a check Datavrn did not run, and your user is entitled to know what was not checked before they seal the version. The approval is single-use, expires in 15 minutes, and is tied to this exact version, this connection and the member you name — if anything about the statement changes in between, finalise_statement will refuse and you start again from here. If your connection is not permitted to finalise, you still get the whole state; there is simply no approval to hand back.
| Name | Type | Req | Description |
|---|---|---|---|
| client_id | string | yes | The entity (client) id — from list_clients. |
| on_behalf_of | string | yes | The email address your user signs in to Datavrn with. This records who authorised the change alongside the connection that made it. Ask them for it — do not guess. |
| snapshot_id | string | yes | The statement version id — from list_snapshots or get_schedule3_workspace. |
No output schema declared.
No examples provided.
get_help Get the agent guide ~72
Get the Datavrn agent guide: how connecting works (OAuth and API key), what an assistant can do, how reading a statement as data works, and the guarantees and limits — plus the current list of tools. Call this to answer a user's questions about how Datavrn works from canonical documentation instead of guessing.
Input schema present but exposes no named parameters.
No output schema declared.
No examples provided.
get_job Get job status ~148
Poll a background job by id until status is succeeded or failed. A failed job carries its user-safe error reason — show it to your user. Jobs run on a background worker that claims queued work on a schedule, so a job sitting at "queued" (0 attempts) for the first few minutes is NORMAL, not a fault — keep polling every ~30–60s and reassure the user it is being prepared; do NOT report this as an error or a Datavrn bug. Only if it is still "queued" well past a few minutes should you tell the user it is taking longer than usual.
| Name | Type | Req | Description |
|---|---|---|---|
| job_id | string | yes | The job id returned by generate_schedule_iii. |
No output schema declared.
No examples provided.
get_partner_capital Read partner or owner capital schedule ~263
Read the partner or owner capital schedule currently on file — Note 3a and Note 3b. THIS RETURNS PEOPLE’S NAMES, along with each person’s profit-sharing ratio and amounts. Call it before save_partner_capital so you can show your user what is on file and what your change would do — that save replaces the whole section, so a schedule you cannot see is a schedule you cannot safely replace. It also returns the total of the capital-account profit-sharing ratios, because Datavrn warns about a total that is not 100% only when at least two rows carry a ratio.
| Name | Type | Req | Description |
|---|---|---|---|
| account_kind | string | – | Limit to one section: 'capital' is Note 3a, 'current' is Note 3b. Omit for both. |
| client_id | string | yes | The entity (client) id — from list_clients. |
| limit | integer | – | Page size (default 50, max 200). |
| offset | integer | – | Rows to skip (default 0). |
| period_id | string | yes | The reporting period id — from list_periods. |
| template_id | string | yes | The statement template id (e.g. 'schedule3_v1' Division I; see list_snapshots/workspace). |
No output schema declared.
No examples provided.
get_pending_work List pending work across entities ~165
Answer "what's left to do?" across every entity you can see — one row per entity, with what is blocking its Schedule III statement: whether the trial balance is in, how many accounts are still ungrouped, the latest generated version, and whether it has been finalised. Pass period_label to pick a period, or omit to default to the period most of your entities have a trial balance for (not necessarily the newest — one entity uploading a future period early will not flip the board). Rows include deep links that open the Datavrn web app (a login is needed there).
| Name | Type | Req | Description |
|---|---|---|---|
| period_label | string | – | Reporting period label, e.g. '2026-03'; omit to default to the period most of your entities have a trial balance for. |
No output schema declared.
No examples provided.
get_schedule3_workspace Get Schedule III workspace ~138
THE state tool: grouping progress, every required capture answer, generated/finalised versions, finalisation blockers, and bounded per-version control summaries. Report generation never marks capture complete. Exception output is rule/severity/count only — no account names or amounts. Call this to know what is left before finalising.
| Name | Type | Req | Description |
|---|---|---|---|
| client_id | string | yes | The entity (client) id — from list_clients. |
| period_id | string | yes | The reporting period id — from list_periods. |
| template_id | string | yes | The statement template id (e.g. 'schedule3_v1' Division I; see list_snapshots/workspace). |
No output schema declared.
No examples provided.
get_setup_status Show setup status and the next step ~297
Answer "how do I get started?", "what do I do next?", or help a user who seems lost setting up. Returns where they are in the journey from an empty organization to a finished Schedule III statement, and the ONE next step to take. Call it WITHOUT client_id first (the organization view): it lists the entities this credential can see, or — if there are none — the step to create the first one. Then call it again WITH one entity’s client_id for that entity’s full step-by-step path (upload trial balance → confirm groupings → capture figures → generate → download). Each step has a status (done / next / todo / blocked / web_only) and either the exact tool to call or a web-app link. NARRATE ONE STEP AT A TIME — walk the user through the single `next` step; do not dump the whole list unprompted. Steps marked web_only are done in the Datavrn web app and need a login — never claim you can do them yourself. This tool reports STATUS only (counts, names, what is done) — it never returns a figure or balance; read those with get_statement_figures once a statement is generated.
| Name | Type | Req | Description |
|---|---|---|---|
| client_id | string | – | An entity id (from list_clients or the organization view) for that entity’s full path; omit for the organization-level overview and, on an empty org, the create-entity step. |
No output schema declared.
No examples provided.
get_spreading_reconciliation Read spreading reconciliation ~255
MANAGEMENT data class. Read the persisted books-to-MIS spreading reconciliation, not a new allocation run. Accounts view gives account-grain books plus adjustments equals MIS; adjustments view requires one account and pages its rule adjustments. Money is decimal-string rupees. Whole-run summary figures never change with account filters. The signed page_token is source-pinned, so restart at page 1 if source_changed. Raw warning context is withheld; known_stale and not_assessed are disclosure states, not freshness claims.
| Name | Type | Req | Description |
|---|---|---|---|
| account_id | string | – | Required for adjustments view; an account in this entity and run. |
| account_name_patterns | array | – | Up to 10 case-insensitive account-name substrings; any match is retained. |
| client_id | string | yes | The entity (client) id — from list_clients. |
| page_size | integer | – | Rows per source-pinned page: accounts default 25/max 100; adjustments default 50/max 200. |
| page_token | string | – | Signed continuation from the prior page; restart without it if source_changed. |
| period | string | yes | Management month in YYYY-MM. |
| view | string | – | accounts (default) or adjustments; adjustments requires account_id. |
No output schema declared.
No examples provided.
get_statement_figures Read statement figures ~303
Read a generated Schedule III statement's figures: the balance-sheet and profit-and-loss faces, current-year and previous-year balance-sheet tie verdicts separately (a null verdict means UNKNOWN, never a pass: either no comparative was captured, or the version predates per-column balance recording), the unclassified count, and the notes listed by number. Also returns bounded exception counts by rule/severity and the frozen control changes versus the immediately previous recorded version; it never recomputes either from live books. Figures come from a generated version (the latest unless you pass a specific version) and match the workbook exactly. If the version was generated before figure reads existed it returns available:false with reason "figures_not_available" and only the legacy flat tie verdict; tell the user to generate the statement again, read the latest version, then retry. For a note's line-by-line breakdown, use its note_index entry with get_statement_notes. Amounts are decimal strings in rupees. Figures are Datavrn's deterministic engine output; interpretation is your assistant's.
| Name | Type | Req | Description |
|---|---|---|---|
| client_id | string | yes | The entity (client) id — from list_clients. |
| period_id | string | yes | The reporting period id — from list_periods. |
| template_id | string | yes | The statement template id (e.g. 'schedule3_v1' Division I; see list_snapshots/workspace). |
| version | integer | – | A specific statement version; omit for the latest. |
No output schema declared.
No examples provided.
get_statement_notes Read statement notes ~419
Read the line-by-line breakdown of a generated statement's notes — every line's current and prior-year amount, and the note total. Pass note_numbers (from get_statement_figures' note_index) to fetch specific notes, or omit for all. Use this to answer "what's in Other Expenses?" or "what makes up trade receivables?". Each line has a kind: 'component' (an additive line), 'subtotal' (a presentational group subtotal — do NOT add it into the total, or you double-count), or 'header'. Fixed-asset / intangible notes carry a `block` per class with gross_block, accumulated depreciation, and net (the additions/deletions movement schedule itself lives in the workbook). If the full set is too large it returns too_large:true with a note_index — fetch note_numbers in small batches. A single very large note (e.g. a PPE schedule or an ageing note) is returned in explicitly-flagged line pages: each page carries the authoritative note total, lines_page, lines_total, and has_more_lines — keep fetching lines_page until has_more_lines is false; never treat one page's lines as the whole note. Amounts are decimal strings in rupees. Figures are Datavrn's deterministic engine output; interpretation is your assistant's.
| Name | Type | Req | Description |
|---|---|---|---|
| client_id | string | yes | The entity (client) id — from list_clients. |
| lines_page | integer | – | For a single very large note returned in line pages: the 1-based line page to fetch (fetch exactly one note; keep going until has_more_lines is false). |
| note_numbers | array | – | Specific note numbers to fetch (from note_index); omit for all notes. |
| period_id | string | yes | The reporting period id — from list_periods. |
| template_id | string | yes | The statement template id (e.g. 'schedule3_v1' Division I; see list_snapshots/workspace). |
| version | integer | – | A specific statement version; omit for the latest. |
No output schema declared.
No examples provided.
get_tb_rows Read trial-balance source data ~395
Read the SOURCE DATA behind a statement: the trial-balance rows (account name, debit, credit) as landed for a period, BEFORE grouping — the pre-statement numbers, not statement figures. PREFER FILTERS over fetching everything: name_patterns (e.g. ['cash','bank','od']), side ('debit'/'credit' by net balance), and min_abs_balance return a small exact subset with its own debit/credit totals — e.g. wrong-side cash accounts = name_patterns ['cash','bank'] + side 'credit'. Paginated (page 1-based; page_size default 50, max 500). These are the CURRENT live rows: statement figures are frozen at a generated version, so if the trial balance was re-uploaded after a version was generated, these rows may not tie to that version (the response `note` says so). Amounts are decimal strings in rupees. Figures are Datavrn's deterministic engine output; interpretation is your assistant's.
| Name | Type | Req | Description |
|---|---|---|---|
| client_id | string | yes | The entity (client) id — from list_clients. |
| min_abs_balance | string | – | Keep only accounts whose balance (the larger of its debit/credit) is at least this many rupees — a decimal string like '100000'. |
| name_patterns | array | – | Up to 10 case-insensitive substrings; an account matches if its name contains ANY of them (e.g. ['gst','tds']). |
| page | integer | – | 1-based page number (default 1). |
| page_size | integer | – | Rows per page (default 50, max 500 — prefer filters over big pages). |
| period_id | string | yes | The reporting period id — from list_periods. |
| side | string | – | Keep only accounts whose net balance falls on this side (debit = debits exceed credits). Accounts netting to zero match neither. |
No output schema declared.
No examples provided.
get_upload Get upload status ~61
Read an upload session: status, detected header row and columns, the confirmed mapping (if any), and the stored validation outcome. Use to check what a staged upload still needs.
| Name | Type | Req | Description |
|---|---|---|---|
| upload_id | string | yes | The upload session id returned by upload_trial_balance. |
No output schema declared.
No examples provided.
get_upload_link_status Get upload link status ~76
Check an upload link's state: pending (the user has not uploaded yet), uploaded (returns the upload_id — continue with get_upload), or expired (mint a fresh link with create_upload_link). Poll after the user says they uploaded the file.
| Name | Type | Req | Description |
|---|---|---|---|
| link_id | string | yes | The link id returned by create_upload_link. |
No output schema declared.
No examples provided.
get_variance_report Read variance report ~252
MANAGEMENT data class. Read the existing budget-or-prior variance report for a month; it never recalculates it. Amounts are decimal strings; a null actual or variance means unavailable, never zero. Rows view has whole-report unfiltered rollups and no cross-side grand total; filters affect only rows and filtered grain counts. Explanations view withholds internal notes and may redact structured PII. Filter lines or centres before paging; the signed page_token is source-pinned, so restart at page 1 if source_changed.
| Name | Type | Req | Description |
|---|---|---|---|
| basis | string | – | Comparator basis (default budget). |
| client_id | string | yes | The entity (client) id — from list_clients. |
| cost_centre_ids | array | – | Up to 25 cost-centre ids. |
| line_codes | array | – | Up to 25 P&L line codes. |
| page_size | integer | – | Rows per source-pinned page (default 50, max 100). |
| page_token | string | – | Signed continuation from the prior page; restart without it if source_changed. |
| period | string | yes | Management month in YYYY-MM. |
| view | string | – | Report rows (default) or safe explanations. |
No output schema declared.
No examples provided.
get_workbook_download Download workbook ~92
Mint a short-lived signed URL for a frozen workbook version (the Excel file). Give the URL to your user to open in a browser — it needs no login and expires in about 10 minutes. The bytes are immutable and integrity-hashed.
| Name | Type | Req | Description |
|---|---|---|---|
| client_id | string | yes | The entity (client) id — from list_clients. |
| snapshot_id | string | yes | The snapshot id from list_snapshots. |
No output schema declared.
No examples provided.
ingest_upload Ingest upload into the books ~99
Commit a validated upload into the entity’s books. If validation produced WARNINGS, this refuses until acknowledge_warnings=true — present every warning to your user and obtain their explicit go-ahead first; never acknowledge warnings the user has not seen. Returns the ingestion outcome including any notices.
| Name | Type | Req | Description |
|---|---|---|---|
| acknowledge_warnings | boolean | – | – |
| confirm_merges | array | – | – |
| upload_id | string | yes | The upload session id returned by upload_trial_balance. |
No output schema declared.
No examples provided.
list_account_mappings Review account mappings ~230
Review account-to-cost-centre mapping status and deterministic suggestions for an entity. This is status-only: it returns account names, types, target names, confidence, reasons, and balance-bearing booleans, but never debit, credit, balance, or any rupee amount. Always present the rows grouped by confidence tier and target, state exact counts, flag every medium/low-confidence row, and show the two distinct completion counts: unmapped_total and unmapped_with_balance. Do not call either count pending.
| Name | Type | Req | Description |
|---|---|---|---|
| balance_bearing_only | boolean | – | Return only accounts that carry a balance, without returning the balance itself. |
| client_id | string | yes | The entity (client) id — from list_clients. |
| name_patterns | array | – | Return accounts whose code or name contains at least one of these case-insensitive patterns. |
| page | integer | – | 1-based page number (default 1). |
| page_size | integer | – | Rows per page (default 100, max 200). |
| unmapped_only | boolean | – | Return only accounts that still need a centre mapping. |
No output schema declared.
No examples provided.
list_allocation_runs List allocation runs ~216
MANAGEMENT data class. Discover persisted allocation runs and their conservation heads; this does not generate or recompute allocation. Money is decimal-string rupees. Results are ordered period, version, then run id, and the signed page_token is pinned to the complete filtered source: if it reports source_changed, restart at page 1. current_only means latest generated version, not source freshness; known_stale and not_assessed are both warnings, never a claim that the source is fresh. Raw stale reasons and warning context are not returned.
| Name | Type | Req | Description |
|---|---|---|---|
| client_id | string | yes | The entity (client) id — from list_clients. |
| current_only | boolean | – | Return only the latest generated version per period (default true); this is not a freshness claim. |
| page_size | integer | – | Rows per source-pinned page (default 20, max 50). |
| page_token | string | – | Signed continuation from the prior page; restart without it if source_changed. |
| period | string | – | Optional management month in YYYY-MM. |
No output schema declared.
No examples provided.
list_budgets List budgets ~182
MANAGEMENT data class. Discover budget ids and versions without identity fields. Locked FX rate and all money-valued fields are decimal strings. Filter status or fiscal-year start before paging. The signed page_token is pinned to the complete filtered source; restart at page 1 if source_changed. This lists budget headers only, not cells, approvals identities, or a recalculated budget.
| Name | Type | Req | Description |
|---|---|---|---|
| client_id | string | yes | The entity (client) id — from list_clients. |
| fiscal_year_start | string | – | Optional fiscal-year first-of-month date, e.g. 2026-04-01. |
| page_size | integer | – | Rows per source-pinned page (default 20, max 50). |
| page_token | string | – | Signed continuation from the prior page; restart without it if source_changed. |
| status | string | – | Optional budget status. |
No output schema declared.
No examples provided.
list_clients List entities ~40
List the entities (companies) this credential can work with. Call this first to resolve the client_id every other tool needs. Returns each entity id and name.
Input schema present but exposes no named parameters.
No output schema declared.
No examples provided.
list_cost_centres List cost centres ~122
List the cost centres for an entity. Use this before proposing account mappings so you can group the proposal by target name and distinguish operating from support centres. This is status-only: it returns names and kinds, never rupee amounts. Tell the user what the existing structure means before suggesting a change.
| Name | Type | Req | Description |
|---|---|---|---|
| client_id | string | yes | The entity (client) id — from list_clients. |
| page | integer | – | 1-based page number (default 1). |
| page_size | integer | – | Rows per page (default 100, max 200). |
No output schema declared.
No examples provided.
list_grouping_suggestions List grouping suggestions ~343
List ungrouped accounts with DETERMINISTIC grouping suggestions (curated rules + name/group-path matching — no AI is involved; Datavrn never applies a suggestion itself). Paginated. Each row carries a reason and a confidence tier: present them to your user GROUPED BY CONFIDENCE, and call out low-confidence and balance-bearing rows for individual attention — a single blanket approval is not a review of the low-confidence tail. Confirm only what your user approves via confirm_groupings. Returns a summary (counts by confidence tier) plus one page of suggestion rows — fetch tier by tier with the confidence filter instead of everything at once; pass include='confirmed' to see already-confirmed groupings.
| Name | Type | Req | Description |
|---|---|---|---|
| client_id | string | yes | The entity (client) id — from list_clients. |
| confidence | string | – | Keep only suggestion rows in this confidence tier ('none' = accounts with no deterministic suggestion). Filters rows only — the summary counts stay over the whole population. |
| has_balance | boolean | – | Keep only suggestion rows whose account carries a live balance (true) or not (false). |
| include | string | – | Which rows to page: 'suggestions' (default), 'confirmed' (already-grouped accounts), or 'both'. |
| limit | integer | – | Page size (default 50, max 200). |
| offset | integer | – | Rows to skip (default 0). |
| period_id | string | yes | The reporting period id — from list_periods. |
| template_id | string | yes | The statement template id (e.g. 'schedule3_v1' Division I; see list_snapshots/workspace). |
No output schema declared.
No examples provided.
list_periods List reporting periods ~67
List the reporting periods a Schedule III statement can be prepared for (periods with a live Trial Balance). Returns period ids for get_schedule3_workspace, save_py_values, and generate_schedule_iii.
| Name | Type | Req | Description |
|---|---|---|---|
| client_id | string | yes | The entity (client) id — from list_clients. |
No output schema declared.
No examples provided.
list_profit_centres List profit centres ~101
List the profit centres for an entity. Use this to explain available targets before a user confirms any explicit mapping. This is status-only: it returns names and hierarchy, never rupee amounts.
| Name | Type | Req | Description |
|---|---|---|---|
| client_id | string | yes | The entity (client) id — from list_clients. |
| page | integer | – | 1-based page number (default 1). |
| page_size | integer | – | Rows per page (default 100, max 200). |
No output schema declared.
No examples provided.
list_reporting_lines Review reporting-line mappings ~201
Review reporting-line classification status and deterministic suggestions for an entity and reporting period. This is status-only: it returns names, line labels, confidence, reasons, and balance-bearing booleans, but never debit, credit, balance, or any rupee amount. Present suggestions grouped by confidence tier and target, with exact counts and both unmapped_total and unmapped_with_balance; do not call either count pending.
| Name | Type | Req | Description |
|---|---|---|---|
| client_id | string | yes | The entity (client) id — from list_clients. |
| name_patterns | array | – | Return accounts whose code or name contains at least one of these case-insensitive patterns. |
| page | integer | – | 1-based page number (default 1). |
| page_size | integer | – | Rows per page (default 100, max 200). |
| period_id | string | yes | The reporting period id from list_periods. |
| unmapped_only | boolean | – | Return only accounts without a confirmed reporting line. |
No output schema declared.
No examples provided.
list_snapshots List statement versions ~70
List the frozen Schedule III workbook versions for an entity (newest first), including each version’s period, template, and unclassified count at build time.
| Name | Type | Req | Description |
|---|---|---|---|
| client_id | string | yes | The entity (client) id — from list_clients. |
| template_id | string | – | Filter to one template. |
No output schema declared.
No examples provided.
list_statement_policy_choices Review policy and affirmation choices ~491
List every Significant Accounting Policy and Other Regulatory Information affirmation for this statement, with the text that will print, whether a template choice is still unresolved, and what was answered LAST YEAR. This is what makes two rules actionable rather than decorative: never resolve a bracketed choice for your user, and always tell them when an answer differs from last year. CHECK THE ROW’S captured FLAG BEFORE YOU CALL ANYTHING A POLICY CHANGE. differs_from_prior is true in two different situations and only one of them is a change: with captured true the wording was set this year and genuinely differs, which IS a change in accounting policy requiring disclosure under AS-5 / Ind AS 8; with captured false nothing has changed — last year was answered, this year has not been, and the text shown is Datavrn’s generic template wording, which is what will PRINT unless last year’s wording is entered again. Warn your user about that second case explicitly: it silently replaces a policy they wrote. The summary gives you both numbers separately — changed_total (real AS-5 changes) and not_carried_forward_total (answered last year, not yet this year); differs_from_prior_total is simply the two added together. An unresolved choice blocks finalisation, so work through them with your user before generating the version you intend to finalise. "Last year" means the SAME MONTH ONE YEAR EARLIER — the same comparative period the statement itself reports — not the period immediately before this one. The summary names it: prior_period_label is the year that was compared against, and prior_period_found tells you whether Datavrn holds that year at all. A blank last-year answer means nothing was recorded for that year — when prior_period_found is false it means Datavrn has no such reporting period, so there is nothing to compare. Either way it does NOT mean last year matched this year; say which of the two it is.
| Name | Type | Req | Description |
|---|---|---|---|
| client_id | string | yes | The entity (client) id — from list_clients. |
| limit | integer | – | Page size (default 50, max 200). |
| offset | integer | – | Rows to skip (default 0). |
| period_id | string | yes | The reporting period id — from list_periods. |
| template_id | string | yes | The statement template id (e.g. 'schedule3_v1' Division I; see list_snapshots/workspace). |
No output schema declared.
No examples provided.
revoke_capture_declaration Withdraw a recorded capture answer ~234
Withdraw a recorded capture answer or review confirmation. Statement readiness will show that section as unanswered again. A version you have already generated is NOT affected — if you do not want that version finalised, answer the section again and generate a fresh version. Nothing is deleted: the withdrawn answer stays on the record with who recorded it and who withdrew it, and recording a new answer afterwards creates a new entry rather than overwriting the old one. One thing on this connection is affected immediately: if you already called get_finalise_readiness and hold an approval for that version, withdrawing an answer invalidates it, and the next finalise_statement will refuse and ask you to review the current state again.
| Name | Type | Req | Description |
|---|---|---|---|
| capture_kind | string | yes | – |
| client_id | string | yes | The entity (client) id — from list_clients. |
| on_behalf_of | string | yes | The email address your user signs in to Datavrn with. This records who authorised the change alongside the connection that made it. Ask them for it — do not guess. |
| period_id | string | yes | – |
| template_id | string | yes | – |
No output schema declared.
No examples provided.
save_accounting_policies Save significant accounting policies ~465
Save the Significant Accounting Policies text (Note 2) your user has chosen, one policy per title. SEND THE COMPLETE SET EVERY TIME: this replaces all of Note 2, so any title you leave out of this call is removed — including one someone answered in the Datavrn app. Call list_statement_policy_choices first and send back every title. If your call would drop a saved policy, Datavrn saves nothing and returns an approval request naming how many would be dropped — show your user, and send the approval back only if they mean to drop them. A complete resend drops nothing and saves straight away. Use the exact policy headings this statement format carries; a heading Datavrn does not recognise is refused and nothing is saved. Resolving a bracketed template choice such as "[FIFO / weighted average]" is an ACCOUNTING POLICY DECISION SPECIFIC TO THIS ENTITY: get your user’s explicit choice, and never pick one because it is the common answer. If a policy was set this year and differs from last year’s answer, that is a CHANGE IN ACCOUNTING POLICY requiring disclosure under AS-5 / Ind AS 8 — tell your user before you save it. Check list_statement_policy_choices first: a row that differs from last year while its captured flag is false is NOT a change — last year’s wording has simply not been carried forward, and unless you send it again this note prints Datavrn’s generic template wording in its place. Saving here re-opens the disclosure review — after your last change, confirm the disclosure review again with confirm_capture_review before generating. Recorded as authorised by the member you name. Generate a fresh version after your last capture change — finalisation checks the version’s frozen capture state, not today’s.
| Name | Type | Req | Description |
|---|---|---|---|
| client_id | string | yes | The entity (client) id — from list_clients. |
| on_behalf_of | string | yes | The email address your user signs in to Datavrn with. This records who authorised the change alongside the connection that made it. Ask them for it — do not guess. |
| period_id | string | yes | – |
| policies | object | – | – |
| removal_count | integer | – | – |
| removal_token | string | – | – |
| template_id | string | yes | – |
No output schema declared.
No examples provided.
save_adjustments Save adjustment entry ~144
Save one balanced adjustment journal entry (debits = credits) as an atomic whole entry. Creating a new entry proceeds immediately. Replacing an existing entry first returns an approval request; nothing changes then. Review the existing entry in the Schedule III workspace, then resend the unchanged request with the approval details to proceed. Amounts are strings in rupees.
| Name | Type | Req | Description |
|---|---|---|---|
| client_id | string | yes | The entity (client) id — from list_clients. |
| entry_no | integer | yes | – |
| lines | array | yes | – |
| period_id | string | yes | – |
| removal_count | integer | – | – |
| removal_token | string | – | – |
| template_id | string | yes | – |
No output schema declared.
No examples provided.
save_asset_movements Save asset movements ~80
Save fixed-asset movements (additions, deletions, depreciation charge, depreciation on deletions) per gross-block line for the PPE schedule.
| Name | Type | Req | Description |
|---|---|---|---|
| client_id | string | yes | The entity (client) id — from list_clients. |
| movements | array | yes | – |
| period_id | string | yes | – |
| template_id | string | yes | – |
No output schema declared.
No examples provided.
save_disclosures Save disclosures ~97
Save the notes/disclosures text sections the user provides for the statement. Some of these sections IDENTIFY PEOPLE BY NAME — shareholders, promoters and related parties — so send only what your user has given you, exactly as they gave it.
| Name | Type | Req | Description |
|---|---|---|---|
| client_id | string | yes | The entity (client) id — from list_clients. |
| payload | object | yes | – |
| period_id | string | yes | – |
| template_id | string | yes | – |
No output schema declared.
No examples provided.
save_partner_capital Save partner or owner capital schedule ~559
Save the partner or owner capital schedule for an LLP or other non-corporate entity — Note 3a (capital account) or Note 3b (current account), one section per call. Send the COMPLETE schedule for the section you name: anyone you leave out is removed, and a renamed partner reads as one removal plus one addition. If your request would remove anyone, would change the figures of a partner who stays — including their profit-sharing ratio — or would repeat a person’s name that is not already repeated on file, this returns an approval request first and changes NOTHING; tell your user exactly what would change and get their go-ahead before resending with the approval. Two rows with the same person name are both kept: Datavrn never merges them, because two partners may genuinely share a name. A repeated name is therefore saved as a separate row each time it appears, and every one of those rows adds to that person’s balance on the note, so check with your user that there really are that many people before you send a schedule that repeats a name. Adding a partner with a new, different name needs no approval. share_pct is the profit-sharing ratio stated in the LLP or partnership agreement at the reporting date. A ratio that changed part-way through the year cannot be represented here, and a partner who joined or left mid-year cannot be dated — record the position at the reporting date and tell your user the note cannot explain a mid-year change. These figures come from the agreement; Datavrn does not verify them. Datavrn warns about ratios that do not total 100% only when at least TWO capital-account rows carry a ratio, so a partly-filled schedule gets no warning at all — check the total yourself with get_partner_capital. This is your user’s data about named people, recorded as authorised by them. After a successful save, read the section back with get_partner_capital and show your user the new closing balances — this replaces the whole section, and a schedule they cannot see a…
| Name | Type | Req | Description |
|---|---|---|---|
| account_kind | string | yes | – |
| client_id | string | yes | The entity (client) id — from list_clients. |
| on_behalf_of | string | yes | The email address your user signs in to Datavrn with. This records who authorised the change alongside the connection that made it. Ask them for it — do not guess. |
| period_id | string | yes | – |
| removal_count | integer | – | – |
| removal_token | string | – | – |
| rows | array | yes | – |
| template_id | string | yes | – |
No output schema declared.
No examples provided.