Case study · Nov 2025 – Apr 2026

Cape.io: a native NetSuite ↔ Fortnox integration across 8 EU subsidiaries.

An audit-grade, bidirectional integration built entirely in SuiteScript 2.1 — delivering Swedish e-invoicing, German §14 UStG compliance and full statutory tax reporting, without paying for iPaaS.

Adserving AI SaaS 8 subsidiaries Integration lead
8
EU subsidiaries
6
Entity types synced
100%
Native SuiteScript 2.1
0
iPaaS licence fees

1The challenge

Cape.io operates an AI-driven adserving business with a NetSuite OneWorld estate spanning eight subsidiaries across Japan, the UK, Sweden, France, Germany, Hungary, Italy and Poland. To comply with Swedish e-invoicing requirements, German §14 UStG mandates, and statutory tax reporting across the EU footprint, they needed a deep, bidirectional integration with Fortnox — Sweden's leading SME accounting platform.

Off-the-shelf iPaaS platforms (Celigo, Boomi, Make) were the obvious starting point. But each came with ongoing licence costs, opaque error handling, and limited control over the audit-grade mapping required for line-by-line Skatteverket reconciliation. The finance team needed transparency and traceability that black-box iPaaS connectors simply couldn't provide.

2The approach

Build the entire integration natively in SuiteScript 2.1. No iPaaS, no licence drag, no opaque black box — full control over every mapping, every retry, every audit log entry.

NetSuite OneWorld 8 EU subsidiaries Map/Reduce · Scheduled User Event · RESTlet Suitelet · Client Script CUSTOM MAPPING LAYER Chart of accounts VAT & tax codes Currency & FX Payment terms Echo-loop protection Fortnox Swedish accounting E-invoicing Skatteverket reporting VAT returns
Bidirectional integration architecture — every entry point of SuiteScript 2.1 used purposefully.

The architecture used every SuiteScript 2.1 entry point appropriate to its job — Map/Reduce for bulk syncs, Scheduled for pollers, User Event for create/update triggers, RESTlet for inbound webhooks, Suitelet for the admin dashboard UI, and Client Script for form-level validation. A custom-record-backed mapping layer sat between the two systems for COA, VAT, currency and payment terms — and a last-sync hash on every transaction prevented infinite update ping-pong between the systems.

3What was built

Six bidirectional entity flows, plus the supporting infrastructure to make finance trust them.

Bidirectional entity sync — full create, update and cancel coverage

Customers
Suppliers
Sales invoices
Credit memos
Journals
Customer & supplier payments

Supporting capabilities

  • Audit-grade COA mapping — every NetSuite GL account explicitly mapped to its Fortnox counterpart; unmapped accounts fail loudly rather than silently fall back, so statutory accounts reconcile line-by-line for Skatteverket reporting.
  • VAT and tax-code mapping — SuiteTax aligned with the Fortnox Swedish VAT regime, ensuring amounts on invoices, credit memos and journals reconcile precisely and post to the correct VAT control accounts on both sides.
  • Multi-currency support — every inbound/outbound handler sets currency code and exchange rate via a setCurrencyFromFortnox() helper backed by a custom currency-mapping record.
  • Echo-loop protection — last-sync hash stamping on every inbound transaction handler prevents infinite update ping-pong between NetSuite and Fortnox.
  • Admin Dashboard Suitelet — unified operations console for OAuth2 management, COA mapping, currency mapping, VAT and payment-terms mapping, plus run/queue monitoring.
  • German localisation — SKR03 chart of accounts, SuiteTax codes for 19% / 7% / EU intra-community / §13b reverse-charge VAT, inbound §14 UStG e-invoicing with XRechnung and ZUGFeRD 2.x parsing, DATEV ASCII export for the Steuerberater, and GoBD-conformant 10-year archiving.
  • Tipalti P2P integration — global supplier payment automation alongside the Fortnox flows, with the migration path from Legacy Tax to SuiteTax prepared for the wider EU footprint.

4The outcome

No iPaaS lock-in

Avoided ongoing Celigo / Boomi / Make licence costs and retained full control over every mapping and retry policy.

End-to-end traceability

Fortnox DocumentNumber stamped back onto every NetSuite transaction — every record reconcilable across both systems.

Statutory compliance

Swedish e-invoicing live; German §14 UStG receive capability ready ahead of the 1 January 2025 mandate.

Audit-ready VAT reconciliation

VAT amounts reconcile line-by-line between SuiteTax and Fortnox, posting to the correct control accounts on both sides.

GoBD-conformant archive

10-year archiving across all issued and received e-invoices, ready for German tax-authority audit at any point.

Unified operations console

One Admin Dashboard Suitelet replaced multiple manual processes for mapping, monitoring and OAuth token management.

5Technologies used

SuiteScript 2.1Map/ReduceScheduled scriptsUser EventRESTletsSuiteletsClient ScriptSuiteTaxAdvanced Revenue ManagementCustom recordsFortnox APIOAuth2Tipalti P2PSKR03DATEV ASCIIXRechnungZUGFeRD 2.xEN 16931
"Building this integration natively meant Cape.io owns every line of code, every mapping, and every retry policy. No iPaaS lock-in, no opaque error handling, no monthly licence creep — just an integration finance can actually defend in audit."
Raja Saqib
Integration Lead on the Cape.io engagement

Need a similar outcome?

Whether it's a multi-jurisdiction integration, an e-invoicing rollout, or any other NetSuite challenge — let's talk it through.

Book your free call