v2025-10-13
Changelog
Aquesta és la primera versió de l’API de B2Brouter. Inclou millores i canvis significatius per fer l’API consistent, RESTful i més fàcil d’utilitzar.
Ara hi ha l’opció de seleccionar la versió de l’API que s’utilitza a cada petició. El paràmetre de capçalera X-B2B-API-Version permet especificar la versió desitjada per a la petició. Si la Versió de l’API no s’especifica a la petició, es determinarà per la configuració del grup relacionada amb la Clau d’API utilitzada.
Aquesta versió implementa canvis incompatibles. Cada canvi incompatible està marcat amb l’etiqueta Breaking.
Resum dels canvis principals
Section titled “Resum dels canvis principals”Infraestructura de l’API
Section titled “Infraestructura de l’API”- Nou domini: L’accés a l’API s’ha traslladat de
app.b2brouter.netaapi.b2brouter.net - Capçalera de versió: Nova capçalera
X-B2B-API-Versionper al control explícit de versions - Només JSON: S’ha eliminat el suport al format XML; totes les respostes ara són JSON per defecte
- Idioma de les respostes: Totes les respostes de l’API ara retornen en anglès independentment de la configuració del compte
Modernització de l’estructura de rutes
Section titled “Modernització de l’estructura de rutes”- Nomenclatura de recursos:
/projectss’ha renomenat a/accounts,/clientss’ha renomenat a/contacts - URLs netes: S’han eliminat les extensions
.{format}de tots els endpoints - Jerarquia simplificada: S’ha eliminat el prefix
/usersde les llistes de codis, i el prefix/api/v1dels endpoints de directoris i informes fiscals - Paginació estandarditzada: Totes les respostes de llista ara utilitzen un objecte
metaconsistent per a les dades de paginació
Estandardització de l’esquema
Section titled “Estandardització de l’esquema”- Consistència terminològica: Unificació de
client→contacta tota l’API - Identificadors estructurats: Els codis fiscals s’han dividit en
tin_schemeitin_valueper a una millor estructura - Nomenclatura en anglès: Els noms de camps en espanyol, català i italià s’han estandarditzat als equivalents en anglès
- Estructures jeràrquiques: Els camps de compte bancari s’han mogut a subobjectes per a una millor organització
- Camps obsolets eliminats: S’han netejat els atributs heretats en favor d’alternatives estandarditzades
Millores en les respostes
Section titled “Millores en les respostes”- Representacions completes: Les operacions PUT, DELETE i POST ara retornen representacions completes del recurs en lloc de
204 No Content - Errors consistents: Respostes d’error estandarditzades amb
409 Conflictper a violacions de regles de negoci - Referències simplificades: S’han eliminat els objectes
projectaniuats de les respostes de factures
Revisió de l’API d’Informes Fiscals
Section titled “Revisió de l’API d’Informes Fiscals”S’ha eliminat l’API d’Informes Fiscals obsoleta per promoure l’ús d’una nova API d’Informes Fiscals més genèrica i RESTful, adequada per a la majoria de casos d’ús.
Tots els endpoints marcats com a [Deprecated] a la versió 2025-01-01 (Legacy) han estat eliminats. Els endpoints marcats com a [New Tax Report API] a la versió 2025-01-01 ara són l’única manera de gestionar els Informes Fiscals via API. S’ha eliminat el prefix /api/v1 de la ruta d’aquests endpoints.
Afegit
Section titled “Afegit”Nova capçalera de versió de l’API
S’ha afegit el paràmetre de capçalera X-B2B-API-Version per especificar la versió de l’API per petició. Si no s’especifica, utilitza per defecte la versió configurada als ajustos de la Clau d’API del grup.
Nous endpoints d’Informes Fiscals
POST /accounts/{account}/tax_reports- Crea un Informe FiscalPOST /accounts/{account}/tax_reports/import- Importa un Informe Fiscal des d’un fitxer XMLGET /tax_reports/{id}- Obté un informe fiscalPATCH /tax_reports/{id}- Corregeix o modifica un Informe FiscalDELETE /tax_reports/{id}- Anul·la un informe fiscalGET /tax_reports/{id}/download- Descarrega un informe fiscal en format de l’Autoritat Fiscal
Nous endpoints de Llibres Comptables
GET /ledgers/{id}/download- Descarrega un document XML de Llibre ComptableGET /ledgers/{id}/download_response- Descarrega la resposta de l’Autoritat Fiscal per a un Llibre ComptablePOST /accounts/{account}/ledgers/import- Importa un llibre comptable des d’un payload XML
Nou endpoint de Validació
POST /documents/validate- Valida documents electrònics (UBL, CII, Peppol BIS, PINT, ZUGFeRD, XRechnung, Factur-X, FacturaE, Svefaktura, Fattura PA, eSPap i qualsevol format compatible amb EN16931 CIUS)
Nou endpoint de Transport
DELETE /accounts/{account}/transports/{code}- Elimina una configuració de transport
Paginació estandarditzada
Tots els endpoints de llistat ara retornen metadades de paginació en un objecte meta consistent que conté total_count, offset i limit.
Llistat de factures consolidat
S’ha afegit el paràmetre de consulta type a l’endpoint /accounts/{account}/invoices per filtrar per tipus de factura (IssuedInvoice, ReceivedInvoice, IssuedSelfInvoice, IssuedSimplifiedInvoice).
Respostes de recursos complets
S’han modificat les operacions PUT, POST i DELETE perquè retornin representacions completes del recurs:
PUT /accounts/{account}- Ara retorna la representació completa del compteDELETE /accounts/{account}- Ara retorna la representació completa del compte amb l’estat d’eliminacióPOST /accounts/{account}/unarchive- Ara retorna la representació completa del comptePOST /accounts/{account}/logo- Ara retorna la representació completa del compteDELETE /accounts/{account}/logo- Ara retorna la representació completa del comptePUT /bank_accounts/{id}- Ara retorna la representació completa del compte bancariDELETE /bank_accounts/{id}- Ara retorna la representació completa del compte bancariPUT /contacts/{id}- Ara retorna la representació completa del contacteDELETE /contacts/{id}- Ara retorna la representació completa del contactePUT /invoices/{id}- Ara retorna la representació completa de la facturaDELETE /invoices/{id}- Ara retorna la representació completa de la facturaPOST /invoices/{id}/mark_as- Ara retorna la representació completa de la facturaPOST /invoices/{id}/ack- Ara retorna la representació completa de la factura
Modificat
Section titled “Modificat”🚨 Breaking
Idioma de les respostes
Totes les respostes de l’API ara retornen en anglès independentment de la configuració del compte.
Comportament anterior:
- Les respostes de l’API heretaven l’idioma de la configuració d’idioma per defecte del compte
Nou comportament:
- Totes les respostes de l’API retornen en anglès per defecte
Canvi de domini de l’API
La URL base de l’API ha canviat de app.b2brouter.net a api.b2brouter.net
- Anterior:
https://app.b2brouter.net/api/... - Nova:
https://api.b2brouter.net/...
Canvi de nom de rutes de recursos
Tots els endpoints que contenien /projects/{account} s’han actualitzat a /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- I tots els altres endpoints amb àmbit de projecte
Tots els endpoints que feien referència a /clients s’han actualitzat a /contacts:
GET /clients/{id}→GET /contacts/{id}PUT /clients/{id}→PUT /contacts/{id}DELETE /clients/{id}→DELETE /contacts/{id}
Eliminació de l’extensió de format
S’han eliminat les extensions de ruta .{format} de tots els endpoints. JSON és ara l’únic format suportat i s’estableix com a predeterminat:
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}- I tots els endpoints de llistes de codis
Simplificació de la ruta de llistes de codis
S’ha eliminat el prefix /users de tots els endpoints de llistes de codis:
GET /users/countries→GET /countriesGET /users/currencies→GET /currenciesGET /users/languages→GET /languagesGET /users/schemes→GET /schemesGET /users/invoice_states→GET /invoice_states- I tots els altres endpoints de llistes de codis
Estandardització de l’esquema de contactes
El recurs Contacte (abans Client) ara utilitza noms de camps estandarditzats:
Identificadors fiscals:
taxcode→ dividit entin_scheme(p. ex., “VAT”, “TAX”) itin_value(el número real)company_identifier→cin_valueamb el corresponentcin_scheme
Codis d’encaminament:
cin1_value,cin1_scheme,cin2_value,cin2_scheme, …cin5_value,cin5_scheme→ aniuats sota l’objecterouting_codes- A les respostes, els codis d’encaminament sempre es retornen dins d’un objecte
routing_codes - A les peticions, els codis d’encaminament s’han d’enviar dins d’un contenidor
routing_codes
Transport:
channel→transport_type_code
Camps italians:
posta_elettronica_certificata→certified_emailcodice_destinatario→recipient_code
Dades bancàries:
iban,bic,bank_name→ aniuats sota l’objectebank_account
Persona de contacte:
contact→contact_person
Millores a l’esquema de factures
Camps de referència:
- S’ha eliminat l’objecte aniuat
project; utilitza el camp plaaccount_id accounting_cost→buyer_accounting_referencecontact_person→customer_contact_person
Dades bancàries:
ibanibic→ aniuats sotabank_account.ibanibank_account.bic
Camps d’Administració Pública (noms en anglès):
num_contracte→contract_numberorgan_gestor→managing_unitoficina_comptable→accounting_unitorgan_proponent→proponent_unitunidad_contratacion→contract_unitunitat_tramitadora→processing_unit
Actualitzacions al recurs Esdeveniment
ClientEvents’ha renomenat aContactEventper a coherència
Obsolet
Section titled “Obsolet”Cap funcionalitat s’ha marcat com a obsoleta en aquesta versió.
Eliminat
Section titled “Eliminat”🚨 Breaking
Suport al format XML
S’ha eliminat el suport al format de resposta XML. Ara només s’admet el format JSON, que s’ha establert com a predeterminat.
Endpoints obsolets de Company/Projecte
GET /projects.{format}- Eliminat. UtilitzaGET /accountsen el seu lloc.GET /projects/{account}/my_company.{format}- Eliminat. UtilitzaGET /accounts/{account}en el seu lloc.
Endpoints obsolets d’Informes Fiscals
POST /tax_reports/send_tax_report/{id}.{format}- Eliminat. UtilitzaPOST /accounts/{account}/tax_reportsen el seu lloc.GET /tax_reports/{id}/as/{document_type_code}- Eliminat. UtilitzaGET /tax_reports/{id}/downloaden el seu lloc.
Endpoint de Canals
GET /users/channels.{format}- Eliminat. UtilitzaGET /transport_typesen el seu lloc.
Camp d’Esdeveniment
S’ha eliminat el camp description de les respostes d’esdeveniments a l’endpoint GET /accounts/{account}/events.
Atributs d’esquema eliminats
Esquema de compte:
prefer_xslt_pdf- Eliminat
Esquema de factura:
contact_person- Eliminat. Utilitzacustomer_contact_personen el seu llocstate(només escriptura) - Eliminat. Utilitza l’endpointPOST /invoices/{id}/mark_asen el seu lloccustomer_party_identification- Eliminat. Utilitzacontact.party_identificationen el seu llocaccounting_cost- Eliminat. Utilitzabuyer_accounting_referenceen el seu llociban- Eliminat. Utilitza l’estructura niadabank_account.ibanen el seu llocbic- Eliminat. Utilitza l’estructura niadabank_account.bicen el seu llocnum_contracte- Eliminat. Utilitzacontract_numberen el seu llocorgan_gestor- Eliminat. Utilitzamanaging_uniten el seu llocoficina_comptable- Eliminat. Utilitzaaccounting_uniten el seu llocorgan_proponent- Eliminat. Utilitzaproponent_uniten el seu llocunidad_contratacion- Eliminat. Utilitzacontract_uniten el seu llocunitat_tramitadora- Eliminat. Utilitzaprocessing_uniten el seu llocunitat_tramitadora_name- Eliminat. Utilitzaprocessing_uniten el seu lloc
Esquema de contacte:
old_channel- Eliminat. Utilitzatransport_type_codeen el seu lloccontact- Eliminat. Utilitzacontact_personen el seu llocbank_account- Eliminat. Utilitzabank_account_numberen el seu lloccompany_identifier- Eliminat. Utilitzacin_valueen el seu lloctransport_type- Eliminat. Utilitzatransport_type_codeen el seu llocdocument_type- Eliminat. Utilitzadocument_type_codeen el seu llocsepa_type- Eliminatposta_elettronica_certificata- Eliminat. Utilitzacertified_emailen el seu lloccodice_destinatario- Eliminat. Utilitzarecipient_codeen el seu lloc
Esquemes de paràmetres:
Paràmetres de filtre d’estat obsolets:
discarded- Marcat com a obsolet i serà eliminatreceived_invoice_discarded- Marcat com a obsoletreceived_invoice_new- Eliminatreceived_invoice_error- Eliminatreceived_invoice_refused- Eliminatreceived_invoice_annotated- Eliminatreceived_invoice_invalid- Eliminat
Corregit
Section titled “Corregit”No s’han documentat correccions d’errors específiques en aquesta versió.
Seguretat
Section titled “Seguretat”No s’han documentat canvis específics de seguretat en aquesta versió.