Ir al contenido
Log in

Campos de factura JSON a XML Facturae (3.2.2)

Esta guía mapea los campos de la API de facturas de B2Brouter y los Términos de Negocio (BT) de EN 16931 correspondientes a las rutas XML de Facturae 3.2.2. Para mayor claridad, los XPath se muestran sin prefijos de espacio de nombres.

BTTérmino de negocioCampo API (B2Brouter)XPath Facturae
BT-1Número de facturainvoice.numberInvoices/Invoice/InvoiceHeader/InvoiceNumber
Serie de facturainvoice.series_codeInvoices/Invoice/InvoiceHeader/InvoiceSeriesCode
Tipo de documento(derivado)Invoices/Invoice/InvoiceHeader/InvoiceDocumentType
Clase de factura(derivado)Invoices/Invoice/InvoiceHeader/InvoiceClass
BT-2Fecha de emisióninvoice.dateInvoices/Invoice/InvoiceIssueData/IssueDate
BT-7Fecha de operacióninvoice.tax_point_date (preferido) o invoice.delivery_date (alternativo)Invoices/Invoice/InvoiceIssueData/OperationDate
BT-5Monedainvoice.currencyInvoices/Invoice/InvoiceIssueData/InvoiceCurrencyCode
Idiomainvoice.languageInvoices/Invoice/InvoiceIssueData/LanguageName
Tipo de cambioinvoice.exchange_rateInvoices/Invoice/InvoiceIssueData/ExchangeRateDetails/ExchangeRate
Fecha del tipo de cambioinvoice.exchange_dateInvoices/Invoice/InvoiceIssueData/ExchangeRateDetails/ExchangeRateDate
BT-22Nota (cabecera)invoice.extra_infoInvoices/Invoice/AdditionalData/InvoiceAdditionalInformation
Literales legalesinvoice.legal_literalsInvoices/Invoice/LegalLiterals/LegalReference

Notas:

  • ExchangeRateDetails solo se emite cuando la moneda de la factura difiere del EUR. Los valores exchange_rate y exchange_date pueden configurarse mediante la API; si no se proporcionan, se derivan de la configuración de la cuenta o del sistema.
  • Si tanto tax_point_date como delivery_date están presentes, delivery_date se añade a InvoiceAdditionalInformation.
  • Varios campos se incluyen en InvoiceAdditionalInformation (véase Campos de información adicional).
BTTérmino de negocioCampo API (B2Brouter)XPath Facturae
BT-9Fecha de vencimientoinvoice.due_dateInvoices/Invoice/PaymentDetails/Installment/InstallmentDueDate
Importe del plazo(calculado).../Installment/InstallmentAmount
BT-81Medio de pagoinvoice.payment_method.../Installment/PaymentMeans
BT-82Texto del medio de pagoinvoice.payment_method_text.../Installment/CollectionAdditionalInformation
BT-84Cuenta bancaria del vendedor (IBAN)invoice.bank_account.iban.../Installment/AccountToBeCredited/IBAN
BT-86Cuenta bancaria del vendedor (BIC)invoice.bank_account.bic.../Installment/AccountToBeCredited/BIC
BT-84Cuenta bancaria del vendedor (número, sin IBAN)invoice.bank_account.number.../Installment/AccountToBeCredited/AccountNumber
BT-91Cuenta bancaria del comprador (IBAN, domiciliación)invoice.contact_iban.../Installment/AccountToBeDebited/IBAN
Cuenta bancaria del comprador (número, sin IBAN)invoice.contact_bank_account_number.../Installment/AccountToBeDebited/AccountNumber
Cuenta bancaria del comprador (BIC, domiciliación)invoice.contact_bic.../Installment/AccountToBeDebited/BIC
BT-10Referencia del compradorinvoice.buyer_reference.../Installment/DebitReconciliationReference
Referencia de reconciliación de pagoinvoice.payment_reconciliation_ref.../Installment/PaymentReconciliationReference

Notas:

  • PaymentDetails/Installment solo se emite cuando hay condiciones/términos de pago definidos.

Referencias comerciales a nivel de cabecera (InvoiceIssueData):

BTTérmino de negocioCampo API (B2Brouter)XPath Facturae
BT-13Referencia de orden de comprainvoice.ponumberInvoices/Invoice/InvoiceIssueData/ReceiverTransactionReference
BT-11Referencia de archivoinvoice.file_referenceInvoices/Invoice/InvoiceIssueData/FileReference
Referencia de contrato receptorinvoice.receiver_contract_referenceInvoices/Invoice/InvoiceIssueData/ReceiverContractReference

Período de facturación (cabecera):

BTTérmino de negocioCampo APIXPath Facturae
BT-73Inicio del período de facturacióninvoice.invoicing_period_startInvoices/Invoice/InvoiceIssueData/InvoicingPeriod/StartDate
BT-74Fin del período de facturacióninvoice.invoicing_period_endInvoices/Invoice/InvoiceIssueData/InvoicingPeriod/EndDate

Facturas rectificativas:

BTCampoCampo APIXPath Facturae
Método(derivado de invoice.amended_number)Invoices/Invoice/InvoiceHeader/Corrective/CorrectionMethod
Descripción del método(derivado).../Corrective/CorrectionMethodDescription
Código de motivoinvoice.amend_reason (por defecto '16').../Corrective/ReasonCode
Descripción del motivo(derivado de la traducción de amend_reason).../Corrective/ReasonDescription
Descripción adicional del motivoinvoice.extra_info.../Corrective/AdditionalReasonDescription
BT-25Número de factura rectificadainvoice.amended_number.../Corrective/InvoiceNumber (+ .../InvoiceSeriesCode si aplica)
BT-26Fecha de factura rectificadainvoice.amended_date.../Corrective/InvoiceIssueDate (solo 3.2.2)
Inicio del período fiscalinvoice.amended_invoicing_period_start.../Corrective/TaxPeriod/StartDate
Fin del período fiscalinvoice.amended_invoicing_period_end.../Corrective/TaxPeriod/EndDate

Notas:

  • CorrectionMethod se calcula: '03' si amended_number == '?', en caso contrario '02'.

Si la factura es recibida, intercambia SellerParty y BuyerParty.

BTTérmino de negocioCampo APIXPath Facturae
BT-27Nombre del vendedoraccount.nameParties/SellerParty/LegalEntity/CorporateName (o Individual/Name + FirstSurname)
BT-31NIF/IVA del vendedoraccount.tin_valueParties/SellerParty/TaxIdentification/TaxIdentificationNumber
Identificación de parteinvoice.party_identificationParties/SellerParty/PartyIdentification
BT-35Calle del vendedoraccount.addressParties/SellerParty/LegalEntity/AddressInSpain/Address (o OverseasAddress/Address)
BT-38Código postal del vendedoraccount.postalcodeParties/SellerParty/LegalEntity/AddressInSpain/PostCode
BT-37Ciudad del vendedoraccount.cityParties/SellerParty/LegalEntity/AddressInSpain/Town
BT-39Provincia del vendedoraccount.provinceParties/SellerParty/LegalEntity/AddressInSpain/Province
BT-40País del vendedoraccount.countryParties/SellerParty/LegalEntity/AddressInSpain/CountryCode (ISO3)
BT-43Email del vendedoraccount.emailParties/SellerParty/LegalEntity/ContactDetails/ElectronicMail
BT-42Teléfono del vendedoraccount.phoneParties/SellerParty/LegalEntity/ContactDetails/Telephone
Web del vendedoraccount.websiteParties/SellerParty/LegalEntity/ContactDetails/WebAddress
BT-41Persona de contacto del vendedoraccount.contact_personParties/SellerParty/LegalEntity/ContactDetails/ContactPersons
BTTérmino de negocioCampo APIXPath Facturae
BT-44Nombre del compradorinvoice.contact.nameParties/BuyerParty/LegalEntity/CorporateName (o Individual/...)
BT-48NIF/IVA del compradorinvoice.contact.tin_valueParties/BuyerParty/TaxIdentification/TaxIdentificationNumber
BT-50Calle del compradorinvoice.contact.addressParties/BuyerParty/LegalEntity/AddressInSpain/Address
BT-53Código postal del compradorinvoice.contact.postalcodeParties/BuyerParty/LegalEntity/AddressInSpain/PostCode
BT-52Ciudad del compradorinvoice.contact.cityParties/BuyerParty/LegalEntity/AddressInSpain/Town
BT-54Provincia del compradorinvoice.contact.provinceParties/BuyerParty/LegalEntity/AddressInSpain/Province
BT-55País del compradorinvoice.contact.countryParties/BuyerParty/LegalEntity/AddressInSpain/CountryCode
BT-58Email del compradorinvoice.contact.emailParties/BuyerParty/LegalEntity/ContactDetails/ElectronicMail
BT-57Teléfono del compradorinvoice.contact.phoneParties/BuyerParty/LegalEntity/ContactDetails/Telephone
BT-56Persona de contacto del compradorinvoice.contact.contact_personParties/BuyerParty/LegalEntity/ContactDetails/ContactPersons
Datos de contacto adicionalesinvoice.contact_additional_detailsParties/BuyerParty/LegalEntity/ContactDetails/AdditionalContactDetails

Notas:

  • Usa AddressInSpain o OverseasAddress según el país.
  • PartyIdentification solo se emite cuando el valor es una cadena numérica de hasta 10 dígitos.

Centros administrativos (sector público español)

Sección titulada «Centros administrativos (sector público español)»

Para facturar a administraciones públicas españolas (FACe), se pueden configurar centros administrativos con códigos DIR3:

CampoCampo APIXPath Facturae
Oficina contableinvoice.ocParties/BuyerParty/AdministrativeCentres/AdministrativeCentre[RoleTypeCode='01']/CentreCode
Órgano gestorinvoice.ogParties/BuyerParty/AdministrativeCentres/AdministrativeCentre[RoleTypeCode='02']/CentreCode
Unidad tramitadorainvoice.utParties/BuyerParty/AdministrativeCentres/AdministrativeCentre[RoleTypeCode='03']/CentreCode
Órgano proponenteinvoice.opParties/BuyerParty/AdministrativeCentres/AdministrativeCentre[RoleTypeCode='04']/CentreCode
ID de ubicación de entregainvoice.delivery_location_idSe usa como CentreCode para el rol 04 cuando op no está definido
Nombres centros 1-3invoice.cin1_nameinvoice.cin3_nameAdministrativeCentre[RoleTypeCode='01'-'03']/Name
Nombre centro 4invoice.cin4_nameAdministrativeCentre[RoleTypeCode='04']/Name

Notas:

  • Cada centro administrativo también incluye la dirección y los datos de contacto de la parte compradora.
  • Los campos de dirección de entrega (delivery_address, delivery_city, delivery_province, delivery_postalcode) rellenan la dirección del centro con RoleTypeCode 04.
BTTérmino de negocioCampo APIXPath Facturae
BT-110Total IVA (repercutido)(calculado)Invoices/Invoice/InvoiceTotals/TotalTaxOutputs + detalles en Invoices/Invoice/TaxesOutputs/Tax
Retenciones (cabecera)invoice.amounts_withheld_reason, invoice.withheld_percentInvoices/Invoice/InvoiceTotals/AmountsWithheld/(WithholdingReason|WithholdingRate|WithholdingAmount)
Importe bruto antes de impuestos(calculado)Invoices/Invoice/InvoiceTotals/TotalGrossAmountBeforeTaxes
BT-92Importe del descuento de cabeceraallowance_charges_attributes[]{allowance_charge_indicator: "allowance", amount: X}Invoices/Invoice/InvoiceTotals/GeneralDiscounts/Discount/DiscountAmount
BT-94Porcentaje del descuento de cabeceraallowance_charges_attributes[]{allowance_charge_indicator: "allowance", percentage: X}Invoices/Invoice/InvoiceTotals/GeneralDiscounts/Discount/DiscountRate
BT-97Motivo del descuento de cabeceraallowance_charges_attributes[]{allowance_charge_indicator: "allowance", description: "..."}Invoices/Invoice/InvoiceTotals/GeneralDiscounts/Discount/DiscountReason
BT-99Importe del cargo de cabeceraallowance_charges_attributes[]{allowance_charge_indicator: "charge", amount: X}Invoices/Invoice/InvoiceTotals/GeneralSurcharges/Charge/ChargeAmount
BT-104Motivo del cargo de cabeceraallowance_charges_attributes[]{allowance_charge_indicator: "charge", description: "..."}Invoices/Invoice/InvoiceTotals/GeneralSurcharges/Charge/ChargeReason
BT-113Importe prepagadoinvoice.payments_on_accountInvoices/Invoice/InvoiceTotals/PaymentsOnAccount/PaymentOnAccount/PaymentOnAccountAmount
Total factura (a pagar)(calculado)Invoices/Invoice/InvoiceTotals/InvoiceTotal
Saldo pendiente(calculado)Invoices/Invoice/InvoiceTotals/TotalOutstandingAmount
Importe ejecutable(calculado)Invoices/Invoice/InvoiceTotals/TotalExecutableAmount

Notas:

  • TaxesOutputs/Tax/TaxTypeCode identifica el tipo de impuesto (p. ej., 01 para IVA).

Todos los atributos siguientes son propiedades de objetos en: invoice.invoice_lines_attributes[].

BTTérmino de negocioCampo API (línea)XPath Facturae
BT-153Nombre/descripción del artículodescriptionInvoices/Invoice/Items/InvoiceLine/ItemDescription
BT-129Cantidad facturadaquantity.../Quantity
BT-130Unidad de medidaunit.../UnitOfMeasure
BT-146Precio unitarioprice.../UnitPriceWithoutTax
BT-131Importe de extensión de líneaextension_amount (o calculado).../GrossAmount (o .../TotalCost)
BT-155ID artículo del vendedorarticle_code.../ArticleCode (solo Facturae 3.2)
BT-154Notas del artículonotes.../AdditionalLineItemInformation
BT-132Referencia de línea del compradorsequence_number.../SequenceNumber
BT-128Referencia de transacción del receptorponumber (alternativo: invoice.ponumber).../ReceiverTransactionReference
Referencia de archivofile_reference (alternativo: invoice.file_reference).../FileReference
Fecha de archivofile_date.../FileDate
Número de albarándelivery_note_number (alternativo: invoice.delivery_note_number).../DeliveryNotesReferences/DeliveryNote/DeliveryNoteNumber
Fecha de albarándelivery_note_date (alternativo: invoice.delivery_note_date).../DeliveryNotesReferences/DeliveryNote/DeliveryNoteDate
Referencia de contrato del emisor(de invoice.contract_number).../IssuerContractReference
Fecha del contrato del emisorinvoice.issuer_contract_date.../IssuerContractDate
Referencia de transacción del emisorissuer_transaction_reference.../IssuerTransactionReference
Fecha de transacción del emisorissuer_transaction_date.../IssuerTransactionDate
Referencia de contrato del receptorreceiver_contract_reference (alternativo: invoice.receiver_contract_reference).../ReceiverContractReference
Fecha del contrato del receptorreceiver_contract_date.../ReceiverContractDate
Fecha de transacción del receptorreceiver_transaction_date.../ReceiverTransactionDate
BT-134Inicio del período de facturación de líneainvoicing_period_start.../LineItemPeriod/StartDate
BT-135Fin del período de facturación de líneainvoicing_period_end.../LineItemPeriod/EndDate
BT-151Código de tipo de impuesto (por línea)taxes_attributes[].category.../TaxesOutputs/Tax/TaxTypeCode
BT-152Porcentaje de impuesto (por línea)taxes_attributes[].percent.../TaxesOutputs/Tax/TaxRate
BT-120Motivo de exención/no sujeción fiscaltaxes_attributes[].comment.../SpecialTaxableEvent/SpecialTaxableEventReason
Código de exención/no sujeción fiscal(derivado: '02' si categoría NS, en caso contrario '01').../SpecialTaxableEvent/SpecialTaxableEventCode
BT-136Importe del descuento de líneaallowance_charges_attributes[]{allowance_charge_indicator: "allowance", amount: X}.../DiscountsAndRebates/Discount/DiscountAmount
BT-138Porcentaje del descuento de líneaallowance_charges_attributes[]{allowance_charge_indicator: "allowance", percentage: X}.../DiscountsAndRebates/Discount/DiscountRate
BT-139Motivo del descuento de líneaallowance_charges_attributes[]{allowance_charge_indicator: "allowance", description: "..."}.../DiscountsAndRebates/Discount/DiscountReason
BT-141Importe del cargo de líneaallowance_charges_attributes[]{allowance_charge_indicator: "charge", amount: X}.../Charges/Charge/ChargeAmount
BT-144Motivo del cargo de líneaallowance_charges_attributes[]{allowance_charge_indicator: "charge", description: "..."}.../Charges/Charge/ChargeReason

Notas:

  • Varios campos a nivel de línea se incluyen en AdditionalLineItemInformation: article_code2, classification_code, article_code_buyer, contact_reference.

Varios campos que tienen elementos XML dedicados en UBL/CII se empaquetan en InvoiceAdditionalInformation en Facturae. Se añaden a invoice.extra_info:

BTCampo APIPrefijo en AdditionalInformation
BT-14invoice.sales_order_reference”Sales order reference:“
BT-15invoice.receiving_advice_reference”Receiving advice reference:“
BT-20invoice.payment_terms”Payment terms:“
BT-83invoice.remittance_information”Remittance information:“
BT-90invoice.bank_assigned_creditor_reference”Bank assigned creditor reference:“
BT-89invoice.mandate_reference_identifier”Mandate reference identifier:“
BT-19invoice.buyer_accounting_reference”Buyer accounting reference:“
BT-72invoice.delivery_date (cuando tax_point_date también está presente)“Delivery date:“

Para el factoring de facturas (cesión de crédito), los siguientes campos rellenan el bloque FactoringAssignmentData:

CampoCampo APIXPath Facturae
NIF del cesionarioinvoice.fa_taxcodeFactoringAssignmentData/Assignee/TaxIdentification/TaxIdentificationNumber
Nombre del cesionarioinvoice.fa_nameFactoringAssignmentData/Assignee/LegalEntity/CorporateName
Dirección del cesionarioinvoice.fa_addressFactoringAssignmentData/Assignee/LegalEntity/AddressInSpain/Address
Código postal del cesionarioinvoice.fa_postcodeFactoringAssignmentData/Assignee/LegalEntity/AddressInSpain/PostCode
Ciudad del cesionarioinvoice.fa_townFactoringAssignmentData/Assignee/LegalEntity/AddressInSpain/Town
Provincia del cesionarioinvoice.fa_provinceFactoringAssignmentData/Assignee/LegalEntity/AddressInSpain/Province
País del cesionarioinvoice.fa_countryFactoringAssignmentData/Assignee/LegalEntity/AddressInSpain/CountryCode
Fecha de vencimiento del pagoinvoice.fa_duedateFactoringAssignmentData/PaymentDetails/Installment/InstallmentDueDate
Importe del pagoinvoice.fa_importFactoringAssignmentData/PaymentDetails/Installment/InstallmentAmount
Método de pagoinvoice.fa_payment_methodFactoringAssignmentData/PaymentDetails/Installment/PaymentMeans
IBAN del cesionarioinvoice.fa_ibanFactoringAssignmentData/PaymentDetails/Installment/AccountToBeCredited/IBAN
BIC del cesionarioinvoice.fa_bicFactoringAssignmentData/PaymentDetails/Installment/AccountToBeCredited/BIC
Cláusulas de factoringinvoice.fa_clausesFactoringAssignmentData/FactoringAssignmentClauses
Información adicionalinvoice.fa_infoFactoringAssignmentData/Assignee/LegalEntity/ContactDetails/AdditionalContactDetails
Código de bancoinvoice.fa_bank_codeFactoringAssignmentData/PaymentDetails/Installment/AccountToBeCredited/BankCode