Factuarea APIDevelopers

What’s changing at Factuarea.

Releases, contract changes and tooling updates for your integration.

Added

Promotions and previous price

Put products and packs on offer with dates and channels. Reads expose the offer and the legal previous price, and price resolution takes a date, a channel and the customer of the web.

Read update

New endpoints6Preview

EndpointDescription
GET/v1/companies/{company}/promotionsList all promotions
POST/v1/companies/{company}/promotionsCreate a promotion
GET/v1/companies/{company}/promotions/{promotion}Retrieve a promotion
View all (6)

Updated endpoints67Preview

EndpointDescription
POST/v1/companies/{company}/pdf-templates/{template}/archiveArchive a PDF template
POST/v1/companies/{company}/invoices/bulk-createBulk create invoices
POST/v1/accounts/{account}/webhooksCreate an account webhook endpoint
View all (67)
Added

Packs and a common storefront for products

Packs get their own API with images and a web view, products can be published to the web with prices with and without VAT, and invoices accept pack lines with the price charged.

Read update

New endpoints12Preview

EndpointDescription
GET/v1/companies/{company}/packsList all packs
POST/v1/companies/{company}/packsCreate a pack
GET/v1/companies/{company}/packs/{pack}Retrieve a pack
View all (12)

Updated endpoints104Preview

EndpointDescription
POST/v1/companies/{company}/invoices/bulk-createBulk create invoices
POST/v1/accounts/{account}/webhooksCreate an account webhook endpoint
POST/v1/accounts/{account}/api-keysCreate an API key
View all (104)
Contract

Legal name and trade name of a company

name is the name a company is known by and business_name its legal name when it differs. Responses now follow that contract for every company, partial updates resolve against the current names and both fields accept up to 100 characters.

Read update
EndpointDescription
POST/v1/accounts/{account}/companiesRegister a tax ID in the account
PATCH/v1/accounts/{account}/companies/{company}Update a tax ID of the account
GET/v1/accounts/{account}/companies/{company}Retrieve a tax ID of the account
View all (8)
Contract

A terminated employee is read-only

Clocking in, assigning a schedule or an absence policy, approving an absence that runs past the termination date and inviting a terminated employee to the portal now return 422 with the employee_inactive subcode. The team summary lists every employee employed during the month, with or without a schedule.

Read update

Updated endpoints7Preview

EndpointDescription
POST/v1/companies/{company}/time-entries/clock-inClock in an employee
POST/v1/companies/{company}/work-schedules/{schedule}/assignAssign a schedule to an employee
POST/v1/companies/{company}/absence-policies/{absence_policy}/assignAssign a policy to employees
View all (7)
Contract

Contracted seats, offer packages and the trial

The bill follows the seats you contract: creating an employee takes a free seat, reducing takes effect at renewal with no credit and you choose who is deactivated. Four new operations set and preview the seats, the REST API and MCP buy the missing seats on their own, offer packages keep their prices while their minimums hold, and the trial answers its own reason.

Read update

New endpoints4Preview

EndpointDescription
GET/v1/accounts/{account}/additional-nif-seatsRetrieve the additional tax ID seats
PATCH/v1/accounts/{account}/additional-nif-seatsSet the contracted additional tax ID seats
PATCH/v1/accounts/{account}/employee-seatsSet the contracted employee seats
View all (4)

Updated endpoints98Preview

EndpointDescription
POST/v1/accounts/{account}/nif-transfers/acceptAccept a tax ID transfer
POST/v1/accounts/{account}/companies/activateActivate several tax IDs of the account
POST/v1/accounts/{account}/companies/{company}/activateActivate a tax ID of the account
View all (98)
Improved

Advance payments and payment date validation

A payment date earlier than the issue date is now accepted as an advance payment, and a payment date later than today answers 422. It applies to sales and expenses, to marking as paid and to registering a payment.

Read update

Updated endpoints4Preview

EndpointDescription
POST/v1/companies/{company}/invoices/{invoice}/mark-paidMark invoice as paid
POST/v1/companies/{company}/invoices/{invoice}/paymentsRegister a payment
POST/v1/companies/{company}/purchase-invoices/{purchase_invoice}/mark-paidMark expense as paid
View all (4)
Improved

Email each automatic invoice to the payer

Connected Stripe accounts accept email_invoice_to_payer, which emails every invoice Factuarea issues automatically to the address that comes with the charge. Three updated operations and one updated MCP tool.

Read update

Updated endpoints3

EndpointDescription
GET/v1/companies/{company}/connected-accountsList connected Stripe accounts
GET/v1/companies/{company}/connected-accounts/{account}Retrieve a connected Stripe account
PATCH/v1/companies/{company}/connected-accounts/{account}Update a connected Stripe account
Improved

Exemption cause coherence and recurring generation conflict

Three operations change: the invoice preview accepts an optional exemption_reason, saving or issuing an invoice with a VAT-free header cause and taxed lines answers 422 exemption_cause_contradicts_taxed_lines, and generating a recurring invoice can answer a retryable 409 recurring_presentation_activation_changed.

Read update

Updated endpoints6Preview

EndpointDescription
POST/v1/companies/{company}/pdf-template-previewsCreate a PDF template preview
POST/v1/companies/{company}/recurring-invoices/{recurring_invoice}/generateGenerate an invoice from a recurring template
PATCH/v1/companies/{company}/invoices/{invoice}Update an invoice
View all (6)
Contract

PDF template library and structured invoices

Manage PDF templates and brand identities, choose the presentation of each document, prepare exact PDF artifacts, and carry payment schedules, references and DIR3 centres on invoices. Fifty new operations, the pdf_templates scopes and a pdf_output_state block on every document.

Read update

New endpoints50Preview

EndpointDescription
POST/v1/companies/{company}/pdf-commercial-identities/{identity}/archiveArchive a PDF commercial identity
POST/v1/companies/{company}/pdf-templates/{template}/archiveArchive a PDF template
GET/v1/companies/{company}/delivery-notes/{delivery_note}/presentationGet the delivery-note presentation
View all (50)

Updated endpoints137Preview

EndpointDescription
POST/v1/companies/{company}/proformas/{proforma}/acceptAccept a proforma
POST/v1/companies/{company}/quotes/{quote}/acceptAccept a quote
POST/v1/companies/{company}/recurring-invoices/{recurring_invoice}/activateActivate recurring invoice
View all (137)
Improved

Control documents use the PDF template library

The PDF of the transport control document (DeCA) takes its design from the template library. New control documents default in PATCH /v1/companies/{company}/pdf-templates/defaults and in the MCP tool, and every version of the DeCA reports the design it was painted with in versions[].presentation.

Read update

Updated endpoints15Preview

EndpointDescription
POST/v1/companies/{company}/transport-documents/{transport_document}/cancelCancel a transport document
POST/v1/companies/{company}/transport-documents/{transport_document}/closeClose a transport document
GET/v1/companies/{company}/transport-documentsList all transport documents
View all (15)
Improved

Control document templates have their own kind

PDF templates and their revisions report document_kind (commercial or transport-document). Create and duplicate accept it, the list filters by it, and the control documents default in PATCH /v1/companies/{company}/pdf-templates/defaults only accepts templates of the transport-document kind.

Read update

Updated endpoints5Preview

EndpointDescription
POST/v1/companies/{company}/pdf-templatesCreate a PDF template
POST/v1/companies/{company}/pdf-templates/{template}/duplicateDuplicate a PDF template
GET/v1/companies/{company}/pdf-templatesList PDF templates
View all (5)
Improved

Layout options for PDF templates

PDF template configuration gains the schema_version 2 keys: header layout and logo side, lines table style and concept, legal footer, page density, font size per zone, highlight and surface colors, privacy text, general terms, optional block titles, the xl brand size and the total with tax column. Revisions report schema_version.

Read update

Updated endpoints10Preview

EndpointDescription
POST/v1/companies/{company}/pdf-templatesCreate a PDF template
POST/v1/companies/{company}/pdf-templates/{template}/revisionsPublish a PDF template revision
POST/v1/companies/{company}/pdf-template-previewsCreate a PDF template preview
View all (10)
Improved

Personalization applies to the main template

For companies already on the PDF template library, PATCH /v1/companies/{company}/personalization and update_account_personalization apply the design and accent color to the main template, and personalization reads its effective values. The contract does not change; the new error is 409 pdf_main_template_required.

Read update

Updated endpoints1

EndpointDescription
PATCH/v1/companies/{company}/personalizationUpdate account personalization
Contract

Stripe fees as expenses and a fuller payout breakdown

Connected Stripe accounts can record their monthly Stripe fees as an expense, payouts now break down every movement they settle, and expenses that self-assess their VAT no longer count it in the total. Nine operations updated, three new account fields, three new payout fields and a new connection method.

Read update

Updated endpoints9Preview

EndpointDescription
GET/v1/companies/{company}/connected-accountsList connected Stripe accounts
GET/v1/companies/{company}/connected-accounts/{account}Retrieve a connected Stripe account
PATCH/v1/companies/{company}/connected-accounts/{account}Update a connected Stripe account
View all (9)
Contract

A receipt for every payment

Payment receipts are issued per payment, partial payments included: the receipt operations of invoices and expenses accept an optional payment_id, and their MCP tools return the receipt number. Document PDFs show the issuer's IBAN only with bank payment methods and use a 9 pt base size by default. Two operations and two MCP tools updated.

Read update

Updated endpoints2

EndpointDescription
GET/v1/companies/{company}/invoices/{invoice}/payment-receiptDownload the receipt PDF of a payment
GET/v1/companies/{company}/purchase-invoices/{purchase_invoice}/payment-receiptDownload the receipt PDF of an expense payment
Added

Counted units, weight by pieces and base unit replacement

Sell in packs, boxes or pieces over a product measured in kilos or litres, record the pieces on variable-weight lines, replace a product by one with a different base unit with a preview and an irreversible execution, and read the real unit in FacturaE and UBL. Two new operations, two MCP tools, the product.replaced event and new fields on products and document lines.

Read update

New endpoints2

EndpointDescription
POST/v1/companies/{company}/products/{product}/base-unit-replacement/previewPreview a base unit replacement
POST/v1/companies/{company}/products/{product}/base-unit-replacementReplace a product by changing its base unit

Updated endpoints103Preview

EndpointDescription
POST/v1/companies/{company}/proformas/{proforma}/acceptAccept a proforma
POST/v1/companies/{company}/quotes/{quote}/acceptAccept a quote
POST/v1/companies/{company}/recurring-invoices/{recurring_invoice}/activateActivate recurring invoice
View all (103)
Contract

Provisioning preview and account details

One new operation, the preview of what a new managed account would cost, new fields on companies, tax ID transfers, managed accounts, plan changes, bulk imports and the consolidated workforce, and a voucher expiry that is now always returned on reissue.

Read update

New endpoints1

EndpointDescription
GET/v1/accounts/provisioning-previewPreview the provisioning of a managed account

Updated endpoints22Preview

EndpointDescription
GET/v1/accounts/{account}/companiesList the tax IDs of your account
GET/v1/accounts/{account}/companies/{company}Retrieve a tax ID of the account
POST/v1/accounts/{account}/companiesRegister a tax ID in the account
View all (22)
Added

Transport control document (DeCA) and transport weight

New transport_documents resource with 17 endpoints to issue, modify, share and keep the Spanish digital control document for road freight, mandatory from 5 October 2026; 15 MCP tools, 10 transport_document.* events, 24 error codes and gross transport weight on products, variants, presentations and delivery notes.

Read update

New endpoints17Preview

EndpointDescription
GET/v1/companies/{company}/transport-documentsList all transport documents
GET/v1/companies/{company}/transport-documents/statusesList transport document statuses
GET/v1/companies/{company}/transport-documents/{transport_document}Retrieve a transport document
View all (17)

Updated endpoints21Preview

EndpointDescription
POST/v1/companies/{company}/productsCreate a product
PATCH/v1/companies/{company}/products/{product}Update a product
GET/v1/companies/{company}/products/{product}Retrieve a product
View all (21)
Contract

Team, keys and logs on the account axis

One new operation, the daily usage of an API key, and new fields on API keys, members, invitations, request logs and Stripe Connect return domains, plus the correction to reactivating a disabled account webhook endpoint.

Read update

New endpoints1

EndpointDescription
GET/v1/accounts/{account}/api-keys/{api_key}/usageRetrieve the daily usage of an API key

Updated endpoints19Preview

EndpointDescription
GET/v1/accounts/{account}/api-keysList your API keys
GET/v1/accounts/{account}/api-keys/{api_key}Retrieve an API key
POST/v1/accounts/{account}/api-keysCreate an API key
View all (19)
Contract

Refunds and net amount of non-invoiced charges

Non-invoiced Stripe charges carry their refunds and the net amount the merchant keeps, can be filtered by date, and travel to the accountant in the quarterly package as a CSV. Four updated operations and three updated MCP tools.

Read update

Updated endpoints4Preview

EndpointDescription
GET/v1/companies/{company}/connected-accounts/{account}/non-invoiced-chargesList non-invoiced charges of a connected Stripe account
GET/v1/companies/{company}/invoices/quarterly/available-quartersList quarters to export
POST/v1/companies/{company}/invoices/quarterly/download-zipGenerate quarterly ZIP archive
View all (4)
Contract

Configurable note on automatic invoices

Connected accounts and stores accept an invoice_note that Factuarea writes in the notes of the invoices it issues automatically, and those invoices are due 30 days after issue by default. Seven updated operations and two updated MCP tools.

Read update

Updated endpoints7Preview

EndpointDescription
GET/v1/companies/{company}/connected-accountsList connected Stripe accounts
GET/v1/companies/{company}/connected-accounts/{account}Retrieve a connected Stripe account
PATCH/v1/companies/{company}/connected-accounts/{account}Update a connected Stripe account
View all (7)
Contract

Employee seats charged whenever the plan bills

Creating or reactivating an employee charges a seat whenever the plan bills, including past_due and granted plans; trial employees are deactivated when billing starts, a new 503 applies when batches are enabled, and seat offers on an active subscription start at the next renewal. Eight updated operations.

Read update

Updated endpoints8Preview

EndpointDescription
POST/v1/companies/{company}/employeesCreate an employee
POST/v1/companies/{company}/employees/{employee}/reactivateReactivate an employee
POST/v1/companies/{company}/employee-seat-offer-redemptionsPrepare an employee-seat offer redemption
View all (8)
Contract

Account contract adjustments

Fixes to the v1 contract after the review of 6 October, durable purchases moved to the company axis, and the final shape of managed accounts, additional tax IDs and the user cap.

Read update

Updated endpoints45Preview

EndpointDescription
GET/v1/companies/{company}/employee-batchesList an employee batch
GET/v1/companies/{company}/employee-batches/{id}Retrieve an employee batch
POST/v1/companies/{company}/employee-batchesPrepare an employee batch
View all (45)
Contract

Existing Stripe accounts and charge rules

Connect a Stripe account you already have, decide per account which charges are invoiced and which are not, and read the charges that were left out. Six new operations, three new fields on connected accounts and five new inbox reasons.

Read update

New endpoints6Preview

EndpointDescription
GET/v1/companies/{company}/connected-accounts/{account}/charge-rulesList charge treatment rules of a connected Stripe account
POST/v1/companies/{company}/connected-accounts/{account}/charge-rulesCreate a charge treatment rule
PUT/v1/companies/{company}/connected-accounts/{account}/charge-rules/orderReorder the charge treatment rules
View all (6)

Updated endpoints3

EndpointDescription
GET/v1/companies/{company}/connected-accountsList connected Stripe accounts
GET/v1/companies/{company}/connected-accounts/{account}Retrieve a connected Stripe account
PATCH/v1/companies/{company}/connected-accounts/{account}Update a connected Stripe account
Contract

Recent operations join the axis

The operations released since 21 September — projects and tasks, the purchase scanner, notifications, users, VeriFactu representation, issuing without sending and series editing — live under /v1/companies/{company}, and eight partial updates move from PUT to PATCH.

Read update

Updated endpoints113Preview

EndpointDescription
GET/v1/companies/{company}/agendaList agenda items
POST/v1/companies/{company}/contacts/importImport contacts
GET/v1/companies/{company}/contacts/import/templateDownload the contact import template
View all (113)
Added

Stripe Connect in white label

Four new operations and four new error codes to let your clients connect their own Stripe account from your product, with return domains you control.

Read update

New endpoints4Preview

EndpointDescription
POST/v1/accounts/{account}/connected-accounts/return-domainsAdd a Stripe Connect return domain
DEL/v1/accounts/{account}/connected-accounts/return-domains/{return_domain}Remove a Stripe Connect return domain
GET/v1/accounts/{account}/connected-accounts/return-domainsList Stripe Connect return domains
View all (4)
Contract

Employee batches and private seat offers

New durable operations for employee batches and company-specific employee or managed-company seat offers.

Read update

New endpoints18Preview

EndpointDescription
GET/v1/companies/{company}/employee-batchesList an employee batch
POST/v1/companies/{company}/employee-batchesPrepare an employee batch
GET/v1/companies/{company}/employee-batches/{id}Retrieve an employee batch
View all (18)

Updated endpoints4Preview

EndpointDescription
GET/v1/accounts/{account}/companies/seat-charge-previewPreview the seat charge of adding a company
POST/v1/accounts/{account}/companiesRegister a tax ID in the account
POST/v1/accounts/{account}/companies/{company}/activateActivate a tax ID of the account
View all (4)
Contract

Import results, task import retries and new read fields

Contact imports report updated rows, warnings and why each row was skipped; task imports retry safely; invoices expose origin; quotes and proformas expose operation_regime.

Read update

Updated endpoints48Preview

EndpointDescription
POST/v1/companies/{company}/contacts/import/previewPreview a contact import
POST/v1/companies/{company}/contacts/importImport contacts
GET/v1/companies/{company}/contacts/imports/{id}Retrieve a contact import
View all (48)
Improved

Invoice activity: AEAT results, email and payments

The invoice activity timeline adds the result of every AEAT submission, undelivered emails, the first daily visit to the public link and payment events, each with an exact metadata contract.

Read update

Updated endpoints8Preview

EndpointDescription
GET/v1/companies/{company}/invoices/{invoice}/activitiesList invoice activity
GET/v1/companies/{company}/invoices/{invoice}/verifactuRetrieve invoice VeriFactu record
POST/v1/companies/{company}/invoices/{invoice}/verifactuForce-create VeriFactu record for invoice
View all (8)
Contract

Contact import tracking and reliable row results

Preview contact files, track confirmed row results and download authorized error reports.

Read update

New endpoints2

EndpointDescription
GET/v1/companies/{company}/contacts/imports/{id}Retrieve a contact import
GET/v1/companies/{company}/contacts/imports/{id}/errors.csvDownload contact import errors

Updated endpoints2

EndpointDescription
POST/v1/companies/{company}/contacts/import/previewPreview a contact import
POST/v1/companies/{company}/contacts/importImport contacts
Contract

Unattended checkout invoicing

A paid simplified invoice from a kiosk in one idempotent call, VeriFactu remission through Factuarea, subsanación of accepted records and per-line errors. Three breaking changes: a line without a rate no longer takes 21 %, issuing is rejected when the record does not fit the AEAT schema, and in NO VERI*FACTU mode it needs a usable certificate. POST /v1/verifactu/records/{id}/retry no longer answers max_retries_exceeded.

Read update

New endpoints4Preview

EndpointDescription
POST/v1/companies/{company}/verifactu/records/retry-blockedRetry every blocked VeriFactu record
GET/v1/companies/{company}/verifactu/representationRetrieve the active representation
POST/v1/companies/{company}/verifactu/representationRegister a representation
View all (4)

Updated endpoints32Preview

EndpointDescription
POST/v1/companies/{company}/invoicesCreate an invoice
PATCH/v1/companies/{company}/invoices/{invoice}Update an invoice
POST/v1/companies/{company}/invoices/bulk-createBulk create invoices
View all (32)
Contract

One breaking window: axis and payload

Company and account resources move into the URL, amounts travel as decimal strings, the collection date is renamed, X-Active-Profile is rejected and the account becomes the customer. Every operation the window touches — 519 of them — listed resource by resource.

Read update

New endpoints16Preview

EndpointDescription
DEL/v1/accounts/{account}/invitations/{invitation}Revoke an account invitation
POST/v1/accounts/{account}/invitationsSend an account invitation
GET/v1/accounts/{account}/invitationsList account invitations
View all (16)

Updated endpoints455Preview

EndpointDescription
GET/v1/companies/{company}/absence-balancesList all absence balances
GET/v1/companies/{company}/absence-balances/{absence_balance}Retrieve an absence balance
GET/v1/companies/{company}/absence-calendarGet the team absence calendar
View all (455)
Added

Account model

Accounts, tax IDs, members, granted access, managed accounts, bulk import, account webhooks and the operations and fields they add or rename.

Read update

New endpoints33Preview

EndpointDescription
PATCH/v1/accounts/{account}/api-keys/{api_key}/nif-scopeChange the tax IDs an API key reaches
GET/v1/accounts/{account}/invitations/{invitation}Retrieve an account invitation
DEL/v1/accounts/{account}/members/{member}/grants/{company}Revoke an account member grant
View all (33)

Updated endpoints39Preview

EndpointDescription
POST/v1/accounts/{account}/api-keysCreate an API key
GET/v1/accounts/{account}/api-keysList your API keys
POST/v1/accounts/{account}/api-keys/{api_key}/revokeRevoke an API key
View all (39)
Contract

Tasks refinements

Tighter limits and clearer errors in Projects and Tasks: a 400,000-character task description, a 99,999,999.99 hourly rate, entity links that respect scopes, the task id in notifications, deletes blocked by invoiced hours and idempotent time invoicing. users:read becomes a sensitive scope.

Read update

Updated endpoints15Preview

EndpointDescription
POST/v1/companies/{company}/tasksCreate a task
PATCH/v1/companies/{company}/tasks/{task}Update a task
POST/v1/companies/{company}/tasks/bulk-deleteBulk delete tasks
View all (15)
Contract

Issued is not sent: API version 2026-10-01

Invoices separate issuing from delivering. Opt-in version 2026-10-01 publishes status issued with issued_at, is_sent and sent_via; new POST /v1/invoices/{invoice}/issue; mark-sent records a manual delivery from that version on; new events invoice.issued, invoice.marked_sent and invoice.unsent, with invoice.sent kept as a deprecated alias; webhook payloads versioned per endpoint; recurring invoices gain generation_mode. The default version does not change.

Read update

New endpoints1

EndpointDescription
POST/v1/companies/{company}/invoices/{invoice}/issueIssue an invoice

Updated endpoints20Preview

EndpointDescription
POST/v1/companies/{company}/invoices/{invoice}/mark-sentMark an invoice as sent
POST/v1/companies/{company}/invoices/{invoice}/unsendUnsend an invoice
POST/v1/companies/{company}/invoices/{invoice}/sendSend invoice by email
View all (20)
Contract

Time tracking follows the employment period

Breaking change: clocking before an employee's hire date or after their termination date now answers 422 with subcode clocking_outside_employment_period. Daily balances add is_unscheduled and is_outside_employment, the monthly sheet and the team summary add a to_date block for the closed days, the employee schedule accepts a date, hire_date becomes editable, and reassigning or unassigning a schedule that has not started yet cancels it.

Read update

Updated endpoints13Preview

EndpointDescription
POST/v1/companies/{company}/time-entries/clock-inClock in an employee
POST/v1/companies/{company}/time-entries/manualRecord a manual retroactive entry
POST/v1/companies/{company}/time-correctionsRequest a time entry correction
View all (13)
Contract

Purchase scans: bounded history, deferred OCR and supplier facet

The scan detail now returns the 50 most recent attempts and audit events with their totals, scans waiting for the daily OCR quota say so, and the stats add a per-supplier facet.

Read update

Updated endpoints3

EndpointDescription
GET/v1/companies/{company}/purchase-scansList purchase scans
GET/v1/companies/{company}/purchase-scans/{purchase_scan}Retrieve a purchase scan
GET/v1/companies/{company}/purchase-scans/statsGet purchase scanner stats
Added

Purchase scanner: public API and MCP

Upload, review, resolve duplicates and convert purchase scans through the public API and MCP. Thirteen operations cover the full flow, the scanner mailbox and expense categories.

Read update

New endpoints13Preview

EndpointDescription
GET/v1/companies/{company}/purchase-invoices/expense-categoriesList expense categories
GET/v1/companies/{company}/purchase-scan-emailsList purchase scanner emails
DEL/v1/companies/{company}/purchase-scans/{purchase_scan}Archive a purchase scan
View all (13)

Updated endpoints2

EndpointDescription
POST/v1/companies/{company}/purchase-invoicesCreate an expense
PATCH/v1/companies/{company}/purchase-invoices/{purchase_invoice}Update an expense
Added

Pause and resume recurring invoices in bulk

New operation POST /v1/recurring_invoices/bulk-status moves up to 50 recurring invoices to active or paused with partial success, mirrored by the MCP tool bulk_change_recurring_invoice_status. Resuming a completed recurrence now answers 422 recurring_invoice_completed_cannot_resume.

Read update

New endpoints1

EndpointDescription
POST/v1/companies/{company}/recurring-invoices/bulk-statusBulk change recurring invoice status

Updated endpoints2

EndpointDescription
POST/v1/companies/{company}/recurring-invoices/{recurring_invoice}/resumeResume recurring invoice
POST/v1/companies/{company}/recurring-invoices/{recurring_invoice}/activateActivate recurring invoice
Contract

Delete and archive contacts

Breaking change: DELETE /v1/contacts/{id} and POST /v1/contacts/bulk-delete now delete instead of archiving, and the deletion cannot be undone through the API. Archiving moves to POST /v1/contacts/{id}/archive, is always allowed and stays reversible. A contact.deleted webhook event is published and the contact_has_commercial_references subcode disappears.

Read update

New endpoints1

EndpointDescription
POST/v1/companies/{company}/contacts/{contact}/archiveArchive a contact

Updated endpoints3

EndpointDescription
DEL/v1/companies/{company}/contacts/{contact}Delete a contact
POST/v1/companies/{company}/contacts/bulk-deleteDelete contacts in bulk
POST/v1/companies/{company}/contacts/bulk/archiveArchive contacts in bulk
Contract

Measured purchase lines

Purchase invoice lines now record the packages received, the unit the supplier cost applies to and the real measured quantity. The contract adds a measurement block, persists line discounts, resolves the cost from the supplier offer and duplicates a purchase from an authorised source.

Read update

Updated endpoints4Preview

EndpointDescription
POST/v1/companies/{company}/purchase-invoicesCreate an expense
PATCH/v1/companies/{company}/purchase-invoices/{purchase_invoice}Update an expense
GET/v1/companies/{company}/purchase-invoices/{purchase_invoice}Retrieve an expense
View all (4)
Contract

PDF capabilities on the account

The Account resource and the templates endpoint expose a read-only capabilities block: what the plan allows in document branding, which templates can be set and which plan unlocks the editor. Personalization updates outside the plan now return 403.

Read update

Updated endpoints3

EndpointDescription
GET/v1/meRetrieve the calling credential
GET/v1/companies/{company}/personalization/templatesList available personalization templates
PATCH/v1/companies/{company}/personalizationUpdate account personalization
Added

Configurable catalog selections and exact prices

Configure which product combinations can be sold and resolve exact negotiated prices. The API adds selection lookup, stock auditing and bulk price resolution.

Read update

New endpoints8Preview

EndpointDescription
GET/v1/companies/{company}/products/{product}/configurationsList product commercial combinations
GET/v1/companies/{company}/products/{product}/optionsList product option groups
GET/v1/companies/{company}/products/{product}/stock-movementsList stock movements of a product
View all (8)
Added

Time tracking (control horario)

Manage work schedules, time entries, absences, balances and presence through the API and MCP, using the same permission model as the rest of the platform.

Read update
Addedv1

Platform launch

The public platform brings together REST API v1, official TypeScript and PHP SDKs, the CLI and MCP, with an isolated sandbox for testing integrations.

Read update