Campos de factura JSON a XML UBL (EN 16931 / Peppol BIS 3.0)
Esta guía detalla el mapeo entre los campos de la API de facturas de B2Brouter, los Términos de Negocio (BT) correspondientes definidos por el estándar europeo de facturación electrónica (EN 16931) y las rutas XML del modelo UBL 2.1 (incluyendo Peppol BIS Billing 3.0).
Mapeo a nivel de cabecera
Sección titulada «Mapeo a nivel de cabecera»| BT | Término de negocio | Campo API (B2Brouter) | UBL XPath |
|---|---|---|---|
| BT-1 | Número de factura | invoice.number | cbc:ID |
| BT-2 | Fecha de emisión | invoice.date | cbc:IssueDate |
| BT-3 | Código de tipo de factura | invoice.type_code (api 2026-03-02) | cbc:InvoiceTypeCode (o cbc:CreditNoteTypeCode) |
| BT-5 | Moneda del documento | invoice.currency | cbc:DocumentCurrencyCode |
| BT-6 | Código de moneda fiscal | invoice.tax_currency_code | cbc:TaxCurrencyCode |
| BT-7 | Fecha del punto impositivo | invoice.tax_point_date | cbc:TaxPointDate |
| BT-9 | Fecha de vencimiento | invoice.due_date | cbc:DueDate |
| BT-10 | Referencia del comprador | invoice.buyer_reference | cbc:BuyerReference |
| BT-19 | Referencia contable | invoice.buyer_accounting_reference | cbc:AccountingCost |
| BT-22 | Nota (cabecera) | invoice.extra_info | cbc:Note |
Notas:
- BT-6: Solo se emite si se informa
invoice.tax_currency_code; la moneda del contacto comprador no lo establece. Envíalo junto coninvoice.tax_amount_in_tax_currency(BT-111), que se renderiza en un segundo bloquecac:TaxTotalen esta moneda. Si solo envías el código, la factura se crea pero no supera la validación Peppol (BR-53, PEPPOL-EN16931-R054, PEPPOL-EN16931-R055). Si solo envías el importe, se ignora.
Referencias y períodos
Sección titulada «Referencias y períodos»| BT | Término de negocio | Campo API (B2Brouter) | UBL XPath |
|---|---|---|---|
| BT-13 | Referencia de orden de compra | invoice.ponumber | cac:OrderReference/cbc:ID |
| BT-14 | Referencia de pedido de venta | invoice.sales_order_reference | cac:OrderReference/cbc:SalesOrderID |
| BT-12 | Referencia de contrato | invoice.contract_number | cac:ContractDocumentReference/cbc:ID |
| BT-15 | Referencia de aviso de recepción | invoice.receiving_advice_reference | cac:ReceiptDocumentReference/cbc:ID |
| BT-16 | Referencia de aviso de despacho | invoice.delivery_note_number | cac:DespatchDocumentReference/cbc:ID |
| BT-25 | Referencia de factura anterior | invoice.amended_number | cac:BillingReference/cac:InvoiceDocumentReference/cbc:ID |
| BT-26 | Fecha de factura anterior | invoice.amended_date | cac:BillingReference/cac:InvoiceDocumentReference/cbc:IssueDate |
| BT-73 | Inicio del período de facturación | invoice.invoicing_period_start | cac:InvoicePeriod/cbc:StartDate |
| BT-74 | Fin del período de facturación | invoice.invoicing_period_end | cac:InvoicePeriod/cbc:EndDate |
| BT-11 | Referencia de proyecto | invoice.file_reference | cac:ProjectReference/cbc:ID |
| — | Referencia de documento originador | invoice.lot_reference | cac:OriginatorDocumentReference/cbc:ID |
Notas:
- Para notas de crédito,
file_reference(BT-11) se emite comocac:AdditionalDocumentReference/cbc:IDen lugar decac:ProjectReference/cbc:ID.
Mapeo de partes
Sección titulada «Mapeo de partes»Este mapeo se describe para una factura emitida; si deseas mapear una factura recibida, intercambia AccountingSupplierParty y AccountingCustomerParty.
Autofacturación (
IssuedSelfInvoice/ReceivedSelfInvoice): en la autofacturación el comprador emite la factura en nombre del proveedor, por lo que los roles de las partes en el XML se invierten respecto a los campos de la API. Para unaIssuedSelfInvoice, los datos deaccountaparecen enAccountingCustomerParty(tu empresa es el comprador) y los datos deinvoice.contactaparecen enAccountingSupplierParty(el contacto es el proveedor). Lo mismo aplica simétricamente aReceivedSelfInvoice.
Parte vendedora
Sección titulada «Parte vendedora»| BT | Término de negocio | Campo API (B2Brouter) | UBL XPath |
|---|---|---|---|
| BT-34 | ID de endpoint del vendedor | account.pin_value | cac:AccountingSupplierParty/cac:Party/cbc:EndpointID @schemeID |
| BT-27 | Nombre legal del vendedor | account.name | cac:AccountingSupplierParty/cac:Party/cac:PartyLegalEntity/cbc:RegistrationName |
| BT-31 | NIF/IVA del vendedor | account.tin_value | cac:AccountingSupplierParty/cac:Party/cac:PartyTaxScheme/cbc:CompanyID |
| BT-35 | Calle del vendedor | account.address | cac:AccountingSupplierParty/cac:Party/cac:PostalAddress/cbc:StreetName |
| BT-36 | Calle 2 del vendedor | account.address2 | cac:AccountingSupplierParty/cac:Party/cac:PostalAddress/cbc:AdditionalStreetName |
| BT-37 | Ciudad del vendedor | account.city | cac:AccountingSupplierParty/cac:Party/cac:PostalAddress/cbc:CityName |
| BT-38 | Código postal del vendedor | account.postalcode | cac:AccountingSupplierParty/cac:Party/cac:PostalAddress/cbc:PostalZone |
| BT-39 | Provincia del vendedor | account.province | cac:AccountingSupplierParty/cac:Party/cac:PostalAddress/cbc:CountrySubentity |
| BT-40 | País del vendedor | account.country | cac:AccountingSupplierParty/cac:Party/cac:PostalAddress/cac:Country/cbc:IdentificationCode |
| BT-41 | Nombre de contacto del vendedor | account.contact_person | cac:AccountingSupplierParty/cac:Party/cac:Contact/cbc:Name |
| BT-42 | Teléfono de contacto del vendedor | account.phone | cac:AccountingSupplierParty/cac:Party/cac:Contact/cbc:Telephone |
| BT-43 | Email de contacto del vendedor | account.email | cac:AccountingSupplierParty/cac:Party/cac:Contact/cbc:ElectronicMail |
Parte compradora
Sección titulada «Parte compradora»| BT | Término de negocio | Campo API (B2Brouter) | UBL XPath |
|---|---|---|---|
| BT-49 | ID de endpoint del comprador | invoice.contact.pin_value | cac:AccountingCustomerParty/cac:Party/cbc:EndpointID @schemeID |
| BT-46 | Identificador del comprador | invoice.contact.party_identification | cac:AccountingCustomerParty/cac:Party/cac:PartyIdentification/cbc:ID @schemeID |
| BT-47 | Identificador de registro legal del comprador | invoice.contact.cin_value (cin_scheme) | cac:AccountingCustomerParty/cac:Party/cac:PartyLegalEntity/cbc:CompanyID @schemeID |
| BT-44 | Nombre legal del comprador | invoice.contact.name | cac:AccountingCustomerParty/cac:Party/cac:PartyLegalEntity/cbc:RegistrationName |
| BT-45 | Nombre comercial del comprador | invoice.contact.name | cac:AccountingCustomerParty/cac:Party/cac:PartyName/cbc:Name |
| BT-48 | NIF/IVA del comprador | invoice.contact.tin_value | cac:AccountingCustomerParty/cac:Party/cac:PartyTaxScheme/cbc:CompanyID |
| BT-50 | Calle del comprador | invoice.contact.address | cac:AccountingCustomerParty/cac:Party/cac:PostalAddress/cbc:StreetName |
| BT-51 | Calle 2 del comprador | invoice.contact.address2 | cac:AccountingCustomerParty/cac:Party/cac:PostalAddress/cbc:AdditionalStreetName |
| BT-52 | Ciudad del comprador | invoice.contact.city | cac:AccountingCustomerParty/cac:Party/cac:PostalAddress/cbc:CityName |
| BT-53 | Código postal del comprador | invoice.contact.postalcode | cac:AccountingCustomerParty/cac:Party/cac:PostalAddress/cbc:PostalZone |
| BT-54 | Provincia del comprador | invoice.contact.province | cac:AccountingCustomerParty/cac:Party/cac:PostalAddress/cbc:CountrySubentity |
| BT-55 | País del comprador | invoice.contact.country | cac:AccountingCustomerParty/cac:Party/cac:PostalAddress/cac:Country/cbc:IdentificationCode |
| BT-56 | Nombre de contacto del comprador | invoice.contact.contact_person | cac:AccountingCustomerParty/cac:Party/cac:Contact/cbc:Name |
| BT-57 | Teléfono de contacto del comprador | invoice.contact.phone | cac:AccountingCustomerParty/cac:Party/cac:Contact/cbc:Telephone |
| BT-58 | Email de contacto del comprador | invoice.contact.email | cac:AccountingCustomerParty/cac:Party/cac:Contact/cbc:ElectronicMail |
Notas:
- BT-46: el atributo
@schemeIDsolo se emite, con el valor0009, cuando el identificador coincide con el SIRET de establecimiento del contacto; en el resto de casos el elemento no lleva@schemeID. En los perfiles franceses (FRCIUS y extensión FR) el BT-46 no sale departy_identification: se emite el SIRET del contacto conschemeID="0009"y, si el contacto lo tiene, el code service conschemeID="0224". - BT-47: el atributo
@schemeIDes el código ICD decin_scheme. Si el contacto no tienecin_value, se emitepin_valuey, si tampoco lo hay,tin_value. Para un contacto francés el identificador legal es el SIREN: un sufijo (8040) o un code routage (0224) guardados comocin_valuese resuelven al SIREN bajo0002; un SIRET (0009) se resuelve al SIREN si el contacto es una oficina y, en los perfiles franceses, siempre. - BT-31 y BT-48:
cac:PartyTaxScheme/cac:TaxScheme/cbc:IDsale del esquema del identificador:VAT(oGSTpara los esquemas GST) cuando el esquema estaxcode. Si la parte no tienetin_value, se escribe elcin_value. Si el esquema de ese CIN no estaxcode(por ejemplo un GLN,0088), el código esZZZy el documento no lleva el identificador de IVA. Si la parte no tiene ni TIN ni CIN, el bloquecac:PartyTaxSchemeno se escribe. Tampoco se escribe cuando la factura lleva un impuesto de categoríaO. Para que el documento lleve el número de IVA del comprador, guárdalo entin_valuedel contacto con un esquemataxcode(ver Esquemas). Solo lo llevan los documentos generados después del cambio.
Dirección de importación
Sección titulada «Dirección de importación»Cuando se sube o se recibe un fichero UBL, el importador lee el comprador de cac:AccountingCustomerParty/cac:Party así:
cbc:EndpointIDy su@schemeIDpasan apin_valueypin_schemetal como vienen. Un endpoint conschemeID="EM"(correo electrónico) no se lee, y un endpoint igual a la dirección Peppol de tu propia cuenta se descarta.cac:PartyLegalEntity/cbc:CompanyIDy su@schemeIDpasan acin_valueycin_scheme. UnCompanyIDque repite el número de IVA se descarta.- Si el fichero no lleva
CompanyID, elEndpointIDrellena el CIN solo cuando su esquema es un identificador de empresa (por ejemplo0002o0009), nunca cuando es un esquema de enrutamiento (0224,0225,8040). De un endpoint0225se deriva el SIREN inicial, que pasa acin_valuebajo0002. cac:PartyIdentification/cbc:IDpasa aparty_identification(BT-46); si hay varios, tiene prioridad el que lleva un esquema de identificador de empresa (un SIRET bajo0009) y después el que no lleva@schemeID. Un SIRET bajo0009también rellena el CIN si aún está vacío.
Las cuatro composiciones de enrutamiento francesas (SIREN, SIREN_SIRET, SIREN_SIRET_CodeRoutage, SIREN_Suffix) viajan como valor de cbc:EndpointID schemeID="0225" y se guardan en pin_value sin modificar: el importador no compone ni divide la dirección. Un CompanyID sin @schemeID que coincide con el sufijo de una dirección SIREN_Suffix se etiqueta con el esquema 8040.
Entrega
Sección titulada «Entrega»| BT | Término de negocio | Campo API (B2Brouter) | UBL XPath |
|---|---|---|---|
| BT-72 | Fecha de entrega | invoice.delivery_date | cac:Delivery/cbc:ActualDeliveryDate |
| BT-71 | ID de ubicación de entrega | invoice.delivery_location_id | cac:Delivery/cac:DeliveryLocation/cbc:ID |
| BT-75 | Calle de entrega | invoice.delivery_address | cac:Delivery/cac:DeliveryLocation/cac:Address/cbc:StreetName |
| BT-76 | Calle 2 de entrega | invoice.delivery_address2 | cac:Delivery/cac:DeliveryLocation/cac:Address/cbc:AdditionalStreetName |
| BT-77 | Ciudad de entrega | invoice.delivery_city | cac:Delivery/cac:DeliveryLocation/cac:Address/cbc:CityName |
| BT-78 | Código postal de entrega | invoice.delivery_postalcode | cac:Delivery/cac:DeliveryLocation/cac:Address/cbc:PostalZone |
| BT-79 | Provincia de entrega | invoice.delivery_province | cac:Delivery/cac:DeliveryLocation/cac:Address/cbc:CountrySubentity |
| BT-80 | País de entrega | invoice.delivery_country | cac:Delivery/cac:DeliveryLocation/cac:Address/cac:Country/cbc:IdentificationCode |
| BT-70 | Nombre de la parte de entrega | invoice.delivery_party_name | cac:Delivery/cac:DeliveryParty/cac:PartyName/cbc:Name |
| BT | Término de negocio | Campo API (B2Brouter) | UBL XPath |
|---|---|---|---|
| BT-81 | Código de medio de pago | invoice.payment_method | cac:PaymentMeans/cbc:PaymentMeansCode @listID='UNCL4461' |
| BT-82 | Texto del medio de pago | invoice.payment_method_text | cac:PaymentMeans/cbc:PaymentMeansCode @name |
| BT-83 | Información de remesa | invoice.remittance_information | cac:PaymentMeans/cbc:PaymentID |
| BT-84 | IBAN de cuenta bancaria del beneficiario | invoice.bank_account.iban | cac:PaymentMeans/cac:PayeeFinancialAccount/cbc:ID |
| BT-84-0 | Número de cuenta bancaria del beneficiario | invoice.bank_account.number | cac:PaymentMeans/cac:PayeeFinancialAccount/cbc:ID (alternativo cuando no hay IBAN) |
| BT-85 | Nombre de cuenta bancaria del beneficiario | invoice.bank_account.name | cac:PaymentMeans/cac:PayeeFinancialAccount/cbc:Name (actualmente no se renderiza) |
| BT-86 | BIC de cuenta bancaria del beneficiario | invoice.bank_account.bic | cac:PaymentMeans/cac:PayeeFinancialAccount/cac:FinancialInstitutionBranch/cbc:ID |
| BT-87 | Número de cuenta de tarjeta | invoice.card_account_attributes.account_number | cac:PaymentMeans/cac:CardAccount/cbc:PrimaryAccountNumberID |
| BT-87-0 | Nombre del titular de la tarjeta | invoice.card_account_attributes.holder_name | cac:PaymentMeans/cac:CardAccount/cbc:HolderName |
| BT-88 | ID de red de tarjeta | invoice.card_account_attributes.network | cac:PaymentMeans/cac:CardAccount/cbc:NetworkID |
| BT-20 | Condiciones de pago | invoice.payment_terms | cac:PaymentTerms/cbc:Note |
| BT-89 | Referencia de mandato (solo SEPA DD) | invoice.mandate_reference_identifier | cac:PaymentMeans/cac:PaymentMandate/cbc:ID |
| BT-90 | Referencia del acreedor (SEPA DD) | invoice.bank_assigned_creditor_reference | cac:AccountingSupplierParty/cac:Party/cac:PartyIdentification/cbc:ID @schemeID='SEPA' |
| BT-91 | IBAN de cuenta del deudor (SEPA DD) | invoice.contact_iban | cac:PaymentMeans/cac:PaymentMandate/cac:PayerFinancialAccount/cbc:ID |
Totales e impuestos
Sección titulada «Totales e impuestos»| BT | Término de negocio | Campo API (B2Brouter) | UBL XPath |
|---|---|---|---|
| BT-106 | Total importes netos de líneas | (calculado) | cac:LegalMonetaryTotal/cbc:LineExtensionAmount |
| BT-109 | Importe sin impuestos | (calculado) | cac:LegalMonetaryTotal/cbc:TaxExclusiveAmount |
| BT-107 | Total importes de descuentos | (calculado) | cac:LegalMonetaryTotal/cbc:AllowanceTotalAmount |
| BT-108 | Total importes de cargos | (calculado) | cac:LegalMonetaryTotal/cbc:ChargeTotalAmount |
| BT-112 | Importe con impuestos | (calculado) | cac:LegalMonetaryTotal/cbc:TaxInclusiveAmount |
| BT-113 | Total importe prepagado | invoice.payments_on_account | cac:LegalMonetaryTotal/cbc:PrepaidAmount |
| BT-114 | Importe de redondeo | (del ajuste de factura) | cac:LegalMonetaryTotal/cbc:PayableRoundingAmount |
| BT-115 | Importe pendiente de pago | invoice.payable_amount | cac:LegalMonetaryTotal/cbc:PayableAmount |
| BT-110 | Importe total de IVA | (calculado) | cac:TaxTotal/cbc:TaxAmount |
| BT-111 | Total de IVA en moneda fiscal | invoice.tax_amount_in_tax_currency | cac:TaxTotal/cbc:TaxAmount (2.º bloque, currencyID = BT-6) |
| BT-116 | Base imponible por categoría | (calculado de las líneas) | cac:TaxTotal/cac:TaxSubtotal/cbc:TaxableAmount |
| BT-117 | Importe de IVA por categoría | (calculado de las líneas) | cac:TaxTotal/cac:TaxSubtotal/cbc:TaxAmount |
| BT-120 | Motivo de exención de IVA | invoice_lines_attributes[].taxes_attributes[].comment | cac:TaxTotal/cac:TaxSubtotal/cac:TaxCategory/cbc:TaxExemptionReason |
| — | Importe retenido | invoice.withheld_percent | cac:AllowanceCharge/cbc:Amount |
| — | Motivo de retención | invoice.amounts_withheld_reason | cac:AllowanceCharge/cbc:AllowanceChargeReason |
Motivo de exención de IVA (BT-120): el motivo se informa en el impuesto de cada línea (
taxes_attributes[].comment), pero no se escribe en la línea de la factura. B2Brouter agrupa los impuestos de las líneas por categoría y tipo en el desglose de IVA (cac:TaxTotal/cac:TaxSubtotal) y escribe allí el motivo, uno por grupo. Si varias líneas del mismo grupo llevan comentarios distintos, solo se exporta uno. Se exporta para las categorías de exención (E, AE, G, K, O) y se omite para S, Z, L y M, donde la EN 16931 no lo admite.
Descuentos y cargos de cabecera
Sección titulada «Descuentos y cargos de cabecera»| BT | Término de negocio | Campo API (B2Brouter) | UBL XPath |
|---|---|---|---|
| BT-92 | Importe del descuento | allowance_charges_attributes[]{allowance_charge_indicator: "allowance", amount: X} | cac:AllowanceCharge[cbc:ChargeIndicator=false]/cbc:Amount |
| BT-93 | Importe base del descuento | (calculado cuando es porcentual) | cac:AllowanceCharge[cbc:ChargeIndicator=false]/cbc:BaseAmount |
| BT-94 | Porcentaje del descuento | allowance_charges_attributes[]{allowance_charge_indicator: "allowance", percentage: X} | cac:AllowanceCharge[cbc:ChargeIndicator=false]/cbc:MultiplierFactorNumeric |
| BT-97 | Motivo del descuento | allowance_charges_attributes[]{allowance_charge_indicator: "allowance", description: "..."} | cac:AllowanceCharge[cbc:ChargeIndicator=false]/cbc:AllowanceChargeReason |
| BT-99 | Importe del cargo | allowance_charges_attributes[]{allowance_charge_indicator: "charge", amount: X} | cac:AllowanceCharge[cbc:ChargeIndicator=true]/cbc:Amount |
| BT-100 | Importe base del cargo | (calculado cuando es porcentual) | cac:AllowanceCharge[cbc:ChargeIndicator=true]/cbc:BaseAmount |
| BT-101 | Porcentaje del cargo | allowance_charges_attributes[]{allowance_charge_indicator: "charge", percentage: X} | cac:AllowanceCharge[cbc:ChargeIndicator=true]/cbc:MultiplierFactorNumeric |
| BT-104 | Motivo del cargo | allowance_charges_attributes[]{allowance_charge_indicator: "charge", description: "..."} | cac:AllowanceCharge[cbc:ChargeIndicator=true]/cbc:AllowanceChargeReason |
| BT-102 | Aplicar impuesto al descuento/cargo | allowance_charges_attributes[]{apply_taxes: true} | cac:AllowanceCharge/cac:TaxCategory |
Mapeo a nivel de línea de factura
Sección titulada «Mapeo a nivel de línea de factura»Todos los atributos siguientes son propiedades de objetos en: invoice.invoice_lines_attributes[].
| BT | Término de negocio | Campo API (línea) | UBL XPath |
|---|---|---|---|
| BT-126 | ID de línea de factura | position | cac:InvoiceLine/cbc:ID |
| BT-129 | Cantidad facturada | quantity | cac:InvoiceLine/cbc:InvoicedQuantity |
| BT-130 | Cantidad facturada (unidad) | unit | cac:InvoiceLine/cbc:InvoicedQuantity @unitCode |
| BT-131 | Importe de extensión de línea | extension_amount (o calculado) | cac:InvoiceLine/cbc:LineExtensionAmount |
| BT-146 | Precio unitario | price | cac:InvoiceLine/cac:Price/cbc:PriceAmount |
| BT-153 | Nombre del artículo | description | cac:InvoiceLine/cac:Item/cbc:Name |
| BT-154 | Descripción del artículo | notes | cac:InvoiceLine/cac:Item/cbc:Description |
| BT-155 | ID del artículo del vendedor | article_code | cac:InvoiceLine/cac:Item/cac:SellersItemIdentification/cbc:ID |
| BT-156 | ID del artículo del comprador | article_code_buyer | cac:InvoiceLine/cac:Item/cac:BuyersItemIdentification/cbc:ID |
| BT-157 | ID estándar del artículo | article_code2 | cac:InvoiceLine/cac:Item/cac:StandardItemIdentification/cbc:ID @schemeID |
| BT-157-1 | Esquema del ID estándar del artículo | article_code2_scheme | cac:InvoiceLine/cac:Item/cac:StandardItemIdentification/cbc:ID @schemeID (por defecto 0160) |
| BT-158 | Código de clasificación | classification_code | cac:InvoiceLine/cac:Item/cac:CommodityClassification/cbc:ItemClassificationCode @listID |
| BT-158-1 | Esquema de código de clasificación | classification_code_scheme | cac:InvoiceLine/cac:Item/cac:CommodityClassification/cbc:ItemClassificationCode @listID |
| BT-151 | Categoría IVA (por línea) | taxes_attributes[].category | cac:InvoiceLine/cac:Item/cac:ClassifiedTaxCategory/cbc:ID |
| BT-152 | Porcentaje IVA (por línea) | taxes_attributes[].percent | cac:InvoiceLine/cac:Item/cac:ClassifiedTaxCategory/cbc:Percent |
| BT-160 | Nombre de propiedad adicional | additional_item_properties_attributes[].name | cac:InvoiceLine/cac:Item/cac:AdditionalItemProperty/cbc:Name |
| BT-161 | Valor de propiedad adicional | additional_item_properties_attributes[].value | cac:InvoiceLine/cac:Item/cac:AdditionalItemProperty/cbc:Value |
| BT-133 | Referencia contable del comprador | contact_reference | cac:InvoiceLine/cbc:AccountingCost |
| BT-134 | Inicio del período de facturación de línea | invoicing_period_start | cac:InvoiceLine/cac:InvoicePeriod/cbc:StartDate |
| BT-135 | Fin del período de facturación de línea | invoicing_period_end | cac:InvoiceLine/cac:InvoicePeriod/cbc:EndDate |
| BT-136 | Importe del descuento de línea | allowance_charges_attributes[]{allowance_charge_indicator: "allowance", amount: X} | cac:InvoiceLine/cac:AllowanceCharge[cbc:ChargeIndicator=false]/cbc:Amount |
| BT-138 | Porcentaje del descuento de línea | allowance_charges_attributes[]{allowance_charge_indicator: "allowance", percentage: X} | cac:InvoiceLine/cac:AllowanceCharge[cbc:ChargeIndicator=false]/cbc:MultiplierFactorNumeric |
| BT-139 | Motivo del descuento de línea | allowance_charges_attributes[]{allowance_charge_indicator: "allowance", description: "..."} | cac:InvoiceLine/cac:AllowanceCharge[cbc:ChargeIndicator=false]/cbc:AllowanceChargeReason |
| BT-141 | Importe del cargo de línea | allowance_charges_attributes[]{allowance_charge_indicator: "charge", amount: X} | cac:InvoiceLine/cac:AllowanceCharge[cbc:ChargeIndicator=true]/cbc:Amount |
| BT-143 | Porcentaje del cargo de línea | allowance_charges_attributes[]{allowance_charge_indicator: "charge", percentage: X} | cac:InvoiceLine/cac:AllowanceCharge[cbc:ChargeIndicator=true]/cbc:MultiplierFactorNumeric |
| BT-144 | Motivo del cargo de línea | allowance_charges_attributes[]{allowance_charge_indicator: "charge", description: "..."} | cac:InvoiceLine/cac:AllowanceCharge[cbc:ChargeIndicator=true]/cbc:AllowanceChargeReason |
| BT-128 | Referencia de orden de compra (línea) | invoice_lines_attributes[].ponumber | cac:InvoiceLine/cac:DocumentReference/cbc:ID |
| BT-132 | Referencia de línea de PO | invoice_lines_attributes[].sequence_number | cac:InvoiceLine/cac:OrderLineReference/cbc:LineID |