PEPPOL E-Invoicing
Send invoices and receive supplier documents through the PEPPOL network.
PEPPOL enables standardized electronic invoicing across Europe. Workestra supports outbound invoices, Peppyrus inbound inbox handling, participant lookup, and review-first conversion of received PEPPOL documents.
Provider API keys are encrypted at rest and are never returned to the browser after saving. The settings form shows a masked placeholder; leave the API-key field blank when updating non-secret settings.
Supported Providers
| Provider | Support |
|---|---|
| Peppyrus | Send, receive, participant lookup, PDF rendering, receipt confirmation |
| Peppox | Outbound invoice sending |
Configure providers in Finance -> Settings -> PEPPOL.
Sending Invoices
- Create an invoice in Finance.
- Click Send via PEPPOL.
- Enter or look up the recipient PEPPOL endpoint.
- Workestra generates PEPPOL BIS Billing 3.0 / UBL 2.1 XML and submits it through the configured provider.
- Delivery status is tracked on the invoice.
Workestra currently generates UBL for both Invoice and CreditNote document types. The main send workflow remains invoice-focused.
Receiving PEPPOL Documents
Open Finance -> PEPPOL to review inbound Peppyrus messages.
You can:
- View sender, recipient, document type, process type, and received date.
- Render a message as PDF through Peppyrus.
- Confirm receipt back to the sender.
- Create a draft expense.
- Create a draft procurement vendor bill.
Conversions are idempotent: converting the same inbound message again opens the existing expense or vendor bill instead of creating a duplicate. Parsed values are best-effort from the UBL document and should be reviewed before approval or booking.
Operational Readiness
The PEPPOL page includes a health summary so finance teams can see whether the channel is ready before they process documents:
- Provider connection state and a shortcut to PEPPOL settings.
- Inbound queue count for messages that still need confirmation.
- Archive coverage for received documents.
- Conversion readiness for creating draft expenses or vendor bills from incoming messages.
If the provider is not configured, the health summary points administrators to Finance -> Settings -> PEPPOL.
Automation
Two daily cron jobs run in production:
| Job | Schedule | Purpose |
|---|---|---|
| Delivery poll | 0 0 * * * | Check outbound submission delivery state |
| Inbound poll | 0 1 * * * | Fetch new Peppyrus inbox messages |
Both jobs are protected by CRON_SECRET.
Technical Notes
The canonical PEPPOL tables are:
finance_peppol_provider_configsfinance_peppol_submissionspeppol_inbound_messagespeppol_participant_cache
Credential-bearing operations run through server-side API routes, not directly in client components.