Peppol Test Bed Explained: How to Validate Your E-Invoicing Before Go-Live
A Peppol test bed lets you validate and send test invoices in a sandbox before go-live. What it is, how to use it, and the test cases that catch problems early.
Why a test bed exists
The worst place to discover that your invoice fails a validation rule is on a live, legally-binding document sent to a real customer and reported to a tax authority. A Peppol test bed exists so that never happens: it is an isolated environment where you validate and exchange sample documents, tune your integration, and rehearse the full flow — before a single real invoice is sent.
This guide explains what a test bed is, how to use one, and the specific test cases that catch problems early. If you are still choosing who to integrate with, start with how to choose a Peppol Access Point and our guide to Peppol software providers; a proper test bed should be one of your selection criteria.
What a Peppol test bed actually is
A test bed (or "sandbox") is a separate, isolated copy of the e-invoicing service. It behaves like production in the ways that matter for testing, but with one critical difference: nothing leaves the sandbox. Test documents are validated and can be exchanged between test participants, but none are delivered to real trading partners or reported to a live tax authority.
That isolation is what makes it useful. You can send malformed invoices, duplicate submissions, and experimental payloads freely, because none of them are binding or externally visible. Concretely, a test bed gives you:
- A test base URL distinct from production.
- A test API key (often prefixed to make it unmistakable, e.g.
sk_test_). - One or more pre-registered test participant identifiers so you have someone to send to and receive from.
- The same validation the live service runs — so a document that passes in the sandbox will pass in production.
The best providers design the test bed so that the same integration code moves to production by changing only the base URL and the key — no rewrite, no surprises.
The test-bed workflow, step by step
A disciplined sequence gets you from first call to confident go-live:
- Get credentials. Your provider issues a test key and a pre-registered test participant. Keep the key out of source control.
- Authenticate. Point your integration at the test base URL and confirm a simple authenticated read works (and that a bad key is correctly rejected).
- Validate before sending. Use the validation ("dry-run") endpoint to check a sample invoice and clear every error and warning. This is where most of the effort goes — see invoice validation errors you can prevent.
- Send a clean invoice end to end. Submit a valid document and follow it through the lifecycle to a delivered / cleared status.
- Test the negative cases. Send documents that should fail, and confirm they are rejected with a clear, structured error.
- Rehearse the real world. Retries with an idempotency key, credit notes, inbound receipt, and status tracking.
- Run conformance / certification cases where the jurisdiction requires them (below).
- Promote to production. Swap base URL and key; register real participant identifiers; go live.
The test cases that actually catch problems
A happy-path test proves almost nothing. Build your test matrix from these:
- A clean invoice — passes validation, reaches delivered/cleared.
- Deliberately invalid documents — a mismatched VAT total (e.g.
BR-CO-15), a missing mandatory field, a bad participant ID — each must be rejected with a specific, actionable error, not silently accepted. - Credit notes — the correct mechanism to reverse a sent invoice, since a transmitted invoice cannot be "cancelled." Confirm the credit-note flow works.
- Inbound receipt — you can receive and parse a document sent to your test participant, not just send.
- Idempotent retries — resubmitting with the same idempotency key returns the original result (a duplicate is rejected), so a timeout-and-retry never double-sends.
- Country-specific rules — for example Oman's PINT OM profile and Tax Data Document, or a national CIUS. Test each profile you will run in production.
- Status tracking — you can follow a document through pending → processing → sending → delivered, and handle a failure object correctly.
Sandbox testing vs formal conformance
These are related but not the same, and it helps to keep them separate in your plan:
- Sandbox testing proves your integration works — your field mapping, your error handling, your retries.
- Conformance / accreditation testing is a defined set of positive and negative test cases that a jurisdiction or the network requires you (or your provider) to pass to be approved. Oman's OTA sandbox certification is one example. Where this applies, a good provider runs the formal cases against the same test bed you built on, so there is no separate environment to learn.
What a good test bed looks like
When you evaluate providers, treat the test bed as a first-class criterion, not an afterthought:
- Isolated — no live delivery, no live tax reporting, ever.
- Same validation as production — a pass in the sandbox means a pass live.
- Pre-registered test participants — you can send and receive on day one.
- A validation / dry-run endpoint — so you can iterate on mapping without "sending" anything.
- Code parity with production — only the base URL and key change at go-live.
- Clear, structured errors — machine codes and the exact offending field, so failures map straight back to your source system.
Test on the GoRoute test bed
GoRoute — a certified Peppol Access Point and SMP (POP000991) — provides a sandbox test bed with a distinct base URL, sk_test_ keys, pre-registered test participants, and the same layered validation the live service runs, so your integration code moves to production unchanged. It supports the negative-case and country-specific testing (including Oman PINT OM and OTA sandbox certification) that real readiness requires. To get sandbox access, book a call with our team or work through the onboarding checklist for finance teams.
A test bed turns go-live from a leap into a formality. Use it fully — especially the cases you expect to fail — and the first real invoice is just another one that already works.
Frequently asked questions
- What is a Peppol test bed?
- A Peppol test bed is an isolated test environment where you can validate and send sample invoices without transmitting anything on the live network. It lets you tune your integration, confirm documents pass validation, and rehearse the full send-and-status flow before go-live, so the first real invoice is not also your first test.
- Is the Peppol test bed the same as production?
- No. A test bed is a separate, isolated environment. Test documents are validated and can be exchanged between test participants, but nothing is delivered to real trading partners or reported to a live tax authority. The point is to prove your integration works before any legally-binding document is sent.
- How do I get access to a Peppol test bed?
- Your Access Point provider issues sandbox credentials — typically a test API key and one or more pre-registered test participant identifiers. You point your integration at the test base URL, authenticate with the test key, and begin sending sample documents. A good provider lets the same code move to production by changing only the base URL and key.
- What should I test before go-live?
- Test a clean invoice end to end, then deliberately invalid documents to confirm errors are caught, credit notes, inbound receipt, status tracking, and idempotent retries. Include country-specific rules — for example Oman's PINT OM and Tax Data Document — and negative cases that should be rejected, not just the happy path.
- Does testing in a sandbox count as certification?
- They are related but distinct. Sandbox testing proves your own integration works. Formal conformance or accreditation testing, where a jurisdiction requires it (such as an OTA sandbox certification), is a defined set of positive and negative test cases you must pass to be approved. A good provider runs both against the same test bed.
- Will test invoices reach real customers or tax authorities?
- No. A properly isolated test bed never delivers to live trading partners or reports to a live tax authority. That isolation is the whole point — you can send malformed, duplicate, or experimental documents freely, because none of them are legally binding or externally visible.
- How long does test-bed validation take?
- For a single, well-understood integration, a few days to a couple of weeks is typical — most of the time goes into field mapping and clearing validation warnings, not the transport itself. Multi-country or complex ERP integrations take longer because each profile and clearance step is tested separately.
Building on Peppol?
GoRoute is a certified Peppol Access Point & SMP. Book a demo or read the docs to get started.