Keep your users updated as your project evolves
Idempotency upgrade and full REST rollout
Every documented POST endpoint now accepts an Idempotency-Key header (up to
255 characters). Reusing a key with a different request returns 422 idempotency_key_conflict (aligned with the IETF specification), retrying while
the initial request is still running returns 409 idempotency_in_progress, and
keys exceeding 255 characters return 400 invalid_idempotency_key.
A response is now cached once action execution begins, including 4xx domain
refusals and 5xx server errors. Replays are returned byte-for-byte with
Idempotent-Replayed: true and X-Original-Request-Id. Browser CORS preflights
(OPTIONS) allow Idempotency-Key.
Added: MCP lifecycle tools for proformas, credit notes and quotes
AI agents can now manage the lifecycle of proforma invoices, credit notes, and price quotes over MCP:
- Proformas:
lucanto_issue_proforma,lucanto_send_proforma,lucanto_mark_proforma_paid,lucanto_cancel_proforma,lucanto_lock_proforma, andlucanto_reopen_proforma. - Credit notes:
lucanto_issue_credit_note,lucanto_send_credit_note,lucanto_lock_credit_note, andlucanto_reopen_credit_note. - Quotes:
lucanto_send_quote,lucanto_mark_quote_sent,lucanto_accept_quote,lucanto_reject_quote,lucanto_lock_quote, andlucanto_reopen_quote.
All lifecycle tools require their respective manage:<resource> scope and
mirror the permissions and validation rules enforced by the REST API.
Added: MCP expense document uploads and extraction status
Agents can now ingest incoming receipts and invoices directly into Lucanto:
lucanto_prepare_expense_uploadsgenerates direct curl upload slots for agents capable of running shell commands.lucanto_upload_expense_documentsaccepts file attachments or base64 payloads for clients that support tool file parameters.lucanto_get_expense_extraction_statustracks async OCR and AI extraction progress and returns extracted vendor, date, and amount summaries.lucanto_open_expense_uploadrenders an interactive file upload panel in MCP Apps-compatible chat clients.
Added: MCP destructive action hints
MCP tools that cannot be undone or that contact external parties now declare
destructiveHint: true. This covers document deletion, cancellations, sending
emails to customers (lucanto_send_*), manual payment recordings, and bank
transaction corrections (lucanto_correct_transaction). MCP clients supporting
the hint prompt users before executing these tools.
Expanded: European company register lookup
GET /registry/lookup and the MCP tool lucanto_lookup_company now support
business registers across four additional countries:
- Germany (DE): OpenRegister by registration number or company name.
- United Kingdom (GB): Companies House by registration number or company name.
- Switzerland (CH): Swiss UID register by registration number or company name.
- Poland (PL): GUS REGON by NIP, REGON, or KRS.
Added: MCP company register verification and profile updates
Three new MCP tools allow agents to verify and update workspace organization details:
lucanto_get_company_register_checkinspects discrepancies detected between workspace company data and national registers.lucanto_dismiss_company_register_checkdismisses register discrepancy alerts.lucanto_update_company_profileupdates legal details and SK NACE business classification codes.
Added: expense payments and VAT calculation mode
POST /workspaces/{workspace_id}/expenses/{id}/mark_paid is now available on
the REST API to record manual payments against expenses.
Expenses also support vat_calculation_mode (vat_from_gross and
vat_from_net) over REST and MCP, allowing accurate line-item and VAT
computations matching physical receipts and gross cash register documents.
Added: bank statement editing and comparison
Bank statements accept period_from and period_to updates via PATCH on REST
and via lucanto_update_bank_statement over MCP. Bank statements on accounts
with active bank feeds now include comparison metadata (reconciliation_mode,
comparison) to reconcile feed transactions against uploaded statements.
Added: Ukrainian document language
uk is now supported as a document language (pdf_language,
default_pdf_language) and user interface language. Rendered PDFs, notification
emails, and invoice templates can now be generated in Ukrainian.
Changed: prefixed public IDs across API endpoints
All API URL path parameters that accept a record ID now accept string public IDs
(such as inv_..., exp_..., ba_..., tx_...) interchangeably with numeric
database IDs.
