Blog·integrations

How to connect your ERP and banks for a real-time P&L

A practical architecture to unify ERP, bank and sales-channel data into a single P&L that updates itself.

Financial integrations architecture

The bottleneck for almost any finance team isn't Excel or the ERP — it's the glue between them. Here's how to build that glue properly.

The three sources that matter#

For a decent monthly P&L, three sources are enough:

  • ERP or billing: accrued revenue and expenses.
  • Banks (via PSD2): real cash movements.
  • Sales channels: Shopify, Stripe, marketplaces — the detail the ERP aggregates.

The integration pattern#

The key piece is a common data model that every source maps to. Don't try to join ERP tables with bank statements directly; you'll lose every time.

interface Transaction {
  date: Date;
  account: string;
  amount: number;
  category: string;
  source: 'erp' | 'bank' | 'stripe' | 'shopify';
  externalId: string;
}

With that unified model, the P&L generates from a single query.

Painless PSD2#

Good news: your banks have a legal obligation (PSD2) to give you API access to your transactions. Bad news: every bank implements it differently. The cleanest way is to use an aggregator (GoCardless, Tink, Plaid in Europe) instead of integrating bank by bank.

Refresh frequency#

  • ERP: once a day is enough.
  • Banks: hourly if you can, every 4h at minimum.
  • Stripe/Shopify: real-time webhooks.

What not to do#

Don't consolidate the data inside the ERP. The ERP is for accounting, not analytics. Consolidate in a separate layer (a light data warehouse or an app like ours) and let the ERP do its job.

Want to see it on your own data? Book a demo.