NordInvoice / Guides / Peppol for SaaS platforms

Peppol e-invoicing for SaaS platforms

Your customers increasingly must send and receive e-invoices over Peppol. Building an access point yourself takes certification and months. The API route: your product keeps its own data model and NordInvoice handles validation, delivery and compliance.

The architecture

  1. One API key per environment, not per customer. Your backend talks to NordInvoice; your customers never see it.
  2. A sender profile per customer: their company data, VAT number and Peppol address, stored once and reused on every invoice.
  3. Webhooks push delivery and receiving events to your product, so your UI stays live without polling.
// one profile per tenant
const profile = await nord.senderProfiles.create({
  name: 'Customer BV', countryCode: 'NL',
  vatNumber: 'NL123456789B01',
  electronicAddress: '12345678', electronicAddressScheme: '0106',
})

// invoices then reference the stored profile
const result = await nord.invoices.create(draft, { send: true })

Receiving, too

Register a customer as a receiver and incoming Peppol invoices land in an inbox you read over the API, with the original UBL available for your own processing. See the receiving docs.

Why teams pick an API over an own access point

Start in the sandbox