WorkestraDocs
ModulesFinance

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

ProviderSupport
PeppyrusSend, receive, participant lookup, PDF rendering, receipt confirmation
PeppoxOutbound invoice sending

Configure providers in Finance -> Settings -> PEPPOL.

Sending Invoices

  1. Create an invoice in Finance.
  2. Click Send via PEPPOL.
  3. Enter or look up the recipient PEPPOL endpoint.
  4. Workestra generates PEPPOL BIS Billing 3.0 / UBL 2.1 XML and submits it through the configured provider.
  5. 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:

JobSchedulePurpose
Delivery poll0 0 * * *Check outbound submission delivery state
Inbound poll0 1 * * *Fetch new Peppyrus inbox messages

Both jobs are protected by CRON_SECRET.

Technical Notes

The canonical PEPPOL tables are:

  • finance_peppol_provider_configs
  • finance_peppol_submissions
  • peppol_inbound_messages
  • peppol_participant_cache

Credential-bearing operations run through server-side API routes, not directly in client components.