Peppol BIS Billing Validator - UBL & EN 16931 avatar

Peppol BIS Billing Validator - UBL & EN 16931

Pricing

from $4.00 / 1,000 invoice validateds

Go to Apify Store
Peppol BIS Billing Validator - UBL & EN 16931

Peppol BIS Billing Validator - UBL & EN 16931

Peppol BIS Billing validator for UBL invoice XML and EN 16931 technical checks. Run offline batch preflight with pinned XSD and Schematron profiles before access-point submission. Inspect the bundled rule versions; validation does not submit invoices or guarantee network acceptance.

Pricing

from $4.00 / 1,000 invoice validateds

Rating

0.0

(0)

Developer

Kamer Ozkan

Kamer Ozkan

Maintained by Community

Actor stats

0

Bookmarked

3

Total users

2

Monthly active users

7 days ago

Last modified

Categories

Share

Active rules UBL Billing

Validate Peppol BIS Billing UBL invoices before network submission. Every document is checked against Peppol BIS Billing 3.0.21, the release that is mandatory since 17 August 2026, together with EN 16931 1.3.16 and the UBL 2.1 schema.

Technical preflight only. ACCEPTED does not establish legal or tax validity, Peppol participant capability, SBDH or AS4 validity, successful network delivery, or recipient acceptance.

Run the live Actor

Rule decisions

ResultRules
conformanceStatusActive UBL 2.1, EN 16931 1.3.16, Peppol BIS Billing 3.0.21
previewConformanceStatusNext Peppol release, once OpenPeppol publishes one. NOT_EVALUATED while none is published

The versions.activeRuleset block identifies Peppol BIS Billing 3.0.21 and effectiveAt: 2026-08-17. When a newer release is published, a versions.previewRuleset block and preview findings are added again, so an ERP agent can tell active and future findings apart without parsing prose.

The rule packages, Saxon runtime, and Schematron compiler are downloaded only during the build and SHA-256 verified. Every executed XSD and XSLT also has its own SHA-256 in the manifest and is verified again before use. Runtime validation never downloads rules.

Quick start

The default input validates an official accepted Peppol UBL sample:

{
"documents": [
{
"documentId": "official-peppol-valid-sample",
"fileName": "base-example.xml",
"url": "https://raw.githubusercontent.com/itplr-kosit/validator-configuration-bis/release-3.0.20/test-files/good/ubl/base-example.xml"
}
],
"resultDetail": "FINDINGS",
"maxFindingsPerDocument": 100,
"storeXmlReport": false,
"storeHtmlReport": false
}

Each document can use exactly one source:

  • Console file upload
  • HTTPS URL with public-IP and redirect enforcement
  • Inline XML
  • Base64 XML
  • A record in your Apify key-value store

Invoice and CreditNote roots are supported. The input and output schemas work with the Apify API, MCP clients, Make, n8n, webhooks, and standard SDKs.

Structured results

Every input produces one dataset item. A technically invalid invoice is a successful evaluation with REJECTED. A source or engine failure is NOT_EVALUATED.

These compact examples are taken from a real three-document Actor run. Every row also returns externalStateStatus: NOT_EVALUATED_EXTERNAL_STATE because participant, network, delivery, and recipient state are outside offline preflight.

Billing

The invoice-validated event costs $0.004.

  • ACCEPTED: billed once
  • REJECTED: billed once
  • NOT_EVALUATED: free
  • Active and (when published) preview decisions share one invoice charge
  • Dataset delivery does not add a second charge
  • The Actor stops before processing unless the event price is exactly $0.004

One malformed or unavailable source does not kill the remaining batch.

Release gates

Every build must pass:

  1. SHA-pinned official Peppol Invoice and CreditNote examples against the active 3.0.21 rule package.
  2. A deterministic mutation that must be rejected with BR-02.
  3. Runtime SHA-256 verification of every executed XSD and Schematron artifact.
  4. Source, security, batch-independence, billing-guard, report, and output-contract tests.

Security and privacy

  • DTDs, XML entities, and external references are blocked
  • HTTPS URL sources reject private, loopback, link-local, and metadata addresses
  • Redirects are revalidated
  • Source XML is not copied into dataset results
  • Optional reports are disabled by default
  • Every loaded document receives a SHA-256 digest
  • The container runs as a non-root user

Transition control

Peppol BIS Billing 3.0.21 became mandatory on 17 August 2026 and is now the active package; 3.0.20 is retired. When OpenPeppol publishes the next release (usually in November with a date the following year), it is added as a preview in one release-gated build, and on its mandatory date it moves to active the same way.

For custom access-point integration or high-volume support, contact the Actor owner through the Apify profile.

This Actor is also exposed to AI agents through Apify's MCP server (mcp.apify.com): an agent can discover it by search and run it with the same pay-per-event billing, with no separate integration.

Complete live example records (accepted, rejected, and unevaluated) with the dataset schema: sample repository.

Support and feedback

  • Found a bug or missing a field? Open an issue on the Issues tab of this Actor. We reply within 48 hours and ship most fixes within a few days.
  • Have an idea for a feature? Issues are the fastest way to get it built.
  • If the Actor saves you time, a short review on this page helps other users find it.

E-invoice validator family

Same engine, same output contract, one validator per market: XRechnung & ZUGFeRD (Germany) | Poland KSeF FA(3) | France E-Invoice | Italy FatturaPA Parsing: ZUGFeRD & Factur-X PDF to JSON parser