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.
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.
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
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
"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."