Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

[INVOICES] Electronic invoicing & semantic standard EN16931. #136

Open
SMEWebify opened this issue Jun 7, 2023 · 2 comments
Open

[INVOICES] Electronic invoicing & semantic standard EN16931. #136

SMEWebify opened this issue Jun 7, 2023 · 2 comments
Assignees
Labels
help wanted Extra attention is needed Improvement New feature or request

Comments

@SMEWebify
Copy link
Owner

As of July 1, 2024, companies are required to accept invoices in electronic format. And gradually depending on their size until January 2026, they will have to issue their domestic BtoB invoices electronically.

Formats accepted
All electronic invoices, regardless of their syntax, must comply with the EN16931 semantic standard.

Consider invoices in UBL XML, CII XML, EDIFACT INVOICE D168 formats and especially in Factur-X format. Factur-X is a hybrid format that combines PDF/A3 and XML.

@SMEWebify SMEWebify added Improvement New feature or request help wanted Extra attention is needed labels Jun 7, 2023
@SMEWebify
Copy link
Owner Author

@SMEWebify SMEWebify self-assigned this Sep 7, 2023
SMEWebify added a commit that referenced this issue Oct 24, 2023
@SMEWebify
Copy link
Owner Author

           //<ram:ID>471102</ram:ID>
            //<ram:TypeCode>380</ram:TypeCode>
            //<ram:IssueDateTime>
            //<udt:DateTimeString format="102">20180305</udt:DateTimeString>
            //</ram:IssueDateTime>
            ->setDocumentInformation("471102", "380", \DateTime::createFromFormat("Ymd", "20180305"), "EUR")
            //<ram:IncludedNote>
            //<ram:Content>Rechnung gemäß Bestellung vom 01.03.2018.</ram:Content>
            //</ram:IncludedNote>
            ->addDocumentNote('Rechnung gemäß Bestellung vom 01.03.2018.')
            //<ram:IncludedNote>
            //<ram:Content>Lieferant GmbH&#13;
            //Lieferantenstraße 20&#13;
            //80333 München&#13;
            //Deutschland&#13;
            //Geschäftsführer: Hans Muster&#13;
            //Handelsregisternummer: H A 123&#13;
            //&#13;
            //</ram:Content>
            ->addDocumentNote('Lieferant GmbH' . PHP_EOL . 'Lieferantenstraße 20' . PHP_EOL . '80333 München' . PHP_EOL . 'Deutschland' . PHP_EOL . 'Geschäftsführer: Hans Muster' . PHP_EOL . 'Handelsregisternummer: H A 123' . PHP_EOL . PHP_EOL, null, 'REG')
            //<ram:IssueDateTime>
            //<udt:DateTimeString format="102">20180305</udt:DateTimeString>
            //</ram:IssueDateTime>
            ->setDocumentSupplyChainEvent(\DateTime::createFromFormat('Ymd', '20180305'))
            //<ram:IBANID>DE12500105170648489890</ram:IBANID>
            ->addDocumentPaymentMean(ZugferdPaymentMeans::UNTDID_4461_58, null, null, null, null, null, "DE12500105170648489890", null, null, null)
            //<ram:ID>549910</ram:ID>
            //<ram:Name>Lieferant GmbH</ram:Name>
            ->setDocumentSeller("Lieferant GmbH", "549910")
            //<ram:GlobalID schemeID="0088">4000001123452</ram:GlobalID>
            ->addDocumentSellerGlobalId("4000001123452", "0088")
            //<ram:SpecifiedTaxRegistration>
            //<ram:ID schemeID="FC">201/113/40209</ram:ID>
            //</ram:SpecifiedTaxRegistration>
            ->addDocumentSellerTaxRegistration("FC", "201/113/40209")
            //Identifiant à la TVA du vendeur
            //<ram:SpecifiedTaxRegistration>
            //<ram:ID schemeID="VA">DE123456789</ram:ID>
            //</ram:SpecifiedTaxRegistration>
            ->addDocumentSellerTaxRegistration("VA", "DE123456789")
            //<ram:PostalTradeAddress>
            //<ram:PostcodeCode>80333</ram:PostcodeCode>
            //<ram:LineOne>Lieferantenstraße 20</ram:LineOne>
            //<ram:CityName>München</ram:CityName>
            //<ram:CountryID>DE</ram:CountryID>
            //</ram:PostalTradeAddress>
            ->setDocumentSellerAddress("Lieferantenstraße 20", "", "", "80333", "München", "DE")
            //<ram:DefinedTradeContact>
            //<ram:PersonName>Heinz Mükker</ram:PersonName>
            //<ram:DepartmentName>Buchhaltung</ram:DepartmentName>
            //<ram:TelephoneUniversalCommunication>
            //<ram:CompleteNumber>+49-111-2222222</ram:CompleteNumber>
            //</ram:TelephoneUniversalCommunication>
            //<ram:EmailURIUniversalCommunication>
            //<ram:URIID>info@lieferant.de</ram:URIID>
            //</ram:EmailURIUniversalCommunication>
            //</ram:DefinedTradeContact>
            ->setDocumentSellerContact("Heinz Mükker", "Buchhaltung", "+49-111-2222222", "+49-111-3333333","info@lieferant.de")
            //<ram:ID>GE2020211</ram:ID>
            //<ram:Name>Kunden AG Mitte</ram:Name>
            ->setDocumentBuyer("Kunden AG Mitte", "GE2020211")
            //<ram:BuyerReference>34676-342323</ram:BuyerReference>
            ->setDocumentBuyerReference("34676-342323")
            //<ram:PostalTradeAddress>
            //<ram:PostcodeCode>69876</ram:PostcodeCode>
            //<ram:LineOne>Kundenstraße 15</ram:LineOne>
            //<ram:CityName>Frankfurt</ram:CityName>
            //<ram:CountryID>DE</ram:CountryID>
            //</ram:PostalTradeAddress>
            ->setDocumentBuyerAddress("Kundenstraße 15", "", "", "69876", "Frankfurt", "DE")
            //<ram:TypeCode>VAT</ram:TypeCode>
            //<ram:CategoryCode>S</ram:CategoryCode>
            //<ram:RateApplicablePercent>7.00</ram:RateApplicablePercent>
            //<ram:SpecifiedTradeSettlementLineMonetarySummation>
            //<ram:LineTotalAmount>275.00</ram:LineTotalAmount>
            ->addDocumentTax("S", "VAT", 275.0, 19.25, 7.0)
            //<ram:CalculatedAmount>37.02</ram:CalculatedAmount>
            //<ram:TypeCode>VAT</ram:TypeCode>
            //<ram:BasisAmount>198.00</ram:BasisAmount>
            //<ram:CategoryCode>S</ram:CategoryCode>
            //<ram:RateApplicablePercent>19.00</ram:RateApplicablePercent>
            ->addDocumentTax("S", "VAT", 198.0, 37.62, 19.0)
            //<ram:SpecifiedTradeSettlementHeaderMonetarySummation>
            //<ram:LineTotalAmount>473.00</ram:LineTotalAmount>
            //<ram:ChargeTotalAmount>0.00</ram:ChargeTotalAmount>
            //<ram:AllowanceTotalAmount>0.00</ram:AllowanceTotalAmount>
            //<ram:TaxBasisTotalAmount>473.00</ram:TaxBasisTotalAmount>
            //<ram:TaxTotalAmount currencyID="EUR">56.87</ram:TaxTotalAmount>
            //<ram:GrandTotalAmount>529.87</ram:GrandTotalAmount>
            //<ram:TotalPrepaidAmount>0.00</ram:TotalPrepaidAmount>
            //<ram:DuePayableAmount>529.87</ram:DuePayableAmount>
            //</ram:SpecifiedTradeSettlementHeaderMonetarySummation>
            ->setDocumentSummation(529.87, 529.87, 473.00, 0.0, 0.0, 473.00, 56.87, null, 0.0)
            //<ram:SpecifiedTradePaymentTerms>
            //<ram:Description>Zahlbar innerhalb 30 Tagen netto bis 04.04.2018, 3% Skonto innerhalb 10 Tagen bis 15.03.2018</ram:Description>
            //</ram:SpecifiedTradePaymentTerms>
            ->addDocumentPaymentTerm("Zahlbar innerhalb 30 Tagen netto bis 04.04.2018, 3% Skonto innerhalb 10 Tagen bis 15.03.2018")


            //<ram:AssociatedDocumentLineDocument>
            //<ram:LineID>1</ram:LineID>
            //</ram:AssociatedDocumentLineDocument>
            ->addNewPosition("1")
            //<ram:SpecifiedTradeProduct>
            //<ram:GlobalID schemeID="0160">4012345001235</ram:GlobalID>
            //<ram:SellerAssignedID>TB100A4</ram:SellerAssignedID>
            //<ram:Name>Trennblätter A4</ram:Name>
            //</ram:SpecifiedTradeProduct>
            ->setDocumentPositionProductDetails("Trennblätter A4", "", "TB100A4", null, "0160", "4012345001235")
            //<ram:GrossPriceProductTradePrice>
            //<ram:ChargeAmount>9.90</ram:ChargeAmount>
            //</ram:GrossPriceProductTradePrice>
            ->setDocumentPositionGrossPrice(9.9000)
            //<ram:NetPriceProductTradePrice>
            //<ram:ChargeAmount>9.90</ram:ChargeAmount>
            //</ram:NetPriceProductTradePrice>
            ->setDocumentPositionNetPrice(9.9000)
            //<ram:BilledQuantity unitCode="H87">50.00</ram:BilledQuantity>
            ->setDocumentPositionQuantity(20, "H87")
            //<ram:ApplicableTradeTax>
            //<ram:TypeCode>VAT</ram:TypeCode>
            //<ram:CategoryCode>S</ram:CategoryCode>
            //<ram:RateApplicablePercent>19.00</ram:RateApplicablePercent>
            //</ram:ApplicableTradeTax>
            ->addDocumentPositionTax('S', 'VAT', 19)
            //<ram:LineTotalAmount>198.00</ram:LineTotalAmount>
            ->setDocumentPositionLineSummation(198.0);

@SMEWebify SMEWebify changed the title Electronic invoicing & semantic standard EN16931. [INVOICES] Electronic invoicing & semantic standard EN16931. Nov 9, 2023
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
help wanted Extra attention is needed Improvement New feature or request
Projects
Status: In progress
Development

No branches or pull requests

1 participant