Skip to main content
Glama

Get value added tax by period

well_get_vat_summary
Read-only

Read the VAT position of a workspace over a window of whole months, grouped by the date of its entries and invoices, straight from its book (VAT on posted invoices, which is the debit basis): per month, for the whole window as a CA3 by rate, and as totals with the net VAT payable. A French workspace gets that CA3; any other workspace, or a window with nothing posted, is answered from its draft entries and invoices (see below). It also lists the invoices whose lines or supplier leave the figure unreliable. It reads the book and computes nothing a reader has to trust blind: every amount is a decimal string in major units of currency, such as "5000.00" for five thousand euros, ready to state as returned. State each amount with its currency exactly as given. Never convert, scale or recompute one.

Use it for "what is my VAT this quarter", "how much VAT can I deduct", "is my VAT return ready" and "which invoices are hurting my VAT". Do not use it to sum invoices (well_sum_invoices) or to browse journal entries (well_query_records).

The window is whole months. from is the first day of the first month and to is the first day of the month AFTER the last one, both as YYYY-MM-01, so the second quarter of 2026 is 2026-04-01 to 2026-07-01. On basis: "posted", name both or neither: with neither, the call reads the current calendar quarter only: the quarter in progress, not the last four quarters and not the last complete one. On basis: "possibilities", name both always: a call with neither is refused invalid_period with the current quarter's bounds in error, so the caller can ask again for them. To read any other period, work out from and to from today's date and pass both. A window shorter than one month, longer than 12 months, or with a bound inside a month returns status: "invalid_period" with the reason in error. It is refused, never widened.

months holds one row per calendar month, oldest first: collected (output VAT), deductible (input VAT, a positive magnitude), net (collected minus deductible, positive is payable), and reverse_charge (the self-assessed VAT on reverse-charge purchases, kept out of collected and deductible). month_ended: false marks a month still running, whose figures can still move. unattributed_collected and unattributed_deductible are VAT on lines that name no tax rate. unmapped_rate_tax is the signed net VAT (collected positive) on a rate the return has no slot for, such as 8.50 or 13.00. These three are in none of collected, deductible and net, so state them beside any total that is not zero. The monthly collected, deductible and net add up to the window totals.

ca3 is the return by rate over the WHOLE window, built once from every entry in it, not summed from the monthly rows. complete: false means the ledger holds a figure the return cannot place: read blocking_reasons (unattributed_collected_vat, unattributed_deductible_vat, unmapped_rate_percent, directionless_taxable_base) and say so before quoting any total as final. Box numbers are deliberately absent: Well does not guess a printed CA3 box.

totals.net_due is the net VAT payable: collected minus deductible over the window, on the rates the return has a slot for (it leaves out unattributed_* and unmapped_rate_tax), with position as payable, credit or nil. A credit means the state owes the workspace, so never present it as a payment.

The figure is on the debit basis. It counts VAT when the invoice is posted. Entries are placed by their entry date, in the month of the date, never by their fiscal period, so an entry posted into a later return still shows in its own month and a filed return can differ from this figure; basis_note says so. On the receipts basis (TVA sur les encaissements), the default for services, VAT follows payments, so the amount payable can differ from this figure. The figure is the same whatever VAT regime is saved. State the basis beside the net figure, and say "the posted ledger shows X net VAT payable", never "you owe X".

A posted answer carries basis: "posted" and currency_basis, which names how the answer currency was resolved. excluded.unposted_invoice_count counts in-window VAT-bearing invoice documents whose VAT is not represented by a posted VAT-role line; state the count beside the posted figure and never add those documents to it. excluded.other_currency_line_count and excluded.null_currency_line_count count posted ledger lines left out because their accounting currency differs from currency or is missing. They are never converted. excluded.other_company_entry_count counts posted VAT entries stamped to another books company, which are left out of the figure, and excluded.unstamped_entry_count counts posted VAT entries with no company stamp, whose amounts stay in the figure.

A window with nothing posted is not refused. When the window holds no posted ledger entry that carries VAT, the call answers from the possibilities read of the same window instead: status: "ok", basis: "possibilities", with a basis_note saying that nothing is posted in the window yet, that the figures come from draft entries and invoices, and that the filed figure comes from closing the books. State that note beside the figures. It is NOT a nil return: never say no VAT is due. When that read finds nothing either, the answer is no_vat_found.

Pass basis: "possibilities" when the question is what VAT the current documents and in-progress book could become. The read includes the VAT-role entries in every state, plus invoice-header tax only when no live VAT-role entry exists for that invoice. The entries' state is a bookkeeping detail: entries.validated_count and entries.draft_count split entry_count by the books' state: read them, never state them, and never word an entry or an amount as validated, draft, « validé » or « brouillon » (a money answer has no validation step). Never mention validation or draft status anywhere in a money answer, including a declaration being validated or a connector's state; in French, never use « validé », « validée », « validées » or « brouillon ». If the count is useful, write only N VAT entries from entry_count. It groups the evidence by calendar quarter (quarters follow the entry date of each entry and the issue date of each document, never the fiscal period, and a filed return can differ), keeps domestic purchases, purchases to check, sales and unsided documents separate, counts the documents between two other companies apart (not_ours), and reads a document in another currency in the read currency only when its stored accounting tax is in that currency; an unconverted other-currency document, or any document with no currency, is excluded and counted in excluded. A purchase is domestic when its registry country is France, or, only for a French workspace with no registry country, its stored SIREN, SIRET or French VAT number passes full validation; otherwise it stays to check. When excluded.identity_grouping_truncated is true, the identifier check read only part of the suppliers, so some French purchases may still sit in purchases to check: every amount stays whole, only that split is less precise, so say purchases to check may hold French suppliers. Utility bills (document type 901) count as purchase documents; expense receipts (902) and pro formas (325) remain out. Documents with no issue date are counted in excluded.undated_count but never placed in a quarter or amount; that count covers the whole workspace, not the window, so it is the same on every window. Replacement documents are counted but excluded from the money lines, and make the quarter incomplete. A quarter's presentation is computed (both sides evidenced, each by an entry or a document, with at least one ledger entry in the quarter and nothing unread: net and position are set), evidence_only (one side only, or documents alone), incomplete (unsided, other-currency, null-currency or replacement evidence, or entry VAT with no attributed or mapped rate, sits beside the figures) or no_evidence (the quarter is in the window but holds no VAT-role entry and no invoice VAT: it is returned with every amount, net and position null and a note; state it as no evidence found for that quarter, never as zero VAT and never as a nil position); net and position are null unless computed; a quarter that holds sales evidence and is not computed carries net_estimate (collected minus deductible from those entries and documents, with deductible_missing: true and a null net when no purchase evidence exists): state it only as an estimate from invoices, not the filed figure, never as the position and never as a payment due; entries.unplaced is the entry VAT that neither side carries: reverse charge is only reported, while unattributed and unmapped-rate VAT make the quarter incomplete; purchases to check are reported beside a computed position and never added to it, and a side without evidence (purchase_evidence or sales_evidence false) is absent, never zero. Ledger entries booked in another or an unstated accounting currency are counted in excluded and not summed. A window over twelve months answers range_too_large with the window you asked for; nothing is narrowed. Documents between two other companies (both parties known, neither one a company of this workspace) are counted in counts.not_ours, ordinary and replacing ones alike, and the VAT of those whose tax is stated in currency is in documents.not_ours of the quarter, which sums only the documents with a readable VAT, so a quarter's count can be larger than the documents behind its amount. possibilities.not_ours_note is the ready sentence for them: their count, quarter by quarter, how many of each have a readable VAT, and that VAT. Relay it as its own sentence beside the figures, in the language of the answer and with its numbers unchanged; compose none of your own, never add that VAT to a figure or put it inside the deductible sentence, and never call a quarter incomplete for them. A null documents.not_ours means none of the quarter's such documents has a VAT stated in currency (an unconverted other-currency document, a document with no currency, a replacement): the note then says none is readable, and no amount is ever 0.00. A document with no party at all is not one of them: it stays unsided. Documents whose side rests on an inference, not on proof (a company of this workspace on one leg, or a provider claim with no holder), are counted in counts.estimated_side, replacing ones included, and their VAT is in documents.estimated of the quarter, by kind (purchase_domestic, purchase_to_check, sales); it is never in deductible, collected, net or position. possibilities.estimated_side_note is the ready sentence for them: relay it once, as its own sentence beside the figures, in the language of the answer and with its numbers unchanged, never as proven, and compose none of your own. An inferred side alone never makes a quarter incomplete: a quarter that holds only such documents is evidence_only, while a replacement, unsided, other-currency or no-currency document still makes it incomplete; state the returned presentation unchanged. A null amount in documents.estimated means none is stated, never 0.00. Possibilities carry no ca3 or totals, and no top-level months. Each quarter that holds evidence carries its own months (the calendar months that hold evidence, oldest first, each with collected, deductible, their sales_evidence and purchase_evidence flags, purchase_to_check, unsided and the entry and document counts; no month net) and rates (the quarter's collected and deductible by line rate, highest rate first). A month's amounts add up to the quarter's, and state a month side only when its evidence flag is true, never as 0.00. A document is split by rate only when its line tax adds up to its header tax to the cent; the rest of the quarter amount sits in rate_unread (signed, per side), which with the rates equals the quarter's collected and deductible: state it as VAT whose rate was not read, only when it is not 0.00. A rates side that is null has no VAT at that rate. excluded.rate_grouping_truncated true means the rate read was cut: more of the quarter sits in rate_unread. With no accounting country, purchases remain to check and no jurisdiction is inferred, unless estimated_country_code is set (see below). With no configured or country currency, the mode of eligible non-null document currencies is used, ties break alphabetically, and no eligible currency returns no_vat_found; existing ledger amounts are never relabelled. currency_basis says what currency rests on: settings (the workspace's books currency), country (the default currency of its accounting country), display_fallback on a posted read (the display currency when neither is set) or documents_mode on a possibilities read (the most common currency of its invoices, because neither is set); it is null, beside no currency, when no denomination exists. Name it only when it is not settings. status: "no_vat_found" means neither VAT-role entries nor document evidence were found in any quarter of the window (the quarters it looked at come back as no_evidence rows), or no denomination can be selected; it is not a nil return.

The VAT balance. Every possibilities quarter row that holds an invoice or a VAT entry on either side carries balance: the VAT to set aside (direction: "set_aside") or to recover ("recover"), as amount, from collected minus deductible. It answers "how much VAT do I set aside or recover this month": read the one month as the window (from its first day, to the first day of the next) and its row is that month. Unlike net and net_estimate, it counts the purchases to check and the invoices whose side is inferred, and it is set whatever the presentation, with or without an own company, a VAT regime or a posted entry. sales_invoice_count and purchase_invoice_count are the invoices it counts; unsided_invoice_count invoices are in neither side. It is an estimate from invoices, never the filed figure and never a payment due.

anomalies lists invoices in the window, purchases and sales, that carry a billed line with no VAT rate (line_without_vat_rate). A purchase that names no supplier company also lists as supplier_unattributed; a sale never does. direction says which side an invoice is on, from the workspace's own company: a purchase names a supplier, sales names a customer, and label uses that party. unanchored means the invoice does not name the own company on exactly one side, so it has no direction and no party. total counts every such invoice, items holds the first anomaly_limit (default 20, at most 50), and truncated: true means more exist than items shows. Name an invoice by its label, never by invoice_id. An invoice with no rate is not necessarily missing VAT: the fix is to set the rate or supplier on the invoice, not to adjust the return.

A workspace outside France, or with no accounting country, is not refused either. It is answered from the possibilities read, with filing: null (no CA3, no CA3 slots) and a basis_note that names the gap: VAT filing for its country is not mapped in Well, or the workspace has no accounting country, and the figures are the VAT the books and invoices carry. State that note beside the figures. With no configured country, estimated_country_code is the majority registry country of the workspace's own documents, an estimate stated as one: the domestic split and the French-identifier check run on it, and basis_note / estimated_country says so. country_code stays null: nothing configured is asserted. estimated_country_truncated is true when more of its documents would vote than the estimate reads, so only the newest voted, and basis_note then says the country leads among the newest documents read, never a majority of all of them. The estimate reads the twelve months up to today, whatever window the call names. When no country emerges, the read infers no jurisdiction and places purchases in to check.

filing is the periodic VAT return (CA3) of the workspace's own company, by the rule the tax calendar dates the CA3 with. It is null when the legal form is not set or not covered, when the country is not covered, when the saved profile owes no CA3 (the VAT franchise, the simplified regime or an annual filing frequency, for any legal form: the calendar's not_owed then holds fr-vat-ca3), and for a micro-entrepreneur whose VAT regime is not saved. When the saved VAT regime is the franchise (vat_regime: "franchise"), filing_note (code vat_franchise) says beside the null filing that the company files no VAT return. cadence is the saved filing frequency (monthly or quarterly), the same one filing_frequency resolves, or null when the profile does not hold a periodic frequency: the CA3 is then monthly or quarterly, and Well does not know which. Well stores no deadline: due_rule is the published window, with the source to name beside any date, and due_window is the window that rule gives for THIS read's period, the days of the month after it. It is null unless the read covers exactly one calendar month or one calendar quarter. The administration sets the exact day per company inside the window. State a date only when cadence is set and the person has confirmed it, and name the source with it.

filing_frequency and period_note ride on every possibilities answer. filing_frequency is the company's stored VAT filing frequency as its tax profile resolves it (monthly, quarterly or annual; null when unset or when the company is in the VAT franchise and files no return); period_note is mandatory and is copied once as the first sentence of the VAT block, before any quarter figure, including a detail follow-up. It says the unit of the grouping. The read groups by calendar quarter whatever the frequency.

vat_number_present and vat_regime ride, on both bases, on every ok and no_vat_found block and on every range_too_large block of a window that holds too many entries, each beside its country_code; a failed block and a window refused before any read carry neither. vat_number_present is true when the own company, or the workspace's accounting settings, stores an EU VAT number, false when neither does (a stored SIREN alone is not one), and null when the workspace has no own company and its settings store none. The number itself is never returned. vat_regime is the VAT regime the workspace saved (franchise, simplified or normal), or null when none is saved.

provider_booked is set on a possibilities answer: the VAT the connected Pennylane accounting provider booked, summed from its retained ledger lines on named FR VAT accounts, or null when there is nothing to state (no Pennylane line on those accounts, a workspace that is not French, one whose books currency is not set explicitly, or one whose country is only estimated). State by_quarter as a check beside the figures: never add it to the position and never present it as the filed figure. Show 44564 as VAT deductible on payment and 44574 as VAT collected on receipt in the separate pending bucket, pending until paid, never implied as due and never netted into a quarter. When unavailable is true, the booked VAT could not be read this time: state note once and say it is unknown, not absent and not zero, and state no booked amount. When it is null, say nothing about it.

scope. Omit it, or pass "this_workspace", to read the workspace the call runs in. Pass "my_companies" on WhatsApp to read every company workspace of the person's company family in one call, without moving the chat: the family is the membership the chat runs in, or the company's parent membership, and its company workspaces. A workspace counts only when the signed-in person holds a live membership in it, checked again before each read, and Well finds them from the signed-in person: a workspace is never named in the call. The result then carries workspaces, one block per company workspace (at most 10, workspaces_truncated: true when more exist), each with its workspace_name, company_name and the same fields as a single read, its own status first. Answer each block on its own: never add, net or compare two blocks into one figure. A block for a workspace outside France or without a country answers like any other and carries its own basis_note; state it with that block. workspaces_unreadable counts the company workspaces a failed lookup left out unnamed: their position is unknown, not nil. An empty workspaces with workspaces_unreadable at 0 means the person has no company workspace they can read; with it above 0 it means the read failed. On any other host the read refuses the scope with status: "failed": read one company per call there.

status: "range_too_large" means the window holds more posted entries than one call reads (5000). Ask again with a shorter window. It is never answered with a partial sum. status: "failed" means the read failed and the position is UNKNOWN, not nil.

Unread invoice-header VAT. On the possibilities basis, excluded.header_tax_unread_count counts live eligible invoices with no header tax where both item and grand totals are present and differ. It is a count of VAT the header cannot read, not an amount. excluded.tax_unknown_count (present when above 0) counts every live eligible invoice in the window with no header tax, whatever its totals say (tax_unknown_split gives the equal, missing and differing totals; the differing ones are header_tax_unread_count). When it is present, the answer says once how many invoices in the window have VAT that could not be read, as a count for the window as a whole: never inside a quarter, never as nil, zero or no VAT, never as an amount, and never added to another count.

Currency exclusions on a posted answer. When either currency-line count is above zero, state currency_exclusion_note once and give both counts. The figure is partial and ca3.complete is false. If no posted VAT line remains in the selected currency, keep basis: "posted", state that no position is available in that currency and give no amount. Do not answer from possibilities or say that nothing is posted.

When the token authorizes one workspace, call this directly — no workspace call is needed first. When it authorizes several, this read will not guess which one you mean: pass workspace_id on the call.

Input Schema

NameRequiredDescriptionDefault
toNoEXCLUSIVE end of the window: the first day of the month after the last one you want, YYYY-MM-01. Give it with `from`.
fromNoInclusive start of the window: the first day of a month, YYYY-MM-01. Give it with `to`, or omit both only to read the current quarter in progress on `basis: "posted"` (a `basis: "possibilities"` call always names both); for any other period name both.
basisNoEvidence basis. Omit or use `posted` for the existing posted-ledger VAT return; use `possibilities` for draft, posted and document-header evidence grouped by quarter, each quarter split by month and by rate.posted
scopeNoWhich workspaces the read covers. Omit it for the workspace the call runs in. "my_companies" reads every company workspace of the person's family, one block each, and runs on WhatsApp only.
workspace_idNoTarget workspace. Omit when the token authorizes one workspace. Required when it authorizes several: this read reports one workspace's own figures and will not choose which.
anomaly_limitNoHow many anomalous invoices to list, at most 50. Defaults to 20; `anomalies.total` counts all of them.
conversation_idNoThe conversation id returned by the previous Well result, in its meta under well/conversation_id, in its structuredContent, or in its JSON text block. Pass it back on every call in the same conversation, including a call a card makes, so the chosen workspace and the earlier answers still apply. It decides the conversation on its own: nothing the host states about the session replaces it. Omit it only on the first call of a conversation.
workspace_scopeNoRestrict this call to the family: the token's primary workspace plus the company workspaces under it that you are a member of. Unrelated authorized workspaces drop out of the read; row reads merge across the family, while a per-workspace figure still reports exactly one workspace.

Output Schema

NameRequiredDescriptionDefault
ca3No
basisNoThe evidence basis used by the read. `posted` means posted ledger entries only; `possibilities` reads draft, posted and document-header evidence.
errorNo
scopeNoSet on a `my_companies` read, whose figures are in `workspaces` and never at the top level.
filingNoThe periodic VAT return (CA3) of the own company, or null when the company files none: no legal form or one Well does not cover, a saved profile on the franchise, the simplified regime or an annual frequency, or a micro-entrepreneur whose VAT regime is not saved. Well stores no deadline.
monthsNo
statusYesWhere the call ended. `ok` carries a figure or a currency-exclusion note; `no_vat_found` is not a nil return.
totalsNo
windowNo
successYesTrue only when `status` is `ok`.
currencyNoISO-4217 code every amount below is denominated in.
excludedNoCounts of evidence excluded from a posted VAT answer. These counts are never added to its figures.
anomaliesNo
basis_noteNoA sentence to state beside the figures. On a posted `ok` read: entries are grouped by the month of their entry date, so an entry posted into a later return still shows in its own month and a filed return can differ. On a possibilities read that stands in for a posted one: nothing is posted yet, or the workspace's country is not mapped for VAT filing, or it has no country, or its country is the majority country of its documents stated as an estimate.
vat_regimeNoOn every ok and no_vat_found block, and on a range_too_large block of a window that holds too many entries; never on a failed block: the VAT regime the workspace saved, `franchise`, `simplified` or `normal`; null when none is saved. Under `franchise`, `filing` is null and `filing_note` says why.
workspacesNoOne block per company workspace of the person's family, family root first. Each carries its own status and figures. Never add two blocks together.
filing_noteNoA sentence to state beside a `filing` that is null on purpose: the workspace saved the VAT franchise, so the company files no VAT return. Absent otherwise.
period_noteNoOn every possibilities-carrying block: one mandatory sentence saying which unit the company files its VAT return in and that the figures are grouped by calendar quarter. Copy it once as the first sentence before any quarter figure, including a detail follow-up. It promises no due date. Absent on a posted read.
country_codeNoThe workspace's accounting country. Set on `ok`; null when none is configured.
possibilitiesNo
currency_basisNoWhat `currency` rests on: on a posted read, `settings`, `country` or `display_fallback`; on a possibilities read, `settings`, `country` or `documents_mode`. Null when no denomination exists, beside no `currency`.
basis_note_codeNoStable code of `basis_note`: `nothing_posted`, `country_not_mapped`, `no_country`, `estimated_country` or `entry_date_basis`.
conversation_idNoThe conversation this result belongs to. Pass it back as the conversation_id argument on every later Well call in the same conversation.
newly_connectedNoTools that connected to this workspace since the last result and that no session was told about yet, oldest first. Present only when at least one tool is new. The connected-line rule says when to tell an entry; when it does, one line per entry, in the person's language: "<name> is connected.". Never fold several entries into one sentence. Each entry comes back once, on one result only: never repeat its line later.
provider_bookedNoOn a possibilities answer: the VAT the connected Pennylane accounting provider booked on named FR VAT accounts, summed from its retained ledger lines, or null when there is nothing to state. When `unavailable` is true, the read could not finish: state `note` and no amount, because the booked VAT is unknown, not absent and not zero. A check beside the figures, never added to them and never the filed figure. Absent on a posted read.
filing_frequencyNoOn every possibilities-carrying block: the company's VAT filing frequency as its tax profile resolves it, `monthly`, `quarterly` or `annual`; null when the profile states none or the company is in the VAT franchise and files no return. The read groups by calendar quarter whatever it is. Absent on a posted read.
filing_note_codeNoStable code of `filing_note`: `vat_franchise`.
resolved_workspaceNoThe workspace that answered, when the caller named none and the token authorizes several.
vat_number_presentNoOn every ok and no_vat_found block, and on a range_too_large block of a window that holds too many entries; never on a failed block: true when the own company or the workspace's accounting settings stores an EU VAT number, false when neither does (a SIREN alone is not one), null when the workspace has no own company and its settings store none. The number itself is never returned.
conversation_id_noteNoPresent only when the server opened a fresh lane, stating that no choice recorded earlier was read.
workspaces_truncatedNoTrue when the family holds more than 10 company workspaces and the rest are not read.
workspaces_unreadableNoHow many company workspaces of the family could not be checked or read because a lookup failed. They are not named and their position is unknown, not nil. Above zero, never say the person has no company workspace.
company_exclusion_noteNoMandatory when `excluded.other_company_entry_count` is above zero. State this sentence once and state the count. It says the posted figure is partial, or that no posted position for this company remains in the window.
conversation_id_sourceNoWhere the conversation id came from: the host's own request meta, the caller's argument, or a fresh lane the server opened.
estimated_country_codeNoThe registry country a strict majority of the workspace's own documents of the last 12 months carries, set only when no accounting country is configured and one country holds that majority. An estimate stated as one — `country_code` stays null beside it — on every possibilities-carrying block; null when a configured country exists or no majority emerges.
currency_exclusion_noteNoMandatory when either posted currency-line count is above zero. State this sentence once and state both excluded counts. It says the posted figure is partial, or that no posted position remains in the selected currency.
estimated_country_truncatedNoTrue when more of the workspace's own documents of the last 12 months were eligible than the estimated country reads, so only the newest ones voted; false otherwise. Set beside `estimated_country_code` on every possibilities-carrying block.

Schema Changelog

Changes observed during successful MCP inspections.

  1. Changed30 schema fields changed
    • changedOutput schema / properties / anomalies / properties / items / items / properties / customer / anyOf
      Previous value: -[
      -  {
      -    "additionalProperties": false,
      -    "description": "The receiver of a sale. Null on a purchase.",
      -    "properties": {
      -      "company_id": {
      -        "type": "string"
      -      },
      -      "domain": {
      -        "anyOf": [
      -          {
      -            "type": "string"
      -          },
      -          {
      -            "type": "null"
      -          }
      -        ]
      -      },
      -      "name": {
      -        "type": "string"
      -      }
      -    },
      -    "required": [
      -      "company_id",
      -      "name",
      -      "domain"
      -    ],
      -    "type": "object"
      -  },
      -  {
      -    "type": "null"
      -  }
      -]New value: +[
      +  {
      +    "additionalProperties": false,
      +    "description": "The receiver of a sale. Null on a purchase.",
      +    "properties": {
      +      "company_id": {
      +        "type": "string"
      +      },
      +      "domain": {
      +        "type": [
      +          "string",
      +          "null"
      +        ]
      +      },
      +      "name": {
      +        "type": "string"
      +      }
      +    },
      +    "required": [
      +      "company_id",
      +      "name",
      +      "domain"
      +    ],
      +    "type": "object"
      +  },
      +  {
      +    "type": "null"
      +  }
      +]
    • removedOutput schema / properties / anomalies / properties / items / items / properties / invoice_number / anyOf
      Removed value: -[
      -  {
      -    "type": "string"
      -  },
      -  {
      -    "type": "null"
      -  }
      -]
    • addedOutput schema / properties / anomalies / properties / items / items / properties / invoice_number / type
      Added value: +[
      +  "string",
      +  "null"
      +]
    • removedOutput schema / properties / anomalies / properties / items / items / properties / issue_date / anyOf
      Removed value: -[
      -  {
      -    "type": "string"
      -  },
      -  {
      -    "type": "null"
      -  }
      -]
    • addedOutput schema / properties / anomalies / properties / items / items / properties / issue_date / type
      Added value: +[
      +  "string",
      +  "null"
      +]
    • changedOutput schema / properties / anomalies / properties / items / items / properties / supplier / anyOf
      Previous value: -[
      -  {
      -    "additionalProperties": false,
      -    "description": "The issuer of a purchase. Null on a sale.",
      -    "properties": {
      -      "company_id": {
      -        "type": "string"
      -      },
      -      "domain": {
      -        "anyOf": [
      -          {
      -            "type": "string"
      -          },
      -          {
      -            "type": "null"
      -          }
      -        ]
      -      },
      -      "name": {
      -        "type": "string"
      -      }
      -    },
      -    "required": [
      -      "company_id",
      -      "name",
      -      "domain"
      -    ],
      -    "type": "object"
      -  },
      -  {
      -    "type": "null"
      -  }
      -]New value: +[
      +  {
      +    "additionalProperties": false,
      +    "description": "The issuer of a purchase. Null on a sale.",
      +    "properties": {
      +      "company_id": {
      +        "type": "string"
      +      },
      +      "domain": {
      +        "type": [
      +          "string",
      +          "null"
      +        ]
      +      },
      +      "name": {
      +        "type": "string"
      +      }
      +    },
      +    "required": [
      +      "company_id",
      +      "name",
      +      "domain"
      +    ],
      +    "type": "object"
      +  },
      +  {
      +    "type": "null"
      +  }
      +]
    • removedOutput schema / properties / country_code / anyOf
      Removed value: -[
      -  {
      -    "type": "string"
      -  },
      -  {
      -    "type": "null"
      -  }
      -]
    • addedOutput schema / properties / country_code / type
      Added value: +[
      +  "string",
      +  "null"
      +]
    • removedOutput schema / properties / estimated_country_code / anyOf
      Removed value: -[
      -  {
      -    "type": "string"
      -  },
      -  {
      -    "type": "null"
      -  }
      -]
    • addedOutput schema / properties / estimated_country_code / type
      Added value: +[
      +  "string",
      +  "null"
      +]
    • addedOutput schema / properties / possibilities / properties / quarters / items / properties / balance
      Added value: +{
      +  "additionalProperties": false,
      +  "description": "Set when the quarter holds an invoice or a VAT entry on either side: the VAT balance, an estimate from every invoice and entry whose side is known or inferred, for the question \"how much VAT do I set aside or recover\". It counts what `net` and `net_estimate` leave out (purchases to check, inferred sides), and it is set whatever the presentation, with or without an own company or a VAT regime. State it as an estimate from invoices, never as the filed figure or a payment due, and never add it across companies.",
      +  "properties": {
      +    "amount": {
      +      "description": "`collected` minus `deductible`, as a magnitude: `direction` carries the sign.",
      +      "pattern": "^-?\\d+\\.\\d{2}$",
      +      "type": "string"
      +    },
      +    "collected": {
      +      "description": "The quarter's `collected` plus the VAT of the sales whose side is inferred.",
      +      "pattern": "^-?\\d+\\.\\d{2}$",
      +      "type": "string"
      +    },
      +    "deductible": {
      +      "description": "The quarter's `deductible` plus the purchases to check and the purchases whose side is inferred.",
      +      "pattern": "^-?\\d+\\.\\d{2}$",
      +      "type": "string"
      +    },
      +    "direction": {
      +      "description": "`set_aside`: more VAT collected than deductible, keep `amount` for the return. `recover`: more deductible than collected, `amount` is VAT the return can offset or claim back. `nil`: both sides are equal.",
      +      "enum": [
      +        "set_aside",
      +        "recover",
      +        "nil"
      +      ],
      +      "type": "string"
      +    },
      +    "entry_count": {
      +      "description": "VAT-bearing ledger entries read beside the invoices.",
      +      "maximum": 9007199254740991,
      +      "minimum": -9007199254740991,
      +      "type": "integer"
      +    },
      +    "includes_inferred_side": {
      +      "description": "True when a counted invoice rests on an inferred side, not on a confirmed own company.",
      +      "type": "boolean"
      +    },
      +    "includes_purchases_to_check": {
      +      "description": "True when the deductible side holds purchases from a supplier not proven domestic.",
      +      "type": "boolean"
      +    },
      +    "purchase_invoice_count": {
      +      "description": "The purchase invoices counted: domestic, to check and inferred.",
      +      "maximum": 9007199254740991,
      +      "minimum": -9007199254740991,
      +      "type": "integer"
      +    },
      +    "sales_invoice_count": {
      +      "description": "The sales invoices counted, inferred ones included.",
      +      "maximum": 9007199254740991,
      +      "minimum": -9007199254740991,
      +      "type": "integer"
      +    },
      +    "unsided_invoice_count": {
      +      "description": "Invoices whose side is unknown: their VAT is in neither side.",
      +      "maximum": 9007199254740991,
      +      "minimum": -9007199254740991,
      +      "type": "integer"
      +    }
      +  },
      +  "required": [
      +    "collected",
      +    "deductible",
      +    "amount",
      +    "direction",
      +    "sales_invoice_count",
      +    "purchase_invoice_count",
      +    "unsided_invoice_count",
      +    "entry_count",
      +    "includes_inferred_side",
      +    "includes_purchases_to_check"
      +  ],
      +  "type": "object"
      +}
    • removedOutput schema / properties / resolved_workspace / properties / name / anyOf
      Removed value: -[
      -  {
      -    "type": "string"
      -  },
      -  {
      -    "type": "null"
      -  }
      -]
    • addedOutput schema / properties / resolved_workspace / properties / name / type
      Added value: +[
      +  "string",
      +  "null"
      +]
    • removedOutput schema / properties / vat_number_present / anyOf
      Removed value: -[
      -  {
      -    "type": "boolean"
      -  },
      -  {
      -    "type": "null"
      -  }
      -]
    • addedOutput schema / properties / vat_number_present / type
      Added value: +[
      +  "boolean",
      +  "null"
      +]
    • changedOutput schema / properties / workspaces / items / properties / anomalies / properties / items / items / properties / customer / anyOf
      Previous value: -[
      -  {
      -    "additionalProperties": false,
      -    "description": "The receiver of a sale. Null on a purchase.",
      -    "properties": {
      -      "company_id": {
      -        "type": "string"
      -      },
      -      "domain": {
      -        "anyOf": [
      -          {
      -            "type": "string"
      -          },
      -          {
      -            "type": "null"
      -          }
      -        ]
      -      },
      -      "name": {
      -        "type": "string"
      -      }
      -    },
      -    "required": [
      -      "company_id",
      -      "name",
      -      "domain"
      -    ],
      -    "type": "object"
      -  },
      -  {
      -    "type": "null"
      -  }
      -]New value: +[
      +  {
      +    "additionalProperties": false,
      +    "description": "The receiver of a sale. Null on a purchase.",
      +    "properties": {
      +      "company_id": {
      +        "type": "string"
      +      },
      +      "domain": {
      +        "type": [
      +          "string",
      +          "null"
      +        ]
      +      },
      +      "name": {
      +        "type": "string"
      +      }
      +    },
      +    "required": [
      +      "company_id",
      +      "name",
      +      "domain"
      +    ],
      +    "type": "object"
      +  },
      +  {
      +    "type": "null"
      +  }
      +]
    • removedOutput schema / properties / workspaces / items / properties / anomalies / properties / items / items / properties / invoice_number / anyOf
      Removed value: -[
      -  {
      -    "type": "string"
      -  },
      -  {
      -    "type": "null"
      -  }
      -]
    • addedOutput schema / properties / workspaces / items / properties / anomalies / properties / items / items / properties / invoice_number / type
      Added value: +[
      +  "string",
      +  "null"
      +]
    • removedOutput schema / properties / workspaces / items / properties / anomalies / properties / items / items / properties / issue_date / anyOf
      Removed value: -[
      -  {
      -    "type": "string"
      -  },
      -  {
      -    "type": "null"
      -  }
      -]
    • addedOutput schema / properties / workspaces / items / properties / anomalies / properties / items / items / properties / issue_date / type
      Added value: +[
      +  "string",
      +  "null"
      +]
    • changedOutput schema / properties / workspaces / items / properties / anomalies / properties / items / items / properties / supplier / anyOf
      Previous value: -[
      -  {
      -    "additionalProperties": false,
      -    "description": "The issuer of a purchase. Null on a sale.",
      -    "properties": {
      -      "company_id": {
      -        "type": "string"
      -      },
      -      "domain": {
      -        "anyOf": [
      -          {
      -            "type": "string"
      -          },
      -          {
      -            "type": "null"
      -          }
      -        ]
      -      },
      -      "name": {
      -        "type": "string"
      -      }
      -    },
      -    "required": [
      -      "company_id",
      -      "name",
      -      "domain"
      -    ],
      -    "type": "object"
      -  },
      -  {
      -    "type": "null"
      -  }
      -]New value: +[
      +  {
      +    "additionalProperties": false,
      +    "description": "The issuer of a purchase. Null on a sale.",
      +    "properties": {
      +      "company_id": {
      +        "type": "string"
      +      },
      +      "domain": {
      +        "type": [
      +          "string",
      +          "null"
      +        ]
      +      },
      +      "name": {
      +        "type": "string"
      +      }
      +    },
      +    "required": [
      +      "company_id",
      +      "name",
      +      "domain"
      +    ],
      +    "type": "object"
      +  },
      +  {
      +    "type": "null"
      +  }
      +]
    • removedOutput schema / properties / workspaces / items / properties / company_name / anyOf
      Removed value: -[
      -  {
      -    "type": "string"
      -  },
      -  {
      -    "type": "null"
      -  }
      -]
    • addedOutput schema / properties / workspaces / items / properties / company_name / type
      Added value: +[
      +  "string",
      +  "null"
      +]
    • removedOutput schema / properties / workspaces / items / properties / country_code / anyOf
      Removed value: -[
      -  {
      -    "type": "string"
      -  },
      -  {
      -    "type": "null"
      -  }
      -]
    • addedOutput schema / properties / workspaces / items / properties / country_code / type
      Added value: +[
      +  "string",
      +  "null"
      +]
    • removedOutput schema / properties / workspaces / items / properties / estimated_country_code / anyOf
      Removed value: -[
      -  {
      -    "type": "string"
      -  },
      -  {
      -    "type": "null"
      -  }
      -]
    • addedOutput schema / properties / workspaces / items / properties / estimated_country_code / type
      Added value: +[
      +  "string",
      +  "null"
      +]
    • addedOutput schema / properties / workspaces / items / properties / possibilities / properties / quarters / items / properties / balance
      Added value: +{
      +  "additionalProperties": false,
      +  "description": "Set when the quarter holds an invoice or a VAT entry on either side: the VAT balance, an estimate from every invoice and entry whose side is known or inferred, for the question \"how much VAT do I set aside or recover\". It counts what `net` and `net_estimate` leave out (purchases to check, inferred sides), and it is set whatever the presentation, with or without an own company or a VAT regime. State it as an estimate from invoices, never as the filed figure or a payment due, and never add it across companies.",
      +  "properties": {
      +    "amount": {
      +      "description": "`collected` minus `deductible`, as a magnitude: `direction` carries the sign.",
      +      "pattern": "^-?\\d+\\.\\d{2}$",
      +      "type": "string"
      +    },
      +    "collected": {
      +      "description": "The quarter's `collected` plus the VAT of the sales whose side is inferred.",
      +      "pattern": "^-?\\d+\\.\\d{2}$",
      +      "type": "string"
      +    },
      +    "deductible": {
      +      "description": "The quarter's `deductible` plus the purchases to check and the purchases whose side is inferred.",
      +      "pattern": "^-?\\d+\\.\\d{2}$",
      +      "type": "string"
      +    },
      +    "direction": {
      +      "description": "`set_aside`: more VAT collected than deductible, keep `amount` for the return. `recover`: more deductible than collected, `amount` is VAT the return can offset or claim back. `nil`: both sides are equal.",
      +      "enum": [
      +        "set_aside",
      +        "recover",
      +        "nil"
      +      ],
      +      "type": "string"
      +    },
      +    "entry_count": {
      +      "description": "VAT-bearing ledger entries read beside the invoices.",
      +      "maximum": 9007199254740991,
      +      "minimum": -9007199254740991,
      +      "type": "integer"
      +    },
      +    "includes_inferred_side": {
      +      "description": "True when a counted invoice rests on an inferred side, not on a confirmed own company.",
      +      "type": "boolean"
      +    },
      +    "includes_purchases_to_check": {
      +      "description": "True when the deductible side holds purchases from a supplier not proven domestic.",
      +      "type": "boolean"
      +    },
      +    "purchase_invoice_count": {
      +      "description": "The purchase invoices counted: domestic, to check and inferred.",
      +      "maximum": 9007199254740991,
      +      "minimum": -9007199254740991,
      +      "type": "integer"
      +    },
      +    "sales_invoice_count": {
      +      "description": "The sales invoices counted, inferred ones included.",
      +      "maximum": 9007199254740991,
      +      "minimum": -9007199254740991,
      +      "type": "integer"
      +    },
      +    "unsided_invoice_count": {
      +      "description": "Invoices whose side is unknown: their VAT is in neither side.",
      +      "maximum": 9007199254740991,
      +      "minimum": -9007199254740991,
      +      "type": "integer"
      +    }
      +  },
      +  "required": [
      +    "collected",
      +    "deductible",
      +    "amount",
      +    "direction",
      +    "sales_invoice_count",
      +    "purchase_invoice_count",
      +    "unsided_invoice_count",
      +    "entry_count",
      +    "includes_inferred_side",
      +    "includes_purchases_to_check"
      +  ],
      +  "type": "object"
      +}
    • removedOutput schema / properties / workspaces / items / properties / vat_number_present / anyOf
      Removed value: -[
      -  {
      -    "type": "boolean"
      -  },
      -  {
      -    "type": "null"
      -  }
      -]
    • addedOutput schema / properties / workspaces / items / properties / vat_number_present / type
      Added value: +[
      +  "boolean",
      +  "null"
      +]
  2. Changed6 schema fields changed
    • addedOutput schema / properties / company_exclusion_note
      Added value: +{
      +  "description": "Mandatory when `excluded.other_company_entry_count` is above zero. State this sentence once and state the count. It says the posted figure is partial, or that no posted position for this company remains in the window.",
      +  "type": "string"
      +}
    • addedOutput schema / properties / excluded / properties / other_company_entry_count
      Added value: +{
      +  "description": "Posted VAT entries stamped to another books company than this one. They are left out of the figure and never converted. Absent when zero.",
      +  "maximum": 9007199254740991,
      +  "minimum": -9007199254740991,
      +  "type": "integer"
      +}
    • addedOutput schema / properties / excluded / properties / unstamped_entry_count
      Added value: +{
      +  "description": "Posted VAT entries with no books company stamp. Their amounts stay in the figure; this count names them. Absent when zero.",
      +  "maximum": 9007199254740991,
      +  "minimum": -9007199254740991,
      +  "type": "integer"
      +}
    • addedOutput schema / properties / workspaces / items / properties / company_exclusion_note
      Added value: +{
      +  "description": "Mandatory when `excluded.other_company_entry_count` is above zero. State this sentence once and state the count. It says the posted figure is partial, or that no posted position for this company remains in the window.",
      +  "type": "string"
      +}
    • addedOutput schema / properties / workspaces / items / properties / excluded / properties / other_company_entry_count
      Added value: +{
      +  "description": "Posted VAT entries stamped to another books company than this one. They are left out of the figure and never converted. Absent when zero.",
      +  "maximum": 9007199254740991,
      +  "minimum": -9007199254740991,
      +  "type": "integer"
      +}
    • addedOutput schema / properties / workspaces / items / properties / excluded / properties / unstamped_entry_count
      Added value: +{
      +  "description": "Posted VAT entries with no books company stamp. Their amounts stay in the figure; this count names them. Absent when zero.",
      +  "maximum": 9007199254740991,
      +  "minimum": -9007199254740991,
      +  "type": "integer"
      +}
  3. Changed11 schema fields changed
    • changedOutput schema / properties / basis / description
      Previous value: -"The evidence basis used by the read. Omitted means the posted ledger basis."New value: +"The evidence basis used by the read. `posted` means posted ledger entries only; `possibilities` reads draft, posted and document-header evidence."
    • changedOutput schema / properties / currency_basis / description
      Previous value: -"What `currency` rests on, on a possibilities read: `settings` (the workspace's books currency), `country` (the default currency of its accounting country) or `documents_mode` (the most common currency of its invoices, because neither is set). Null when no denomination exists, beside no `currency`. Omitted on a posted read."New value: +"What `currency` rests on: on a posted read, `settings`, `country` or `display_fallback`; on a possibilities read, `settings`, `country` or `documents_mode`. Null when no denomination exists, beside no `currency`."
    • addedOutput schema / properties / currency_exclusion_note
      Added value: +{
      +  "description": "Mandatory when either posted currency-line count is above zero. State this sentence once and state both excluded counts. It says the posted figure is partial, or that no posted position remains in the selected currency.",
      +  "type": "string"
      +}
    • addedOutput schema / properties / excluded
      Added value: +{
      +  "additionalProperties": false,
      +  "description": "Counts of evidence excluded from a posted VAT answer. These counts are never added to its figures.",
      +  "properties": {
      +    "null_currency_line_count": {
      +      "description": "Posted ledger lines with no accounting currency; they were excluded and not converted.",
      +      "maximum": 9007199254740991,
      +      "minimum": -9007199254740991,
      +      "type": "integer"
      +    },
      +    "other_currency_line_count": {
      +      "description": "Posted ledger lines whose accounting currency differs from `currency`; they were excluded and not converted.",
      +      "maximum": 9007199254740991,
      +      "minimum": -9007199254740991,
      +      "type": "integer"
      +    },
      +    "unposted_invoice_count": {
      +      "description": "VAT-bearing in-window invoice documents not represented by a posted VAT-role ledger line. Excluded from the posted figures.",
      +      "maximum": 9007199254740991,
      +      "minimum": -9007199254740991,
      +      "type": "integer"
      +    }
      +  },
      +  "required": [
      +    "unposted_invoice_count",
      +    "other_currency_line_count",
      +    "null_currency_line_count"
      +  ],
      +  "type": "object"
      +}
    • changedOutput schema / properties / status / description
      Previous value: -"Where the call ended. `ok` carries figures; `no_vat_found` is not a nil return."New value: +"Where the call ended. `ok` carries a figure or a currency-exclusion note; `no_vat_found` is not a nil return."
    • changedOutput schema / properties / workspaces / items / properties / basis / description
      Previous value: -"The evidence basis used by the read. Omitted means the posted ledger basis."New value: +"The evidence basis used by the read. `posted` means posted ledger entries only; `possibilities` reads draft, posted and document-header evidence."
    • changedOutput schema / properties / workspaces / items / properties / company_name / description
      Previous value: -"The workspace's own company, or null when none is set."New value: +"The selected books company, or null when no confirmed books company exists."
    • changedOutput schema / properties / workspaces / items / properties / currency_basis / description
      Previous value: -"What `currency` rests on, on a possibilities read: `settings` (the workspace's books currency), `country` (the default currency of its accounting country) or `documents_mode` (the most common currency of its invoices, because neither is set). Null when no denomination exists, beside no `currency`. Omitted on a posted read."New value: +"What `currency` rests on: on a posted read, `settings`, `country` or `display_fallback`; on a possibilities read, `settings`, `country` or `documents_mode`. Null when no denomination exists, beside no `currency`."
    • addedOutput schema / properties / workspaces / items / properties / currency_exclusion_note
      Added value: +{
      +  "description": "Mandatory when either posted currency-line count is above zero. State this sentence once and state both excluded counts. It says the posted figure is partial, or that no posted position remains in the selected currency.",
      +  "type": "string"
      +}
    • addedOutput schema / properties / workspaces / items / properties / excluded
      Added value: +{
      +  "additionalProperties": false,
      +  "description": "Counts of evidence excluded from a posted VAT answer. These counts are never added to its figures.",
      +  "properties": {
      +    "null_currency_line_count": {
      +      "description": "Posted ledger lines with no accounting currency; they were excluded and not converted.",
      +      "maximum": 9007199254740991,
      +      "minimum": -9007199254740991,
      +      "type": "integer"
      +    },
      +    "other_currency_line_count": {
      +      "description": "Posted ledger lines whose accounting currency differs from `currency`; they were excluded and not converted.",
      +      "maximum": 9007199254740991,
      +      "minimum": -9007199254740991,
      +      "type": "integer"
      +    },
      +    "unposted_invoice_count": {
      +      "description": "VAT-bearing in-window invoice documents not represented by a posted VAT-role ledger line. Excluded from the posted figures.",
      +      "maximum": 9007199254740991,
      +      "minimum": -9007199254740991,
      +      "type": "integer"
      +    }
      +  },
      +  "required": [
      +    "unposted_invoice_count",
      +    "other_currency_line_count",
      +    "null_currency_line_count"
      +  ],
      +  "type": "object"
      +}
    • changedOutput schema / properties / workspaces / items / properties / status / description
      Previous value: -"Where the call ended. `ok` carries figures; `no_vat_found` is not a nil return."New value: +"Where the call ended. `ok` carries a figure or a currency-exclusion note; `no_vat_found` is not a nil return."
  4. Changed14 schema fields changed
    • changedOutput schema / properties / filing / anyOf
      Previous value: -[
      -  {
      -    "additionalProperties": false,
      -    "properties": {
      -      "cadence": {
      -        "description": "The table's cadence for the legal form, assuming the normal real regime. Not the person's regime.",
      -        "enum": [
      -          "monthly",
      -          "quarterly",
      -          "annual"
      -        ],
      -        "type": "string"
      -      },
      -      "declaration_id": {
      -        "description": "The obligation table's stable id, such as `fr-vat-ca3`.",
      -        "type": "string"
      -      },
      -      "due_rule": {
      -        "anyOf": [
      -          {
      -            "additionalProperties": false,
      -            "properties": {
      -              "first_day": {
      -                "maximum": 9007199254740991,
      -                "minimum": -9007199254740991,
      -                "type": "integer"
      -              },
      -              "last_day": {
      -                "maximum": 9007199254740991,
      -                "minimum": -9007199254740991,
      -                "type": "integer"
      -              },
      -              "source": {
      -                "description": "Where the rule is published. Name it beside any date taken from the rule.",
      -                "type": "string"
      -              }
      -            },
      -            "required": [
      -              "first_day",
      -              "last_day",
      -              "source"
      -            ],
      -            "type": "object"
      -          },
      -          {
      -            "type": "null"
      -          }
      -        ],
      -        "description": "The published rule: filed in the month after the period, on one day the administration sets per company between `first_day` and `last_day`. Null when the table carries no rule."
      -      },
      -      "due_window": {
      -        "anyOf": [
      -          {
      -            "additionalProperties": false,
      -            "properties": {
      -              "from": {
      -                "type": "string"
      -              },
      -              "to": {
      -                "type": "string"
      -              }
      -            },
      -            "required": [
      -              "from",
      -              "to"
      -            ],
      -            "type": "object"
      -          },
      -          {
      -            "type": "null"
      -          }
      -        ],
      -        "description": "The days `due_rule` gives for this read's window, as YYYY-MM-DD. Null when there is no rule, and when the window is not exactly one month or one calendar quarter, because a date then belongs to no single return."
      -      },
      -      "label": {
      -        "type": "string"
      -      }
      -    },
      -    "required": [
      -      "declaration_id",
      -      "label",
      -      "cadence",
      -      "due_rule",
      -      "due_window"
      -    ],
      -    "type": "object"
      -  },
      -  {
      -    "type": "null"
      -  }
      -]New value: +[
      +  {
      +    "additionalProperties": false,
      +    "properties": {
      +      "cadence": {
      +        "anyOf": [
      +          {
      +            "enum": [
      +              "monthly",
      +              "quarterly"
      +            ],
      +            "type": "string"
      +          },
      +          {
      +            "type": "null"
      +          }
      +        ],
      +        "description": "The saved VAT filing frequency of the company, or null when the profile does not hold it yet."
      +      },
      +      "declaration_id": {
      +        "description": "The calendar's stable deadline id, `fr-vat-ca3`.",
      +        "type": "string"
      +      },
      +      "due_rule": {
      +        "anyOf": [
      +          {
      +            "additionalProperties": false,
      +            "properties": {
      +              "first_day": {
      +                "maximum": 9007199254740991,
      +                "minimum": -9007199254740991,
      +                "type": "integer"
      +              },
      +              "last_day": {
      +                "maximum": 9007199254740991,
      +                "minimum": -9007199254740991,
      +                "type": "integer"
      +              },
      +              "source": {
      +                "description": "Where the rule is published. Name it beside any date taken from the rule.",
      +                "type": "string"
      +              }
      +            },
      +            "required": [
      +              "first_day",
      +              "last_day",
      +              "source"
      +            ],
      +            "type": "object"
      +          },
      +          {
      +            "type": "null"
      +          }
      +        ],
      +        "description": "The published rule: filed in the month after the period, on one day the administration sets per company between `first_day` and `last_day`."
      +      },
      +      "due_window": {
      +        "anyOf": [
      +          {
      +            "additionalProperties": false,
      +            "properties": {
      +              "from": {
      +                "type": "string"
      +              },
      +              "to": {
      +                "type": "string"
      +              }
      +            },
      +            "required": [
      +              "from",
      +              "to"
      +            ],
      +            "type": "object"
      +          },
      +          {
      +            "type": "null"
      +          }
      +        ],
      +        "description": "The days `due_rule` gives for this read's window, as YYYY-MM-DD. Null when there is no rule, and when the window is not exactly one month or one calendar quarter, because a date then belongs to no single return."
      +      },
      +      "label": {
      +        "type": "string"
      +      }
      +    },
      +    "required": [
      +      "declaration_id",
      +      "label",
      +      "cadence",
      +      "due_rule",
      +      "due_window"
      +    ],
      +    "type": "object"
      +  },
      +  {
      +    "type": "null"
      +  }
      +]
    • changedOutput schema / properties / filing / description
      Previous value: -"The VAT return the obligation table assigns to the own company, or null when it assigns none. Well stores no regime and no deadline."New value: +"The periodic VAT return (CA3) of the own company, or null when the company files none: no legal form or one Well does not cover, a saved profile on the franchise, the simplified regime or an annual frequency, or a micro-entrepreneur whose VAT regime is not saved. Well stores no deadline."
    • addedOutput schema / properties / filing_note
      Added value: +{
      +  "description": "A sentence to state beside a `filing` that is null on purpose: the workspace saved the VAT franchise, so the company files no VAT return. Absent otherwise.",
      +  "type": "string"
      +}
    • addedOutput schema / properties / filing_note_code
      Added value: +{
      +  "description": "Stable code of `filing_note`: `vat_franchise`.",
      +  "enum": [
      +    "vat_franchise"
      +  ],
      +  "type": "string"
      +}
    • addedOutput schema / properties / possibilities / properties / quarters / items / properties / net_estimate
      Added value: +{
      +  "additionalProperties": false,
      +  "description": "Set when the quarter holds sales evidence and is not `computed`: collected minus deductible from the entries and documents, none of them posted. State it only as an estimate from invoices, not the filed figure. It is never the quarter's `position`, never a payment due, and never added across companies.",
      +  "properties": {
      +    "deductible_missing": {
      +      "description": "True when the quarter has no purchase evidence: only the collected side is known, so state `collected` and say the deductible side is missing.",
      +      "type": "boolean"
      +    },
      +    "net": {
      +      "anyOf": [
      +        {
      +          "description": "A decimal amount in major units of `currency`, always two decimals, such as `5000.00`. State it as returned.",
      +          "pattern": "^-?\\d+\\.\\d{2}$",
      +          "type": "string"
      +        },
      +        {
      +          "type": "null"
      +        }
      +      ],
      +      "description": "Collected minus deductible. Null when `deductible_missing` is true."
      +    },
      +    "position": {
      +      "anyOf": [
      +        {
      +          "enum": [
      +            "payable",
      +            "credit",
      +            "nil"
      +          ],
      +          "type": "string"
      +        },
      +        {
      +          "type": "null"
      +        }
      +      ]
      +    }
      +  },
      +  "required": [
      +    "net",
      +    "position",
      +    "deductible_missing"
      +  ],
      +  "type": "object"
      +}
    • addedOutput schema / properties / vat_number_present
      Added value: +{
      +  "anyOf": [
      +    {
      +      "type": "boolean"
      +    },
      +    {
      +      "type": "null"
      +    }
      +  ],
      +  "description": "On every ok and no_vat_found block, and on a range_too_large block of a window that holds too many entries; never on a failed block: true when the own company or the workspace's accounting settings stores an EU VAT number, false when neither does (a SIREN alone is not one), null when the workspace has no own company and its settings store none. The number itself is never returned."
      +}
    • addedOutput schema / properties / vat_regime
      Added value: +{
      +  "anyOf": [
      +    {
      +      "enum": [
      +        "franchise",
      +        "simplified",
      +        "normal"
      +      ],
      +      "type": "string"
      +    },
      +    {
      +      "type": "null"
      +    }
      +  ],
      +  "description": "On every ok and no_vat_found block, and on a range_too_large block of a window that holds too many entries; never on a failed block: the VAT regime the workspace saved, `franchise`, `simplified` or `normal`; null when none is saved. Under `franchise`, `filing` is null and `filing_note` says why."
      +}
    • changedOutput schema / properties / workspaces / items / properties / filing / anyOf
      Previous value: -[
      -  {
      -    "additionalProperties": false,
      -    "properties": {
      -      "cadence": {
      -        "description": "The table's cadence for the legal form, assuming the normal real regime. Not the person's regime.",
      -        "enum": [
      -          "monthly",
      -          "quarterly",
      -          "annual"
      -        ],
      -        "type": "string"
      -      },
      -      "declaration_id": {
      -        "description": "The obligation table's stable id, such as `fr-vat-ca3`.",
      -        "type": "string"
      -      },
      -      "due_rule": {
      -        "anyOf": [
      -          {
      -            "additionalProperties": false,
      -            "properties": {
      -              "first_day": {
      -                "maximum": 9007199254740991,
      -                "minimum": -9007199254740991,
      -                "type": "integer"
      -              },
      -              "last_day": {
      -                "maximum": 9007199254740991,
      -                "minimum": -9007199254740991,
      -                "type": "integer"
      -              },
      -              "source": {
      -                "description": "Where the rule is published. Name it beside any date taken from the rule.",
      -                "type": "string"
      -              }
      -            },
      -            "required": [
      -              "first_day",
      -              "last_day",
      -              "source"
      -            ],
      -            "type": "object"
      -          },
      -          {
      -            "type": "null"
      -          }
      -        ],
      -        "description": "The published rule: filed in the month after the period, on one day the administration sets per company between `first_day` and `last_day`. Null when the table carries no rule."
      -      },
      -      "due_window": {
      -        "anyOf": [
      -          {
      -            "additionalProperties": false,
      -            "properties": {
      -              "from": {
      -                "type": "string"
      -              },
      -              "to": {
      -                "type": "string"
      -              }
      -            },
      -            "required": [
      -              "from",
      -              "to"
      -            ],
      -            "type": "object"
      -          },
      -          {
      -            "type": "null"
      -          }
      -        ],
      -        "description": "The days `due_rule` gives for this read's window, as YYYY-MM-DD. Null when there is no rule, and when the window is not exactly one month or one calendar quarter, because a date then belongs to no single return."
      -      },
      -      "label": {
      -        "type": "string"
      -      }
      -    },
      -    "required": [
      -      "declaration_id",
      -      "label",
      -      "cadence",
      -      "due_rule",
      -      "due_window"
      -    ],
      -    "type": "object"
      -  },
      -  {
      -    "type": "null"
      -  }
      -]New value: +[
      +  {
      +    "additionalProperties": false,
      +    "properties": {
      +      "cadence": {
      +        "anyOf": [
      +          {
      +            "enum": [
      +              "monthly",
      +              "quarterly"
      +            ],
      +            "type": "string"
      +          },
      +          {
      +            "type": "null"
      +          }
      +        ],
      +        "description": "The saved VAT filing frequency of the company, or null when the profile does not hold it yet."
      +      },
      +      "declaration_id": {
      +        "description": "The calendar's stable deadline id, `fr-vat-ca3`.",
      +        "type": "string"
      +      },
      +      "due_rule": {
      +        "anyOf": [
      +          {
      +            "additionalProperties": false,
      +            "properties": {
      +              "first_day": {
      +                "maximum": 9007199254740991,
      +                "minimum": -9007199254740991,
      +                "type": "integer"
      +              },
      +              "last_day": {
      +                "maximum": 9007199254740991,
      +                "minimum": -9007199254740991,
      +                "type": "integer"
      +              },
      +              "source": {
      +                "description": "Where the rule is published. Name it beside any date taken from the rule.",
      +                "type": "string"
      +              }
      +            },
      +            "required": [
      +              "first_day",
      +              "last_day",
      +              "source"
      +            ],
      +            "type": "object"
      +          },
      +          {
      +            "type": "null"
      +          }
      +        ],
      +        "description": "The published rule: filed in the month after the period, on one day the administration sets per company between `first_day` and `last_day`."
      +      },
      +      "due_window": {
      +        "anyOf": [
      +          {
      +            "additionalProperties": false,
      +            "properties": {
      +              "from": {
      +                "type": "string"
      +              },
      +              "to": {
      +                "type": "string"
      +              }
      +            },
      +            "required": [
      +              "from",
      +              "to"
      +            ],
      +            "type": "object"
      +          },
      +          {
      +            "type": "null"
      +          }
      +        ],
      +        "description": "The days `due_rule` gives for this read's window, as YYYY-MM-DD. Null when there is no rule, and when the window is not exactly one month or one calendar quarter, because a date then belongs to no single return."
      +      },
      +      "label": {
      +        "type": "string"
      +      }
      +    },
      +    "required": [
      +      "declaration_id",
      +      "label",
      +      "cadence",
      +      "due_rule",
      +      "due_window"
      +    ],
      +    "type": "object"
      +  },
      +  {
      +    "type": "null"
      +  }
      +]
    • changedOutput schema / properties / workspaces / items / properties / filing / description
      Previous value: -"The VAT return the obligation table assigns to the own company, or null when it assigns none. Well stores no regime and no deadline."New value: +"The periodic VAT return (CA3) of the own company, or null when the company files none: no legal form or one Well does not cover, a saved profile on the franchise, the simplified regime or an annual frequency, or a micro-entrepreneur whose VAT regime is not saved. Well stores no deadline."
    • addedOutput schema / properties / workspaces / items / properties / filing_note
      Added value: +{
      +  "description": "A sentence to state beside a `filing` that is null on purpose: the workspace saved the VAT franchise, so the company files no VAT return. Absent otherwise.",
      +  "type": "string"
      +}
    • addedOutput schema / properties / workspaces / items / properties / filing_note_code
      Added value: +{
      +  "description": "Stable code of `filing_note`: `vat_franchise`.",
      +  "enum": [
      +    "vat_franchise"
      +  ],
      +  "type": "string"
      +}
    • addedOutput schema / properties / workspaces / items / properties / possibilities / properties / quarters / items / properties / net_estimate
      Added value: +{
      +  "additionalProperties": false,
      +  "description": "Set when the quarter holds sales evidence and is not `computed`: collected minus deductible from the entries and documents, none of them posted. State it only as an estimate from invoices, not the filed figure. It is never the quarter's `position`, never a payment due, and never added across companies.",
      +  "properties": {
      +    "deductible_missing": {
      +      "description": "True when the quarter has no purchase evidence: only the collected side is known, so state `collected` and say the deductible side is missing.",
      +      "type": "boolean"
      +    },
      +    "net": {
      +      "anyOf": [
      +        {
      +          "description": "A decimal amount in major units of `currency`, always two decimals, such as `5000.00`. State it as returned.",
      +          "pattern": "^-?\\d+\\.\\d{2}$",
      +          "type": "string"
      +        },
      +        {
      +          "type": "null"
      +        }
      +      ],
      +      "description": "Collected minus deductible. Null when `deductible_missing` is true."
      +    },
      +    "position": {
      +      "anyOf": [
      +        {
      +          "enum": [
      +            "payable",
      +            "credit",
      +            "nil"
      +          ],
      +          "type": "string"
      +        },
      +        {
      +          "type": "null"
      +        }
      +      ]
      +    }
      +  },
      +  "required": [
      +    "net",
      +    "position",
      +    "deductible_missing"
      +  ],
      +  "type": "object"
      +}
    • addedOutput schema / properties / workspaces / items / properties / vat_number_present
      Added value: +{
      +  "anyOf": [
      +    {
      +      "type": "boolean"
      +    },
      +    {
      +      "type": "null"
      +    }
      +  ],
      +  "description": "On every ok and no_vat_found block, and on a range_too_large block of a window that holds too many entries; never on a failed block: true when the own company or the workspace's accounting settings stores an EU VAT number, false when neither does (a SIREN alone is not one), null when the workspace has no own company and its settings store none. The number itself is never returned."
      +}
    • addedOutput schema / properties / workspaces / items / properties / vat_regime
      Added value: +{
      +  "anyOf": [
      +    {
      +      "enum": [
      +        "franchise",
      +        "simplified",
      +        "normal"
      +      ],
      +      "type": "string"
      +    },
      +    {
      +      "type": "null"
      +    }
      +  ],
      +  "description": "On every ok and no_vat_found block, and on a range_too_large block of a window that holds too many entries; never on a failed block: the VAT regime the workspace saved, `franchise`, `simplified` or `normal`; null when none is saved. Under `franchise`, `filing` is null and `filing_note` says why."
      +}
  5. Changed15 schema fields changed
    • changedInput schema / properties / basis / description
      Previous value: -"Evidence basis. Omit or use `posted` for the existing posted-ledger VAT return; use `possibilities` for draft, posted and document-header evidence grouped by quarter."New value: +"Evidence basis. Omit or use `posted` for the existing posted-ledger VAT return; use `possibilities` for draft, posted and document-header evidence grouped by quarter, each quarter split by month and by rate."
    • addedOutput schema / properties / filing_frequency
      Added value: +{
      +  "anyOf": [
      +    {
      +      "enum": [
      +        "monthly",
      +        "quarterly",
      +        "annual"
      +      ],
      +      "type": "string"
      +    },
      +    {
      +      "type": "null"
      +    }
      +  ],
      +  "description": "On every possibilities-carrying block: the company's VAT filing frequency as its tax profile resolves it, `monthly`, `quarterly` or `annual`; null when the profile states none or the company is in the VAT franchise and files no return. The read groups by calendar quarter whatever it is. Absent on a posted read."
      +}
    • addedOutput schema / properties / period_note
      Added value: +{
      +  "description": "On every possibilities-carrying block: one mandatory sentence saying which unit the company files its VAT return in and that the figures are grouped by calendar quarter. Copy it once as the first sentence before any quarter figure, including a detail follow-up. It promises no due date. Absent on a posted read.",
      +  "type": "string"
      +}
    • addedOutput schema / properties / possibilities / properties / excluded / properties / rate_grouping_truncated
      Added value: +{
      +  "description": "True when the bounded rate read left groups out; their VAT is in the quarters' `rate_unread`.",
      +  "type": "boolean"
      +}
    • addedOutput schema / properties / possibilities / properties / quarters / items / properties / months
      Added value: +{
      +  "description": "The months of the quarter that hold evidence, oldest first. Their `collected` and `deductible` add up to the quarter's. A month with no evidence is absent. There is no month `net`: net stays a fact of the quarter.",
      +  "items": {
      +    "additionalProperties": false,
      +    "properties": {
      +      "collected": {
      +        "description": "The month's share of the quarter's `collected`. State it only when `sales_evidence` is true.",
      +        "pattern": "^-?\\d+\\.\\d{2}$",
      +        "type": "string"
      +      },
      +      "deductible": {
      +        "description": "The month's share of the quarter's `deductible`. State it only when `purchase_evidence` is true.",
      +        "pattern": "^-?\\d+\\.\\d{2}$",
      +        "type": "string"
      +      },
      +      "document_count": {
      +        "maximum": 9007199254740991,
      +        "minimum": -9007199254740991,
      +        "type": "integer"
      +      },
      +      "entry_count": {
      +        "maximum": 9007199254740991,
      +        "minimum": -9007199254740991,
      +        "type": "integer"
      +      },
      +      "month": {
      +        "description": "The calendar month, `YYYY-MM`.",
      +        "pattern": "^\\d{4}-\\d{2}$",
      +        "type": "string"
      +      },
      +      "month_ended": {
      +        "description": "False while the month is still running: its figures can still move.",
      +        "type": "boolean"
      +      },
      +      "purchase_evidence": {
      +        "type": "boolean"
      +      },
      +      "purchase_to_check": {
      +        "description": "The month's purchases to check, beside `deductible`, never added to it.",
      +        "pattern": "^-?\\d+\\.\\d{2}$",
      +        "type": "string"
      +      },
      +      "sales_evidence": {
      +        "type": "boolean"
      +      },
      +      "unsided": {
      +        "description": "A decimal amount in major units of `currency`, always two decimals, such as `5000.00`. State it as returned.",
      +        "pattern": "^-?\\d+\\.\\d{2}$",
      +        "type": "string"
      +      }
      +    },
      +    "required": [
      +      "month",
      +      "month_ended",
      +      "collected",
      +      "deductible",
      +      "sales_evidence",
      +      "purchase_evidence",
      +      "purchase_to_check",
      +      "unsided",
      +      "entry_count",
      +      "document_count"
      +    ],
      +    "type": "object"
      +  },
      +  "type": "array"
      +}
    • addedOutput schema / properties / possibilities / properties / quarters / items / properties / rate_unread
      Added value: +{
      +  "additionalProperties": false,
      +  "description": "The signed part of the quarter's `collected` and `deductible` that no `rates` row states (a document whose lines do not add up to its header, a document in another currency, or a group the bounded read left out). `rates` plus `rate_unread` equal the quarter's amounts. State a side only when it is not 0.00.",
      +  "properties": {
      +    "collected": {
      +      "description": "A decimal amount in major units of `currency`, always two decimals, such as `5000.00`. State it as returned.",
      +      "pattern": "^-?\\d+\\.\\d{2}$",
      +      "type": "string"
      +    },
      +    "deductible": {
      +      "description": "A decimal amount in major units of `currency`, always two decimals, such as `5000.00`. State it as returned.",
      +      "pattern": "^-?\\d+\\.\\d{2}$",
      +      "type": "string"
      +    }
      +  },
      +  "required": [
      +    "collected",
      +    "deductible"
      +  ],
      +  "type": "object"
      +}
    • addedOutput schema / properties / possibilities / properties / quarters / items / properties / rates
      Added value: +{
      +  "description": "The quarter's `collected` and `deductible` by line rate, highest rate first.",
      +  "items": {
      +    "additionalProperties": false,
      +    "properties": {
      +      "collected": {
      +        "anyOf": [
      +          {
      +            "description": "A decimal amount in major units of `currency`, always two decimals, such as `5000.00`. State it as returned.",
      +            "pattern": "^-?\\d+\\.\\d{2}$",
      +            "type": "string"
      +          },
      +          {
      +            "type": "null"
      +          }
      +        ],
      +        "description": "The quarter's `collected` at this rate; null when none."
      +      },
      +      "deductible": {
      +        "anyOf": [
      +          {
      +            "description": "A decimal amount in major units of `currency`, always two decimals, such as `5000.00`. State it as returned.",
      +            "pattern": "^-?\\d+\\.\\d{2}$",
      +            "type": "string"
      +          },
      +          {
      +            "type": "null"
      +          }
      +        ],
      +        "description": "The quarter's `deductible` at this rate; null when none."
      +      },
      +      "rate_percent": {
      +        "description": "The line rate, such as `20.00`.",
      +        "type": "string"
      +      }
      +    },
      +    "required": [
      +      "rate_percent",
      +      "collected",
      +      "deductible"
      +    ],
      +    "type": "object"
      +  },
      +  "type": "array"
      +}
    • addedOutput schema / properties / provider_booked
      Added value: +{
      +  "anyOf": [
      +    {
      +      "anyOf": [
      +        {
      +          "additionalProperties": false,
      +          "properties": {
      +            "accounts": {
      +              "description": "Which accounts are summed: the FR PCG VAT sub-accounts and the 44566 and 44571 parents.",
      +              "type": "string"
      +            },
      +            "by_quarter": {
      +              "description": "The position lines the provider booked, one row per calendar quarter that holds any, oldest first.",
      +              "items": {
      +                "additionalProperties": false,
      +                "properties": {
      +                  "collected": {
      +                    "anyOf": [
      +                      {
      +                        "description": "A decimal amount in major units of `currency`, always two decimals, such as `5000.00`. State it as returned.",
      +                        "pattern": "^-?\\d+\\.\\d{2}$",
      +                        "type": "string"
      +                      },
      +                      {
      +                        "type": "null"
      +                      }
      +                    ],
      +                    "description": "Collected VAT the provider booked in the quarter. Null when it booked no line on that side: state nothing, never 0.00."
      +                  },
      +                  "deductible": {
      +                    "anyOf": [
      +                      {
      +                        "description": "A decimal amount in major units of `currency`, always two decimals, such as `5000.00`. State it as returned.",
      +                        "pattern": "^-?\\d+\\.\\d{2}$",
      +                        "type": "string"
      +                      },
      +                      {
      +                        "type": "null"
      +                      }
      +                    ],
      +                    "description": "Deductible VAT the provider booked in the quarter. Null when it booked no line on that side: state nothing, never 0.00."
      +                  },
      +                  "lines": {
      +                    "description": "Retained provider lines behind the two figures.",
      +                    "maximum": 9007199254740991,
      +                    "minimum": -9007199254740991,
      +                    "type": "integer"
      +                  },
      +                  "quarter": {
      +                    "type": "string"
      +                  }
      +                },
      +                "required": [
      +                  "quarter",
      +                  "deductible",
      +                  "collected",
      +                  "lines"
      +                ],
      +                "type": "object"
      +              },
      +              "type": "array"
      +            },
      +            "currency": {
      +              "description": "ISO-4217 code of every amount in this block, the workspace's books currency.",
      +              "type": "string"
      +            },
      +            "note": {
      +              "description": "Says the block is a check beside the figures, is not added to them and is not the filed figure.",
      +              "type": "string"
      +            },
      +            "pending": {
      +              "anyOf": [
      +                {
      +                  "additionalProperties": false,
      +                  "properties": {
      +                    "collected_on_receipt": {
      +                      "anyOf": [
      +                        {
      +                          "description": "A decimal amount in major units of `currency`, always two decimals, such as `5000.00`. State it as returned.",
      +                          "pattern": "^-?\\d+\\.\\d{2}$",
      +                          "type": "string"
      +                        },
      +                        {
      +                          "type": "null"
      +                        }
      +                      ],
      +                      "description": "Account 44574, VAT collected on receipt, over the whole window. Pending until paid; never part of a quarter."
      +                    },
      +                    "deductible_on_payment": {
      +                      "anyOf": [
      +                        {
      +                          "description": "A decimal amount in major units of `currency`, always two decimals, such as `5000.00`. State it as returned.",
      +                          "pattern": "^-?\\d+\\.\\d{2}$",
      +                          "type": "string"
      +                        },
      +                        {
      +                          "type": "null"
      +                        }
      +                      ],
      +                      "description": "Account 44564, VAT deductible on payment, over the whole window. Pending until paid; never part of a quarter."
      +                    },
      +                    "lines": {
      +                      "maximum": 9007199254740991,
      +                      "minimum": -9007199254740991,
      +                      "type": "integer"
      +                    },
      +                    "note": {
      +                      "description": "Says these are pending until paid and not due until payment or receipt.",
      +                      "type": "string"
      +                    }
      +                  },
      +                  "required": [
      +                    "deductible_on_payment",
      +                    "collected_on_receipt",
      +                    "lines",
      +                    "note"
      +                  ],
      +                  "type": "object"
      +                },
      +                {
      +                  "type": "null"
      +                }
      +              ],
      +              "description": "The cash-basis lines, kept apart from `by_quarter`. Null when the provider booked none."
      +            },
      +            "source": {
      +              "const": "pennylane",
      +              "description": "The accounting provider that booked these lines.",
      +              "type": "string"
      +            }
      +          },
      +          "required": [
      +            "source",
      +            "currency",
      +            "accounts",
      +            "by_quarter",
      +            "pending",
      +            "note"
      +          ],
      +          "type": "object"
      +        },
      +        {
      +          "additionalProperties": false,
      +          "properties": {
      +            "note": {
      +              "description": "Says the provider's booked VAT could not be read this time. State this sentence once and state no booked amount.",
      +              "type": "string"
      +            },
      +            "unavailable": {
      +              "const": true,
      +              "description": "True when the provider's booked VAT could not be read this time. The booked VAT is unknown, not absent and not zero.",
      +              "type": "boolean"
      +            }
      +          },
      +          "required": [
      +            "unavailable",
      +            "note"
      +          ],
      +          "type": "object"
      +        }
      +      ]
      +    },
      +    {
      +      "type": "null"
      +    }
      +  ],
      +  "description": "On a possibilities answer: the VAT the connected Pennylane accounting provider booked on named FR VAT accounts, summed from its retained ledger lines, or null when there is nothing to state. When `unavailable` is true, the read could not finish: state `note` and no amount, because the booked VAT is unknown, not absent and not zero. A check beside the figures, never added to them and never the filed figure. Absent on a posted read."
      +}
    • addedOutput schema / properties / workspaces / items / properties / filing_frequency
      Added value: +{
      +  "anyOf": [
      +    {
      +      "enum": [
      +        "monthly",
      +        "quarterly",
      +        "annual"
      +      ],
      +      "type": "string"
      +    },
      +    {
      +      "type": "null"
      +    }
      +  ],
      +  "description": "On every possibilities-carrying block: the company's VAT filing frequency as its tax profile resolves it, `monthly`, `quarterly` or `annual`; null when the profile states none or the company is in the VAT franchise and files no return. The read groups by calendar quarter whatever it is. Absent on a posted read."
      +}
    • addedOutput schema / properties / workspaces / items / properties / period_note
      Added value: +{
      +  "description": "On every possibilities-carrying block: one mandatory sentence saying which unit the company files its VAT return in and that the figures are grouped by calendar quarter. Copy it once as the first sentence before any quarter figure, including a detail follow-up. It promises no due date. Absent on a posted read.",
      +  "type": "string"
      +}
    • addedOutput schema / properties / workspaces / items / properties / possibilities / properties / excluded / properties / rate_grouping_truncated
      Added value: +{
      +  "description": "True when the bounded rate read left groups out; their VAT is in the quarters' `rate_unread`.",
      +  "type": "boolean"
      +}
    • addedOutput schema / properties / workspaces / items / properties / possibilities / properties / quarters / items / properties / months
      Added value: +{
      +  "description": "The months of the quarter that hold evidence, oldest first. Their `collected` and `deductible` add up to the quarter's. A month with no evidence is absent. There is no month `net`: net stays a fact of the quarter.",
      +  "items": {
      +    "additionalProperties": false,
      +    "properties": {
      +      "collected": {
      +        "description": "The month's share of the quarter's `collected`. State it only when `sales_evidence` is true.",
      +        "pattern": "^-?\\d+\\.\\d{2}$",
      +        "type": "string"
      +      },
      +      "deductible": {
      +        "description": "The month's share of the quarter's `deductible`. State it only when `purchase_evidence` is true.",
      +        "pattern": "^-?\\d+\\.\\d{2}$",
      +        "type": "string"
      +      },
      +      "document_count": {
      +        "maximum": 9007199254740991,
      +        "minimum": -9007199254740991,
      +        "type": "integer"
      +      },
      +      "entry_count": {
      +        "maximum": 9007199254740991,
      +        "minimum": -9007199254740991,
      +        "type": "integer"
      +      },
      +      "month": {
      +        "description": "The calendar month, `YYYY-MM`.",
      +        "pattern": "^\\d{4}-\\d{2}$",
      +        "type": "string"
      +      },
      +      "month_ended": {
      +        "description": "False while the month is still running: its figures can still move.",
      +        "type": "boolean"
      +      },
      +      "purchase_evidence": {
      +        "type": "boolean"
      +      },
      +      "purchase_to_check": {
      +        "description": "The month's purchases to check, beside `deductible`, never added to it.",
      +        "pattern": "^-?\\d+\\.\\d{2}$",
      +        "type": "string"
      +      },
      +      "sales_evidence": {
      +        "type": "boolean"
      +      },
      +      "unsided": {
      +        "description": "A decimal amount in major units of `currency`, always two decimals, such as `5000.00`. State it as returned.",
      +        "pattern": "^-?\\d+\\.\\d{2}$",
      +        "type": "string"
      +      }
      +    },
      +    "required": [
      +      "month",
      +      "month_ended",
      +      "collected",
      +      "deductible",
      +      "sales_evidence",
      +      "purchase_evidence",
      +      "purchase_to_check",
      +      "unsided",
      +      "entry_count",
      +      "document_count"
      +    ],
      +    "type": "object"
      +  },
      +  "type": "array"
      +}
    • addedOutput schema / properties / workspaces / items / properties / possibilities / properties / quarters / items / properties / rate_unread
      Added value: +{
      +  "additionalProperties": false,
      +  "description": "The signed part of the quarter's `collected` and `deductible` that no `rates` row states (a document whose lines do not add up to its header, a document in another currency, or a group the bounded read left out). `rates` plus `rate_unread` equal the quarter's amounts. State a side only when it is not 0.00.",
      +  "properties": {
      +    "collected": {
      +      "description": "A decimal amount in major units of `currency`, always two decimals, such as `5000.00`. State it as returned.",
      +      "pattern": "^-?\\d+\\.\\d{2}$",
      +      "type": "string"
      +    },
      +    "deductible": {
      +      "description": "A decimal amount in major units of `currency`, always two decimals, such as `5000.00`. State it as returned.",
      +      "pattern": "^-?\\d+\\.\\d{2}$",
      +      "type": "string"
      +    }
      +  },
      +  "required": [
      +    "collected",
      +    "deductible"
      +  ],
      +  "type": "object"
      +}
    • addedOutput schema / properties / workspaces / items / properties / possibilities / properties / quarters / items / properties / rates
      Added value: +{
      +  "description": "The quarter's `collected` and `deductible` by line rate, highest rate first.",
      +  "items": {
      +    "additionalProperties": false,
      +    "properties": {
      +      "collected": {
      +        "anyOf": [
      +          {
      +            "description": "A decimal amount in major units of `currency`, always two decimals, such as `5000.00`. State it as returned.",
      +            "pattern": "^-?\\d+\\.\\d{2}$",
      +            "type": "string"
      +          },
      +          {
      +            "type": "null"
      +          }
      +        ],
      +        "description": "The quarter's `collected` at this rate; null when none."
      +      },
      +      "deductible": {
      +        "anyOf": [
      +          {
      +            "description": "A decimal amount in major units of `currency`, always two decimals, such as `5000.00`. State it as returned.",
      +            "pattern": "^-?\\d+\\.\\d{2}$",
      +            "type": "string"
      +          },
      +          {
      +            "type": "null"
      +          }
      +        ],
      +        "description": "The quarter's `deductible` at this rate; null when none."
      +      },
      +      "rate_percent": {
      +        "description": "The line rate, such as `20.00`.",
      +        "type": "string"
      +      }
      +    },
      +    "required": [
      +      "rate_percent",
      +      "collected",
      +      "deductible"
      +    ],
      +    "type": "object"
      +  },
      +  "type": "array"
      +}
    • addedOutput schema / properties / workspaces / items / properties / provider_booked
      Added value: +{
      +  "anyOf": [
      +    {
      +      "anyOf": [
      +        {
      +          "additionalProperties": false,
      +          "properties": {
      +            "accounts": {
      +              "description": "Which accounts are summed: the FR PCG VAT sub-accounts and the 44566 and 44571 parents.",
      +              "type": "string"
      +            },
      +            "by_quarter": {
      +              "description": "The position lines the provider booked, one row per calendar quarter that holds any, oldest first.",
      +              "items": {
      +                "additionalProperties": false,
      +                "properties": {
      +                  "collected": {
      +                    "anyOf": [
      +                      {
      +                        "description": "A decimal amount in major units of `currency`, always two decimals, such as `5000.00`. State it as returned.",
      +                        "pattern": "^-?\\d+\\.\\d{2}$",
      +                        "type": "string"
      +                      },
      +                      {
      +                        "type": "null"
      +                      }
      +                    ],
      +                    "description": "Collected VAT the provider booked in the quarter. Null when it booked no line on that side: state nothing, never 0.00."
      +                  },
      +                  "deductible": {
      +                    "anyOf": [
      +                      {
      +                        "description": "A decimal amount in major units of `currency`, always two decimals, such as `5000.00`. State it as returned.",
      +                        "pattern": "^-?\\d+\\.\\d{2}$",
      +                        "type": "string"
      +                      },
      +                      {
      +                        "type": "null"
      +                      }
      +                    ],
      +                    "description": "Deductible VAT the provider booked in the quarter. Null when it booked no line on that side: state nothing, never 0.00."
      +                  },
      +                  "lines": {
      +                    "description": "Retained provider lines behind the two figures.",
      +                    "maximum": 9007199254740991,
      +                    "minimum": -9007199254740991,
      +                    "type": "integer"
      +                  },
      +                  "quarter": {
      +                    "type": "string"
      +                  }
      +                },
      +                "required": [
      +                  "quarter",
      +                  "deductible",
      +                  "collected",
      +                  "lines"
      +                ],
      +                "type": "object"
      +              },
      +              "type": "array"
      +            },
      +            "currency": {
      +              "description": "ISO-4217 code of every amount in this block, the workspace's books currency.",
      +              "type": "string"
      +            },
      +            "note": {
      +              "description": "Says the block is a check beside the figures, is not added to them and is not the filed figure.",
      +              "type": "string"
      +            },
      +            "pending": {
      +              "anyOf": [
      +                {
      +                  "additionalProperties": false,
      +                  "properties": {
      +                    "collected_on_receipt": {
      +                      "anyOf": [
      +                        {
      +                          "description": "A decimal amount in major units of `currency`, always two decimals, such as `5000.00`. State it as returned.",
      +                          "pattern": "^-?\\d+\\.\\d{2}$",
      +                          "type": "string"
      +                        },
      +                        {
      +                          "type": "null"
      +                        }
      +                      ],
      +                      "description": "Account 44574, VAT collected on receipt, over the whole window. Pending until paid; never part of a quarter."
      +                    },
      +                    "deductible_on_payment": {
      +                      "anyOf": [
      +                        {
      +                          "description": "A decimal amount in major units of `currency`, always two decimals, such as `5000.00`. State it as returned.",
      +                          "pattern": "^-?\\d+\\.\\d{2}$",
      +                          "type": "string"
      +                        },
      +                        {
      +                          "type": "null"
      +                        }
      +                      ],
      +                      "description": "Account 44564, VAT deductible on payment, over the whole window. Pending until paid; never part of a quarter."
      +                    },
      +                    "lines": {
      +                      "maximum": 9007199254740991,
      +                      "minimum": -9007199254740991,
      +                      "type": "integer"
      +                    },
      +                    "note": {
      +                      "description": "Says these are pending until paid and not due until payment or receipt.",
      +                      "type": "string"
      +                    }
      +                  },
      +                  "required": [
      +                    "deductible_on_payment",
      +                    "collected_on_receipt",
      +                    "lines",
      +                    "note"
      +                  ],
      +                  "type": "object"
      +                },
      +                {
      +                  "type": "null"
      +                }
      +              ],
      +              "description": "The cash-basis lines, kept apart from `by_quarter`. Null when the provider booked none."
      +            },
      +            "source": {
      +              "const": "pennylane",
      +              "description": "The accounting provider that booked these lines.",
      +              "type": "string"
      +            }
      +          },
      +          "required": [
      +            "source",
      +            "currency",
      +            "accounts",
      +            "by_quarter",
      +            "pending",
      +            "note"
      +          ],
      +          "type": "object"
      +        },
      +        {
      +          "additionalProperties": false,
      +          "properties": {
      +            "note": {
      +              "description": "Says the provider's booked VAT could not be read this time. State this sentence once and state no booked amount.",
      +              "type": "string"
      +            },
      +            "unavailable": {
      +              "const": true,
      +              "description": "True when the provider's booked VAT could not be read this time. The booked VAT is unknown, not absent and not zero.",
      +              "type": "boolean"
      +            }
      +          },
      +          "required": [
      +            "unavailable",
      +            "note"
      +          ],
      +          "type": "object"
      +        }
      +      ]
      +    },
      +    {
      +      "type": "null"
      +    }
      +  ],
      +  "description": "On a possibilities answer: the VAT the connected Pennylane accounting provider booked on named FR VAT accounts, summed from its retained ledger lines, or null when there is nothing to state. When `unavailable` is true, the read could not finish: state `note` and no amount, because the booked VAT is unknown, not absent and not zero. A check beside the figures, never added to them and never the filed figure. Absent on a posted read."
      +}
  6. Changed1 schema field changed
    • changedInput schema / properties / from / description
      Previous value: -"Inclusive start of the window: the first day of a month, YYYY-MM-01. Give it with `to`, or omit both for the current quarter on `basis: \"posted\"` (a `basis: \"possibilities\"` call always names both)."New value: +"Inclusive start of the window: the first day of a month, YYYY-MM-01. Give it with `to`, or omit both only to read the current quarter in progress on `basis: \"posted\"` (a `basis: \"possibilities\"` call always names both); for any other period name both."
  7. Changed11 schema fields changed
    • changedInput schema / properties / from / description
      Previous value: -"Inclusive start of the window: the first day of a month, YYYY-MM-01. Give it with `to`, or omit both for the current quarter."New value: +"Inclusive start of the window: the first day of a month, YYYY-MM-01. Give it with `to`, or omit both for the current quarter on `basis: \"posted\"` (a `basis: \"possibilities\"` call always names both)."
    • changedOutput schema / properties / basis_note / description
      Previous value: -"A sentence to state beside the figures. On a posted `ok` read: entries are grouped by the month of their entry date, so an entry posted into a later return still shows in its own month and a filed return can differ. On a possibilities read that stands in for a posted one: nothing is posted yet, or the workspace's country is not mapped for VAT filing, or it has no country."New value: +"A sentence to state beside the figures. On a posted `ok` read: entries are grouped by the month of their entry date, so an entry posted into a later return still shows in its own month and a filed return can differ. On a possibilities read that stands in for a posted one: nothing is posted yet, or the workspace's country is not mapped for VAT filing, or it has no country, or its country is the majority country of its documents stated as an estimate."
    • changedOutput schema / properties / basis_note_code / description
      Previous value: -"Stable code of `basis_note`: `nothing_posted`, `country_not_mapped`, `no_country` or `entry_date_basis`."New value: +"Stable code of `basis_note`: `nothing_posted`, `country_not_mapped`, `no_country`, `estimated_country` or `entry_date_basis`."
    • changedOutput schema / properties / basis_note_code / enum
      Previous value: -[
      -  "nothing_posted",
      -  "country_not_mapped",
      -  "no_country",
      -  "entry_date_basis"
      -]New value: +[
      +  "nothing_posted",
      +  "country_not_mapped",
      +  "no_country",
      +  "estimated_country",
      +  "entry_date_basis"
      +]
    • addedOutput schema / properties / estimated_country_code
      Added value: +{
      +  "anyOf": [
      +    {
      +      "type": "string"
      +    },
      +    {
      +      "type": "null"
      +    }
      +  ],
      +  "description": "The registry country a strict majority of the workspace's own documents of the last 12 months carries, set only when no accounting country is configured and one country holds that majority. An estimate stated as one — `country_code` stays null beside it — on every possibilities-carrying block; null when a configured country exists or no majority emerges."
      +}
    • addedOutput schema / properties / estimated_country_truncated
      Added value: +{
      +  "description": "True when more of the workspace's own documents of the last 12 months were eligible than the estimated country reads, so only the newest ones voted; false otherwise. Set beside `estimated_country_code` on every possibilities-carrying block.",
      +  "type": "boolean"
      +}
    • changedOutput schema / properties / workspaces / items / properties / basis_note / description
      Previous value: -"A sentence to state beside the figures. On a posted `ok` read: entries are grouped by the month of their entry date, so an entry posted into a later return still shows in its own month and a filed return can differ. On a possibilities read that stands in for a posted one: nothing is posted yet, or the workspace's country is not mapped for VAT filing, or it has no country."New value: +"A sentence to state beside the figures. On a posted `ok` read: entries are grouped by the month of their entry date, so an entry posted into a later return still shows in its own month and a filed return can differ. On a possibilities read that stands in for a posted one: nothing is posted yet, or the workspace's country is not mapped for VAT filing, or it has no country, or its country is the majority country of its documents stated as an estimate."
    • changedOutput schema / properties / workspaces / items / properties / basis_note_code / description
      Previous value: -"Stable code of `basis_note`: `nothing_posted`, `country_not_mapped`, `no_country` or `entry_date_basis`."New value: +"Stable code of `basis_note`: `nothing_posted`, `country_not_mapped`, `no_country`, `estimated_country` or `entry_date_basis`."
    • changedOutput schema / properties / workspaces / items / properties / basis_note_code / enum
      Previous value: -[
      -  "nothing_posted",
      -  "country_not_mapped",
      -  "no_country",
      -  "entry_date_basis"
      -]New value: +[
      +  "nothing_posted",
      +  "country_not_mapped",
      +  "no_country",
      +  "estimated_country",
      +  "entry_date_basis"
      +]
    • addedOutput schema / properties / workspaces / items / properties / estimated_country_code
      Added value: +{
      +  "anyOf": [
      +    {
      +      "type": "string"
      +    },
      +    {
      +      "type": "null"
      +    }
      +  ],
      +  "description": "The registry country a strict majority of the workspace's own documents of the last 12 months carries, set only when no accounting country is configured and one country holds that majority. An estimate stated as one — `country_code` stays null beside it — on every possibilities-carrying block; null when a configured country exists or no majority emerges."
      +}
    • addedOutput schema / properties / workspaces / items / properties / estimated_country_truncated
      Added value: +{
      +  "description": "True when more of the workspace's own documents of the last 12 months were eligible than the estimated country reads, so only the newest ones voted; false otherwise. Set beside `estimated_country_code` on every possibilities-carrying block.",
      +  "type": "boolean"
      +}
  8. Changed123 schema fields changed
    • addedOutput schema / properties / basis_note
      Added value: +{
      +  "description": "A sentence to state beside the figures. On a posted `ok` read: entries are grouped by the month of their entry date, so an entry posted into a later return still shows in its own month and a filed return can differ. On a possibilities read that stands in for a posted one: nothing is posted yet, or the workspace's country is not mapped for VAT filing, or it has no country.",
      +  "type": "string"
      +}
    • addedOutput schema / properties / basis_note_code
      Added value: +{
      +  "description": "Stable code of `basis_note`: `nothing_posted`, `country_not_mapped`, `no_country` or `entry_date_basis`.",
      +  "enum": [
      +    "nothing_posted",
      +    "country_not_mapped",
      +    "no_country",
      +    "entry_date_basis"
      +  ],
      +  "type": "string"
      +}
    • changedOutput schema / properties / country_code / description
      Previous value: -"The workspace's accounting country. Set on `ok` and on `unsupported_jurisdiction`; null when none is configured."New value: +"The workspace's accounting country. Set on `ok`; null when none is configured."
    • addedOutput schema / properties / currency_basis
      Added value: +{
      +  "anyOf": [
      +    {
      +      "enum": [
      +        "settings",
      +        "country",
      +        "documents_mode",
      +        "display_fallback"
      +      ],
      +      "type": "string"
      +    },
      +    {
      +      "type": "null"
      +    }
      +  ],
      +  "description": "What `currency` rests on, on a possibilities read: `settings` (the workspace's books currency), `country` (the default currency of its accounting country) or `documents_mode` (the most common currency of its invoices, because neither is set). Null when no denomination exists, beside no `currency`. Omitted on a posted read."
      +}
    • changedOutput schema / properties / newly_connected / description
      Previous value: -"Tools that connected to this workspace since the last result and that no session was told about yet, oldest first. Present only when at least one tool is new. Start the reply with one line per entry, in the person's language: \"<name> is connected.\". Never fold several entries into one sentence. Each entry comes back once, on one result only: never repeat its line later."New value: +"Tools that connected to this workspace since the last result and that no session was told about yet, oldest first. Present only when at least one tool is new. The connected-line rule says when to tell an entry; when it does, one line per entry, in the person's language: \"<name> is connected.\". Never fold several entries into one sentence. Each entry comes back once, on one result only: never repeat its line later."
    • addedOutput schema / properties / possibilities / properties / counts / properties / estimated_side
      Added value: +{
      +  "description": "Documents whose side rests on an inference in the whole window, ordinary and replacing ones. Counted and shown beside the figures, never added to one, and never a reason for `incomplete` on their own.",
      +  "maximum": 9007199254740991,
      +  "minimum": -9007199254740991,
      +  "type": "integer"
      +}
    • addedOutput schema / properties / possibilities / properties / counts / properties / not_ours
      Added value: +{
      +  "description": "Documents between two other companies in the whole window, ordinary and replacing ones, whether or not their VAT is stated in `currency`. Counted and shown beside the figures, never added to one, and never a reason for `incomplete`.",
      +  "maximum": 9007199254740991,
      +  "minimum": -9007199254740991,
      +  "type": "integer"
      +}
    • changedOutput schema / properties / possibilities / properties / counts / required
      Previous value: -[
      -  "purchase_domestic",
      -  "purchase_to_check",
      -  "sales",
      -  "unsided",
      -  "header_derived"
      -]New value: +[
      +  "purchase_domestic",
      +  "purchase_to_check",
      +  "sales",
      +  "unsided",
      +  "not_ours",
      +  "estimated_side",
      +  "header_derived"
      +]
    • addedOutput schema / properties / possibilities / properties / estimated_side_note
      Added value: +{
      +  "description": "Set when the window holds documents whose side rests on an inference: one ready sentence with their count, quarter by quarter, and the VAT they carry by kind when it is stated. Relay it once, as its own sentence beside the figures, in the language of the answer, with its numbers unchanged; never as proven, never folded into a figure, and never compose your own. Absent when the read lists no quarter.",
      +  "type": "string"
      +}
    • addedOutput schema / properties / possibilities / properties / excluded / properties / header_tax_unread_count
      Added value: +{
      +  "maximum": 9007199254740991,
      +  "minimum": -9007199254740991,
      +  "type": "integer"
      +}
    • addedOutput schema / properties / possibilities / properties / excluded / properties / header_tax_unread_count_by_currency
      Added value: +{
      +  "items": {
      +    "additionalProperties": false,
      +    "properties": {
      +      "count": {
      +        "maximum": 9007199254740991,
      +        "minimum": -9007199254740991,
      +        "type": "integer"
      +      },
      +      "currency": {
      +        "type": "string"
      +      }
      +    },
      +    "required": [
      +      "currency",
      +      "count"
      +    ],
      +    "type": "object"
      +  },
      +  "type": "array"
      +}
    • addedOutput schema / properties / possibilities / properties / excluded / properties / identity_grouping_truncated
      Added value: +{
      +  "type": "boolean"
      +}
    • addedOutput schema / properties / possibilities / properties / excluded / properties / tax_unknown_count
      Added value: +{
      +  "maximum": 9007199254740991,
      +  "minimum": -9007199254740991,
      +  "type": "integer"
      +}
    • addedOutput schema / properties / possibilities / properties / excluded / properties / tax_unknown_count_by_currency
      Added value: +{
      +  "items": {
      +    "additionalProperties": false,
      +    "properties": {
      +      "count": {
      +        "maximum": 9007199254740991,
      +        "minimum": -9007199254740991,
      +        "type": "integer"
      +      },
      +      "currency": {
      +        "type": "string"
      +      }
      +    },
      +    "required": [
      +      "currency",
      +      "count"
      +    ],
      +    "type": "object"
      +  },
      +  "type": "array"
      +}
    • addedOutput schema / properties / possibilities / properties / excluded / properties / tax_unknown_split
      Added value: +{
      +  "additionalProperties": false,
      +  "properties": {
      +    "totals_differ": {
      +      "maximum": 9007199254740991,
      +      "minimum": -9007199254740991,
      +      "type": "integer"
      +    },
      +    "totals_equal": {
      +      "maximum": 9007199254740991,
      +      "minimum": -9007199254740991,
      +      "type": "integer"
      +    },
      +    "totals_missing": {
      +      "maximum": 9007199254740991,
      +      "minimum": -9007199254740991,
      +      "type": "integer"
      +    }
      +  },
      +  "required": [
      +    "totals_equal",
      +    "totals_missing",
      +    "totals_differ"
      +  ],
      +  "type": "object"
      +}
    • addedOutput schema / properties / possibilities / properties / excluded / properties / undated_count
      Added value: +{
      +  "maximum": 9007199254740991,
      +  "minimum": -9007199254740991,
      +  "type": "integer"
      +}
    • changedOutput schema / properties / possibilities / properties / excluded / required
      Previous value: -[
      -  "other_currency_count",
      -  "null_currency_count",
      -  "other_currency_entry_count",
      -  "null_currency_entry_count"
      -]New value: +[
      +  "other_currency_count",
      +  "null_currency_count",
      +  "undated_count",
      +  "header_tax_unread_count",
      +  "other_currency_entry_count",
      +  "null_currency_entry_count"
      +]
    • addedOutput schema / properties / possibilities / properties / not_ours_note
      Added value: +{
      +  "description": "Set when the window holds documents between two other companies: one ready sentence with their count, quarter by quarter, how many of each quarter have a readable VAT, and that VAT. Relay it as its own sentence beside the figures, in the language of the answer, with its numbers unchanged; never fold it into a figure or into the deductible sentence, and never compose your own. Absent when the read lists no quarter.",
      +  "type": "string"
      +}
    • addedOutput schema / properties / possibilities / properties / quarters / items / properties / collected / anyOf
      Added value: +[
      +  {
      +    "description": "A decimal amount in major units of `currency`, always two decimals, such as `5000.00`. State it as returned.",
      +    "pattern": "^-?\\d+\\.\\d{2}$",
      +    "type": "string"
      +  },
      +  {
      +    "type": "null"
      +  }
      +]
    • removedOutput schema / properties / possibilities / properties / quarters / items / properties / collected / description
      Removed value: -"A decimal amount in major units of `currency`, always two decimals, such as `5000.00`. State it as returned."
    • removedOutput schema / properties / possibilities / properties / quarters / items / properties / collected / pattern
      Removed value: -"^-?\\d+\\.\\d{2}$"
    • removedOutput schema / properties / possibilities / properties / quarters / items / properties / collected / type
      Removed value: -"string"
    • addedOutput schema / properties / possibilities / properties / quarters / items / properties / deductible / anyOf
      Added value: +[
      +  {
      +    "description": "A decimal amount in major units of `currency`, always two decimals, such as `5000.00`. State it as returned.",
      +    "pattern": "^-?\\d+\\.\\d{2}$",
      +    "type": "string"
      +  },
      +  {
      +    "type": "null"
      +  }
      +]
    • removedOutput schema / properties / possibilities / properties / quarters / items / properties / deductible / description
      Removed value: -"A decimal amount in major units of `currency`, always two decimals, such as `5000.00`. State it as returned."
    • removedOutput schema / properties / possibilities / properties / quarters / items / properties / deductible / pattern
      Removed value: -"^-?\\d+\\.\\d{2}$"
    • removedOutput schema / properties / possibilities / properties / quarters / items / properties / deductible / type
      Removed value: -"string"
    • addedOutput schema / properties / possibilities / properties / quarters / items / properties / documents / properties / estimated
      Added value: +{
      +  "additionalProperties": false,
      +  "description": "VAT, in `currency`, of the quarter's documents whose side rests on an inference (a self-candidate company on one leg, or a provider claim with no holder), by kind. Shown beside the figures, in none of them: `deductible`, `collected`, `net` and `position` never include it. `document_count` counts the ordinary documents only. An amount is null when the quarter holds no ordinary document of that kind: state the count (`counts.estimated_side`) and no amount, never 0.00.",
      +  "properties": {
      +    "document_count": {
      +      "maximum": 9007199254740991,
      +      "minimum": -9007199254740991,
      +      "type": "integer"
      +    },
      +    "purchase_domestic": {
      +      "anyOf": [
      +        {
      +          "description": "A decimal amount in major units of `currency`, always two decimals, such as `5000.00`. State it as returned.",
      +          "pattern": "^-?\\d+\\.\\d{2}$",
      +          "type": "string"
      +        },
      +        {
      +          "type": "null"
      +        }
      +      ]
      +    },
      +    "purchase_to_check": {
      +      "anyOf": [
      +        {
      +          "description": "A decimal amount in major units of `currency`, always two decimals, such as `5000.00`. State it as returned.",
      +          "pattern": "^-?\\d+\\.\\d{2}$",
      +          "type": "string"
      +        },
      +        {
      +          "type": "null"
      +        }
      +      ]
      +    },
      +    "sales": {
      +      "anyOf": [
      +        {
      +          "description": "A decimal amount in major units of `currency`, always two decimals, such as `5000.00`. State it as returned.",
      +          "pattern": "^-?\\d+\\.\\d{2}$",
      +          "type": "string"
      +        },
      +        {
      +          "type": "null"
      +        }
      +      ]
      +    }
      +  },
      +  "required": [
      +    "document_count",
      +    "purchase_domestic",
      +    "purchase_to_check",
      +    "sales"
      +  ],
      +  "type": "object"
      +}
    • addedOutput schema / properties / possibilities / properties / quarters / items / properties / documents / properties / not_ours
      Added value: +{
      +  "anyOf": [
      +    {
      +      "description": "A decimal amount in major units of `currency`, always two decimals, such as `5000.00`. State it as returned.",
      +      "pattern": "^-?\\d+\\.\\d{2}$",
      +      "type": "string"
      +    },
      +    {
      +      "type": "null"
      +    }
      +  ],
      +  "description": "VAT, in `currency`, of the quarter's documents between two other companies whose VAT is stated in `currency`. Shown beside the figures, in none of them. Null when the quarter holds none, or when none of them has a VAT stated in `currency`: state their count (`counts.not_ours`) and no amount, never 0.00."
      +}
    • addedOutput schema / properties / possibilities / properties / quarters / items / properties / documents / properties / purchase_domestic / anyOf
      Added value: +[
      +  {
      +    "description": "A decimal amount in major units of `currency`, always two decimals, such as `5000.00`. State it as returned.",
      +    "pattern": "^-?\\d+\\.\\d{2}$",
      +    "type": "string"
      +  },
      +  {
      +    "type": "null"
      +  }
      +]
    • removedOutput schema / properties / possibilities / properties / quarters / items / properties / documents / properties / purchase_domestic / description
      Removed value: -"A decimal amount in major units of `currency`, always two decimals, such as `5000.00`. State it as returned."
    • removedOutput schema / properties / possibilities / properties / quarters / items / properties / documents / properties / purchase_domestic / pattern
      Removed value: -"^-?\\d+\\.\\d{2}$"
    • removedOutput schema / properties / possibilities / properties / quarters / items / properties / documents / properties / purchase_domestic / type
      Removed value: -"string"
    • addedOutput schema / properties / possibilities / properties / quarters / items / properties / documents / properties / purchase_to_check / anyOf
      Added value: +[
      +  {
      +    "description": "A decimal amount in major units of `currency`, always two decimals, such as `5000.00`. State it as returned.",
      +    "pattern": "^-?\\d+\\.\\d{2}$",
      +    "type": "string"
      +  },
      +  {
      +    "type": "null"
      +  }
      +]
    • removedOutput schema / properties / possibilities / properties / quarters / items / properties / documents / properties / purchase_to_check / description
      Removed value: -"A decimal amount in major units of `currency`, always two decimals, such as `5000.00`. State it as returned."
    • removedOutput schema / properties / possibilities / properties / quarters / items / properties / documents / properties / purchase_to_check / pattern
      Removed value: -"^-?\\d+\\.\\d{2}$"
    • removedOutput schema / properties / possibilities / properties / quarters / items / properties / documents / properties / purchase_to_check / type
      Removed value: -"string"
    • addedOutput schema / properties / possibilities / properties / quarters / items / properties / documents / properties / sales / anyOf
      Added value: +[
      +  {
      +    "description": "A decimal amount in major units of `currency`, always two decimals, such as `5000.00`. State it as returned.",
      +    "pattern": "^-?\\d+\\.\\d{2}$",
      +    "type": "string"
      +  },
      +  {
      +    "type": "null"
      +  }
      +]
    • removedOutput schema / properties / possibilities / properties / quarters / items / properties / documents / properties / sales / description
      Removed value: -"A decimal amount in major units of `currency`, always two decimals, such as `5000.00`. State it as returned."
    • removedOutput schema / properties / possibilities / properties / quarters / items / properties / documents / properties / sales / pattern
      Removed value: -"^-?\\d+\\.\\d{2}$"
    • removedOutput schema / properties / possibilities / properties / quarters / items / properties / documents / properties / sales / type
      Removed value: -"string"
    • addedOutput schema / properties / possibilities / properties / quarters / items / properties / documents / properties / unsided / anyOf
      Added value: +[
      +  {
      +    "description": "A decimal amount in major units of `currency`, always two decimals, such as `5000.00`. State it as returned.",
      +    "pattern": "^-?\\d+\\.\\d{2}$",
      +    "type": "string"
      +  },
      +  {
      +    "type": "null"
      +  }
      +]
    • removedOutput schema / properties / possibilities / properties / quarters / items / properties / documents / properties / unsided / description
      Removed value: -"A decimal amount in major units of `currency`, always two decimals, such as `5000.00`. State it as returned."
    • removedOutput schema / properties / possibilities / properties / quarters / items / properties / documents / properties / unsided / pattern
      Removed value: -"^-?\\d+\\.\\d{2}$"
    • removedOutput schema / properties / possibilities / properties / quarters / items / properties / documents / properties / unsided / type
      Removed value: -"string"
    • changedOutput schema / properties / possibilities / properties / quarters / items / properties / documents / required
      Previous value: -[
      -  "document_count",
      -  "purchase_domestic",
      -  "purchase_to_check",
      -  "sales",
      -  "unsided",
      -  "credit_note_count",
      -  "replacing_count",
      -  "entry_without_vat_line_count"
      -]New value: +[
      +  "document_count",
      +  "purchase_domestic",
      +  "purchase_to_check",
      +  "sales",
      +  "unsided",
      +  "not_ours",
      +  "estimated",
      +  "credit_note_count",
      +  "replacing_count",
      +  "entry_without_vat_line_count"
      +]
    • addedOutput schema / properties / possibilities / properties / quarters / items / properties / entries / properties / collected / anyOf
      Added value: +[
      +  {
      +    "description": "A decimal amount in major units of `currency`, always two decimals, such as `5000.00`. State it as returned.",
      +    "pattern": "^-?\\d+\\.\\d{2}$",
      +    "type": "string"
      +  },
      +  {
      +    "type": "null"
      +  }
      +]
    • removedOutput schema / properties / possibilities / properties / quarters / items / properties / entries / properties / collected / description
      Removed value: -"A decimal amount in major units of `currency`, always two decimals, such as `5000.00`. State it as returned."
    • removedOutput schema / properties / possibilities / properties / quarters / items / properties / entries / properties / collected / pattern
      Removed value: -"^-?\\d+\\.\\d{2}$"
    • removedOutput schema / properties / possibilities / properties / quarters / items / properties / entries / properties / collected / type
      Removed value: -"string"
    • addedOutput schema / properties / possibilities / properties / quarters / items / properties / entries / properties / deductible / anyOf
      Added value: +[
      +  {
      +    "description": "A decimal amount in major units of `currency`, always two decimals, such as `5000.00`. State it as returned.",
      +    "pattern": "^-?\\d+\\.\\d{2}$",
      +    "type": "string"
      +  },
      +  {
      +    "type": "null"
      +  }
      +]
    • removedOutput schema / properties / possibilities / properties / quarters / items / properties / entries / properties / deductible / description
      Removed value: -"A decimal amount in major units of `currency`, always two decimals, such as `5000.00`. State it as returned."
    • removedOutput schema / properties / possibilities / properties / quarters / items / properties / entries / properties / deductible / pattern
      Removed value: -"^-?\\d+\\.\\d{2}$"
    • removedOutput schema / properties / possibilities / properties / quarters / items / properties / entries / properties / deductible / type
      Removed value: -"string"
    • addedOutput schema / properties / possibilities / properties / quarters / items / properties / entries / properties / unplaced / anyOf
      Added value: +[
      +  {
      +    "description": "A decimal amount in major units of `currency`, always two decimals, such as `5000.00`. State it as returned.",
      +    "pattern": "^-?\\d+\\.\\d{2}$",
      +    "type": "string"
      +  },
      +  {
      +    "type": "null"
      +  }
      +]
    • removedOutput schema / properties / possibilities / properties / quarters / items / properties / entries / properties / unplaced / description
      Removed value: -"A decimal amount in major units of `currency`, always two decimals, such as `5000.00`. State it as returned."
    • removedOutput schema / properties / possibilities / properties / quarters / items / properties / entries / properties / unplaced / pattern
      Removed value: -"^-?\\d+\\.\\d{2}$"
    • removedOutput schema / properties / possibilities / properties / quarters / items / properties / entries / properties / unplaced / type
      Removed value: -"string"
    • addedOutput schema / properties / possibilities / properties / quarters / items / properties / note
      Added value: +{
      +  "description": "Set on a `no_evidence` quarter alone: the sentence to state for it. Every amount of that quarter is null.",
      +  "type": "string"
      +}
    • changedOutput schema / properties / possibilities / properties / quarters / items / properties / presentation / enum
      Previous value: -[
      -  "computed",
      -  "evidence_only",
      -  "incomplete"
      -]New value: +[
      +  "computed",
      +  "evidence_only",
      +  "incomplete",
      +  "no_evidence"
      +]
    • changedOutput schema / properties / status / description
      Previous value: -"Where the call ended. `ok` carries figures; `no_posted_entries` and `no_vat_found` are not nil returns."New value: +"Where the call ended. `ok` carries figures; `no_vat_found` is not a nil return."
    • changedOutput schema / properties / status / enum
      Previous value: -[
      -  "ok",
      -  "no_vat_found",
      -  "no_posted_entries",
      -  "unsupported_jurisdiction",
      -  "invalid_period",
      -  "range_too_large",
      -  "failed"
      -]New value: +[
      +  "ok",
      +  "no_vat_found",
      +  "invalid_period",
      +  "range_too_large",
      +  "failed"
      +]
    • removedOutput schema / properties / supported_country_codes
      Removed value: -{
      -  "description": "Set on `unsupported_jurisdiction`: the countries this read models.",
      -  "items": {
      -    "type": "string"
      -  },
      -  "type": "array"
      -}
    • addedOutput schema / properties / workspaces / items / properties / basis_note
      Added value: +{
      +  "description": "A sentence to state beside the figures. On a posted `ok` read: entries are grouped by the month of their entry date, so an entry posted into a later return still shows in its own month and a filed return can differ. On a possibilities read that stands in for a posted one: nothing is posted yet, or the workspace's country is not mapped for VAT filing, or it has no country.",
      +  "type": "string"
      +}
    • addedOutput schema / properties / workspaces / items / properties / basis_note_code
      Added value: +{
      +  "description": "Stable code of `basis_note`: `nothing_posted`, `country_not_mapped`, `no_country` or `entry_date_basis`.",
      +  "enum": [
      +    "nothing_posted",
      +    "country_not_mapped",
      +    "no_country",
      +    "entry_date_basis"
      +  ],
      +  "type": "string"
      +}
    • changedOutput schema / properties / workspaces / items / properties / country_code / description
      Previous value: -"The workspace's accounting country. Set on `ok` and on `unsupported_jurisdiction`; null when none is configured."New value: +"The workspace's accounting country. Set on `ok`; null when none is configured."
    • addedOutput schema / properties / workspaces / items / properties / currency_basis
      Added value: +{
      +  "anyOf": [
      +    {
      +      "enum": [
      +        "settings",
      +        "country",
      +        "documents_mode",
      +        "display_fallback"
      +      ],
      +      "type": "string"
      +    },
      +    {
      +      "type": "null"
      +    }
      +  ],
      +  "description": "What `currency` rests on, on a possibilities read: `settings` (the workspace's books currency), `country` (the default currency of its accounting country) or `documents_mode` (the most common currency of its invoices, because neither is set). Null when no denomination exists, beside no `currency`. Omitted on a posted read."
      +}
    • addedOutput schema / properties / workspaces / items / properties / possibilities / properties / counts / properties / estimated_side
      Added value: +{
      +  "description": "Documents whose side rests on an inference in the whole window, ordinary and replacing ones. Counted and shown beside the figures, never added to one, and never a reason for `incomplete` on their own.",
      +  "maximum": 9007199254740991,
      +  "minimum": -9007199254740991,
      +  "type": "integer"
      +}
    • addedOutput schema / properties / workspaces / items / properties / possibilities / properties / counts / properties / not_ours
      Added value: +{
      +  "description": "Documents between two other companies in the whole window, ordinary and replacing ones, whether or not their VAT is stated in `currency`. Counted and shown beside the figures, never added to one, and never a reason for `incomplete`.",
      +  "maximum": 9007199254740991,
      +  "minimum": -9007199254740991,
      +  "type": "integer"
      +}
    • changedOutput schema / properties / workspaces / items / properties / possibilities / properties / counts / required
      Previous value: -[
      -  "purchase_domestic",
      -  "purchase_to_check",
      -  "sales",
      -  "unsided",
      -  "header_derived"
      -]New value: +[
      +  "purchase_domestic",
      +  "purchase_to_check",
      +  "sales",
      +  "unsided",
      +  "not_ours",
      +  "estimated_side",
      +  "header_derived"
      +]
    • addedOutput schema / properties / workspaces / items / properties / possibilities / properties / estimated_side_note
      Added value: +{
      +  "description": "Set when the window holds documents whose side rests on an inference: one ready sentence with their count, quarter by quarter, and the VAT they carry by kind when it is stated. Relay it once, as its own sentence beside the figures, in the language of the answer, with its numbers unchanged; never as proven, never folded into a figure, and never compose your own. Absent when the read lists no quarter.",
      +  "type": "string"
      +}
    • addedOutput schema / properties / workspaces / items / properties / possibilities / properties / excluded / properties / header_tax_unread_count
      Added value: +{
      +  "maximum": 9007199254740991,
      +  "minimum": -9007199254740991,
      +  "type": "integer"
      +}
    • addedOutput schema / properties / workspaces / items / properties / possibilities / properties / excluded / properties / header_tax_unread_count_by_currency
      Added value: +{
      +  "items": {
      +    "additionalProperties": false,
      +    "properties": {
      +      "count": {
      +        "maximum": 9007199254740991,
      +        "minimum": -9007199254740991,
      +        "type": "integer"
      +      },
      +      "currency": {
      +        "type": "string"
      +      }
      +    },
      +    "required": [
      +      "currency",
      +      "count"
      +    ],
      +    "type": "object"
      +  },
      +  "type": "array"
      +}
    • addedOutput schema / properties / workspaces / items / properties / possibilities / properties / excluded / properties / identity_grouping_truncated
      Added value: +{
      +  "type": "boolean"
      +}
    • addedOutput schema / properties / workspaces / items / properties / possibilities / properties / excluded / properties / tax_unknown_count
      Added value: +{
      +  "maximum": 9007199254740991,
      +  "minimum": -9007199254740991,
      +  "type": "integer"
      +}
    • addedOutput schema / properties / workspaces / items / properties / possibilities / properties / excluded / properties / tax_unknown_count_by_currency
      Added value: +{
      +  "items": {
      +    "additionalProperties": false,
      +    "properties": {
      +      "count": {
      +        "maximum": 9007199254740991,
      +        "minimum": -9007199254740991,
      +        "type": "integer"
      +      },
      +      "currency": {
      +        "type": "string"
      +      }
      +    },
      +    "required": [
      +      "currency",
      +      "count"
      +    ],
      +    "type": "object"
      +  },
      +  "type": "array"
      +}
    • addedOutput schema / properties / workspaces / items / properties / possibilities / properties / excluded / properties / tax_unknown_split
      Added value: +{
      +  "additionalProperties": false,
      +  "properties": {
      +    "totals_differ": {
      +      "maximum": 9007199254740991,
      +      "minimum": -9007199254740991,
      +      "type": "integer"
      +    },
      +    "totals_equal": {
      +      "maximum": 9007199254740991,
      +      "minimum": -9007199254740991,
      +      "type": "integer"
      +    },
      +    "totals_missing": {
      +      "maximum": 9007199254740991,
      +      "minimum": -9007199254740991,
      +      "type": "integer"
      +    }
      +  },
      +  "required": [
      +    "totals_equal",
      +    "totals_missing",
      +    "totals_differ"
      +  ],
      +  "type": "object"
      +}
    • addedOutput schema / properties / workspaces / items / properties / possibilities / properties / excluded / properties / undated_count
      Added value: +{
      +  "maximum": 9007199254740991,
      +  "minimum": -9007199254740991,
      +  "type": "integer"
      +}
    • changedOutput schema / properties / workspaces / items / properties / possibilities / properties / excluded / required
      Previous value: -[
      -  "other_currency_count",
      -  "null_currency_count",
      -  "other_currency_entry_count",
      -  "null_currency_entry_count"
      -]New value: +[
      +  "other_currency_count",
      +  "null_currency_count",
      +  "undated_count",
      +  "header_tax_unread_count",
      +  "other_currency_entry_count",
      +  "null_currency_entry_count"
      +]
    • addedOutput schema / properties / workspaces / items / properties / possibilities / properties / not_ours_note
      Added value: +{
      +  "description": "Set when the window holds documents between two other companies: one ready sentence with their count, quarter by quarter, how many of each quarter have a readable VAT, and that VAT. Relay it as its own sentence beside the figures, in the language of the answer, with its numbers unchanged; never fold it into a figure or into the deductible sentence, and never compose your own. Absent when the read lists no quarter.",
      +  "type": "string"
      +}
    • addedOutput schema / properties / workspaces / items / properties / possibilities / properties / quarters / items / properties / collected / anyOf
      Added value: +[
      +  {
      +    "description": "A decimal amount in major units of `currency`, always two decimals, such as `5000.00`. State it as returned.",
      +    "pattern": "^-?\\d+\\.\\d{2}$",
      +    "type": "string"
      +  },
      +  {
      +    "type": "null"
      +  }
      +]
    • removedOutput schema / properties / workspaces / items / properties / possibilities / properties / quarters / items / properties / collected / description
      Removed value: -"A decimal amount in major units of `currency`, always two decimals, such as `5000.00`. State it as returned."
    • removedOutput schema / properties / workspaces / items / properties / possibilities / properties / quarters / items / properties / collected / pattern
      Removed value: -"^-?\\d+\\.\\d{2}$"
    • removedOutput schema / properties / workspaces / items / properties / possibilities / properties / quarters / items / properties / collected / type
      Removed value: -"string"
    • addedOutput schema / properties / workspaces / items / properties / possibilities / properties / quarters / items / properties / deductible / anyOf
      Added value: +[
      +  {
      +    "description": "A decimal amount in major units of `currency`, always two decimals, such as `5000.00`. State it as returned.",
      +    "pattern": "^-?\\d+\\.\\d{2}$",
      +    "type": "string"
      +  },
      +  {
      +    "type": "null"
      +  }
      +]
    • removedOutput schema / properties / workspaces / items / properties / possibilities / properties / quarters / items / properties / deductible / description
      Removed value: -"A decimal amount in major units of `currency`, always two decimals, such as `5000.00`. State it as returned."
    • removedOutput schema / properties / workspaces / items / properties / possibilities / properties / quarters / items / properties / deductible / pattern
      Removed value: -"^-?\\d+\\.\\d{2}$"
    • removedOutput schema / properties / workspaces / items / properties / possibilities / properties / quarters / items / properties / deductible / type
      Removed value: -"string"
    • addedOutput schema / properties / workspaces / items / properties / possibilities / properties / quarters / items / properties / documents / properties / estimated
      Added value: +{
      +  "additionalProperties": false,
      +  "description": "VAT, in `currency`, of the quarter's documents whose side rests on an inference (a self-candidate company on one leg, or a provider claim with no holder), by kind. Shown beside the figures, in none of them: `deductible`, `collected`, `net` and `position` never include it. `document_count` counts the ordinary documents only. An amount is null when the quarter holds no ordinary document of that kind: state the count (`counts.estimated_side`) and no amount, never 0.00.",
      +  "properties": {
      +    "document_count": {
      +      "maximum": 9007199254740991,
      +      "minimum": -9007199254740991,
      +      "type": "integer"
      +    },
      +    "purchase_domestic": {
      +      "anyOf": [
      +        {
      +          "description": "A decimal amount in major units of `currency`, always two decimals, such as `5000.00`. State it as returned.",
      +          "pattern": "^-?\\d+\\.\\d{2}$",
      +          "type": "string"
      +        },
      +        {
      +          "type": "null"
      +        }
      +      ]
      +    },
      +    "purchase_to_check": {
      +      "anyOf": [
      +        {
      +          "description": "A decimal amount in major units of `currency`, always two decimals, such as `5000.00`. State it as returned.",
      +          "pattern": "^-?\\d+\\.\\d{2}$",
      +          "type": "string"
      +        },
      +        {
      +          "type": "null"
      +        }
      +      ]
      +    },
      +    "sales": {
      +      "anyOf": [
      +        {
      +          "description": "A decimal amount in major units of `currency`, always two decimals, such as `5000.00`. State it as returned.",
      +          "pattern": "^-?\\d+\\.\\d{2}$",
      +          "type": "string"
      +        },
      +        {
      +          "type": "null"
      +        }
      +      ]
      +    }
      +  },
      +  "required": [
      +    "document_count",
      +    "purchase_domestic",
      +    "purchase_to_check",
      +    "sales"
      +  ],
      +  "type": "object"
      +}
    • addedOutput schema / properties / workspaces / items / properties / possibilities / properties / quarters / items / properties / documents / properties / not_ours
      Added value: +{
      +  "anyOf": [
      +    {
      +      "description": "A decimal amount in major units of `currency`, always two decimals, such as `5000.00`. State it as returned.",
      +      "pattern": "^-?\\d+\\.\\d{2}$",
      +      "type": "string"
      +    },
      +    {
      +      "type": "null"
      +    }
      +  ],
      +  "description": "VAT, in `currency`, of the quarter's documents between two other companies whose VAT is stated in `currency`. Shown beside the figures, in none of them. Null when the quarter holds none, or when none of them has a VAT stated in `currency`: state their count (`counts.not_ours`) and no amount, never 0.00."
      +}
    • addedOutput schema / properties / workspaces / items / properties / possibilities / properties / quarters / items / properties / documents / properties / purchase_domestic / anyOf
      Added value: +[
      +  {
      +    "description": "A decimal amount in major units of `currency`, always two decimals, such as `5000.00`. State it as returned.",
      +    "pattern": "^-?\\d+\\.\\d{2}$",
      +    "type": "string"
      +  },
      +  {
      +    "type": "null"
      +  }
      +]
    • removedOutput schema / properties / workspaces / items / properties / possibilities / properties / quarters / items / properties / documents / properties / purchase_domestic / description
      Removed value: -"A decimal amount in major units of `currency`, always two decimals, such as `5000.00`. State it as returned."
    • removedOutput schema / properties / workspaces / items / properties / possibilities / properties / quarters / items / properties / documents / properties / purchase_domestic / pattern
      Removed value: -"^-?\\d+\\.\\d{2}$"
    • removedOutput schema / properties / workspaces / items / properties / possibilities / properties / quarters / items / properties / documents / properties / purchase_domestic / type
      Removed value: -"string"
    • addedOutput schema / properties / workspaces / items / properties / possibilities / properties / quarters / items / properties / documents / properties / purchase_to_check / anyOf
      Added value: +[
      +  {
      +    "description": "A decimal amount in major units of `currency`, always two decimals, such as `5000.00`. State it as returned.",
      +    "pattern": "^-?\\d+\\.\\d{2}$",
      +    "type": "string"
      +  },
      +  {
      +    "type": "null"
      +  }
      +]
    • removedOutput schema / properties / workspaces / items / properties / possibilities / properties / quarters / items / properties / documents / properties / purchase_to_check / description
      Removed value: -"A decimal amount in major units of `currency`, always two decimals, such as `5000.00`. State it as returned."
    • removedOutput schema / properties / workspaces / items / properties / possibilities / properties / quarters / items / properties / documents / properties / purchase_to_check / pattern
      Removed value: -"^-?\\d+\\.\\d{2}$"
    • removedOutput schema / properties / workspaces / items / properties / possibilities / properties / quarters / items / properties / documents / properties / purchase_to_check / type
      Removed value: -"string"
    • addedOutput schema / properties / workspaces / items / properties / possibilities / properties / quarters / items / properties / documents / properties / sales / anyOf
      Added value: +[
      +  {
      +    "description": "A decimal amount in major units of `currency`, always two decimals, such as `5000.00`. State it as returned.",
      +    "pattern": "^-?\\d+\\.\\d{2}$",
      +    "type": "string"
      +  },
      +  {
      +    "type": "null"
      +  }
      +]
    • removedOutput schema / properties / workspaces / items / properties / possibilities / properties / quarters / items / properties / documents / properties / sales / description
      Removed value: -"A decimal amount in major units of `currency`, always two decimals, such as `5000.00`. State it as returned."
    • removedOutput schema / properties / workspaces / items / properties / possibilities / properties / quarters / items / properties / documents / properties / sales / pattern
      Removed value: -"^-?\\d+\\.\\d{2}$"
    • removedOutput schema / properties / workspaces / items / properties / possibilities / properties / quarters / items / properties / documents / properties / sales / type
      Removed value: -"string"
    • addedOutput schema / properties / workspaces / items / properties / possibilities / properties / quarters / items / properties / documents / properties / unsided / anyOf
      Added value: +[
      +  {
      +    "description": "A decimal amount in major units of `currency`, always two decimals, such as `5000.00`. State it as returned.",
      +    "pattern": "^-?\\d+\\.\\d{2}$",
      +    "type": "string"
      +  },
      +  {
      +    "type": "null"
      +  }
      +]
    • removedOutput schema / properties / workspaces / items / properties / possibilities / properties / quarters / items / properties / documents / properties / unsided / description
      Removed value: -"A decimal amount in major units of `currency`, always two decimals, such as `5000.00`. State it as returned."
    • removedOutput schema / properties / workspaces / items / properties / possibilities / properties / quarters / items / properties / documents / properties / unsided / pattern
      Removed value: -"^-?\\d+\\.\\d{2}$"
    • removedOutput schema / properties / workspaces / items / properties / possibilities / properties / quarters / items / properties / documents / properties / unsided / type
      Removed value: -"string"
    • changedOutput schema / properties / workspaces / items / properties / possibilities / properties / quarters / items / properties / documents / required
      Previous value: -[
      -  "document_count",
      -  "purchase_domestic",
      -  "purchase_to_check",
      -  "sales",
      -  "unsided",
      -  "credit_note_count",
      -  "replacing_count",
      -  "entry_without_vat_line_count"
      -]New value: +[
      +  "document_count",
      +  "purchase_domestic",
      +  "purchase_to_check",
      +  "sales",
      +  "unsided",
      +  "not_ours",
      +  "estimated",
      +  "credit_note_count",
      +  "replacing_count",
      +  "entry_without_vat_line_count"
      +]
    • addedOutput schema / properties / workspaces / items / properties / possibilities / properties / quarters / items / properties / entries / properties / collected / anyOf
      Added value: +[
      +  {
      +    "description": "A decimal amount in major units of `currency`, always two decimals, such as `5000.00`. State it as returned.",
      +    "pattern": "^-?\\d+\\.\\d{2}$",
      +    "type": "string"
      +  },
      +  {
      +    "type": "null"
      +  }
      +]
    • removedOutput schema / properties / workspaces / items / properties / possibilities / properties / quarters / items / properties / entries / properties / collected / description
      Removed value: -"A decimal amount in major units of `currency`, always two decimals, such as `5000.00`. State it as returned."
    • removedOutput schema / properties / workspaces / items / properties / possibilities / properties / quarters / items / properties / entries / properties / collected / pattern
      Removed value: -"^-?\\d+\\.\\d{2}$"
    • removedOutput schema / properties / workspaces / items / properties / possibilities / properties / quarters / items / properties / entries / properties / collected / type
      Removed value: -"string"
    • addedOutput schema / properties / workspaces / items / properties / possibilities / properties / quarters / items / properties / entries / properties / deductible / anyOf
      Added value: +[
      +  {
      +    "description": "A decimal amount in major units of `currency`, always two decimals, such as `5000.00`. State it as returned.",
      +    "pattern": "^-?\\d+\\.\\d{2}$",
      +    "type": "string"
      +  },
      +  {
      +    "type": "null"
      +  }
      +]
    • removedOutput schema / properties / workspaces / items / properties / possibilities / properties / quarters / items / properties / entries / properties / deductible / description
      Removed value: -"A decimal amount in major units of `currency`, always two decimals, such as `5000.00`. State it as returned."
    • removedOutput schema / properties / workspaces / items / properties / possibilities / properties / quarters / items / properties / entries / properties / deductible / pattern
      Removed value: -"^-?\\d+\\.\\d{2}$"
    • removedOutput schema / properties / workspaces / items / properties / possibilities / properties / quarters / items / properties / entries / properties / deductible / type
      Removed value: -"string"
    • addedOutput schema / properties / workspaces / items / properties / possibilities / properties / quarters / items / properties / entries / properties / unplaced / anyOf
      Added value: +[
      +  {
      +    "description": "A decimal amount in major units of `currency`, always two decimals, such as `5000.00`. State it as returned.",
      +    "pattern": "^-?\\d+\\.\\d{2}$",
      +    "type": "string"
      +  },
      +  {
      +    "type": "null"
      +  }
      +]
    • removedOutput schema / properties / workspaces / items / properties / possibilities / properties / quarters / items / properties / entries / properties / unplaced / description
      Removed value: -"A decimal amount in major units of `currency`, always two decimals, such as `5000.00`. State it as returned."
    • removedOutput schema / properties / workspaces / items / properties / possibilities / properties / quarters / items / properties / entries / properties / unplaced / pattern
      Removed value: -"^-?\\d+\\.\\d{2}$"
    • removedOutput schema / properties / workspaces / items / properties / possibilities / properties / quarters / items / properties / entries / properties / unplaced / type
      Removed value: -"string"
    • addedOutput schema / properties / workspaces / items / properties / possibilities / properties / quarters / items / properties / note
      Added value: +{
      +  "description": "Set on a `no_evidence` quarter alone: the sentence to state for it. Every amount of that quarter is null.",
      +  "type": "string"
      +}
    • changedOutput schema / properties / workspaces / items / properties / possibilities / properties / quarters / items / properties / presentation / enum
      Previous value: -[
      -  "computed",
      -  "evidence_only",
      -  "incomplete"
      -]New value: +[
      +  "computed",
      +  "evidence_only",
      +  "incomplete",
      +  "no_evidence"
      +]
    • changedOutput schema / properties / workspaces / items / properties / status / description
      Previous value: -"Where the call ended. `ok` carries figures; `no_posted_entries` and `no_vat_found` are not nil returns."New value: +"Where the call ended. `ok` carries figures; `no_vat_found` is not a nil return."
    • changedOutput schema / properties / workspaces / items / properties / status / enum
      Previous value: -[
      -  "ok",
      -  "no_vat_found",
      -  "no_posted_entries",
      -  "unsupported_jurisdiction",
      -  "invalid_period",
      -  "range_too_large",
      -  "failed"
      -]New value: +[
      +  "ok",
      +  "no_vat_found",
      +  "invalid_period",
      +  "range_too_large",
      +  "failed"
      +]
    • removedOutput schema / properties / workspaces / items / properties / supported_country_codes
      Removed value: -{
      -  "description": "Set on `unsupported_jurisdiction`: the countries this read models.",
      -  "items": {
      -    "type": "string"
      -  },
      -  "type": "array"
      -}
  9. Changed9 schema fields changed
    • addedInput schema / properties / basis
      Added value: +{
      +  "default": "posted",
      +  "description": "Evidence basis. Omit or use `posted` for the existing posted-ledger VAT return; use `possibilities` for draft, posted and document-header evidence grouped by quarter.",
      +  "enum": [
      +    "posted",
      +    "possibilities"
      +  ],
      +  "type": "string"
      +}
    • addedOutput schema / properties / basis
      Added value: +{
      +  "description": "The evidence basis used by the read. Omitted means the posted ledger basis.",
      +  "enum": [
      +    "posted",
      +    "possibilities"
      +  ],
      +  "type": "string"
      +}
    • addedOutput schema / properties / possibilities
      Added value: +{
      +  "additionalProperties": false,
      +  "properties": {
      +    "counts": {
      +      "additionalProperties": false,
      +      "properties": {
      +        "header_derived": {
      +          "maximum": 9007199254740991,
      +          "minimum": -9007199254740991,
      +          "type": "integer"
      +        },
      +        "purchase_domestic": {
      +          "maximum": 9007199254740991,
      +          "minimum": -9007199254740991,
      +          "type": "integer"
      +        },
      +        "purchase_to_check": {
      +          "maximum": 9007199254740991,
      +          "minimum": -9007199254740991,
      +          "type": "integer"
      +        },
      +        "sales": {
      +          "maximum": 9007199254740991,
      +          "minimum": -9007199254740991,
      +          "type": "integer"
      +        },
      +        "unsided": {
      +          "maximum": 9007199254740991,
      +          "minimum": -9007199254740991,
      +          "type": "integer"
      +        }
      +      },
      +      "required": [
      +        "purchase_domestic",
      +        "purchase_to_check",
      +        "sales",
      +        "unsided",
      +        "header_derived"
      +      ],
      +      "type": "object"
      +    },
      +    "excluded": {
      +      "additionalProperties": false,
      +      "properties": {
      +        "null_currency_count": {
      +          "maximum": 9007199254740991,
      +          "minimum": -9007199254740991,
      +          "type": "integer"
      +        },
      +        "null_currency_entry_count": {
      +          "maximum": 9007199254740991,
      +          "minimum": -9007199254740991,
      +          "type": "integer"
      +        },
      +        "other_currency_count": {
      +          "maximum": 9007199254740991,
      +          "minimum": -9007199254740991,
      +          "type": "integer"
      +        },
      +        "other_currency_entry_count": {
      +          "maximum": 9007199254740991,
      +          "minimum": -9007199254740991,
      +          "type": "integer"
      +        }
      +      },
      +      "required": [
      +        "other_currency_count",
      +        "null_currency_count",
      +        "other_currency_entry_count",
      +        "null_currency_entry_count"
      +      ],
      +      "type": "object"
      +    },
      +    "quarters": {
      +      "items": {
      +        "additionalProperties": false,
      +        "properties": {
      +          "basis": {
      +            "const": "possibilities",
      +            "type": "string"
      +          },
      +          "collected": {
      +            "description": "A decimal amount in major units of `currency`, always two decimals, such as `5000.00`. State it as returned.",
      +            "pattern": "^-?\\d+\\.\\d{2}$",
      +            "type": "string"
      +          },
      +          "deductible": {
      +            "description": "A decimal amount in major units of `currency`, always two decimals, such as `5000.00`. State it as returned.",
      +            "pattern": "^-?\\d+\\.\\d{2}$",
      +            "type": "string"
      +          },
      +          "documents": {
      +            "additionalProperties": false,
      +            "properties": {
      +              "credit_note_count": {
      +                "maximum": 9007199254740991,
      +                "minimum": -9007199254740991,
      +                "type": "integer"
      +              },
      +              "document_count": {
      +                "maximum": 9007199254740991,
      +                "minimum": -9007199254740991,
      +                "type": "integer"
      +              },
      +              "entry_without_vat_line_count": {
      +                "maximum": 9007199254740991,
      +                "minimum": -9007199254740991,
      +                "type": "integer"
      +              },
      +              "purchase_domestic": {
      +                "description": "A decimal amount in major units of `currency`, always two decimals, such as `5000.00`. State it as returned.",
      +                "pattern": "^-?\\d+\\.\\d{2}$",
      +                "type": "string"
      +              },
      +              "purchase_to_check": {
      +                "description": "A decimal amount in major units of `currency`, always two decimals, such as `5000.00`. State it as returned.",
      +                "pattern": "^-?\\d+\\.\\d{2}$",
      +                "type": "string"
      +              },
      +              "replacing_count": {
      +                "maximum": 9007199254740991,
      +                "minimum": -9007199254740991,
      +                "type": "integer"
      +              },
      +              "sales": {
      +                "description": "A decimal amount in major units of `currency`, always two decimals, such as `5000.00`. State it as returned.",
      +                "pattern": "^-?\\d+\\.\\d{2}$",
      +                "type": "string"
      +              },
      +              "unsided": {
      +                "description": "A decimal amount in major units of `currency`, always two decimals, such as `5000.00`. State it as returned.",
      +                "pattern": "^-?\\d+\\.\\d{2}$",
      +                "type": "string"
      +              }
      +            },
      +            "required": [
      +              "document_count",
      +              "purchase_domestic",
      +              "purchase_to_check",
      +              "sales",
      +              "unsided",
      +              "credit_note_count",
      +              "replacing_count",
      +              "entry_without_vat_line_count"
      +            ],
      +            "type": "object"
      +          },
      +          "entries": {
      +            "additionalProperties": false,
      +            "properties": {
      +              "collected": {
      +                "description": "A decimal amount in major units of `currency`, always two decimals, such as `5000.00`. State it as returned.",
      +                "pattern": "^-?\\d+\\.\\d{2}$",
      +                "type": "string"
      +              },
      +              "deductible": {
      +                "description": "A decimal amount in major units of `currency`, always two decimals, such as `5000.00`. State it as returned.",
      +                "pattern": "^-?\\d+\\.\\d{2}$",
      +                "type": "string"
      +              },
      +              "draft_count": {
      +                "maximum": 9007199254740991,
      +                "minimum": -9007199254740991,
      +                "type": "integer"
      +              },
      +              "entry_count": {
      +                "maximum": 9007199254740991,
      +                "minimum": -9007199254740991,
      +                "type": "integer"
      +              },
      +              "header_derived_count": {
      +                "maximum": 9007199254740991,
      +                "minimum": -9007199254740991,
      +                "type": "integer"
      +              },
      +              "unplaced": {
      +                "description": "A decimal amount in major units of `currency`, always two decimals, such as `5000.00`. State it as returned.",
      +                "pattern": "^-?\\d+\\.\\d{2}$",
      +                "type": "string"
      +              },
      +              "validated_count": {
      +                "maximum": 9007199254740991,
      +                "minimum": -9007199254740991,
      +                "type": "integer"
      +              }
      +            },
      +            "required": [
      +              "deductible",
      +              "collected",
      +              "unplaced",
      +              "entry_count",
      +              "validated_count",
      +              "draft_count",
      +              "header_derived_count"
      +            ],
      +            "type": "object"
      +          },
      +          "months_in_window": {
      +            "maximum": 3,
      +            "minimum": 1,
      +            "type": "integer"
      +          },
      +          "net": {
      +            "anyOf": [
      +              {
      +                "description": "A decimal amount in major units of `currency`, always two decimals, such as `5000.00`. State it as returned.",
      +                "pattern": "^-?\\d+\\.\\d{2}$",
      +                "type": "string"
      +              },
      +              {
      +                "type": "null"
      +              }
      +            ]
      +          },
      +          "position": {
      +            "anyOf": [
      +              {
      +                "enum": [
      +                  "payable",
      +                  "credit",
      +                  "nil"
      +                ],
      +                "type": "string"
      +              },
      +              {
      +                "type": "null"
      +              }
      +            ]
      +          },
      +          "presentation": {
      +            "enum": [
      +              "computed",
      +              "evidence_only",
      +              "incomplete"
      +            ],
      +            "type": "string"
      +          },
      +          "purchase_evidence": {
      +            "type": "boolean"
      +          },
      +          "quarter": {
      +            "type": "string"
      +          },
      +          "quarter_ended": {
      +            "type": "boolean"
      +          },
      +          "sales_evidence": {
      +            "type": "boolean"
      +          }
      +        },
      +        "required": [
      +          "quarter",
      +          "basis",
      +          "months_in_window",
      +          "quarter_ended",
      +          "entries",
      +          "documents",
      +          "deductible",
      +          "collected",
      +          "net",
      +          "position",
      +          "sales_evidence",
      +          "purchase_evidence",
      +          "presentation"
      +        ],
      +        "type": "object"
      +      },
      +      "type": "array"
      +    }
      +  },
      +  "required": [
      +    "quarters",
      +    "counts",
      +    "excluded"
      +  ],
      +  "type": "object"
      +}
    • changedOutput schema / properties / status / description
      Previous value: -"Where the call ended. Only `ok` carries figures. `no_posted_entries` is not a nil return."New value: +"Where the call ended. `ok` carries figures; `no_posted_entries` and `no_vat_found` are not nil returns."
    • changedOutput schema / properties / status / enum
      Previous value: -[
      -  "ok",
      -  "no_posted_entries",
      -  "unsupported_jurisdiction",
      -  "invalid_period",
      -  "range_too_large",
      -  "failed"
      -]New value: +[
      +  "ok",
      +  "no_vat_found",
      +  "no_posted_entries",
      +  "unsupported_jurisdiction",
      +  "invalid_period",
      +  "range_too_large",
      +  "failed"
      +]
    • addedOutput schema / properties / workspaces / items / properties / basis
      Added value: +{
      +  "description": "The evidence basis used by the read. Omitted means the posted ledger basis.",
      +  "enum": [
      +    "posted",
      +    "possibilities"
      +  ],
      +  "type": "string"
      +}
    • addedOutput schema / properties / workspaces / items / properties / possibilities
      Added value: +{
      +  "additionalProperties": false,
      +  "properties": {
      +    "counts": {
      +      "additionalProperties": false,
      +      "properties": {
      +        "header_derived": {
      +          "maximum": 9007199254740991,
      +          "minimum": -9007199254740991,
      +          "type": "integer"
      +        },
      +        "purchase_domestic": {
      +          "maximum": 9007199254740991,
      +          "minimum": -9007199254740991,
      +          "type": "integer"
      +        },
      +        "purchase_to_check": {
      +          "maximum": 9007199254740991,
      +          "minimum": -9007199254740991,
      +          "type": "integer"
      +        },
      +        "sales": {
      +          "maximum": 9007199254740991,
      +          "minimum": -9007199254740991,
      +          "type": "integer"
      +        },
      +        "unsided": {
      +          "maximum": 9007199254740991,
      +          "minimum": -9007199254740991,
      +          "type": "integer"
      +        }
      +      },
      +      "required": [
      +        "purchase_domestic",
      +        "purchase_to_check",
      +        "sales",
      +        "unsided",
      +        "header_derived"
      +      ],
      +      "type": "object"
      +    },
      +    "excluded": {
      +      "additionalProperties": false,
      +      "properties": {
      +        "null_currency_count": {
      +          "maximum": 9007199254740991,
      +          "minimum": -9007199254740991,
      +          "type": "integer"
      +        },
      +        "null_currency_entry_count": {
      +          "maximum": 9007199254740991,
      +          "minimum": -9007199254740991,
      +          "type": "integer"
      +        },
      +        "other_currency_count": {
      +          "maximum": 9007199254740991,
      +          "minimum": -9007199254740991,
      +          "type": "integer"
      +        },
      +        "other_currency_entry_count": {
      +          "maximum": 9007199254740991,
      +          "minimum": -9007199254740991,
      +          "type": "integer"
      +        }
      +      },
      +      "required": [
      +        "other_currency_count",
      +        "null_currency_count",
      +        "other_currency_entry_count",
      +        "null_currency_entry_count"
      +      ],
      +      "type": "object"
      +    },
      +    "quarters": {
      +      "items": {
      +        "additionalProperties": false,
      +        "properties": {
      +          "basis": {
      +            "const": "possibilities",
      +            "type": "string"
      +          },
      +          "collected": {
      +            "description": "A decimal amount in major units of `currency`, always two decimals, such as `5000.00`. State it as returned.",
      +            "pattern": "^-?\\d+\\.\\d{2}$",
      +            "type": "string"
      +          },
      +          "deductible": {
      +            "description": "A decimal amount in major units of `currency`, always two decimals, such as `5000.00`. State it as returned.",
      +            "pattern": "^-?\\d+\\.\\d{2}$",
      +            "type": "string"
      +          },
      +          "documents": {
      +            "additionalProperties": false,
      +            "properties": {
      +              "credit_note_count": {
      +                "maximum": 9007199254740991,
      +                "minimum": -9007199254740991,
      +                "type": "integer"
      +              },
      +              "document_count": {
      +                "maximum": 9007199254740991,
      +                "minimum": -9007199254740991,
      +                "type": "integer"
      +              },
      +              "entry_without_vat_line_count": {
      +                "maximum": 9007199254740991,
      +                "minimum": -9007199254740991,
      +                "type": "integer"
      +              },
      +              "purchase_domestic": {
      +                "description": "A decimal amount in major units of `currency`, always two decimals, such as `5000.00`. State it as returned.",
      +                "pattern": "^-?\\d+\\.\\d{2}$",
      +                "type": "string"
      +              },
      +              "purchase_to_check": {
      +                "description": "A decimal amount in major units of `currency`, always two decimals, such as `5000.00`. State it as returned.",
      +                "pattern": "^-?\\d+\\.\\d{2}$",
      +                "type": "string"
      +              },
      +              "replacing_count": {
      +                "maximum": 9007199254740991,
      +                "minimum": -9007199254740991,
      +                "type": "integer"
      +              },
      +              "sales": {
      +                "description": "A decimal amount in major units of `currency`, always two decimals, such as `5000.00`. State it as returned.",
      +                "pattern": "^-?\\d+\\.\\d{2}$",
      +                "type": "string"
      +              },
      +              "unsided": {
      +                "description": "A decimal amount in major units of `currency`, always two decimals, such as `5000.00`. State it as returned.",
      +                "pattern": "^-?\\d+\\.\\d{2}$",
      +                "type": "string"
      +              }
      +            },
      +            "required": [
      +              "document_count",
      +              "purchase_domestic",
      +              "purchase_to_check",
      +              "sales",
      +              "unsided",
      +              "credit_note_count",
      +              "replacing_count",
      +              "entry_without_vat_line_count"
      +            ],
      +            "type": "object"
      +          },
      +          "entries": {
      +            "additionalProperties": false,
      +            "properties": {
      +              "collected": {
      +                "description": "A decimal amount in major units of `currency`, always two decimals, such as `5000.00`. State it as returned.",
      +                "pattern": "^-?\\d+\\.\\d{2}$",
      +                "type": "string"
      +              },
      +              "deductible": {
      +                "description": "A decimal amount in major units of `currency`, always two decimals, such as `5000.00`. State it as returned.",
      +                "pattern": "^-?\\d+\\.\\d{2}$",
      +                "type": "string"
      +              },
      +              "draft_count": {
      +                "maximum": 9007199254740991,
      +                "minimum": -9007199254740991,
      +                "type": "integer"
      +              },
      +              "entry_count": {
      +                "maximum": 9007199254740991,
      +                "minimum": -9007199254740991,
      +                "type": "integer"
      +              },
      +              "header_derived_count": {
      +                "maximum": 9007199254740991,
      +                "minimum": -9007199254740991,
      +                "type": "integer"
      +              },
      +              "unplaced": {
      +                "description": "A decimal amount in major units of `currency`, always two decimals, such as `5000.00`. State it as returned.",
      +                "pattern": "^-?\\d+\\.\\d{2}$",
      +                "type": "string"
      +              },
      +              "validated_count": {
      +                "maximum": 9007199254740991,
      +                "minimum": -9007199254740991,
      +                "type": "integer"
      +              }
      +            },
      +            "required": [
      +              "deductible",
      +              "collected",
      +              "unplaced",
      +              "entry_count",
      +              "validated_count",
      +              "draft_count",
      +              "header_derived_count"
      +            ],
      +            "type": "object"
      +          },
      +          "months_in_window": {
      +            "maximum": 3,
      +            "minimum": 1,
      +            "type": "integer"
      +          },
      +          "net": {
      +            "anyOf": [
      +              {
      +                "description": "A decimal amount in major units of `currency`, always two decimals, such as `5000.00`. State it as returned.",
      +                "pattern": "^-?\\d+\\.\\d{2}$",
      +                "type": "string"
      +              },
      +              {
      +                "type": "null"
      +              }
      +            ]
      +          },
      +          "position": {
      +            "anyOf": [
      +              {
      +                "enum": [
      +                  "payable",
      +                  "credit",
      +                  "nil"
      +                ],
      +                "type": "string"
      +              },
      +              {
      +                "type": "null"
      +              }
      +            ]
      +          },
      +          "presentation": {
      +            "enum": [
      +              "computed",
      +              "evidence_only",
      +              "incomplete"
      +            ],
      +            "type": "string"
      +          },
      +          "purchase_evidence": {
      +            "type": "boolean"
      +          },
      +          "quarter": {
      +            "type": "string"
      +          },
      +          "quarter_ended": {
      +            "type": "boolean"
      +          },
      +          "sales_evidence": {
      +            "type": "boolean"
      +          }
      +        },
      +        "required": [
      +          "quarter",
      +          "basis",
      +          "months_in_window",
      +          "quarter_ended",
      +          "entries",
      +          "documents",
      +          "deductible",
      +          "collected",
      +          "net",
      +          "position",
      +          "sales_evidence",
      +          "purchase_evidence",
      +          "presentation"
      +        ],
      +        "type": "object"
      +      },
      +      "type": "array"
      +    }
      +  },
      +  "required": [
      +    "quarters",
      +    "counts",
      +    "excluded"
      +  ],
      +  "type": "object"
      +}
    • changedOutput schema / properties / workspaces / items / properties / status / description
      Previous value: -"Where the call ended. Only `ok` carries figures. `no_posted_entries` is not a nil return."New value: +"Where the call ended. `ok` carries figures; `no_posted_entries` and `no_vat_found` are not nil returns."
    • changedOutput schema / properties / workspaces / items / properties / status / enum
      Previous value: -[
      -  "ok",
      -  "no_posted_entries",
      -  "unsupported_jurisdiction",
      -  "invalid_period",
      -  "range_too_large",
      -  "failed"
      -]New value: +[
      +  "ok",
      +  "no_vat_found",
      +  "no_posted_entries",
      +  "unsupported_jurisdiction",
      +  "invalid_period",
      +  "range_too_large",
      +  "failed"
      +]
  10. Changed7 schema fields changed
    • addedInput schema / properties / scope
      Added value: +{
      +  "description": "Which workspaces the read covers. Omit it for the workspace the call runs in. \"my_companies\" reads every company workspace of the person's family, one block each, and runs on WhatsApp only.",
      +  "enum": [
      +    "this_workspace",
      +    "my_companies"
      +  ],
      +  "type": "string"
      +}
    • addedInput schema / properties / workspace_scope
      Added value: +{
      +  "description": "Restrict this call to the family: the token's primary workspace plus the company workspaces under it that you are a member of. Unrelated authorized workspaces drop out of the read; row reads merge across the family, while a per-workspace figure still reports exactly one workspace.",
      +  "enum": [
      +    "family"
      +  ],
      +  "type": "string"
      +}
    • addedOutput schema / properties / filing
      Added value: +{
      +  "anyOf": [
      +    {
      +      "additionalProperties": false,
      +      "properties": {
      +        "cadence": {
      +          "description": "The table's cadence for the legal form, assuming the normal real regime. Not the person's regime.",
      +          "enum": [
      +            "monthly",
      +            "quarterly",
      +            "annual"
      +          ],
      +          "type": "string"
      +        },
      +        "declaration_id": {
      +          "description": "The obligation table's stable id, such as `fr-vat-ca3`.",
      +          "type": "string"
      +        },
      +        "due_rule": {
      +          "anyOf": [
      +            {
      +              "additionalProperties": false,
      +              "properties": {
      +                "first_day": {
      +                  "maximum": 9007199254740991,
      +                  "minimum": -9007199254740991,
      +                  "type": "integer"
      +                },
      +                "last_day": {
      +                  "maximum": 9007199254740991,
      +                  "minimum": -9007199254740991,
      +                  "type": "integer"
      +                },
      +                "source": {
      +                  "description": "Where the rule is published. Name it beside any date taken from the rule.",
      +                  "type": "string"
      +                }
      +              },
      +              "required": [
      +                "first_day",
      +                "last_day",
      +                "source"
      +              ],
      +              "type": "object"
      +            },
      +            {
      +              "type": "null"
      +            }
      +          ],
      +          "description": "The published rule: filed in the month after the period, on one day the administration sets per company between `first_day` and `last_day`. Null when the table carries no rule."
      +        },
      +        "due_window": {
      +          "anyOf": [
      +            {
      +              "additionalProperties": false,
      +              "properties": {
      +                "from": {
      +                  "type": "string"
      +                },
      +                "to": {
      +                  "type": "string"
      +                }
      +              },
      +              "required": [
      +                "from",
      +                "to"
      +              ],
      +              "type": "object"
      +            },
      +            {
      +              "type": "null"
      +            }
      +          ],
      +          "description": "The days `due_rule` gives for this read's window, as YYYY-MM-DD. Null when there is no rule, and when the window is not exactly one month or one calendar quarter, because a date then belongs to no single return."
      +        },
      +        "label": {
      +          "type": "string"
      +        }
      +      },
      +      "required": [
      +        "declaration_id",
      +        "label",
      +        "cadence",
      +        "due_rule",
      +        "due_window"
      +      ],
      +      "type": "object"
      +    },
      +    {
      +      "type": "null"
      +    }
      +  ],
      +  "description": "The VAT return the obligation table assigns to the own company, or null when it assigns none. Well stores no regime and no deadline."
      +}
    • addedOutput schema / properties / scope
      Added value: +{
      +  "description": "Set on a `my_companies` read, whose figures are in `workspaces` and never at the top level.",
      +  "enum": [
      +    "this_workspace",
      +    "my_companies"
      +  ],
      +  "type": "string"
      +}
    • addedOutput schema / properties / workspaces
      Added value: +{
      +  "description": "One block per company workspace of the person's family, family root first. Each carries its own status and figures. Never add two blocks together.",
      +  "items": {
      +    "additionalProperties": false,
      +    "properties": {
      +      "anomalies": {
      +        "additionalProperties": false,
      +        "properties": {
      +          "items": {
      +            "items": {
      +              "additionalProperties": false,
      +              "properties": {
      +                "customer": {
      +                  "anyOf": [
      +                    {
      +                      "additionalProperties": false,
      +                      "description": "The receiver of a sale. Null on a purchase.",
      +                      "properties": {
      +                        "company_id": {
      +                          "type": "string"
      +                        },
      +                        "domain": {
      +                          "anyOf": [
      +                            {
      +                              "type": "string"
      +                            },
      +                            {
      +                              "type": "null"
      +                            }
      +                          ]
      +                        },
      +                        "name": {
      +                          "type": "string"
      +                        }
      +                      },
      +                      "required": [
      +                        "company_id",
      +                        "name",
      +                        "domain"
      +                      ],
      +                      "type": "object"
      +                    },
      +                    {
      +                      "type": "null"
      +                    }
      +                  ]
      +                },
      +                "direction": {
      +                  "description": "`purchase` names a supplier, `sales` names a customer, `unanchored` has neither.",
      +                  "enum": [
      +                    "purchase",
      +                    "sales",
      +                    "unanchored"
      +                  ],
      +                  "type": "string"
      +                },
      +                "invoice_id": {
      +                  "type": "string"
      +                },
      +                "invoice_number": {
      +                  "anyOf": [
      +                    {
      +                      "type": "string"
      +                    },
      +                    {
      +                      "type": "null"
      +                    }
      +                  ]
      +                },
      +                "issue_date": {
      +                  "anyOf": [
      +                    {
      +                      "type": "string"
      +                    },
      +                    {
      +                      "type": "null"
      +                    }
      +                  ]
      +                },
      +                "label": {
      +                  "description": "Supplier, invoice number and date. Name the invoice by this.",
      +                  "type": "string"
      +                },
      +                "reasons": {
      +                  "items": {
      +                    "enum": [
      +                      "line_without_vat_rate",
      +                      "supplier_unattributed"
      +                    ],
      +                    "type": "string"
      +                  },
      +                  "type": "array"
      +                },
      +                "supplier": {
      +                  "anyOf": [
      +                    {
      +                      "additionalProperties": false,
      +                      "description": "The issuer of a purchase. Null on a sale.",
      +                      "properties": {
      +                        "company_id": {
      +                          "type": "string"
      +                        },
      +                        "domain": {
      +                          "anyOf": [
      +                            {
      +                              "type": "string"
      +                            },
      +                            {
      +                              "type": "null"
      +                            }
      +                          ]
      +                        },
      +                        "name": {
      +                          "type": "string"
      +                        }
      +                      },
      +                      "required": [
      +                        "company_id",
      +                        "name",
      +                        "domain"
      +                      ],
      +                      "type": "object"
      +                    },
      +                    {
      +                      "type": "null"
      +                    }
      +                  ]
      +                },
      +                "unrated_line_count": {
      +                  "maximum": 9007199254740991,
      +                  "minimum": -9007199254740991,
      +                  "type": "integer"
      +                }
      +              },
      +              "required": [
      +                "invoice_id",
      +                "label",
      +                "direction",
      +                "invoice_number",
      +                "issue_date",
      +                "supplier",
      +                "customer",
      +                "reasons",
      +                "unrated_line_count"
      +              ],
      +              "type": "object"
      +            },
      +            "type": "array"
      +          },
      +          "limit": {
      +            "maximum": 9007199254740991,
      +            "minimum": -9007199254740991,
      +            "type": "integer"
      +          },
      +          "returned": {
      +            "maximum": 9007199254740991,
      +            "minimum": -9007199254740991,
      +            "type": "integer"
      +          },
      +          "total": {
      +            "maximum": 9007199254740991,
      +            "minimum": -9007199254740991,
      +            "type": "integer"
      +          },
      +          "total_by_reason": {
      +            "additionalProperties": false,
      +            "properties": {
      +              "line_without_vat_rate": {
      +                "maximum": 9007199254740991,
      +                "minimum": -9007199254740991,
      +                "type": "integer"
      +              },
      +              "supplier_unattributed": {
      +                "maximum": 9007199254740991,
      +                "minimum": -9007199254740991,
      +                "type": "integer"
      +              }
      +            },
      +            "required": [
      +              "line_without_vat_rate",
      +              "supplier_unattributed"
      +            ],
      +            "type": "object"
      +          },
      +          "truncated": {
      +            "type": "boolean"
      +          }
      +        },
      +        "required": [
      +          "items",
      +          "returned",
      +          "limit",
      +          "total",
      +          "truncated",
      +          "total_by_reason"
      +        ],
      +        "type": "object"
      +      },
      +      "ca3": {
      +        "additionalProperties": false,
      +        "properties": {
      +          "blocking_reasons": {
      +            "items": {
      +              "enum": [
      +                "unattributed_collected_vat",
      +                "unattributed_deductible_vat",
      +                "unmapped_rate_percent",
      +                "directionless_taxable_base"
      +              ],
      +              "type": "string"
      +            },
      +            "type": "array"
      +          },
      +          "complete": {
      +            "type": "boolean"
      +          },
      +          "rates": {
      +            "items": {
      +              "additionalProperties": false,
      +              "properties": {
      +                "collected": {
      +                  "additionalProperties": false,
      +                  "properties": {
      +                    "base": {
      +                      "description": "A decimal amount in major units of `currency`, always two decimals, such as `5000.00`. State it as returned.",
      +                      "pattern": "^-?\\d+\\.\\d{2}$",
      +                      "type": "string"
      +                    },
      +                    "tax": {
      +                      "description": "A decimal amount in major units of `currency`, always two decimals, such as `5000.00`. State it as returned.",
      +                      "pattern": "^-?\\d+\\.\\d{2}$",
      +                      "type": "string"
      +                    }
      +                  },
      +                  "required": [
      +                    "base",
      +                    "tax"
      +                  ],
      +                  "type": "object"
      +                },
      +                "deductible": {
      +                  "additionalProperties": false,
      +                  "properties": {
      +                    "base": {
      +                      "description": "A decimal amount in major units of `currency`, always two decimals, such as `5000.00`. State it as returned.",
      +                      "pattern": "^-?\\d+\\.\\d{2}$",
      +                      "type": "string"
      +                    },
      +                    "tax": {
      +                      "description": "A decimal amount in major units of `currency`, always two decimals, such as `5000.00`. State it as returned.",
      +                      "pattern": "^-?\\d+\\.\\d{2}$",
      +                      "type": "string"
      +                    }
      +                  },
      +                  "required": [
      +                    "base",
      +                    "tax"
      +                  ],
      +                  "type": "object"
      +                },
      +                "directionless_base": {
      +                  "description": "A decimal amount in major units of `currency`, always two decimals, such as `5000.00`. State it as returned.",
      +                  "pattern": "^-?\\d+\\.\\d{2}$",
      +                  "type": "string"
      +                },
      +                "rate_percent": {
      +                  "type": "string"
      +                },
      +                "slot": {
      +                  "enum": [
      +                    "rate_2_1",
      +                    "rate_5_5",
      +                    "rate_10",
      +                    "rate_20"
      +                  ],
      +                  "type": "string"
      +                }
      +              },
      +              "required": [
      +                "slot",
      +                "rate_percent",
      +                "collected",
      +                "deductible",
      +                "directionless_base"
      +              ],
      +              "type": "object"
      +            },
      +            "type": "array"
      +          },
      +          "reverse_charge": {
      +            "items": {
      +              "additionalProperties": false,
      +              "properties": {
      +                "base": {
      +                  "description": "A decimal amount in major units of `currency`, always two decimals, such as `5000.00`. State it as returned.",
      +                  "pattern": "^-?\\d+\\.\\d{2}$",
      +                  "type": "string"
      +                },
      +                "rate_percent": {
      +                  "type": "string"
      +                },
      +                "self_assessed_credit": {
      +                  "description": "A decimal amount in major units of `currency`, always two decimals, such as `5000.00`. State it as returned.",
      +                  "pattern": "^-?\\d+\\.\\d{2}$",
      +                  "type": "string"
      +                },
      +                "self_assessed_debit": {
      +                  "description": "A decimal amount in major units of `currency`, always two decimals, such as `5000.00`. State it as returned.",
      +                  "pattern": "^-?\\d+\\.\\d{2}$",
      +                  "type": "string"
      +                },
      +                "slot": {
      +                  "enum": [
      +                    "rate_2_1",
      +                    "rate_5_5",
      +                    "rate_10",
      +                    "rate_20"
      +                  ],
      +                  "type": "string"
      +                }
      +              },
      +              "required": [
      +                "slot",
      +                "rate_percent",
      +                "base",
      +                "self_assessed_debit",
      +                "self_assessed_credit"
      +              ],
      +              "type": "object"
      +            },
      +            "type": "array"
      +          },
      +          "unmapped": {
      +            "items": {
      +              "oneOf": [
      +                {
      +                  "additionalProperties": false,
      +                  "properties": {
      +                    "base": {
      +                      "description": "A decimal amount in major units of `currency`, always two decimals, such as `5000.00`. State it as returned.",
      +                      "pattern": "^-?\\d+\\.\\d{2}$",
      +                      "type": "string"
      +                    },
      +                    "rate_percent": {
      +                      "type": "string"
      +                    },
      +                    "source": {
      +                      "const": "rates",
      +                      "type": "string"
      +                    },
      +                    "tax": {
      +                      "description": "A decimal amount in major units of `currency`, always two decimals, such as `5000.00`. State it as returned.",
      +                      "pattern": "^-?\\d+\\.\\d{2}$",
      +                      "type": "string"
      +                    }
      +                  },
      +                  "required": [
      +                    "source",
      +                    "rate_percent",
      +                    "base",
      +                    "tax"
      +                  ],
      +                  "type": "object"
      +                },
      +                {
      +                  "additionalProperties": false,
      +                  "properties": {
      +                    "base": {
      +                      "description": "A decimal amount in major units of `currency`, always two decimals, such as `5000.00`. State it as returned.",
      +                      "pattern": "^-?\\d+\\.\\d{2}$",
      +                      "type": "string"
      +                    },
      +                    "rate_percent": {
      +                      "type": "string"
      +                    },
      +                    "self_assessed_credit": {
      +                      "description": "A decimal amount in major units of `currency`, always two decimals, such as `5000.00`. State it as returned.",
      +                      "pattern": "^-?\\d+\\.\\d{2}$",
      +                      "type": "string"
      +                    },
      +                    "self_assessed_debit": {
      +                      "description": "A decimal amount in major units of `currency`, always two decimals, such as `5000.00`. State it as returned.",
      +                      "pattern": "^-?\\d+\\.\\d{2}$",
      +                      "type": "string"
      +                    },
      +                    "source": {
      +                      "const": "reverse_charge",
      +                      "type": "string"
      +                    }
      +                  },
      +                  "required": [
      +                    "source",
      +                    "rate_percent",
      +                    "base",
      +                    "self_assessed_debit",
      +                    "self_assessed_credit"
      +                  ],
      +                  "type": "object"
      +                }
      +              ]
      +            },
      +            "type": "array"
      +          }
      +        },
      +        "required": [
      +          "rates",
      +          "reverse_charge",
      +          "unmapped",
      +          "blocking_reasons",
      +          "complete"
      +        ],
      +        "type": "object"
      +      },
      +      "company_name": {
      +        "anyOf": [
      +          {
      +            "type": "string"
      +          },
      +          {
      +            "type": "null"
      +          }
      +        ],
      +        "description": "The workspace's own company, or null when none is set."
      +      },
      +      "country_code": {
      +        "anyOf": [
      +          {
      +            "type": "string"
      +          },
      +          {
      +            "type": "null"
      +          }
      +        ],
      +        "description": "The workspace's accounting country. Set on `ok` and on `unsupported_jurisdiction`; null when none is configured."
      +      },
      +      "currency": {
      +        "description": "ISO-4217 code every amount below is denominated in.",
      +        "type": "string"
      +      },
      +      "error": {
      +        "type": "string"
      +      },
      +      "filing": {
      +        "anyOf": [
      +          {
      +            "additionalProperties": false,
      +            "properties": {
      +              "cadence": {
      +                "description": "The table's cadence for the legal form, assuming the normal real regime. Not the person's regime.",
      +                "enum": [
      +                  "monthly",
      +                  "quarterly",
      +                  "annual"
      +                ],
      +                "type": "string"
      +              },
      +              "declaration_id": {
      +                "description": "The obligation table's stable id, such as `fr-vat-ca3`.",
      +                "type": "string"
      +              },
      +              "due_rule": {
      +                "anyOf": [
      +                  {
      +                    "additionalProperties": false,
      +                    "properties": {
      +                      "first_day": {
      +                        "maximum": 9007199254740991,
      +                        "minimum": -9007199254740991,
      +                        "type": "integer"
      +                      },
      +                      "last_day": {
      +                        "maximum": 9007199254740991,
      +                        "minimum": -9007199254740991,
      +                        "type": "integer"
      +                      },
      +                      "source": {
      +                        "description": "Where the rule is published. Name it beside any date taken from the rule.",
      +                        "type": "string"
      +                      }
      +                    },
      +                    "required": [
      +                      "first_day",
      +                      "last_day",
      +                      "source"
      +                    ],
      +                    "type": "object"
      +                  },
      +                  {
      +                    "type": "null"
      +                  }
      +                ],
      +                "description": "The published rule: filed in the month after the period, on one day the administration sets per company between `first_day` and `last_day`. Null when the table carries no rule."
      +              },
      +              "due_window": {
      +                "anyOf": [
      +                  {
      +                    "additionalProperties": false,
      +                    "properties": {
      +                      "from": {
      +                        "type": "string"
      +                      },
      +                      "to": {
      +                        "type": "string"
      +                      }
      +                    },
      +                    "required": [
      +                      "from",
      +                      "to"
      +                    ],
      +                    "type": "object"
      +                  },
      +                  {
      +                    "type": "null"
      +                  }
      +                ],
      +                "description": "The days `due_rule` gives for this read's window, as YYYY-MM-DD. Null when there is no rule, and when the window is not exactly one month or one calendar quarter, because a date then belongs to no single return."
      +              },
      +              "label": {
      +                "type": "string"
      +              }
      +            },
      +            "required": [
      +              "declaration_id",
      +              "label",
      +              "cadence",
      +              "due_rule",
      +              "due_window"
      +            ],
      +            "type": "object"
      +          },
      +          {
      +            "type": "null"
      +          }
      +        ],
      +        "description": "The VAT return the obligation table assigns to the own company, or null when it assigns none. Well stores no regime and no deadline."
      +      },
      +      "months": {
      +        "items": {
      +          "additionalProperties": false,
      +          "properties": {
      +            "collected": {
      +              "description": "A decimal amount in major units of `currency`, always two decimals, such as `5000.00`. State it as returned.",
      +              "pattern": "^-?\\d+\\.\\d{2}$",
      +              "type": "string"
      +            },
      +            "deductible": {
      +              "description": "A decimal amount in major units of `currency`, always two decimals, such as `5000.00`. State it as returned.",
      +              "pattern": "^-?\\d+\\.\\d{2}$",
      +              "type": "string"
      +            },
      +            "entry_count": {
      +              "maximum": 9007199254740991,
      +              "minimum": -9007199254740991,
      +              "type": "integer"
      +            },
      +            "fiscal_period": {
      +              "maximum": 9007199254740991,
      +              "minimum": -9007199254740991,
      +              "type": "integer"
      +            },
      +            "fiscal_year": {
      +              "maximum": 9007199254740991,
      +              "minimum": -9007199254740991,
      +              "type": "integer"
      +            },
      +            "month_ended": {
      +              "type": "boolean"
      +            },
      +            "net": {
      +              "description": "A decimal amount in major units of `currency`, always two decimals, such as `5000.00`. State it as returned.",
      +              "pattern": "^-?\\d+\\.\\d{2}$",
      +              "type": "string"
      +            },
      +            "period": {
      +              "description": "The calendar month, YYYY-MM.",
      +              "type": "string"
      +            },
      +            "reverse_charge": {
      +              "description": "A decimal amount in major units of `currency`, always two decimals, such as `5000.00`. State it as returned.",
      +              "pattern": "^-?\\d+\\.\\d{2}$",
      +              "type": "string"
      +            },
      +            "unattributed_collected": {
      +              "description": "A decimal amount in major units of `currency`, always two decimals, such as `5000.00`. State it as returned.",
      +              "pattern": "^-?\\d+\\.\\d{2}$",
      +              "type": "string"
      +            },
      +            "unattributed_deductible": {
      +              "description": "A decimal amount in major units of `currency`, always two decimals, such as `5000.00`. State it as returned.",
      +              "pattern": "^-?\\d+\\.\\d{2}$",
      +              "type": "string"
      +            },
      +            "unmapped_rate_tax": {
      +              "description": "A decimal amount in major units of `currency`, always two decimals, such as `5000.00`. State it as returned.",
      +              "pattern": "^-?\\d+\\.\\d{2}$",
      +              "type": "string"
      +            }
      +          },
      +          "required": [
      +            "period",
      +            "fiscal_year",
      +            "fiscal_period",
      +            "month_ended",
      +            "collected",
      +            "deductible",
      +            "net",
      +            "reverse_charge",
      +            "unattributed_collected",
      +            "unattributed_deductible",
      +            "unmapped_rate_tax",
      +            "entry_count"
      +          ],
      +          "type": "object"
      +        },
      +        "type": "array"
      +      },
      +      "status": {
      +        "description": "Where the call ended. Only `ok` carries figures. `no_posted_entries` is not a nil return.",
      +        "enum": [
      +          "ok",
      +          "no_posted_entries",
      +          "unsupported_jurisdiction",
      +          "invalid_period",
      +          "range_too_large",
      +          "failed"
      +        ],
      +        "type": "string"
      +      },
      +      "success": {
      +        "description": "True only when `status` is `ok`.",
      +        "type": "boolean"
      +      },
      +      "supported_country_codes": {
      +        "description": "Set on `unsupported_jurisdiction`: the countries this read models.",
      +        "items": {
      +          "type": "string"
      +        },
      +        "type": "array"
      +      },
      +      "totals": {
      +        "additionalProperties": false,
      +        "properties": {
      +          "collected": {
      +            "description": "A decimal amount in major units of `currency`, always two decimals, such as `5000.00`. State it as returned.",
      +            "pattern": "^-?\\d+\\.\\d{2}$",
      +            "type": "string"
      +          },
      +          "deductible": {
      +            "description": "A decimal amount in major units of `currency`, always two decimals, such as `5000.00`. State it as returned.",
      +            "pattern": "^-?\\d+\\.\\d{2}$",
      +            "type": "string"
      +          },
      +          "net_due": {
      +            "description": "A decimal amount in major units of `currency`, always two decimals, such as `5000.00`. State it as returned.",
      +            "pattern": "^-?\\d+\\.\\d{2}$",
      +            "type": "string"
      +          },
      +          "position": {
      +            "enum": [
      +              "payable",
      +              "credit",
      +              "nil"
      +            ],
      +            "type": "string"
      +          },
      +          "reverse_charge": {
      +            "description": "A decimal amount in major units of `currency`, always two decimals, such as `5000.00`. State it as returned.",
      +            "pattern": "^-?\\d+\\.\\d{2}$",
      +            "type": "string"
      +          },
      +          "unattributed_collected": {
      +            "description": "A decimal amount in major units of `currency`, always two decimals, such as `5000.00`. State it as returned.",
      +            "pattern": "^-?\\d+\\.\\d{2}$",
      +            "type": "string"
      +          },
      +          "unattributed_deductible": {
      +            "description": "A decimal amount in major units of `currency`, always two decimals, such as `5000.00`. State it as returned.",
      +            "pattern": "^-?\\d+\\.\\d{2}$",
      +            "type": "string"
      +          }
      +        },
      +        "required": [
      +          "collected",
      +          "deductible",
      +          "net_due",
      +          "position",
      +          "reverse_charge",
      +          "unattributed_collected",
      +          "unattributed_deductible"
      +        ],
      +        "type": "object"
      +      },
      +      "window": {
      +        "additionalProperties": false,
      +        "properties": {
      +          "from": {
      +            "type": "string"
      +          },
      +          "to": {
      +            "type": "string"
      +          }
      +        },
      +        "required": [
      +          "from",
      +          "to"
      +        ],
      +        "type": "object"
      +      },
      +      "workspace_id": {
      +        "type": "string"
      +      },
      +      "workspace_name": {
      +        "type": "string"
      +      }
      +    },
      +    "required": [
      +      "workspace_id",
      +      "workspace_name",
      +      "company_name",
      +      "status",
      +      "success"
      +    ],
      +    "type": "object"
      +  },
      +  "type": "array"
      +}
    • addedOutput schema / properties / workspaces_truncated
      Added value: +{
      +  "description": "True when the family holds more than 10 company workspaces and the rest are not read.",
      +  "type": "boolean"
      +}
    • addedOutput schema / properties / workspaces_unreadable
      Added value: +{
      +  "description": "How many company workspaces of the family could not be checked or read because a lookup failed. They are not named and their position is unknown, not nil. Above zero, never say the person has no company workspace.",
      +  "maximum": 9007199254740991,
      +  "minimum": -9007199254740991,
      +  "type": "integer"
      +}
  11. Changed1 schema field changed
    • addedOutput schema / properties / newly_connected
      Added value: +{
      +  "description": "Tools that connected to this workspace since the last result and that no session was told about yet, oldest first. Present only when at least one tool is new. Start the reply with one line per entry, in the person's language: \"<name> is connected.\". Never fold several entries into one sentence. Each entry comes back once, on one result only: never repeat its line later.",
      +  "items": {
      +    "additionalProperties": false,
      +    "properties": {
      +      "name": {
      +        "type": "string"
      +      },
      +      "service_id": {
      +        "type": "string"
      +      }
      +    },
      +    "required": [
      +      "name",
      +      "service_id"
      +    ],
      +    "type": "object"
      +  },
      +  "type": "array"
      +}
  12. Added

TDQS

A4.6/5.0
Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations only declare readOnly/openWorld/destructive, so the description carries most of the burden and does: debit basis vs receipts basis, what is excluded and counted rather than summed, refusal statuses (`invalid_period`, `range_too_large` at 5000 entries, `failed`), and the fallback from posted to possibilities when nothing is posted. It even warns that the figure can differ from a filed return. No contradiction with annotations.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness2/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The critical material (purpose, use cases, exclusions) is front-loaded and bold headers segment the rest, but the description runs to many thousands of words with long run-on paragraphs. A large share is output-rendering and wording policy ("never use « validé »", how to phrase `pending` Pennylane buckets, how to relay `not_ours_note`) rather than anything needed to select or invoke the tool, and several points are restated.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the tool's complexity — two evidence bases, multi-workspace scope, French CA3 versus unmapped jurisdictions, currency exclusions — nothing an agent needs in order to call it or interpret a block is missing. The return-value detail exceeds what the output schema requires, but it is present, not a gap.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100%, so the baseline is 3, but the description adds real meaning: the whole-month rule with a worked example (Q2 2026 = `2026-04-01` to `2026-07-01`), the both-or-neither rule per basis, and the `invalid_period`/`range_too_large` consequences for bad bounds. It adds less for `anomaly_limit`, `conversation_id` and `workspace_scope`, which are largely restated.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The first sentence names a specific verb and resource (read the VAT position of a workspace over a window of whole months) and specifies the grouping key (entry/invoice date) and the three shapes of the answer (per month, CA3 by rate, totals). It explicitly distinguishes itself from siblings: "Do not use it to sum invoices (`well_sum_invoices`) or to browse journal entries (`well_query_records`)." An agent can route correctly without opening the schema.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines5/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Concrete trigger questions are given ("what is my VAT this quarter", "how much VAT can I deduct", "is my VAT return ready", "which invoices are hurting my VAT"), plus named alternatives for the cases it is not for. It also states when to pick `basis: "possibilities"` versus `posted`, and when `scope: "my_companies"` applies. When-not guidance is unusually explicit.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

Try in Browser

Glama MCP Gateway

Add one secure layer between your agents and this server.

Resources