Skip to main content
UK & Europe

B2B Software Consulting in Amsterdam

The Netherlands runs no domestic B2B e-invoicing mandate yet holds Europe’s deepest Peppol layer, under an Autoriteit Persoonsgegevens that enforces the UAVG hard. ERPStack builds Amsterdam ERP, CRM and Payload CMS systems remote-first — Peppol-native before ViDA’s 1 July 2030 deadline, on Microsoft Azure West Europe.

Quick Answer

In short: an Amsterdam ERP is Peppol-native: NLCIUS and SI-UBL 2.0 invoices under EN 16931, eHerkenning EH3 sign-in, and UAVG records the Autoriteit Persoonsgegevens can audit. ERPStack builds it on PostgreSQL in Microsoft Azure West Europe, AMS-IX peered at a 12 ms Randstad target, staged for ViDA digital reporting from 1 July 2030.

Regional Compliance

  • GDPR via the UAVG, supervised by the Autoriteit Persoonsgegevens
  • NLCIUS / SI-UBL 2.0 e-invoicing (EN 16931) wired into the ERP
  • ViDA digital reporting from 1 July 2030, staged in PostgreSQL
  • eHerkenning EH3 and DigiD SSO via Logius
  • Wet DBA contractor evidence as an Immutable Audit Trail
  • SOC 2 and ISO 27001 controls implemented at the PostgreSQL schema level

Security & Compliance Architecture

Compliance for an Amsterdam ERP is not GDPR boilerplate: the UAVG, the Belastingdienst and the Wet DBA each land as a constraint in PostgreSQL.

  • UAVG: transfers become columns

    The Autoriteit Persoonsgegevens fined Uber €290 million on 26 August 2024 over unprotected US transfers, so every processor row in an Amsterdam ERP carries region, GDPR legal basis and assessment date under RBAC.
  • Wet DBA: timesheets as evidence

    The Belastingdienst resumed enforcement against schijnzelfstandigheid on 1 January 2025 and cannot correct earlier years, so Amsterdam ERP and CRM builds keep contractor direction and tooling as an Immutable Audit Trail in PostgreSQL.
  • eHerkenning in front of the ERP

    Amsterdam systems touching Dutch government services authenticate via eHerkenning or DigiD through Logius at EH3 (eIDAS substantial); we mint a short-lived JWT so the ERP, CRM and Payload CMS share one SSO contract.
  • Payroll as dated rows

    The Dutch expat scheme falls from 30% to 27% on 1 January 2027, so Amsterdam payroll rates live as dated PostgreSQL rows, never TypeScript constants, and a 2028 ERP recalculation reproduces the 2026 loonaangifte.
  • Archive the structured invoice

    ViDA forces structured EN 16931 e-invoicing from 1 July 2030; an Amsterdam ERP keeping the SI-UBL 2.0 payload lets GDPR erasure and Peppol replay share one REST API over PostgreSQL — how logistics and retail exporters reach 2030 intact.

Engineering Blueprint

Amsterdam is the outlier in European ERP: the Netherlands has the continent’s deepest Peppol layer and no domestic B2B e-invoicing mandate. An Amsterdam ERP build is Peppol-native PostgreSQL, not a race against a clearance portal.

Peppol, NLCIUS and the 2030 clock

Dutch central-government suppliers have invoiced electronically since 1 January 2017, so Amsterdam finance teams already run Peppol: NLCIUS, the Dutch CIUS of EN 16931, carried as SI-UBL 2.0. ERPStack keeps identifier, syntax and residency as Drizzle ORM columns in PostgreSQL, not a nightly export from SAP or Odoo.

// Drizzle ORM + PostgreSQL: Peppol envelope carrying NLCIUS payloads
      export const peppolDocument = pgTable('peppol_document', {
        senderId: varchar('sender_id', { length: 50 }).notNull(), // KVK number
        syntax: varchar('syntax', { length: 16 }).default('SI-UBL-2.0'),
        residency: varchar('residency', { length: 24 }).default('westeurope'),
        vidaReportedAt: timestamp('vida_reported_at'),            // null until 2030
      });

Where Amsterdam workloads actually run

AWS operates no region in the Netherlands. Amsterdam ERP workloads run in eu-west-1 (Ireland) or eu-central-1 (Frankfurt), three Availability Zones each, while Microsoft Azure places West Europe inside the Netherlands — so contractual residency moves the PostgreSQL cluster and Redis to Microsoft Azure. AMS-IX sets felt Amsterdam latency: 15.095 Tbps peak on 15 April 2026 across 913 networks.

Evaluate Your Stack

Take our interactive audit to see if your architecture is ready for operational scale.

Start Free Audit

Regional Infrastructure

Infrastructure Region

Microsoft Azure West Europe (Netherlands)

Latency Metrics

AMS-IX peered, ~12ms Randstad target

Primary Datacenter

Microsoft Azure West Europe / AWS eu-west-1

Success Stories in Amsterdam

Order-to-Cash & GST Compliance Engine

GST-compliant invoicing, consignment settlement, and receivables automation for a D2C handcraft brand

Read Case Study

Target Industries in Amsterdam

Frequently Asked Questions

No mandate exists. Peppol is voluntary between Dutch businesses and compulsory only towards government, where central-government suppliers have invoiced electronically since 1 January 2017. The binding date for an Amsterdam ERP is 1 July 2030, when ViDA forces structured EN 16931 e-invoicing on intra-EU B2B trade. Amsterdam logistics and retail exporters should model Peppol in PostgreSQL now.

No. AWS runs no region in the Netherlands. Amsterdam ERP workloads serve from eu-west-1 in Ireland or eu-central-1 in Frankfurt, three Availability Zones each. Microsoft Azure places West Europe physically inside the Netherlands, our pick when a Dutch contract writes in residency. AMS-IX peering, not the region label, sets Amsterdam latency.

Often neither. SAP S/4HANA is heavier than most Amsterdam wholesalers need, and Dutch mid-market ERP products such as Exact Online or AFAS cover ledger, VAT and Peppol invoicing better than Odoo or NetSuite would here. A custom ERP on PostgreSQL earns its keep only once consignment stock, agri-food traceability and carrier EDI for Amsterdam logistics escape into spreadsheets.

Yes — most Amsterdam engagements are satellites, not replacements. We leave SAP S/4HANA or Microsoft Dynamics 365 as ledger of record and put a Next.js, TypeScript and PostgreSQL layer beside it for the logistics, retail or manufacturing workflows the package models badly, reconciling through an idempotent REST API with Sentry alerting on drift.

Both. GDPR applies directly; the UAVG fills in the Dutch national choices and the Autoriteit Persoonsgegevens supervises. The AP is not light-touch — €290 million against Uber on 26 August 2024 for US transfers left unprotected once its standard contractual clauses lapsed. In an Amsterdam ERP that makes transfer legal basis a PostgreSQL column under RBAC.

It turns contractor classification into stored evidence. The Belastingdienst resumed full enforcement against schijnzelfstandigheid on 1 January 2025 and cannot correct earlier years. An Amsterdam ERP or CRM records who directed hours, who owned tooling and whether the ZZP’er could substitute, as an Immutable Audit Trail under RBAC in PostgreSQL.

Usually not. Neither GDPR nor the UAVG imposes Dutch localisation, so an Amsterdam ERP may sit anywhere in the EEA — eu-west-1 in Ireland and eu-central-1 in Frankfurt are both lawful. Localisation bites only when a Dutch public-sector or care contract writes it in; then PostgreSQL and Redis move to Microsoft Azure West Europe.

Inside the GDPR one-month deadline, because we treat the request as a query. A per-subject index spans the ERP, the CRM and the Payload CMS, so an Amsterdam controller assembles every row through one REST API. Erasure runs the same path and writes its own audit record under the UAVG.

Related reading

Explore Custom ERP Solutions by Location, Industry, and Alternatives

Global Architectures