Peppol BIS Billing 3.0 with PHP
The European format for invoices sent through the Peppol network. Quittio creates the UBL; you reach the network through a provider.
What is Peppol?
Peppol is a European network for exchanging business documents. Invoices in it follow Peppol BIS Billing 3.0: UBL according to EN 16931 with additional Peppol rules and participant IDs.
Who is it for?
- Invoices to authorities and businesses in countries with a Peppol mandate
- Recipients who receive invoices through an access point
- International B2B customers
How it works with Quittio
use Quittio\Core\Builder\Party;
use Quittio\Laravel\Facades\Quittio;
$result = Quittio::invoice()
->number('RE-2026-0042')
->deliveryDate('2026-09-30')
->buyer(Party::make('Kunde AG')
->vatId('DE987654321')
->address('Bahnhofstraße 5', '54321', 'Beispielstadt', 'DE'))
->line('Web development', netPrice: '95.00', quantity: 24)
->format('peppol')
->render();Checked with: KoSIT validator with the Peppol rules
Sample file: RE-2026-0042-peppol.xml
Profiles and variants
- peppolUBL according to Peppol BIS Billing 3.0
Sending through the Peppol network comes with Quittio Managed 1.2.0 (quittio/peppol). Until then, hand the file to your access point provider.
Questions about Peppol
Do I need an access point?
To send through the Peppol network, yes. Quittio creates the valid file; a certified provider handles the transport.
Is Peppol mandatory in Germany?
No. In Germany, ZUGFeRD or XRechnung are sufficient. Peppol is an additional channel used by some authorities and international customers.
When which invoice becomes mandatory is explained in our guide to the German e-invoicing mandate.