Skip to content
Now open — send your first invoice in 5 minutes

Peppol invoices in 5 lines of code

The Stripe for Peppol.

Ship EU e-invoicing in an afternoon, not 3 weeks. Send JSON, we handle UBL XML, BIS 3.0 compliance, and Peppol delivery. TypeScript-native. Zero XML.

$ npm install @getpeppr/sdk

or: npm install @getpeppr/sdk · pnpm add @getpeppr/sdk

send-invoice.ts
import { Peppol } from "@getpeppr/sdk";

const peppol = new Peppol({ apiKey: "sk_sandbox_..." });

const invoice = await peppol.invoices.send({
  number: "INV-2026-001",
  to: {
    name: "Wayne Enterprises",
    peppolId: "0208:BE0123456789",
    street: "Avenue Louise 54",
    city: "Brussels",
    postalCode: "1050",
    country: "BE",
  },
  lines: [
    { description: "Arc Reactor", quantity: 1,
      unitPrice: 50_000, vatRate: 21 },
  ],
});

console.log(invoice.status); // "submitted"
Built on Peppol BIS 3.0
TypeScript Native
5 min to first invoice
1,489 tests passing

Stop wrestling with XML

The typical Peppol integration takes 3-5 weeks of reading documentation. Ours takes 5 minutes.

Before — Raw Peppol
01

Read 47-page "quick start" guide

02

Understand UBL 2.1 XML schema (150+ elements)

03

Learn AS4 protocol for message delivery

04

Handle BIS 3.0 validation rules that contradict each other

05

Build 150+ lines of XML by hand per invoice

06

Contact sales for sandbox access

3-5 weeks before first invoice

After — getpeppr SDK
01

npm install @getpeppr/sdk

02

Write JSON — we generate compliant UBL XML

03

Full TypeScript types with autocomplete

04

Actionable validation errors with fix suggestions

05

Instant self-service sandbox with API keys

06

Done. Ship it.

5 minutes to first invoice

Code that speaks for itself

Every operation is a single, intuitive method call. Full TypeScript autocomplete. No XML, no SOAP, no pain.

send.ts
import { Peppol } from "@getpeppr/sdk";

const peppol = new Peppol({ apiKey: "sk_sandbox_..." });

const result = await peppol.invoices.send({
  number: "INV-2026-042",
  to: {
    name: "Globex NV",
    peppolId: "0208:BE0987654321",
    street: "Rue de la Loi 200",
    city: "Brussels",
    postalCode: "1000",
    country: "BE",
  },
  lines: [
    { description: "Consulting Q1", quantity: 40, unitPrice: 125, vatRate: 21 },
    { description: "Travel expenses", quantity: 1, unitPrice: 350, vatRate: 21 },
  ],
  paymentTerms: "Net 30 days",
  paymentIban: "BE68539007547034",
});

console.log(`Sent! ID: ${result.id}`);

Everything you need to ship Peppol invoices

Built by developers who spent weeks reading Peppol docs so you don't have to.

Multi-Country Ready

Belgium live today. France, Germany, Netherlands next. One API, automatic country-specific compliance routing.

Built-in Validation

Pre-send validation catches errors before they hit the network. Human-readable messages with fix suggestions, not cryptic Peppol rule IDs.

TypeScript Native

Full type safety from invoice creation to webhook handling. Autocomplete every field. Catch errors at compile time, not runtime.

BIS 3.0 Compliant

Full Peppol BIS 3.0 compliance out of the box. Invoices, credit notes, allowances, attachments, delivery — all handled.

Real-time Webhooks (v0.2)

Get notified instantly when invoices are delivered, accepted, or rejected. No polling. Event-driven architecture like Stripe.

Zero XML

Send JSON, we generate compliant UBL XML. Your developers will never see an angle bracket. That's a promise.

Peppol API comparison

We analyzed the leading Peppol providers. getpeppr offers the best combination of developer experience, multi-country roadmap, and self-service onboarding.

getpeppr You are here
SDKs: TypeScript (more coming)
Pricing: From EUR 49/mo
Countries: Belgium (expanding)
Self-Service: Yes
First Invoice: 5 minutes
e-invoice.be
SDKs: 6 languages
Pricing: EUR 0.25/invoice
Countries: Belgium only
Self-Service: Yes
First Invoice: < 1 hour
Recommand
SDKs: Open source
Pricing: Free tier + EUR 0.10-0.30
Countries: Belgium (Peppol global)
Self-Service: Yes
First Invoice: Minutes
BudgetInvoice
SDKs: REST API only
Pricing: EUR 0.12–0.35/invoice
Countries: Belgium + NL
Self-Service: Yes
First Invoice: Hours
Qvalia
SDKs: None
Pricing: EUR 39/mo+
Countries: 15+
Self-Service: Yes
First Invoice: Minutes-hours

EU e-invoicing mandates are here

EU mandates are making e-invoicing non-optional for millions of businesses. Belgium is live. France is 6 months away. Germany is next.

Hundreds of thousands of Belgian businesses still not Peppol-ready

Three months after the January 2026 mandate, hundreds of thousands of Belgium's 1.19M VAT-registered businesses are still not Peppol-registered. Don't let your customers be next.

getpeppr handles country-specific compliance automatically
One API for Belgium, France, Germany, and beyond
Stay ahead of mandates — ship compliance before deadlines hit

Belgium

Live

January 2026

B2B e-invoicing via Peppol mandatory for all 1.19M VAT-registered businesses.

France

Imminent

September 2026

All must receive e-invoices. Large companies must issue. PDP/PPF required. (Announced — previously postponed, subject to regulatory confirmation.)

Germany

Upcoming

January 2027

Large enterprises must issue. Full compliance for all by 2028.

European Union

2030

July 2030

ViDA directive: mandatory cross-border B2B e-invoicing for all EU member states.

Simple, transparent pricing

Start free. Send your first invoice in 5 minutes. Scale without surprises.

getpeppr offers four pricing tiers from a free sandbox to EUR 399/month for high-volume businesses. All plans include the full TypeScript SDK, built-in validation, and BIS 3.0 compliance.

Sandbox

Free /forever

Test everything. No credit card required.

  • Unlimited test invoices
  • Full SDK access
  • Sandbox environment
  • Validation API
  • Community support
Start Building

No credit card. No time limit.

Starter

EUR 49 /mo

For developers and early-stage SaaS.

100 docs/mo +€0.25/doc
  • 100 invoices included
  • Live Peppol delivery
  • Webhooks & events
  • Email support (< 24h)
  • Dashboard & analytics
  • Up to 3 team members
Most Popular

Pro

EUR 149 /mo

For growing businesses.

800 docs/mo +€0.22/doc
  • 800 invoices included
  • Live Peppol delivery
  • Webhooks & events
  • Belgium + expanding
  • Email support (< 24h)
  • 99.9% uptime SLA
  • Up to 10 team members

Business

EUR 399 /mo

For high-volume senders.

2,000 docs/mo +€0.20/doc
  • 2,000 invoices included
  • Live Peppol delivery
  • Webhooks & events
  • Belgium + expanding
  • Multi-country routing
  • Priority email support
  • 99.9% uptime SLA
  • Up to 25 team members

Enterprise

Need volume pricing or white-label? Talk to us.

All prices in EUR. No setup fees. Cancel anytime. Compare to EUR 1,800+/year for traditional Access Point fees.

Frequently asked questions

Which countries can I send invoices to?

Belgium is live today on the Peppol production network. France (September 2026) and Germany (2027) are next on the roadmap. Join the waitlist to get API keys and start sending.

Is the sandbox really free?

Yes. Free forever, unlimited test invoices, no credit card required. When you're ready to go live, plans start at EUR 49/month.

Which countries are supported?

Belgium at launch. France and Germany are on the roadmap. The API is designed for multi-country support from day one.

Do I need to understand Peppol or UBL?

No. Send JSON, we handle the UBL XML generation, BIS 3.0 compliance, and Peppol network delivery. Zero XML knowledge required.

Is getpeppr production-ready?

Yes. The Belgium Peppol integration is live and validated against Storecove's production network. Our SDK has 1,489 passing tests, full BIS 3.0 compliance, and Pro plans include a 99.9% uptime SLA.

How does getpeppr compare to building with raw Peppol?

A typical Peppol integration takes 3–5 weeks: reading UBL 2.1 specs, implementing XML generation, handling AS4 protocol, and managing BIS 3.0 validation rules. With getpeppr, you send JSON and we handle everything. Most developers send their first test invoice in under 5 minutes.

Roadmap

v0.1 Live

TypeScript SDK, validation, sandbox + production Belgium

v0.2 Coming next

Real-time webhooks, Python SDK

v0.3 On the roadmap

France & Germany support

Ready to ship Peppol invoices?

Join the waitlist and be among the first to ship EU e-invoicing without the pain. Free sandbox, no credit card, full SDK access.

By joining, you agree to our Privacy Policy.

$ npm install @getpeppr/sdk

Free sandbox forever. No credit card required. Ship invoices in minutes.