Skip to content

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

InvoiceService.php
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.