Ir al contenido
Log in

v2026-03-02

Changelog

Esta versión implementa cambios incompatibles. Cada cambio incompatible está marcado con la etiqueta Breaking.

  • Nuevo campo invoice_lines[].base_quantity (decimal, por defecto 1) para soportar la Cantidad Base de Precio (BT-149), donde price representa el precio por base_quantity unidades.
  • Nuevos campos tax_currency_code y tax_amount_in_tax_currency: tax_currency_code (cadena ISO 4217) y tax_amount_in_tax_currency (decimal) para el soporte de doble moneda de la Moneda de Contabilidad Fiscal (BT-6 y BT-111).
  • Nuevo campo bank_accounts[].is_default (booleano) para marcar una cuenta bancaria por empresa como la predeterminada.
  • Nueva cabecera de respuesta X-B2B-API-Request-Id retornada en cada petición de API registrada para el trazado extremo a extremo.
  • Nuevos campos de solo lectura en informes fiscales: annulled_by_id y corrected_by_id (entero, anulable) para referenciar el informe fiscal que ha anulado o corregido el actual.
  • Nuevos campos específicos de KSeF en informes fiscales: payment_account_name (cadena), purchase_order_reference (cadena), sales_order_reference (cadena) y tax_inclusive_amount_before_allowances_and_charges (decimal).
  • Nuevos campos en líneas de informes fiscales: tax_report_lines[].item_seller_identifier y tax_report_lines[].item_standard_identifier (cadena) en líneas de informes fiscales de TicketBAI y KSeF para identificadores de artículos asignados por el vendedor y estándares.
  • Nuevo endpoint DELETE /attachments/:id para eliminar un adjunto.
  • Nuevos códigos de unidad para invoice_lines[].unit:
    • 37 — Toneladas (UN/ECE: TNE)
    • 38 — Megavatio-hora (UN/ECE: MWH)
    • 39 — Meses (UN/ECE: MON)
    • 40 — Años (UN/ECE: ANN)
    • 41 — Unidad/pieza (UN/ECE: C62)
  • Configuración de informes fiscales: los endpoints PUT y DELETE /accounts/{account}/tax_report_settings/{code} ahora soportan DgfipTaxReportSetting como variante de respuesta adicional para la configuración del e-reporting francés.

🚨 Breaking

  • Cambio de tipo de los campos de esquema (número → cadena): tin_scheme, cin_scheme, pin_scheme han cambiado de número a cadena de 4 caracteres con ceros a la izquierda (p. ej., 7"0007") en todos los endpoints (cuentas, contactos, facturas, transportes). Cuando el valor del esquema es null, el campo también se retorna como null.
  • type_document renombrado a type_code para los códigos de tipo de documento en todos los formatos (Peppol, CII, KSeF, FatturaPA).
  • correction_method restringido a enum: anteriormente aceptaba cualquier cadena, ahora valida contra los valores permitidos: 01 (sustitución completa), 02 (diferencias), 03 (acuerdo global en el período), 04 (autorizado por la Agencia Tributaria). Las facturas con valores no válidos recibirán un error de validación.
  • Los endpoints POST retornan 201 Created: POST /accounts/{account}/invoices, POST /accounts/{account}/invoices/import, POST /accounts/{account}/tax_reports, POST /accounts/{account}/tax_reports/import y POST /accounts/{account}/contacts ahora retornan 201 Created en lugar de 200 OK.
  • Respuesta asíncrona de consulta al directorio: ahora retorna 202 Accepted con una URL de polling cuando se encuentra un participante en el SML de Peppol pero aún no en el directorio local.
  • contact.is_provider ahora tiene el valor por defecto true al crear contactos via API.
  • contact_id ignorado para IssuedSimplifiedInvoice: las facturas simplificadas siempre utilizan los campos de contacto en línea.
  • El campo payments_on_account ahora es visible en GET /invoices/{invoice}.

Ninguna funcionalidad se ha marcado como obsoleta en esta versión.


🚨 Breaking

  • Parámetro de consulta taxcode: eliminado de GET /accounts/{account}/invoices. Usa el parámetro query con tin_value=<valor> en su lugar.

  • Campos obsoletos de descuento/recargo de factura eliminados: los siguientes campos fueron marcados como obsoletos en la v2025-10-13 en favor de allowance_charges_attributes y han sido eliminados. La API acepta estos campos sin error pero los descarta silenciosamente.

    Campo eliminadoMigración a allowance_charges_attributes
    discount_amount[{allowance_charge_indicator: "allowance", amount: X}]
    discount_percent[{allowance_charge_indicator: "allowance", percentage: X}]
    discount_text[{allowance_charge_indicator: "allowance", description: "..."}]
    charge_amount[{allowance_charge_indicator: "charge", amount: X}]
    charge_percent[{allowance_charge_indicator: "charge", percentage: X}]
    charge_reason[{allowance_charge_indicator: "charge", description: "..."}]
    charge_is_reimbursable_expense[{allowance_charge_indicator: "charge", is_reimbursable_expense: true}]
    apply_taxes_to_chargeUsa apply_taxes dentro de allowance_charges_attributes

  • Las facturas Facturae recibidas con correction_method: "01" ahora retornan el valor original en lugar de retornar incorrectamente "02".
  • Las facturas polacas en EUR con datos de moneda fiscal BT-6/BT-111 ahora derivan correctamente el tipo de cambio para los informes KSeF.

No se han documentado cambios específicos de seguridad en esta versión.