Powens Open Banking

Powens provides read-only open banking connectivity for ContractSpec applications. The reference integration powers Pocket Family Office by synchronising household bank accounts, transactions, and balances while keeping all raw PII protected.

Setup

Create a Powens BYOK project, then store the credentials in your secret manager. The ContractSpec integration expects the following fields:

{
  "clientId": "powens-client-id",
  "clientSecret": "powens-client-secret",
  "apiKey": "optional-api-key",
  "webhookSecret": "optional-webhook-secret"
}

Configure non-secret settings on the integration connection:

environment: sandbox | production
baseUrl?: https://api-sandbox.powens.com/v2
region?: eu-west-1
pollingIntervalMs?: 300000

See the Powens API documentation for information on generating credentials and managing BYOK projects.

Capabilities

capabilityId: openbanking.accounts.read
provider:
  type: openbanking.powens
  operation: listAccounts

outputs:
  accounts:
    type: BankAccountRecord[]
    description: "Canonical bank account metadata (institution, currency, balances)"

---

capabilityId: openbanking.transactions.read
provider:
  type: openbanking.powens
  operation: listTransactions

inputs:
  accountId:
    type: string
  from?:
    type: string
    description: "ISO timestamp lower bound"
  to?:
    type: string

outputs:
  transactions:
    type: BankTransactionRecord[]
    description: "Canonical transaction ledger entries"

---

capabilityId: openbanking.balances.read
provider:
  type: openbanking.powens
  operation: getBalances

inputs:
  accountId:
    type: string
  balanceTypes?:
    type: string[]

outputs:
  balances:
    type: AccountBalanceRecord[]
    description: "Current/available balances with timestamps"

Primary workflows

Account sync

The workflow pfo.workflow.sync-openbanking-accounts refreshes account metadata, then surfaces canonical records to other automations.

Transaction sync

pfo.workflow.sync-openbanking-transactions ingests incremental transactions for each linked account and stores them in the canonical ledger.

Balance refresh

pfo.workflow.refresh-openbanking-balances retrieves current and available balances to power dashboards and anomaly detection.

Derived financial overview

pfo.workflow.generate-openbanking-overview aggregates balances, category breakdowns, and cashflow trends into the knowledge.financial-overview space. Only derived summaries are exposed to LLMs.

Telemetry & guardrails

  • Telemetry events such as openbanking.accounts.synced and openbanking.transactions.synced are emitted automatically with tenant, slot, and config metadata.
  • Guard helpers ensure the primaryOpenBanking slot is bound and healthy before workflows execute.
  • PII fields (IBAN, counterparty names, descriptions) are redacted via redactOpenBankingTelemetryPayload before logging or sending telemetry.

Best practices

  • Use BYOK credentials per tenant to avoid cross-tenant exposure.
  • Store only canonical entities (BankAccountRecord, BankTransactionRecord). Never persist raw Powens payloads or customer PII in logs.
  • Run the transaction sync on a schedule appropriate for banking SLAs (e.g. every 15 minutes for cashflow dashboards).
  • Pair ledger updates with derived summaries to feed the knowledge layer instead of exposing raw transactions to agents.
  • Monitor telemetry for openbanking.*.sync_failed events to detect credential issues early.