Key Integrations

Key Integrations

Integration Priority Table

Integration Type Priority Launch Date
Fortnox REST v3, OAuth2 P0 Launch
PostNord REST, OAuth2 P0 Launch
DHL Sweden REST P1 Month 2
Instabee / Budbee REST JSON P1 Month 3
Shopify REST + GraphQL P1 Month 3
WooCommerce REST P2 Month 6
Visma REST P2 Month 6

P0 — Fortnox (Launch Critical)

Why P0: 598,000 Swedish companies use Fortnox. Fortnox Marketplace is the primary distribution channel. Deep integration = instant value for every new customer.

API: Fortnox REST API v3 (api.fortnox.se) Auth: OAuth2 (authorisation code flow)

Sync scope

Data Direction Frequency
Products (artiklar) Fortnox to Plock On demand + webhook
Suppliers (leverantorer) Fortnox to Plock On demand
Purchase orders Bidirectional Real-time
Sales orders Fortnox to Plock Real-time (webhook)
Stock levels Plock to Fortnox On every transaction
Invoices Plock to Fortnox On order completion

Fortnox Marketplace listing


P0 — PostNord (Launch Critical)

Why P0: PostNord is the dominant carrier for Swedish e-commerce (primary for ~70% of SMBs).

API: PostNord REST API (developer.postnord.com) Auth: OAuth2

Features


P1 — DHL Sweden (Month 2)

API: DHL Express REST (developer.dhl.com) Features: Label generation, booking, tracking, rate quotes Auth: API key


P1 — Instabee / Budbee (Month 3)

API: Instabee REST JSON (developer.budbee.com) Features: Label generation, booking, real-time tracking, consumer notifications Note: Instabee acquired Budbee — same API, two brands


P1 — Shopify (Month 3)

API: Shopify REST Admin API + GraphQL Auth: OAuth2 (Shopify Partner app)

Sync scope


P2 — WooCommerce (Month 6)

API: WooCommerce REST API Auth: API key Sync scope: Orders, products, inventory levels (similar to Shopify)


P2 — Visma (Month 6)

API: Visma eAccounting REST API Auth: OAuth2 Sync scope: Similar to Fortnox — products, orders, invoices, stock levels


Integration Architecture

All integrations run through the Integration Layer in the Kotlin backend:

File structure:

Queue: Redis + Kotlin coroutines for async integration jobs (label generation, carrier calls, sync tasks)

Error handling: Retry with exponential backoff, dead-letter queue, alert on persistent failure


Revision #3
Created 2026-03-04 05:10:39 UTC by John
Updated 2026-05-31 20:04:55 UTC by John