Product updates, changelogs, and announcements.
Stay up to date with the latest getpeppr features, improvements, and announcements.
A monthly digest of EU e-invoicing mandates — deadlines, country rollouts and what they mean for your integration. First edition, the Belgium 2026 playbook, is out now.
SDK 2.4.0 validates French buyer identifiers before you send: SIREN/SIRET checksums (including the real La Poste rule) and the DGFiP VAT-key formula that catches typos offline.
SDK 2.3.0 rounds VAT once per tax group as EN 16931 requires, amountDue now always equals the UBL PayableAmount, and the new computeUblPayableAmount() derives the legal amount due without re-implementing the formula.
Marking a French-flow invoice as paid now emits the reform's payment_received_notification, and the new France guide covers identifiers, directory registration and statuses end to end.
GET /v1/invoices and the SDK now expose per-axis structured status detail (with native jurisdiction codes), waitFor() resolves instead of timing out when an invoice gets paid, and four webhook events land — including the opt-in invoice.status_changed with stable event ids.
A recipient's contact email is no longer used as a delivery fallback. Documents travel through the Peppol network only, and an unreachable recipient now fails explicitly instead of reporting a misleading "delivered".
A new invoice.undeliverable webhook event fires when a recipient cannot be found on the Peppol network, and the SDK's waitFor() and the CLI --watch now treat no_action as a terminal failure instead of waiting for a timeout.
The grace period is over. What Belgium's B2B e-invoicing mandate actually requires from your stack — and a TypeScript path to compliance.
French SIREN and SIRET numbers are now verified automatically, backed by INSEE Sirene, France's official business registry.
Check whether any company is registered on the Peppol network — by VAT, company number, or name. Free, instant, no account, and available as a public JSON API.
@getpeppr/sdk v2.0.0 fixes events.list() to return the real event shape, scopes the /v1/events feed to your API key's environment, and adds the peppol_identifier.* webhook types. Includes a breaking type change to EventEntry.
@getpeppr/sdk now types the legal_entity.registration_failed webhook fired when a sandbox Legal Entity verifies but cannot be registered on the Peppol network.
@getpeppr/sdk now types the inbound.* webhook events fired when you receive documents over the Peppol network.
@getpeppr/sdk now manages your customers as Peppol Legal Entities and sends invoices on their behalf — fully typed.
Swedish 0007 organisation numbers are now verified in real time against Bolagsverket, Sweden's official business registry.
Improved Belgian 0208 identifier handling and fixed the SDK directory lookup response shape.
Import ready-made n8n workflows for validating invoices, checking Peppol recipients, and sending invoices through getpeppr.
New Activity page in the dashboard — a tamper-proof audit trail that tracks API key creation, webhook changes, contact management, and more.
Three new commands for the getpeppr CLI: scaffold invoices, convert to UBL XML, and search the Peppol Directory — all without an account.
New changelog page in the console and news section on the website, powered by Markdown files.
Validate Peppol e-invoices from your terminal with @getpeppr/cli, now available on npm.
New contact fields for phone numbers and Peppol Directory metadata in @getpeppr/sdk.
Configure webhook endpoints to receive real-time notifications for invoice events with automatic retry on failure.