Skip to content

Changelog 2026-08-17

E-invoicing lands in the API, and Altoviz is now reachable from your terminal, your automation platform, and your AI assistant.

The 2026 French e-invoicing reform is now visible through the API.

Invoices carry their platform status:

  • eInvoicingStatus — where the document stands on the network, from ApiUploaded to FrAccepted, FrDisputed or FrPaymentReceived (55+ status codes covering the API, PDP, PPF and Altoviz-side lifecycles)
  • eInvoicingInvoiceId — the identifier assigned by the platform
  • eInvoicingProviderId — the PDP that handles the document

Settings expose a new eInvoicing section so you can drive the whole flow:

  • profileStandard or Advanced
  • autoSubmitInvoicesOnFinalize and validateBeforeSubmit
  • autoAcknowledgeReceivedInvoices and autoProcessTerminalStatuses
  • autoEmitPaymentSent, autoEmitPaymentReceived and autoCreateReceiptFromIncomingPayment
  • autoSendEReporting
  • includeTextLinesInXml

And two companions: sales.customersLiableToEInvoicing, plus an e-invoicing readiness report already available since June.

Finalizing is irreversible, and a rejected e-invoice is a bad way to find out something was missing. Two new endpoints let you ask first:

  • POST /v1/SaleInvoices/CheckEInvoicing/{id}
  • POST /v1/SaleCredits/CheckEInvoicing/{id}

They render the Factur-X / CII e-invoice, submit it to the platform’s validator, and return the findings. Nothing is finalized, nothing is transmitted.

The result gives you three ways to read the outcome:

  • isValid — the verdict, and the one to trust: a document can be non-conformant while every finding is only a warning, because the French BR-FR rules are reported as warnings
  • findings — structured entries with a severity (Error, Warning), a source telling you where to fix it (Application, Directory, Platform), a French text, and, when the platform reported one, the location in the generated XML and the validator name
  • messages — the same findings flattened to one-line strings, for a quick display

Draft documents only: a finalized one returns 409.

Documents now tell the full story of their own lifecycle.

On invoices:

  • cancelledCreditId / cancelledCreditNumber — the credit this invoice was issued to offset

On credits:

  • isCancelled and cancellationInvoiceId / cancellationInvoiceNumber — the invoice that cancelled this credit
  • replacedBy — the corrected credit that supersedes this one

GET /v1/SaleInvoices and GET /v1/SaleCredits gained two tri-state filters built on the new InclusionFilter type — Excluded (the default when the parameter is omitted), Only, or All:

  • Cancelled — hide, isolate, or include cancelled documents
  • Processed — same, for documents whose terminal e-invoicing status has been taken into account

⚠️ Breaking change: the boolean IncludeCancelled parameter on GET /v1/SaleInvoices is gone. Replace IncludeCancelled=true with Cancelled=All.

Paying an invoice or refunding a credit can finalize it on the fly. You now decide which date it gets:

  • finalizationDate — the date the document is finalized on, defaulting to the document’s own date, and distinct from the payment or refund date
  • dateAdjustmentNone, MinimumDate, or Today, to let the API pick a valid date for you

Both are available on the request bodies of POST /v1/SaleInvoices/MarkAsPaid and POST /v1/SaleCredits/MarkAsRefunded, and as query parameters on POST /v1/SaleInvoices/Finalize/{id} and POST /v1/SaleCredits/Finalize/{id}.

Two new read-only endpoints for home-care businesses:

  • GET /v1/HomecareServices/activities — the SAP activities, each with the TSA group it belongs to
  • GET /v1/HomecareServices/tsa-groups — the TSA groups (regroupements)
  • vat.vatRegimeFranchise, Simplified or Normal
  • company.summaryHtml — the rich company description
  • general.autoCollapseMenu
  • Email styling got finer grained: textColor, outerColor, buttonColor and buttonTextColor replace the single foreColor
  • Suppliers now have an active flag, like customers

⚠️ Breaking change: Annually was removed from VatDeclarationPeriodicity. Only Monthly and Quarterly remain.

altoviz is a self-contained CLI wrapping the REST API — customers, suppliers, invoices, quotes, products, receipts, and more, without leaving the shell.

  • No runtime required: a single binary for macOS, Linux and Windows
  • 9 output formats: table, JSON (pretty, compact or colored), YAML, Markdown, CSV (European or American) and TSV
  • Shell completions for bash, zsh, fish and PowerShell
  • Auth via environment variable, config file or --api-key
  • Scriptable: pipe JSON in with --file -, pick columns with --columns, page through with --all-pages

One command line can often solve daily life problems

Terminal window
# Fetch a single customer as JSON
altoviz customer get 42 --output json
# Export this year's invoices to CSV
altoviz export invoices --from 2026-01-01 --to 2026-12-31 --format EuropeanCsv --out invoices.csv

Install it with Homebrew, Chocolatey, WinGet, the Debian and Fedora packages, or the one-liner installer.

The Altoviz MCP Server connects ChatGPT, Claude, VS Code, Cursor or any other Model Context Protocol client straight to your account. It is remote — nothing to install.

  • Server URL: https://mcp.altoviz.com
  • Transport: Streamable HTTP and SSE
  • Authentication: OAuth 2.0, signing in with your Altoviz API key

It covers invoicing, contacts, catalogue, expenses, statistics, exports and webhooks, and it is listed in the official MCP Registry.

Automation guides are here for the three major platforms — Zapier, Make and n8n. Altoviz is the first French invoicing app for small businesses to integrate with all three.