Skip to content

A modern object-oriented PHP library to read and create valid UBL and Peppol BIS files

License

Notifications You must be signed in to change notification settings

num-num/ubl-invoice

Repository files navigation

UBL-Invoice

A modern object-oriented PHP library to create and read valid UBL and Peppol BIS 3.0 files. Please feel free to contribute if you are missing features or tags.

Latest Version on Packagist Total Downloads

Num•Num UBL Invoice

Installation and usage

This package is fully compatible with PHP 8.x and also supports PHP 7.4. You can install it using Composer.

$ composer require num-num/ubl-invoice:^2.0@beta

Creating UBL files

$invoice = (new \NumNum\UBL\Invoice())
    ->setUBLVersionId('2.4')
    ->setId(123);
    // ... etc, all other props you need

$generator = new \NumNum\UBL\Generator();
$ublXml = $generator->invoice($invoice);

Please check some of the example code in the tests/Write folder to see how you can quickly create an UBL file and use all included properties.

Reading UBL files ✨

Need to quickly read UBL files? As of version 2.0, this library now supports UBL file reading. It's simple and easy to use:

$ublReader = \NumNum\UBL\Reader::ubl();
$invoice = $ublReader->parse(file_get_contents($fileName));
var_dump($invoice); // An \NumNum\UBL\Invoice instance with filled properties!

Please check some additional example code in the tests/Read folder.

Upgrading from package version 1.0 to 2.0

Version 2.0 of this package offers the ability to read UBL xml files and convert them into a \NumNum\UBL\Invoice or \NumNum\UBL\CreditNote + properties object structure.

To upgrade from 1.0, there are a few small, but breaking changes that need to be considered.

Please check the changelog!

Contributing - bug reporting

This library is not 100% UBL/Peppol feature-complete, in the sense that it doesn't (yet) support all UBL XML tags & functionality. "Yet" being the keyword, since this definitely is the long-term goal. However, all common UBL tags that are required to create and read most common invoices and creditnotes are present in the library. This includes tags for discounts, cash discounts, special vat rates, etc...

If you are missing functionality, please feel free to add it :-) Adding additional tags & attributes is very straight-forward. Check out CONTRIBUTING.md for more information.

Are you experiencing a bug? Please feel free to open an issue in the issue tracker!

Examples & documentation

This repository does not have a documentation website at this moment. For now, please check out some code examples by checking the unit tests in the tests folder.

Changelog

A changelog is available since version v1.9.0. If you are upgrading a minor version (1.x) or major version, please check the changelog to see if you need to implement any breaking changes...

About

A modern object-oriented PHP library to read and create valid UBL and Peppol BIS files

Topics

Resources

License

Contributing

Stars

Watchers

Forks

Packages

No packages published

Contributors 30

Languages