Changelog - 2025-10-13
API Version Release - 2025-10-13
This is the first major release of B2Brouter API. It includes significant improvements and changes to make the API consistent, RESTful, and easier to work with.
Now there's an option to select the API Version to use in each request. The X-B2B-API-Version header parameter allows specifying the desired version for the request. If the API Version is not specified in the request, it will be defined by the group configuration related to the API Key used in the request.
Key Changes Summary
API Infrastructure
- New Domain: API access moved from
app.b2brouter.nettoapi.b2brouter.net - Version Header: New
X-B2B-API-Versionheader for explicit version control - JSON Only: XML format support removed; all responses now JSON by default
- Response Language: All API responses now default to English regardless of account configuration
Path Structure Modernization
- Resource Naming:
/projectsrenamed to/accounts,/clientsrenamed to/contacts - Clean URLs: Removed
.{format}extensions from all endpoints - Simplified Hierarchy: Removed
/usersprefix from code lists,/api/v1prefix from directory and tax report endpoints - Standardized Pagination: All list responses now use consistent
metaobject for pagination data
Schema Standardization
- Terminology Consistency: Unified
client→contactthroughout the API - Structured Identifiers: Tax codes split into
tin_schemeandtin_valuefor better structure - English Naming: Spanish, Catalan, and Italian field names standardized to English equivalents
- Nested Structures: Bank account fields moved to nested objects for better organization
- Deprecated Fields Removed: Cleaned up legacy attributes in favor of standardized alternatives
Response Improvements
- Full Representations: PUT, DELETE, and POST operations now return complete resource representations instead of
204 No Content - Consistent Errors: Standardized error responses with
409 Conflictfor business rule violations - Simplified References: Removed nested
projectobjects from invoice responses
Tax Reports API Overhaul
The deprecated Tax Reports API has been removed in order to promote the use of a new, more generic and RESTful Tax Reports API suitable for most use cases.
All endpoints that were marked as [Deprecated] in version 2025-01-01 (Legacy) have been removed. The endpoints that were marked as [New Tax Report API] in version 2025-01-01 now become the only way to manage Tax Reporting via API. The /api/v1 prefix has been removed from the path of those endpoints.
Breaking Changes
This version implements breaking changes. Each breaking change is marked with the 🔴 BREAKING tag.
Changelog
Added
New API Version Header
Added
X-B2B-API-Versionheader parameter to specify the API version per request. If not specified, defaults to the version configured in the group's API Key settings.
New Tax Reports Endpoints
POST /accounts/{account}/tax_reports- Create a Tax ReportPOST /accounts/{account}/tax_reports/import- Import a Tax Report from XML fileGET /tax_reports/{id}- Get a tax reportPATCH /tax_reports/{id}- Correct or Modify a Tax ReportDELETE /tax_reports/{id}- Annulate a tax reportGET /tax_reports/{id}/download- Download a tax report in Tax Authority format
New Ledgers Endpoints
GET /ledgers/{id}/download- Download a Ledger XML documentGET /ledgers/{id}/download_response- Download the Tax Authority response for a LedgerPOST /accounts/{account}/ledgers/import- Import a ledger from XML payload
New Validation Endpoint
POST /documents/validate- Validates electronic documents (UBL, CII, Peppol BIS, PINT, ZUGFeRD, XRechnung, Factur-X, FacturaE, Svefaktura, Fattura PA, eSPap, and any EN16931 CIUS-compliant format)
New Transport Endpoint
DELETE /accounts/{account}/transports/{code}- Delete a transport configuration
Standardized Pagination
All listing endpoints now return pagination metadata in a consistent
metaobject containingtotal_count,offset, andlimit.
Consolidated Invoice Listing
Added
typequery parameter to/accounts/{account}/invoicesendpoint to filter by invoice type (IssuedInvoice, ReceivedInvoice, IssuedSelfInvoice, IssuedSimplifiedInvoice).
Full Resource Responses
Changed PUT, POST, and DELETE operations to return complete resource representations:
PUT /accounts/{account}- Now returns full account representationDELETE /accounts/{account}- Now returns full account representation with deletion statusPOST /accounts/{account}/unarchive- Now returns full account representationPOST /accounts/{account}/logo- Now returns full account representationDELETE /accounts/{account}/logo- Now returns full account representationPUT /bank_accounts/{id}- Now returns full bank account representationDELETE /bank_accounts/{id}- Now returns full bank account representationPUT /contacts/{id}- Now returns full contact representationDELETE /contacts/{id}- Now returns full contact representationPUT /invoices/{id}- Now returns full invoice representationDELETE /invoices/{id}- Now returns full invoice representationPOST /invoices/{id}/mark_as- Now returns full invoice representationPOST /invoices/{id}/ack- Now returns full invoice representation
Changed
🔴 BREAKING
Response Language
All API responses now default to English regardless of account configuration.
Previous behavior:
- API responses inherited the language from the account's default language setting
New behavior:
- All API responses default to English
API Domain Change
API base URL changed from
app.b2brouter.nettoapi.b2brouter.net
- Old:
https://app.b2brouter.net/api/...- New:
https://api.b2brouter.net/...
Resource Path Renaming
All endpoints that contained
/projects/{account}have been renamed to/accounts/{account}:
GET /projects/{account}/contacts→GET /accounts/{account}/contactsPOST /projects/{account}/contacts→POST /accounts/{account}/contactsGET /projects/{account}/events→GET /accounts/{account}/eventsGET /projects/{account}/invoices→GET /accounts/{account}/invoicesPOST /projects/{account}/invoices→POST /accounts/{account}/invoicesGET /projects/{account}/orders→GET /accounts/{account}/ordersPOST /projects/{account}/orders→POST /accounts/{account}/ordersPOST /projects/{account}/despatch_advices→POST /accounts/{account}/despatch_advices- And all other project-scoped endpoints
All endpoints referencing
/clientshave been renamed to/contacts:
GET /clients/{id}→GET /contacts/{id}PUT /clients/{id}→PUT /contacts/{id}DELETE /clients/{id}→DELETE /contacts/{id}
Format Extension Removal
Removed
.{format}path extensions from all endpoints. JSON is now the only supported format and is set as default:
GET /invoices/{id}.{format}→GET /invoices/{id}PUT /invoices/{id}.{format}→PUT /invoices/{id}DELETE /invoices/{id}.{format}→DELETE /invoices/{id}POST /invoices/{id}/mark_as.{format}→POST /invoices/{id}/mark_asPOST /invoices/{id}/add_attachment.{format}→POST /invoices/{id}/add_attachmentPOST /invoices/{id}/add_attachments.{format}→POST /invoices/{id}/add_attachmentsPOST /invoices/{id}/generate_tax_report.{format}→POST /invoices/{id}/generate_tax_reportPOST /invoices/{id}/ack.{format}→POST /invoices/{id}/ackGET /orders/{id}.{format}→GET /orders/{id}POST /orders/{id}/mark_as.{format}→POST /orders/{id}/mark_asGET /clients/{id}.{format}→GET /contacts/{id}PUT /clients/{id}.{format}→PUT /contacts/{id}DELETE /clients/{id}.{format}→DELETE /contacts/{id}- And all code list endpoints
Code Lists Path Simplification
Removed
/usersprefix from all code list endpoints:
GET /users/countries→GET /countriesGET /users/currencies→GET /currenciesGET /users/languages→GET /languagesGET /users/schemes→GET /schemesGET /users/invoice_states→GET /invoice_states- And all other code list endpoints
Contact Schema Standardization
Contact (formerly Client) resource now uses standardized field names:
Tax Identifiers:
taxcode→ split intotin_scheme(e.g., "VAT", "TAX") andtin_value(the actual number)company_identifier→cin_valuewith accompanyingcin_schemeTransport:
channel→transport_type_codeItalian Fields:
posta_elettronica_certificata→certified_emailcodice_destinatario→recipient_codeBank Details:
iban,bic,bank_name→ nested underbank_accountobjectContact Person:
contact→contact_person
Invoice Schema Improvements
Reference Fields:
projectnested object removed; use flataccount_idfieldaccounting_cost→buyer_accounting_referencecontact_person→customer_contact_personBank Details:
ibanandbic→ nested underbank_account.ibanandbank_account.bicPublic Administration Fields (English names):
num_contracte→contract_numberorgan_gestor→managing_unitoficina_comptable→accounting_unitorgan_proponent→proponent_unitunidad_contratacion→contract_unitunitat_tramitadora→processing_unit
Event Resource Updates
ClientEventrenamed toContactEventfor consistency
Deprecated
No features were marked as deprecated in this release.
Removed
🔴 BREAKING
XML Format Support
Support for XML format response has been removed. JSON format only is now supported and has been set as default.
Deprecated Company/Project Endpoints
GET /projects.{format}- Removed. UseGET /accountsinstead.GET /projects/{account}/my_company.{format}- Removed. UseGET /accounts/{account}instead.
Deprecated Tax Reports Endpoints
POST /tax_reports/send_tax_report/{id}.{format}- Removed. UsePOST /accounts/{account}/tax_reportsinstead.GET /tax_reports/{id}/as/{document_type_code}- Removed. UseGET /tax_reports/{id}/downloadinstead.
Channels Endpoint
GET /users/channels.{format}- Removed. UseGET /transport_typesinstead.
Event Field
Removed
descriptionfield from event responses inGET /accounts/{account}/eventsendpoint.
Schema Attributes Removed
Account Schema:
prefer_xslt_pdf- RemovedInvoice Schema:
contact_person- Removed. Usecustomer_contact_personinsteadstate(write-only) - Removed. UsePOST /invoices/{id}/mark_asendpoint insteadcustomer_party_identification- Removed. Usecontact.party_identificationinsteadaccounting_cost- Removed. Usebuyer_accounting_referenceinsteadiban- Removed. Use nestedbank_account.ibanstructure insteadbic- Removed. Use nestedbank_account.bicstructure insteadnum_contracte- Removed. Usecontract_numberinsteadorgan_gestor- Removed. Usemanaging_unitinsteadoficina_comptable- Removed. Useaccounting_unitinsteadorgan_proponent- Removed. Useproponent_unitinsteadunidad_contratacion- Removed. Usecontract_unitinsteadunitat_tramitadora- Removed. Useprocessing_unitinsteadunitat_tramitadora_name- Removed. Useprocessing_unitinsteadContact Schema:
old_channel- Removed. Usetransport_type_codeinsteadcontact- Removed. Usecontact_personinsteadbank_account- Removed. Usebank_account_numberinsteadcompany_identifier- Removed. Usecin_valueinsteadtransport_type- Removed. Usetransport_type_codeinsteaddocument_type- Removed. Usedocument_type_codeinsteadsepa_type- Removedposta_elettronica_certificata- Removed. Usecertified_emailinsteadcodice_destinatario- Removed. Userecipient_codeinsteadParameter Schemas:
Deprecated status filter parameters:
discarded- Marked as deprecated and will be removedreceived_invoice_discarded- Marked as deprecatedreceived_invoice_new- Removedreceived_invoice_error- Removedreceived_invoice_refused- Removedreceived_invoice_annotated- Removedreceived_invoice_invalid- Removed
Fixed
No bug fixes were specifically documented in this release.
Security
No security-specific changes were documented in this release.