OSS-first docs

These docs teach the open system first: contracts, generated surfaces, runtimes, governance, and incremental adoption. Studio shows up as the operating layer on top, not as the source of truth.

openbanking.transactions.sync

Synchronise transactions for a bank account by calling the configured open banking provider.

  • Type: operation (command)
  • Version: 1.0.0
  • Stability: experimental
  • Owners: @platform.finance
  • field.key.label
    openbanking.transactions.sync
    field.version.label
    1.0.0
    field.type.label
    operation (command)
    field.title.label
    openbanking.transactions.sync
    field.description.label

    Synchronise transactions for a bank account by calling the configured open banking provider.

  • Type: operation (command)
  • Version: 1.0.0
  • Stability: experimental
  • Owners: @platform.finance
  • field.tags.label
    open-banking,powens,transactions
    field.owners.label
    @platform.finance
    field.stability.label
    experimental

    Synchronise transactions for a bank account by calling the configured open banking provider.

    Goal

    Ensure the canonical transaction ledger stays aligned with the external provider.

    Context

    Triggered by scheduled workflows or on-demand actions when activity is expected on an account.

    Source Definition

    export const OpenBankingSyncTransactions = defineCommand({
      meta: {
        key: 'openbanking.transactions.sync',
        version: '1.0.0',
        description:
          'Synchronise transactions for a bank account by calling the configured open banking provider.',
        goal: 'Ensure the canonical transaction ledger stays aligned with the external provider.',
        context:
          'Triggered by scheduled workflows or on-demand actions when activity is expected on an account.',
        owners: ['@platform.finance'],
        tags: ['open-banking', 'powens', 'transactions'],
        stability: 'experimental',
      },
      io: {
        input: OpenBankingSyncTransactionsInput,
        output: OpenBankingSyncTransactionsOutput,
      },
      policy: {
        auth: 'admin',
      },
      telemetry: {
        success: {
          event: { key: OPENBANKING_TELEMETRY_EVENTS.transactionsSynced },
          properties: ({ input, output }) => {
            const payload = input as {
              tenantId?: string;
              accountId?: string;
            };
            const result = output as {
              synced?: number;
              failed?: number;
              earliestSyncedAt?: string;
              latestSyncedAt?: string;
            } | null;
            return {
              tenantId: payload?.tenantId,
              accountId: payload?.accountId,
              synced: result?.synced,
              failed: result?.failed,
              earliestSyncedAt: result?.earliestSyncedAt,
              latestSyncedAt: result?.latestSyncedAt,
            };
          },
        },
        failure: {
          event: { key: OPENBANKING_TELEMETRY_EVENTS.transactionsSyncFailed },
          properties: ({ input, error }) => {
            const payload = input as {
              tenantId?: string;
              accountId?: string;
            };
            return {
              tenantId: payload?.tenantId,
              accountId: payload?.accountId,
              error:
                error instanceof Error ? error.message : String(error ?? 'unknown'),
            };
          },
        },
      },
    });