Add Peppol e-invoicing to
your Laravel app.
Install the peppol.sh Composer package and send compliant Peppol e-invoices from your Laravel application. Type-hinted, validated, and delivered. Ship in minutes.
Your code calls. We deliver via Peppol.
Call the peppol.sh API from your Laravel app. We convert your invoice to Peppol BIS 3.0 UBL, validate it, and deliver it to your customer's access point on the Peppol network.
Send invoice from your controller
Call Peppol::invoices()->send() from your Laravel controller or job with your invoice data as an array.
peppol.sh converts & validates
We convert your JSON to Peppol BIS Billing 3.0 UBL XML and run EN 16931 validation. Type errors are caught at build time, validation errors at runtime.
Delivered via the Peppol network
The validated e-invoice is delivered to your customer's Peppol access point. Track delivery status via webhooks or the API.
Everything your Laravel app needs for Peppol
A type-hinted SDK that handles the full lifecycle from JSON invoice to Peppol delivery.
PHP SDK
Full type hints for invoices, credit notes, and API responses. Catch errors at build time, not in production.
EU e-invoicing compliance
Invoices are validated against EN 16931 and Peppol BIS 3.0 before delivery. Meet Belgium 2026 and EU ViDA mandates.
Laravel integration
Service provider, facades, and config publishing. Works seamlessly with your existing Laravel application.
Webhook support
Verify signatures in Laravel routes. Receive delivery confirmations, validation errors, and status updates.
Sandbox mode
Test your integration with sandbox mode. Send test invoices without touching the live Peppol network.
Error handling
Typed exceptions with validation details. Know exactly what field is missing or invalid before delivery.
Three steps. Five minutes.
Get Peppol e-invoicing running in your Laravel app in under five minutes.
Install the package
Run composer require peppol-sh/laravel to add the peppol.sh SDK to your Laravel project.
Configure your API key
Add your PEPPOL_API_KEY to your.env file. Get one free from the dashboard.
Send your first invoice
Call Peppol::invoices()->send() with your invoice data. We handle conversion, validation, and delivery.
Pay per invoice. No monthly fees.
Common questions
Does this work with Laravel queues?
Yes. You can dispatch invoice sending to a queue. The SDK works in any context — controllers, jobs, commands, or event listeners.
Do I need to generate UBL XML myself?
No. Send your invoice as a JSON object using the SDK. We handle the conversion to Peppol BIS Billing 3.0 UBL XML, validation against EN 16931, and delivery via the Peppol network.
What if my customer isn't on Peppol?
You can look up any company on the Peppol network using our lookup endpoint. If the recipient isn't registered, the API returns a clear error before you attempt to send.
How do I handle webhooks in Laravel?
Create a route and controller. The SDK includes middleware to verify webhook signatures and a helper to parse the payload.
Is this compliant with EU e-invoicing mandates?
Yes. Every invoice is validated against EN 16931 (the EU standard) and Peppol BIS Billing 3.0 before delivery. This covers the Belgium B2B mandate (January 2026), and prepares you for ViDA (EU-wide, 2030).
Can I test before going live?
Yes. Start in sandbox mode to send test invoices via email. When you're ready, complete KYC verification and switch to live mode to deliver via the real Peppol network.
Peppol e-invoicing for Laravel. Ship in minutes.
Install the SDK, configure your API key, and start sending compliant e-invoices from your Laravel app.
Get started →