PEPPOL E-Invoicing
Send and receive EU-compliant electronic invoices via the PEPPOL network.
PEPPOL (Pan-European Public Procurement Online) enables standardized electronic invoicing across the EU. Workestra supports both sending and receiving PEPPOL invoices with UBL 2.1 format (PEPPOL BIS Billing 3.0).
PEPPOL is required for B2G (business-to-government) invoicing in many EU countries and increasingly adopted for B2B transactions.
Supported Providers
Workestra supports two PEPPOL access point providers:
| Provider | Description |
|---|---|
| Peppyrus | Primary provider — full send/receive support with PDF rendering |
| Peppox | Alternative provider — send support |
Configure your provider in Finance → Settings → PEPPOL.
Setting Up PEPPOL
- Go to Finance → Settings → PEPPOL
- Select your provider (Peppyrus or Peppox)
- Enter your API key and endpoint credentials
- Your PEPPOL endpoint ID is configured automatically
PEPPOL provider API keys are encrypted at rest with AES-256-GCM before they touch the database, and never displayed back to you after saving (the field shows a masked placeholder). Saves and rotations are recorded in the workspace audit log so you always have a paper trail of who changed what.
Identification Schemes
PEPPOL supports 15 identification schemes for addressing recipients:
| Scheme | Country |
|---|---|
0007 (GLN) | International |
0009 (SIRET) | France |
0088 (EAN) | International |
0096 (DUNS) | International |
0106 (NL:KVK) | Netherlands |
0190 (NL:OIN) | Netherlands |
0192 (NO:ORG) | Norway |
0195 (SG:UEN) | Singapore |
0196 (IS:KTAL) | Iceland |
0198 (DK:ERST) | Denmark |
0201 (IT:IPA) | Italy |
0204 (DE:LWID) | Germany |
0208 (BE:EN) | Belgium |
0209 (DE:LEITWEG) | Germany |
0210 (IT:CF) | Italy |
Sending Invoices via PEPPOL
- Create an invoice with a client that has a PEPPOL endpoint
- Click Send via PEPPOL on the invoice
- Workestra generates a UBL 2.1 XML document conforming to PEPPOL BIS Billing 3.0
- The document is transmitted through your configured access point
- Delivery status is tracked automatically
UBL XML Generation
Invoices are converted to UBL 2.1 XML format with:
- Full PEPPOL BIS Billing 3.0 compliance
- Proper identification schemes and endpoint addressing
- Tax breakdown and line-item details
- No external XML libraries required — built-in generator
Delivery Status
After submission, delivery status is polled daily by an automated cron job:
| Status | Description |
|---|---|
| Submitted | Document sent to access point |
| Delivered | Confirmed received by recipient |
| Failed | Delivery error — review and retry |
Receiving PEPPOL Invoices (Inbound)
Navigate to Finance → PEPPOL (/finance/peppol) to view received e-invoices.
Inbound Message Processing
A daily cron job polls your PEPPOL access point for new inbound messages:
- New messages are fetched and stored automatically
- Each message appears in the PEPPOL inbox with:
- Sender information
- Document type and date
- Amount and currency
- You can:
- View details — See the full invoice content
- Render as PDF — Generate a PDF version via Peppyrus
- Confirm receipt — Send acknowledgment to the sender
When a new inbound PEPPOL invoice lands, you get an in-app notification linking straight to the inbox row.
Coming soon — convert inbound to expense. A "Create expense from this PEPPOL invoice" action is on the roadmap so AP invoices can flow directly into the expenses workflow.
Participant Lookup
Search the PEPPOL network to check if a business is registered:
- Enter the recipient's identification number
- Select the appropriate scheme
- The system queries the PEPPOL directory
- Results show whether the participant is registered and reachable
Automated Processing
Two daily cron jobs handle PEPPOL automation:
| Job | Schedule | Purpose |
|---|---|---|
| Delivery Poll | Daily at midnight | Check status of outbound submissions |
| Inbound Poll | Daily at 1:00 AM | Fetch new inbound messages from access point |
Next Steps
- Invoicing — Create invoices to send via PEPPOL
- Finance Settings — Configure PEPPOL provider credentials
- Banking — Reconcile received invoices