PHP library for generating UBL 2.1 invoices compliant with PEPPOL BIS Billing 3.0. Supports Belgian (EN 16931) and Dutch implementations.
composer require darvis/ubl-peppol
Requirements: PHP 8.2+, DOM extension
use Darvis\UblPeppol\UblBeBis3Service;
$ublService = new UblBeBis3Service();
$xml = $ublService->generateInvoice($invoiceData);
file_put_contents('invoice.xml', $xml);
See examples/ for complete implementations.
Additional features: Peppol network integration, logging, artisan commands.
php artisan vendor:publish --tag=ubl-peppol-config
php artisan migrate
Authoritative source for PEPPOL rules
For PEPPOL BIS Billing 3.0 business rules, this project uses the official BIS documentation as the source of truth:
When reviewing, interpreting, or updating rule compliance in this package (BE and NL), always consult that BIS page first.
Arvid de Jong
Email: info@arvid.nl
Website: arvid.nl
Contributions are welcome! Feel free to create issues or submit pull requests.
This package is open-source software licensed under the MIT License.
Generate PEPPOL-compliant Credit Notes with automatic validation:
use Darvis\UblPeppol\UblBeBis3Service;
$service = new UblBeBis3Service();
$service->createCreditNoteDocument(); // Not createDocument()!
$service->addCreditNoteHeader('C2026-001', '2026-01-21');
$service->addBillingReference('F2026-050', '2026-01-15'); // REQUIRED (BR-55)
// ... add parties, lines, totals ...
$xml = $service->generateXml();
createCreditNoteDocument() instead of createDocument()addBillingReference() is REQUIRED (PEPPOL BR-55)addCreditNoteLine() instead of addInvoiceLine()See docs/credit-notes.md for full documentation.