r2-finance-v1 — Profile for financial services AI
Extends R+2 for trading systems, lending decisioning, KYC/AML automation, payment routing, and customer-facing financial agents. Aligns with PSD2 (EU), RBI Master Directions (India), MAS Notices (Singapore), and SOX §302/§404 controls.
1. Purpose
Financial AI faces dense regulatory overlap: prudential supervision, customer protection, anti-money-laundering, market conduct, and operational resilience. This profile makes the audit trail consumable by any of these regulators without renegotiating the data format for each one.
2. Extension fields
| Extension key | Type | Description |
|---|---|---|
| finance.customer_id_hash | string | SHA-256 of the customer identifier salted per-deployment. Never the raw account number. |
| finance.regulated_activity | string | The regulated activity classification (e.g., payment-initiation, credit-decision, kyc-screening, investment-advice, market-execution). |
| finance.jurisdiction | string | Primary regulatory jurisdiction (e.g., EU-DE, US-NY, IN, SG, UAE-ADGM). |
| finance.decision_basis | string | Reference to the policy document, model version, or rule set that produced the decision. Required for credit and investment-advice actions. |
| finance.human_review | boolean | True if a regulated person (banker, advisor) reviewed the action before it took effect. Required for credit-decision and investment-advice classes. |
| finance.aml_flag_level | string | One of: none, monitoring, flagged, suspicious-activity. Tracks the AML risk classification at decision time. |
| finance.psd2_strong_auth | boolean | True if the action satisfied PSD2 Strong Customer Authentication. Required for EU payment initiation. |
| finance.amount | object | { currency: ISO 4217 code, value: decimal-as-string } when the action involves money movement. |
3. action_type namespace
finance/payment/*— payment initiation, settlement, refundfinance/credit/*— credit decision, loan origination, refinancefinance/kyc/*— identity verification, sanctions screening, AMLfinance/trading/*— order placement, market execution, position adjustmentfinance/advisory/*— investment advice, portfolio recommendationfinance/reporting/*— regulatory reporting, statement generationfinance/dispute/*— dispute handling, chargeback processing
4. Compliance mapping
| Regulation | R+2 field satisfying it | Notes |
|---|---|---|
| PSD2 SCA (Strong Customer Auth) | extensions.finance.psd2_strong_auth | Demonstrates SCA satisfaction per Article 97. |
| PSD2 Article 96 (Reporting incidents) | action_type: finance/incident-report/* | Major incident reports with full chain integrity. |
| RBI Master Direction on Digital Lending | extensions.finance.decision_basis + .human_review | Explainable, reviewable lending decisions. |
| RBI Master Direction on KYC | action_type: finance/kyc/* + chain integrity | Auditable KYC trail per RBI 2016 Direction. |
| MAS Notice 626 / 1014 (Sanctions) | extensions.finance.aml_flag_level | Sanctions screening decisions are signed. |
| SOX §302/§404 Internal Controls | Full receipt chain + R+3 export | Tamper-evident records of AI-driven controls. |
| FATF Recommendation 16 (Travel Rule) | extensions.finance.amount + counterparty linkage | Cross-border transfer originator/beneficiary tracking. |
| EU AI Act Annex III (high-risk) | Full receipt chain | Credit scoring and insurance pricing are high-risk by default. |
5. Money movement actions
Any action involving money movement MUST include the extensions.finance.amount field with both currency and value. Examples:
- Payment initiation:
{ "currency": "EUR", "value": "1234.56" } - USDC settlement on Base (via DCS Treasury):
{ "currency": "USDC", "value": "0.48" } - Cross-border transfer with FX: include both
amountandamount_fxwith the converted value.
6. Trading-specific requirements
For finance/trading/* actions, additional rigor applies:
- Microsecond-precision timestamps:
occurred_atSHOULD have microsecond precision for market-execution actions to support MiFID II / Reg NMS reconstruction requirements. - Order chain integrity: Each modification to an open order produces a new receipt chained to the order-creation receipt. Cancellations chain too.
- Market data attestation: Optional extension
finance.market_data_refhashes the market snapshot the agent used for the decision.
7. Worked example — credit decision
An AI agent making an automated lending decision under RBI Master Direction on Digital Lending:
{
"spec_version": "r2/v0.1",
"agent_pubkey": "u4yK_lH8Z6vJ...",
"agent_id": "lending-bot-007",
"action_id": "3f8a7c12-8b91-4e2c-9b3a-5f7d8e1a2c4b",
"action_type": "finance/credit/decision",
"action_data": {
"decision": "approved",
"credit_amount": 250000,
"term_months": 36,
"interest_pct": 12.5,
"decision_factors": ["dti_45pct", "score_780", "stable_income"]
},
"occurred_at": "2026-05-21T15:42:08.123456Z",
"prev_receipt_cid": "sha256:bafy2bz...",
"extensions": {
"finance.customer_id_hash": "sha256:8f3a91cd...",
"finance.regulated_activity": "credit-decision",
"finance.jurisdiction": "IN",
"finance.decision_basis": "model:rbi-compliant-credit-v3.2",
"finance.human_review": true,
"finance.aml_flag_level": "none",
"finance.amount": { "currency": "INR", "value": "250000" }
},
"signature": "..."
}
Contact
Editorial: [email protected]
Financial services partnerships: same address, prefix subject with "[Finance]"