darvis / ubl-peppol
UBL/PEPPOL service voor het genereren van facturen volgens de UBL/PEPPOL standaard
Installs: 709
Dependents: 0
Suggesters: 0
Security: 0
Stars: 7
Watchers: 0
Forks: 4
Open Issues: 0
pkg:composer/darvis/ubl-peppol
Requires
- php: ^8.2
- ext-dom: *
Requires (Dev)
- orchestra/testbench: ^9.0|^10.0
- pestphp/pest: ^3.0
Suggests
- illuminate/support: Required for Laravel integration (^11.0|^12.0)
This package is auto-updated.
Last update: 2026-02-11 14:47:53 UTC
README
PHP library for generating UBL 2.1 invoices compliant with PEPPOL BIS Billing 3.0. Supports Belgian (EN 16931) and Dutch implementations.
Installation
composer require darvis/ubl-peppol
Requirements: PHP 8.2+, DOM extension
Quick Start (Standalone)
use Darvis\UblPeppol\UblBeBis3Service; $ublService = new UblBeBis3Service(); $xml = $ublService->generateInvoice($invoiceData); file_put_contents('invoice.xml', $xml);
See examples/ for complete implementations.
Laravel Integration
Additional features: Peppol network integration, logging, artisan commands.
php artisan vendor:publish --tag=ubl-peppol-config php artisan migrate
Documentation
- API Reference
- Belgian Implementation
- Dutch Implementation
- VIES VAT Validation
- Company Registration Validation
- Laravel Integration
- Validation
- Troubleshooting
Author
Arvid de Jong
Email: info@arvid.nl
Website: arvid.nl
Contributing
Contributions are welcome! Feel free to create issues or submit pull requests.
License
This package is open-source software licensed under the MIT License.
Credit Notes Support (v1.6.0)
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();
Key Points
- Use
createCreditNoteDocument()instead ofcreateDocument() addBillingReference()is REQUIRED (PEPPOL BR-55)- All amounts must be POSITIVE (credit nature = document type 381)
- Use
addCreditNoteLine()instead ofaddInvoiceLine()
See docs/CREDIT_NOTES.md for full documentation.