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.powens

Read-only Open Banking integration powered by Powens, exposing accounts, transactions, and balances.

  • Type: integration (integration)
  • Version: 1.0.0
  • Owners: platform.finance
  • Tags: open-banking, powens, finance
  • field.key.label
    openbanking.powens
    field.version.label
    1.0.0
    field.type.label
    integration (integration)
    field.title.label
    openbanking.powens
    field.description.label

    Read-only Open Banking integration powered by Powens, exposing accounts, transactions, and balances.

  • Type: integration (integration)
  • Version: 1.0.0
  • Owners: platform.finance
  • Tags: open-banking, powens, finance
  • field.tags.label
    open-banking,powens,finance
    field.owners.label
    platform.finance
    field.stability.label

    Read-only Open Banking integration powered by Powens, exposing accounts, transactions, and balances.

    Source Definition

    export const powensIntegrationSpec = defineIntegration({
    	meta: {
    		key: 'openbanking.powens',
    		version: '1.0.0',
    		category: 'open-banking',
    		title: 'Powens Open Banking (Read)',
    		description:
    			'Read-only Open Banking integration powered by Powens, exposing accounts, transactions, and balances.',
    		domain: 'finance',
    		owners: ['platform.finance'],
    		tags: ['open-banking', 'powens', 'finance'],
    		stability: StabilityEnum.Experimental,
    	},
    	supportedModes: ['byok'],
    	transports: [
    		{ type: 'rest', baseUrl: 'https://api.powens.com' },
    		{
    			type: 'webhook',
    			inbound: {
    				signatureHeader: 'x-powens-signature',
    				signingAlgorithm: 'hmac-sha256',
    			},
    		},
    	],
    	preferredTransport: 'rest',
    	supportedAuthMethods: [
    		{
    			type: 'oauth2',
    			grantType: 'authorization_code',
    			authorizationUrl: 'https://auth.powens.com/authorize',
    			tokenUrl: 'https://auth.powens.com/token',
    			scopes: ['accounts:read', 'transactions:read', 'balances:read'],
    		},
    	],
    	capabilities: {
    		provides: [
    			{ key: 'openbanking.accounts.read', version: '1.0.0' },
    			{ key: 'openbanking.transactions.read', version: '1.0.0' },
    			{ key: 'openbanking.balances.read', version: '1.0.0' },
    		],
    	},
    	configSchema: {
    		schema: {
    			type: 'object',
    			required: ['environment'],
    			properties: {
    				environment: {
    					type: 'string',
    					enum: ['sandbox', 'production'],
    					description:
    						'Powens environment to target. Sandbox uses Powens test API base URL, production uses live endpoints.',
    				},
    				baseUrl: {
    					type: 'string',
    					description:
    						'Optional override for the Powens API base URL. Defaults to Powens environment defaults.',
    				},
    				region: {
    					type: 'string',
    					description:
    						'Optional Powens region identifier when targeting a specific data residency cluster.',
    				},
    				pollingIntervalMs: {
    					type: 'number',
    					description:
    						'Optional custom polling interval in milliseconds for background sync jobs (defaults to platform standard).',
    				},
    			},
    		},
    		example: {
    			environment: 'sandbox',
    			baseUrl: 'https://api-sandbox.powens.com/v2',
    			region: 'eu-west-1',
    			pollingIntervalMs: 300000,
    		},
    	},
    	secretSchema: {
    		schema: {
    			type: 'object',
    			required: ['clientId', 'clientSecret'],
    			properties: {
    				clientId: {
    					type: 'string',
    					description:
    						'Powens OAuth client identifier obtained from the Powens Console (BYOK project).',
    				},
    				clientSecret: {
    					type: 'string',
    					description:
    						'Powens OAuth client secret used to exchange for access tokens.',
    				},
    				apiKey: {
    					type: 'string',
    					description:
    						'Optional Powens API key (if the tenant project exposes a dedicated API token).',
    				},
    				webhookSecret: {
    					type: 'string',
    					description:
    						'Optional webhook signing secret used to verify Powens webhook payloads.',
    				},
    			},
    		},
    		example: {
    			clientId: 'powens-client-id',
    			clientSecret: 'powens-client-secret',
    			apiKey: 'powens-api-key',
    			webhookSecret: 'powens-webhook-secret',
    		},
    	},
    	healthCheck: {
    		method: 'ping',
    		timeoutMs: 8000,
    	},
    	docsUrl: 'https://docs.powens.com/',
    	constraints: {
    		rateLimit: {
    			rph: 10000,
    			rpm: 600,
    		},
    	},
    	byokSetup: {
    		setupInstructions:
    			'Create a Powens BYOK project, generate OAuth credentials, and optionally configure webhook delivery for account/transaction updates.',
    		requiredScopes: ['accounts:read', 'transactions:read', 'balances:read'],
    		keyRotationSupported: false,
    		quotaTrackingSupported: false,
    	},
    });