Most systems do not need another finance dashboard. They need trustworthy bank data where the rest of the product already runs.
With BankSync, you can deliver authorised, read-only financial data to an HTTP endpoint and decide what happens next: write it to Postgres, trigger an internal workflow, or fan it out to the services your team already uses.
This guide covers two practical patterns:
- Webhook → your receiver → Postgres for a durable, queryable financial-data layer.
- Webhook → application workflow when an incoming change should trigger work immediately.

What BankSync can send
A BankSync workspace connects financial institutions through the user’s authorised connection. You choose the destination and the sync schedule; the receiving system gets the data it needs to process.
Depending on your connected source and configuration, that can include transactions, account balances, account and institution metadata, and investment holdings or trades where supported.
BankSync is read-only. It does not move money or initiate payments. Access stays workspace-scoped and can be revoked.
Pattern 1: Store bank data in Postgres
This pattern fits internal reporting, treasury tooling, financial analytics, reconciliations, or a product that needs to join bank activity with its own customers and events.
Your receiver should do little work synchronously: authenticate the request, validate it, enqueue or store the event, then return a successful response promptly.
Model the data for updates, not just inserts. A pending transaction can settle, a merchant name can improve, and a historical backfill can arrive after newer activity. Start by retaining the raw delivery in an event table—typically with a stable source or delivery ID, workspace ID, event type, JSON payload and received timestamp. Then transform it into purpose-built tables such as accounts, transactions and daily_balances.
Use the stable source ID or delivery ID as a unique key. Re-delivery should update or do nothing, never create a duplicate. Keeping the raw event also gives you an audit trail and lets you rerun transformation logic without asking the bank for the same history again.
Store database credentials and destination secrets in your deployment environment or a secrets manager. Log event IDs and outcomes, not full financial payloads. Restrict the database role used by this integration and make sure its retention policy fits your obligations to users.
A reliable Postgres delivery path
Create an HTTPS receiver
Accept deliveries on a protected endpoint and verify the authentication configured for the destination.
Acknowledge promptly
Persist or queue the event, then return a successful response before doing slow enrichment or downstream calls.
Store a raw event
Keep the stable event ID, workspace ID, event type, received time and payload for auditability and replay.
Write idempotently
Use the source or delivery ID as a unique key so a repeated delivery cannot create duplicate records.
Transform into your model
Build accounts, transactions and balance tables from the raw events; preserve your own business logic and schema.
Pattern 2: Trigger a webhook workflow
Use this path when the event is more important than the database row. A new transaction might create a review task when a spend rule matches, refresh a cash-flow model, notify a finance channel when a balance crosses your own threshold, start a reconciliation job, or send normalised data to an internal API or queue.
The receiver can be the first step in a workflow platform, serverless function or application backend. The reliability rules are the same: authenticate the request, make handling idempotent, and move slow work to a queue.
For a production setup, it is common to use both patterns: receive the webhook once, write the raw event to Postgres, then publish a smaller internal event for the team or service that needs to act on it.
Choose the delivery route
| Choose Postgres when… | Choose a direct workflow when… |
|---|---|
| You need SQL queries, historical reporting or joins with product data. | You need an action to happen as soon as data arrives. |
| Multiple internal tools will use the same finance data. | The event has one clear downstream owner. |
| You want a durable raw-data layer and replayable transformations. | You can pass the event through a queue or workflow safely. |
Use the simplest path that matches the job.
Before you enable the destination
Start with the destination your system already has
You do not need to reshape your stack around another finance product. Connect the accounts a workspace has authorised, deliver data to your API or webhook, and let Postgres—or the workflow you already trust—do the rest.
BankSync provides the bank-data connection and controlled delivery layer. Your application keeps ownership of its data model, business logic and user experience.