Skip to content
Back to skills

Core Banking Integration

ASecurity

Connect AI agents to core banking platforms (Temenos Transact, Thought Machine Vault, Mambu, Finastra) for account management, payments, lending, and customer data access.

  • 31 stars
  • 0 votes
  • 0 copies
  • 0 views
  • Added June 6, 2026
ai-agentspythonapidatabasedocumentation

Works with

  • cli
  • api

Security analysis

A100/100

Scanned June 6, 2026

npx -y skills add frank-luongt/faos-skills-marketplace --skill core-banking-integration --agent claude-code

Installs into .claude/skills of the current project.

Are you the author of Core Banking Integration?

Add the live security badge to your README. It updates with every re-scan.

Security grade badge for Core Banking Integration
[![Security: A — Skills Directory](https://www.skillsdirectory.com/api/skills/frank-luongt-core-banking-integration/badge)](https://www.skillsdirectory.com/skills/frank-luongt-core-banking-integration)

More formats (shields.io, HTML) on the badges page. Keep it an A: scan every change in CI with Pro.

Download with Pro
SKILL.md
<!-- AUTO-GENERATED by export-skills.py — DO NOT EDIT -->
---
name: core-banking-integration
description: Core banking system integration patterns for AI agents connecting to Temenos Transact, Thought Machine Vault, Mambu, and Finastra. Use when building agents that interact with core banking APIs for account management, payments, lending, and customer data.
tags: [banking, temenos, thought-machine, mambu, finastra, core-banking]
---

> **Platform Note:** This skill was designed for multi-agent execution. Perplexity Computer handles orchestration automatically — treat sub-agent instructions as sequential steps to complete thoroughly.

# Core Banking System Integration

Connect AI agents to core banking platforms (Temenos Transact, Thought Machine Vault, Mambu, Finastra) for account management, payments, lending, and customer data access.

## When to Use

- Building AI agents that query or manage bank accounts, transactions, and balances
- Integrating with modern cloud-native core banking (Thought Machine, Mambu) or legacy (Temenos, Finastra)
- Implementing conversational banking assistants with real account access
- Automating lending workflows, KYC checks, or payment processing via agent tools

## Platform Comparison

| Platform | Architecture | API Style | Strength |
|---|---|---|---|
| **Temenos Transact** | Monolithic/modular | REST + proprietary | Largest install base (3,000+ banks) |
| **Thought Machine Vault** | Cloud-native, event-driven | gRPC + REST | Smart contracts for product config |
| **Mambu** | Cloud-native SaaS | REST (composable) | Fastest time-to-market |
| **Finastra** | Modular (FusionFabric) | REST (Open API) | Broadest product suite |

## Patterns

### 1. Temenos Transact REST API

```python
import requests
from typing import Optional

class TemenosClient:
    def __init__(self, base_url: str, token: str):
        self.base_url = base_url.rstrip("/")
        self.headers = {
            "Authorization": f"Bearer {token}",
            "Content-Type": "application/json",
        }

    def get_account(self, account_id: str) -> dict:
        """Get account details from Temenos Transact."""
        resp = requests.get(
            f"{self.base_url}/api/v1/holdings/accounts/{account_id}",
            headers=self.headers,
        )
        resp.raise_for_status()
        return resp.json()

    def get_transactions(self, account_id: str, from_date: str, to_date: str) -> list[dict]:
        """Get account transactions for a date range."""
        resp = requests.get(
            f"{self.base_url}/api/v1/holdings/accounts/{account_id}/transactions",
            headers=self.headers,
            params={"fromDate": from_date, "toDate": to_date},
        )
        resp.raise_for_status()
        return resp.json().get("body", [])

    def get_customer(self, customer_id: str) -> dict:
        """Get customer profile."""
        resp = requests.get(
            f"{self.base_url}/api/v1/party/customers/{customer_id}",
            headers=self.headers,
        )
        resp.raise_for_status()
        return resp.json()
```

### 2. Thought Machine Vault (gRPC + Smart Contracts)

```python
import requests

class VaultClient:
    def __init__(self, base_url: str, token: str):
        self.base_url = base_url.rstrip("/")
        self.headers = {
            "X-Auth-Token": token,
            "Content-Type": "application/json",
        }

    def get_account(self, account_id: str) -> dict:
        """Get account from Vault core."""
        resp = requests.get(
            f"{self.base_url}/v1/accounts/{account_id}",
            headers=self.headers,
        )
        resp.raise_for_status()
        return resp.json()

    def get_balances(self, account_id: str) -> dict:
        """Get live account balances (Vault computes from postings)."""
        resp = requests.get(
            f"{self.base_url}/v1/balances/live",
            headers=self.headers,
            params={"account_ids": account_id},
        )
        resp.raise_for_status()
        return resp.json()

    def create_posting(self, debit_account: str, credit_account: str, amount: str, denomination: str) -> dict:
        """Create a posting instruction batch (payment/transfer)."""
        payload = {
            "posting_instruction_batch": {
                "posting_instructions": [{
                    "custom_instruction": {
                        "postings": [
                            {"credit": False, "amount": amount, "denomination": denomination, "account_id": debit_account},
                            {"credit": True, "amount": amount, "denomination": denomination, "account_id": credit_account},
                        ]
                    }
                }]
            }
        }
        resp = requests.post(
            f"{self.base_url}/v1/posting-instruction-batches:asyncCreate",
            headers=self.headers,
            json=payload,
        )
        resp.raise_for_status()
        return resp.json()
```

### 3. Mambu Composable Banking API

```python
import requests

class MambuClient:
    def __init__(self, base_url: str, api_key: str):
        self.base_url = base_url.rstrip("/")
        self.headers = {
            "apiKey": api_key,
            "Accept": "application/vnd.mambu.v2+json",
            "Content-Type": "application/json",
        }

    def get_client(self, client_id: str) -> dict:
        """Get client (customer) details."""
        resp = requests.get(f"{self.base_url}/api/clients/{client_id}", headers=self.headers)
        resp.raise_for_status()
        return resp.json()

    def get_deposit_account(self, account_id: str) -> dict:
        """Get deposit account with balance."""
        resp = requests.get(f"{self.base_url}/api/deposits/{account_id}", headers=self.headers)
        resp.raise_for_status()
        return resp.json()

    def get_loan_account(self, loan_id: str) -> dict:
        """Get loan account with schedule."""
        resp = requests.get(f"{self.base_url}/api/loans/{loan_id}", headers=self.headers)
        resp.raise_for_status()
        return resp.json()

    def search_transactions(self, account_id: str, from_date: str, to_date: str) -> list[dict]:
        """Search transactions with filter criteria."""
        payload = {
            "filterCriteria": [
                {"field": "parentAccountKey", "operator": "EQUALS", "value": account_id},
                {"field": "creationDate", "operator": "BETWEEN", "value": from_date, "secondValue": to_date},
            ],
            "sortingCriteria": {"field": "creationDate", "order": "DESC"},
        }
        resp = requests.post(f"{self.base_url}/api/deposits/transactions:search", headers=self.headers, json=payload)
        resp.raise_for_status()
        return resp.json()
```

### 4. Finastra FusionFabric.cloud

```python
import requests

class FinastraClient:
    def __init__(self, base_url: str, token: str):
        self.base_url = base_url.rstrip("/")
        self.headers = {
            "Authorization": f"Bearer {token}",
            "Content-Type": "application/json",
        }

    def get_accounts(self, customer_id: str) -> list[dict]:
        """Get customer accounts from Finastra core."""
        resp = requests.get(
            f"{self.base_url}/retail-banking/accounts/v1/accounts",
            headers=self.headers,
            params={"customerId": customer_id},
        )
        resp.raise_for_status()
        return resp.json().get("accounts", [])

    def initiate_payment(self, debtor_account: str, creditor_account: str, amount: float, currency: str) -> dict:
        """Initiate a payment via Finastra Payment Hub."""
        payload = {
            "debtorAccount": {"identification": debtor_account},
            "creditorAccount": {"identification": creditor_account},
            "instructedAmount": {"amount": str(amount), "currency": currency},
        }
        resp = requests.post(
            f"{self.base_url}/payments/v1/payment-initiations",
            headers=self.headers,
            json=payload,
        )
        resp.raise_for_status()
        return resp.json()
```

## Agent Tool Pattern

```python
# Wrap core banking calls as AI agent tools
def check_balance(account_id: str) -> str:
    """Check the current balance for a bank account.

    Args:
        account_id: The bank account identifier
    """
    client = MambuClient(base_url=MAMBU_URL, api_key=MAMBU_KEY)
    account = client.get_deposit_account(account_id)
    balance = account.get("balances", {}).get("availableBalance", 0)
    currency = account.get("currencyCode", "USD")
    return f"Account {account_id} available balance: {currency} {balance:,.2f}"

def get_recent_transactions(account_id: str, days: int = 30) -> str:
    """Get recent transactions for a bank account.

    Args:
        account_id: The bank account identifier
        days: Number of days to look back (default 30)
    """
    from datetime import datetime, timedelta
    to_date = datetime.now().strftime("%Y-%m-%d")
    from_date = (datetime.now() - timedelta(days=days)).strftime("%Y-%m-%d")

    client = MambuClient(base_url=MAMBU_URL, api_key=MAMBU_KEY)
    txns = client.search_transactions(account_id, from_date, to_date)
    return f"Found {len(txns)} transactions in the last {days} days."
```

## Anti-Patterns

- Exposing raw account numbers to LLMs -- mask sensitive data before passing to models
- Direct database queries bypassing core banking APIs -- always use the platform's REST/gRPC APIs
- Caching account balances -- always fetch live balances (stale data = compliance risk)
- Skipping idempotency keys on payment/posting APIs -- duplicate payments are catastrophic
- Not implementing rate limiting -- core banking APIs have strict throughput limits

## References

- [Temenos Transact API](https://www.temenos.com/platform/transact/)
- [Thought Machine Vault](https://www.thoughtmachine.net/vault)
- [Mambu API Documentation](https://api.mambu.com/)
- [Finastra FusionFabric.cloud](https://developer.fusionfabric.cloud/)

<!-- Source: .faos/custom/skills/integrations/core-banking-integration/SKILL.md -->

Attribution

Is this your skill, or is something wrong with this listing? Request removal or report an issue. Author removals are honored within 72 hours.

Comments

Loading comments…

Newsletter

Get the weekly list of safe new skills, and the ones we pulled.