| ermendalenda |
10-06-2025 10:35:13 |
Ejemplos Ubl
Ya por fin tengo ejemplos que parece que se adaptan al nuevo reglamento que se ha propuesto,
El esquema que parece que se va a usar segñun la propuesta del nuevo reglamento es: UBL INVOICE 2.1 BIS BILLING 3.0.
Como os dije, hay mucha información en internet bastante liosa, pero gracias a las busquedas de ejemplos y un poco guiado por la I.A., pero teniendo en cuenta que se equivoca más que el hombre del tiempo.
Os dejo un par de ejemplos que han pasado por el validador Free Peppol ( https://ecosio.com/en/peppol-and-xml...ent-validator/) y seleccionando "UBL INVOICE 2.1" y por el visor de facturas UBL(Qube).
A.Factura Normal (De abono), que es igual que para la factura normal pero con signos negativos, teniendo en cuenta que los abonos solo los uso para hacer facturas rectificativas en 2 pasos:
Código PHP:
<?xml version="1.0" encoding="UTF-8"?> <Invoice xmlns:cac="urn:oasis:names:specification:ubl:schema:xsd:CommonAggregateComponents-2" xmlns:cn="urn:oasis:names:specification:ubl:schema:xsd:CreditNote-2" xmlns:cbc="urn:oasis:names:specification:ubl:schema:xsd:CommonBasicComponents-2" xmlns="urn:oasis:names:specification:ubl:schema:xsd:Invoice-2"> <cbc:CustomizationID>urn:cen.eu:en16931:2017#compliant#urn:fdc:peppol.eu:2017:poacc:billing:3.0</cbc:CustomizationID> <cbc:ProfileID>urn:fdc:peppol.eu:2017:poacc:billing:01:1.0</cbc:ProfileID> <cbc:ID>66.2.3-7</cbc:ID> <cbc:IssueDate>2025-06-10</cbc:IssueDate> <cbc:DueDate>2025-06-10</cbc:DueDate> <cbc:InvoiceTypeCode>380</cbc:InvoiceTypeCode> <cbc:DocumentCurrencyCode>EUR</cbc:DocumentCurrencyCode> <cbc:TaxCurrencyCode>EUR</cbc:TaxCurrencyCode> <cac:InvoicePeriod> <cbc:StartDate>2025-06-10</cbc:StartDate> <cbc:EndDate>2025-06-10</cbc:EndDate> </cac:InvoicePeriod> <cac:AccountingSupplierParty> <cac:Party> <cac:PartyIdentification> <cbc:ID schemeID="ES">B00000000</cbc:ID> </cac:PartyIdentification> <cac:PartyName> <cbc:Name>EMPRESA X,S.L.</cbc:Name> </cac:PartyName> <cac:PostalAddress> <cbc:StreetName>C/LA BAMBA, 48</cbc:StreetName> <cbc:CityName>MALAGA</cbc:CityName> <cbc:PostalZone>29006</cbc:PostalZone> <cbc:CountrySubentity>MALAGA</cbc:CountrySubentity> <cac:Country> <cbc:IdentificationCode>ESP</cbc:IdentificationCode> </cac:Country> </cac:PostalAddress> <cac:PartyTaxScheme> <cbc:CompanyID>ESB00000000</cbc:CompanyID> <cac:TaxScheme> <cbc:ID>VAT</cbc:ID> </cac:TaxScheme> </cac:PartyTaxScheme> <cac:PartyLegalEntity> <cbc:RegistrationName>EMPRESA X, S.L.</cbc:RegistrationName> <cbc:CompanyID>ESB00000000</cbc:CompanyID> <cac:RegistrationAddress> <cbc:AddressTypeCode>0001</cbc:AddressTypeCode> <cbc:CityName>MALAGA</cbc:CityName> <cbc:CountrySubentity>MALAGA</cbc:CountrySubentity> <cac:AddressLine> <cbc:Line>C/LA BAMBA, 48</cbc:Line> </cac:AddressLine> <cac:Country> <cbc:IdentificationCode listID="ISO 3166-1:Alpha2" listName="Country" listAgencyName="United Nations Economic Commission for Europe">ES</cbc:IdentificationCode> </cac:Country> </cac:RegistrationAddress> </cac:PartyLegalEntity> </cac:Party> </cac:AccountingSupplierParty> <cac:AccountingCustomerParty> <cac:Party> <cac:PartyIdentification> <cbc:ID schemeID="ES" schemeName="EMPRESA RECEPTORA">A00000000</cbc:ID> </cac:PartyIdentification> <cac:PartyName> <cbc:Name>EMPRESA RECEPTORA</cbc:Name> </cac:PartyName> <cac:PostalAddress> <cbc:ID schemeID="ES" schemeName="EMPRESA RECEPTORA">A00000000</cbc:ID> <cbc:StreetName>C.AMANCIO ORTEGA,27 </cbc:StreetName> <cbc:CityName>MALAGA</cbc:CityName> <cbc:PostalZone>029018</cbc:PostalZone> <cac:Country> <cbc:IdentificationCode listID="ISO3166-1">ES</cbc:IdentificationCode> </cac:Country> </cac:PostalAddress> <cac:PartyTaxScheme> <cbc:CompanyID>ESA00000000</cbc:CompanyID> <cac:TaxScheme> <cbc:ID>VAT</cbc:ID> </cac:TaxScheme> </cac:PartyTaxScheme> <cac:PartyLegalEntity> <cbc:RegistrationName>EMPRESA RECEPTORA</cbc:RegistrationName> <cbc:CompanyID schemeID="ES">A00000000</cbc:CompanyID> </cac:PartyLegalEntity> </cac:Party> </cac:AccountingCustomerParty> <cac:PaymentMeans><cbc:PaymentMeansCode name="10 (Contado)">10</cbc:PaymentMeansCode><cbc:PaymentDueDate>2025-06-10</cbc:PaymentDueDate><cbc:InstructionNote>Pago en efectivo,Pasarela de Pago o Datafono (a la entrega)</cbc:InstructionNote></cac:PaymentMeans> <cac:TaxTotal> <cbc:TaxAmount currencyID="EUR">-230.77</cbc:TaxAmount> <cac:TaxSubtotal> <cbc:TaxableAmount currencyID="EUR">-5769.23</cbc:TaxableAmount> <cbc:TaxAmount currencyID="EUR">-230.77</cbc:TaxAmount> <cac:TaxCategory> <cbc:ID schemeID="UN/ECE 5305" schemeAgencyID="6">S</cbc:ID> <cbc:Percent>4.00</cbc:Percent> <cac:TaxScheme> <cbc:ID>VAT</cbc:ID> </cac:TaxScheme> </cac:TaxCategory></cac:TaxSubtotal></cac:TaxTotal><cac:LegalMonetaryTotal> <cbc:LineExtensionAmount currencyID="EUR">-5769.23</cbc:LineExtensionAmount> <cbc:TaxExclusiveAmount currencyID="EUR">-5769.23</cbc:TaxExclusiveAmount> <cbc:TaxInclusiveAmount currencyID="EUR">-6000.00</cbc:TaxInclusiveAmount> <cbc:AllowanceTotalAmount currencyID="EUR">0.00</cbc:AllowanceTotalAmount> <cbc:ChargeTotalAmount currencyID="EUR">0.00</cbc:ChargeTotalAmount> <cbc:PrepaidAmount currencyID="EUR">0.00</cbc:PrepaidAmount> <cbc:PayableAmount currencyID="EUR">-6000.00</cbc:PayableAmount></cac:LegalMonetaryTotal> <cac:InvoiceLine><cbc:ID>1</cbc:ID><cbc:InvoicedQuantity unitCode="C62">-4000.000</cbc:InvoicedQuantity><cbc:LineExtensionAmount currencyID="EUR">-5769.23</cbc:LineExtensionAmount><cac:InvoicePeriod><cbc:StartDate>2025-06-10</cbc:StartDate><cbc:EndDate>2025-06-10</cbc:EndDate></cac:InvoicePeriod><cac:OrderLineReference><cbc:LineID>Encargo:7</cbc:LineID></cac:OrderLineReference><cac:Item><cbc:Description>BARRA PAN GARRUCHA</cbc:Description><cac:SellersItemIdentification><cbc:ID>710106</cbc:ID></cac:SellersItemIdentification><cac:ClassifiedTaxCategory> <cbc:ID schemeID="UN/ECE 5305" schemeAgencyID="6">S</cbc:ID><cbc:Percent>4.00</cbc:Percent><cac:TaxScheme><cbc:ID>VAT</cbc:ID></cac:TaxScheme></cac:ClassifiedTaxCategory></cac:Item><cac:Price><cbc:PriceAmount currencyID="EUR">1.44230750</cbc:PriceAmount><cbc:BaseQuantity unitCode="C62">-4000.000</cbc:BaseQuantity></cac:Price></cac:InvoiceLine> </Invoice>
B. Factura Rectificativa por diferencias(I), la unica diferencia para ponerla por sustitucion es un texto en el Nodo "Note", no hay más(de momento a no ser que la Aeat nos diga otra forma)
Código PHP:
<?xml version="1.0" encoding="UTF-8"?> <Invoice xmlns:cac="urn:oasis:names:specification:ubl:schema:xsd:CommonAggregateComponents-2" xmlns:cn="urn:oasis:names:specification:ubl:schema:xsd:CreditNote-2" xmlns:cbc="urn:oasis:names:specification:ubl:schema:xsd:CommonBasicComponents-2" xmlns="urn:oasis:names:specification:ubl:schema:xsd:Invoice-2"> <cbc:CustomizationID>urn:cen.eu:en16931:2017#compliant#urn:fdc:peppol.eu:2017:poacc:billing:3.0</cbc:CustomizationID> <cbc:ProfileID>urn:fdc:peppol.eu:2017:poacc:billing:01:1.0</cbc:ProfileID> <cbc:ID>66.2.5-4</cbc:ID> <cbc:IssueDate>2025-06-10</cbc:IssueDate> <cbc:DueDate>2025-06-10</cbc:DueDate> <cbc:InvoiceTypeCode>384</cbc:InvoiceTypeCode> <cbc:Note languageID="es">Factura Rectificativa por Diferencias(I), por error en el Detalle de las operaciones(Codigo Facturae 10)</cbc:Note> <cbc:DocumentCurrencyCode>EUR</cbc:DocumentCurrencyCode> <cbc:TaxCurrencyCode>EUR</cbc:TaxCurrencyCode> <cac:InvoicePeriod> <cbc:StartDate>2025-06-10</cbc:StartDate> <cbc:EndDate>2025-06-10</cbc:EndDate> </cac:InvoicePeriod> <cac:BillingReference><cac:InvoiceDocumentReference><cbc:ID>66.2.3.6</cbc:ID><cbc:IssueDate>2025-06-09</cbc:IssueDate></cac:InvoiceDocumentReference></cac:BillingReference> <cac:AccountingSupplierParty> <cac:Party> <cac:PartyIdentification> <cbc:ID schemeID="ES">B00000000</cbc:ID> </cac:PartyIdentification> <cac:PartyName> <cbc:Name>EMPRESA X,S.L.</cbc:Name> </cac:PartyName> <cac:PostalAddress> <cbc:StreetName>C/LA BAMBA, 48</cbc:StreetName> <cbc:CityName>MALAGA</cbc:CityName> <cbc:PostalZone>29006</cbc:PostalZone> <cbc:CountrySubentity>MALAGA</cbc:CountrySubentity> <cac:Country> <cbc:IdentificationCode>ESP</cbc:IdentificationCode> </cac:Country> </cac:PostalAddress> <cac:PartyTaxScheme> <cbc:CompanyID>ESB00000000</cbc:CompanyID> <cac:TaxScheme> <cbc:ID>VAT</cbc:ID> </cac:TaxScheme> </cac:PartyTaxScheme> <cac:PartyLegalEntity> <cbc:RegistrationName>EMPRESA X,S.L.</cbc:RegistrationName> <cbc:CompanyID>ESB00000000</cbc:CompanyID> <cac:RegistrationAddress> <cbc:AddressTypeCode>0001</cbc:AddressTypeCode> <cbc:CityName>MALAGA</cbc:CityName> <cbc:CountrySubentity>MALAGA</cbc:CountrySubentity> <cac:AddressLine> <cbc:Line>C/LA BAMBA, 48</cbc:Line> </cac:AddressLine> <cac:Country> <cbc:IdentificationCode listID="ISO 3166-1:Alpha2" listName="Country" listAgencyName="United Nations Economic Commission for Europe">ES</cbc:IdentificationCode> </cac:Country> </cac:RegistrationAddress> </cac:PartyLegalEntity> </cac:Party> </cac:AccountingSupplierParty> <cac:AccountingCustomerParty> <cac:Party> <cac:PartyIdentification> <cbc:ID schemeID="ES" schemeName="EMPRESA RECEPTORA,S.L">A00000000</cbc:ID> </cac:PartyIdentification> <cac:PartyName> <cbc:Name>EMPRESA RECEPTORA</cbc:Name> </cac:PartyName> <cac:PostalAddress> <cbc:ID schemeID="ES" schemeName="EMPRESA RECEPTORA">A00000000</cbc:ID> <cbc:StreetName>C.AMANCIO ORTEGA,27 </cbc:StreetName> <cbc:CityName>MALAGA</cbc:CityName> <cbc:PostalZone>029018</cbc:PostalZone> <cac:Country> <cbc:IdentificationCode listID="ISO3166-1">ES</cbc:IdentificationCode> </cac:Country> </cac:PostalAddress> <cac:PartyTaxScheme> <cbc:CompanyID>ESA00000000</cbc:CompanyID> <cac:TaxScheme> <cbc:ID>VAT</cbc:ID> </cac:TaxScheme> </cac:PartyTaxScheme> <cac:PartyLegalEntity> <cbc:RegistrationName>EMPRESA RECEPTORA</cbc:RegistrationName> <cbc:CompanyID schemeID="ES">A00000000</cbc:CompanyID> </cac:PartyLegalEntity> </cac:Party> </cac:AccountingCustomerParty> <cac:PaymentMeans><cbc:PaymentMeansCode name="10 (Contado)">10</cbc:PaymentMeansCode><cbc:PaymentDueDate>2025-06-10</cbc:PaymentDueDate><cbc:InstructionNote>Pago en efectivo,Pasarela de Pago o Datafono (a la entrega)</cbc:InstructionNote></cac:PaymentMeans> <cac:TaxTotal> <cbc:TaxAmount currencyID="EUR">-57.69</cbc:TaxAmount> <cac:TaxSubtotal> <cbc:TaxableAmount currencyID="EUR">-1442.31</cbc:TaxableAmount> <cbc:TaxAmount currencyID="EUR">-57.69</cbc:TaxAmount> <cac:TaxCategory> <cbc:ID schemeID="UN/ECE 5305" schemeAgencyID="6">S</cbc:ID> <cbc:Percent>4.00</cbc:Percent> <cac:TaxScheme> <cbc:ID>VAT</cbc:ID> </cac:TaxScheme> </cac:TaxCategory></cac:TaxSubtotal></cac:TaxTotal><cac:LegalMonetaryTotal> <cbc:LineExtensionAmount currencyID="EUR">-1442.31</cbc:LineExtensionAmount> <cbc:TaxExclusiveAmount currencyID="EUR">-1442.31</cbc:TaxExclusiveAmount> <cbc:TaxInclusiveAmount currencyID="EUR">-1500.00</cbc:TaxInclusiveAmount> <cbc:AllowanceTotalAmount currencyID="EUR">0.00</cbc:AllowanceTotalAmount> <cbc:ChargeTotalAmount currencyID="EUR">0.00</cbc:ChargeTotalAmount> <cbc:PrepaidAmount currencyID="EUR">0.00</cbc:PrepaidAmount> <cbc:PayableAmount currencyID="EUR">-1500.00</cbc:PayableAmount></cac:LegalMonetaryTotal> <cac:InvoiceLine> <cbc:ID>1</cbc:ID> <cbc:InvoicedQuantity unitCode="C62">-1000.000</cbc:InvoicedQuantity> <cbc:LineExtensionAmount currencyID="EUR">-1442.31</cbc:LineExtensionAmount> <cac:InvoicePeriod> <cbc:StartDate>2025-06-10</cbc:StartDate><cbc:EndDate>2025-06-10</cbc:EndDate> </cac:InvoicePeriod><cac:Item><cbc:Description>BARRA PAN GARRUCHA</cbc:Description><cac:SellersItemIdentification><cbc:ID>710106</cbc:ID></cac:SellersItemIdentification><cac:ClassifiedTaxCategory> <cbc:ID schemeID="UN/ECE 5305" schemeAgencyID="6">S</cbc:ID><cbc:Percent>4.00</cbc:Percent><cac:TaxScheme><cbc:ID>VAT</cbc:ID></cac:TaxScheme></cac:ClassifiedTaxCategory></cac:Item><cac:Price><cbc:PriceAmount currencyID="EUR">1.44230750</cbc:PriceAmount><cbc:BaseQuantity unitCode="C62">-1000.000</cbc:BaseQuantity></cac:Price></cac:InvoiceLine> </Invoice>
También tengo listo el UBL que admita los DIR y los datos registrales como en FACTURAE, solo tiene sentido para las B2B que soliciten que se integren sus datos DIR, pero lo normal es que en ese caso pidan la facturae por que suelen integrarlo en sus sistemas a través de este formato. Tampoco va a ser necesario para las B2G ya que parece ser que seguiran admitiendo facturaE por FACE.
Todo esto ha tenido un buen curro y seguro que os vais a ahorrar un montón de dias de trabajo, espero que os sirva cuando le metais caña a la factura electronica.
|