Skip to Content
Who can use this
Available to
DeveloperAdministrator
Not available to
Governance EngineerCompliance OfficerBusiness OwnerAuditor

SDK Quick Start — Banking & Financial Services

Getting started: Banking & Financial Services

This guide takes you from install to your first attributed governance record in banking & financial services. You will install the SDK, configure a provider, instrument a workflow step with the real OTel attribute vocabulary from this vertical, and have a reviewable evidence record in your portal within an afternoon. There is no scaffolding project — just your API key and the three steps below.

Why this matters right now. As of March 2026, agentic AI in banking is deployed across: real-time payment fraud scoring, autonomous AML alert triage, AI-assisted loan underwriting, autonomous treasury liquidity management, customer onboarding KYC/KYB automation, AI-driven trade surveillance, autonomous regulatory report generation (DORA, Basel, HMDA), and AI-assisted credit risk model validation. Each subdomain carries distinct regulatory obligations that must be traceable through OTel spans to OPA policy decisions.

How the layering works

You are not adopting a separate product surface for this vertical. You are adding a market-specific vocabulary layer on top of the same core session model used everywhere in VeriProof.

LayerWhat you configureWhat changes downstream
Core SDKAPI key, application identity, session lifecycle, export path, base governance metadataThe same trace, evidence, and export foundation used across every implementation
Banking & Financial ServicesOTel attributes, permitted values, and workflow metadata drawn from this vertical catalogPortal evidence records, policy inputs, and exports become standards-literate for this market
Review surfacesRules, evidence packages, and internal reviewer workflowsThe same labels and values appear without translation during review or audit

If you need the cross-industry baseline first, open the core SDK reference, Python core, or .NET core before continuing here.

Step 1 — Install

TypeScript / Node.js

npm install @veriproof/sdk-core

Python

pip install veriproof-sdk

.NET

dotnet add package Veriproof.Sdk

Step 2 — Configure

Call the configuration helper once, before any AI framework initialises. After that call, every OTel span in the process — whether emitted by your code or by a framework adapter — is exported automatically to VeriProof.

Your API key comes from the VeriProof portal. Try a live demo to see the portal before you register, or start a free Builder account and use the environment variable pattern above directly.

Need a production credential path rather than sandbox exploration? Get API access for a Builder account, or contact the team if you need an architecture or compliance review alongside implementation.

Step 3 — Instrument your workflow

The governance vocabulary for this vertical lives in the Banking & Financial Services reference. Use the OTel attribute names below — they are the same names the portal uses in evidence records and the same names your policy engine will evaluate. Consistency here is the point.

OTel attributeSample valueCategory
banking.payment.iso20022_statusACTCPaymentStatusISO20022
banking.payment.message_typepain.001PaymentMessageType
banking.payment.railfednowPaymentRailType
banking.payment.purpose_codeBEXPPaymentPurposeCode
banking.payment.agent_actioninitiate_credit_transferPaymentAgentActionType
banking.sanctions.screening_outcomeclearSanctionsScreeningOutcome

TypeScript example

import { configureVeriproof, VeriproofClient, VeriproofSdkOptions, SessionMetadata } from '@veriproof/sdk-core';
import { PaymentStatusISO20022, PaymentStatusISO20022Meta, PaymentMessageType, PaymentMessageTypeMeta } from '@veriproof/sdk-core/verticals/banking-financial-services';

// Call once at application startup
configureVeriproof(
  VeriproofSdkOptions.createProduction({
    apiKey: process.env.VERIPROOF_API_KEY!,
    applicationId: 'banking-financial-services-app',
  }),
  { serviceName: 'banking-financial-services-app', setGlobal: true },
);

// Instrument a governed workflow
const client = new VeriproofClient(
  VeriproofSdkOptions.createProduction({ apiKey: process.env.VERIPROOF_API_KEY! }),
);

const session = client
  .startSession('banking.financial.services.review')
  .withSessionMetadata(SessionMetadata.forTransaction('txn-001').withEnvironment('production'))
  .addStep('evaluate', { output: { status: 'completed' } })
  .withMetadata(PaymentStatusISO20022Meta.otelAttribute, PaymentStatusISO20022.ACTC)
  .withMetadata(PaymentMessageTypeMeta.otelAttribute, PaymentMessageType.pain.001)

await session.complete();

Python example

import os
from opentelemetry import trace
from veriproof_sdk import VeriproofClientOptions, configure_veriproof
from veriproof_sdk.verticals import banking_financial_services as bfs

# Call once at application startup
configure_veriproof(
    VeriproofClientOptions(
        api_key=os.environ["VERIPROOF_API_KEY"],
        application_id="banking-financial-services-app",
    ),
    service_name="banking-financial-services-app",
    set_global=True,
)

tracer = trace.get_tracer(__name__)

# Instrument a governed workflow
with tracer.start_as_current_span("banking_financial_services.review") as span:
    span.set_attribute(bfs.PaymentStatusISO20022.__otel_attribute__, bfs.PaymentStatusISO20022.ACTC.value)
    span.set_attribute(bfs.PaymentMessageType.__otel_attribute__, bfs.PaymentMessageType.pain.001.value)
    span.set_attribute(bfs.PaymentRailType.__otel_attribute__, bfs.PaymentRailType.fednow.value)
    ...

.NET example

using Veriproof.Sdk;
using Veriproof.Sdk.Core.OpenTelemetry.Verticals.BankingFinancialServices;

// Configure once at application startup
builder.Services.AddVeriproof(options =>
{
    options.ApiKey = builder.Configuration["VERIPROOF_API_KEY"]!;
    options.ApplicationId = "banking-financial-services-app";
});

// Instrument a governed workflow step
using var activity = ActivitySource.StartActivity("evaluate");
    activity?.SetTag(PaymentStatusISO20022.Metadata.OtelAttribute, PaymentStatusISO20022.ACTC);
    activity?.SetTag(PaymentMessageType.Metadata.OtelAttribute, PaymentMessageType.pain.001);
    activity?.SetTag(PaymentRailType.Metadata.OtelAttribute, PaymentRailType.fednow);

How teams use this in production

  • Payments & Funds Transfer: Payment Rail Type. OPA rule: require enhanced OFAC/sanctions screening for swift_cbpr_plus, sepa_credit_transfer, and sepa_instant rails. Require 24/7 HITL coverage for fednow and rtp_tcf rails above configurable threshold. (Fednow: Federal Reserve FedNow Service Operating Procedures)
  • Payments & Funds Transfer: Payment Agent Action Type. OPA rule: classify initiate_credit_transfer, initiate_direct_debit, and apply_fx_conversion as irreversible_high_impact, requiring HITL approval above configurable amount threshold. (Psd2: PSD2 Article 64 — Liability for unauthorized payment transactions)
  • Payments & Funds Transfer: Sanctions Screening Outcome. OPA rule: deny any payment agent tool call for payment rail execution when sanctions_screening_outcome is potential_hit or confirmed_hit; require HITL escalation. (Ofac: OFAC 31 CFR Part 501 — Reporting and procedures for blocked transactions)
  • Fraud Detection & Financial Crime: AMLAlert Status. OPA rule: require HITL with compliance_officer role for sar_decision_pending state. Block automated sar_filed or sar_declined_documented transitions — these must be human-authorised. (Bsa 31 Usc 5318: BSA 31 USC 5318(g) — Suspicious Activity Report filing obligation)

Next steps

Ready to connect your first workflow?

Register a free Builder account — 500 tamper-proof Proofs per month, full SDK and REST API access, and your first evidence record in the portal before you leave your desk.

Live demo →Start free →

Last updated on