Resources
How to connect banking data to your AI-built app with Fiskil
Add bank feeds, balances and transactions to an AI-built app. Sign up to Fiskil, create API credentials and connect its MCP to your coding assistant.
You can ask Claude, ChatGPT or Grok to build a budgeting app. The dashboard can look convincing before it has a single real transaction behind it.
To connect banking data to an AI-built app with Fiskil, sign up to the Console, create API credentials, give your coding assistant access to Fiskil's documentation through MCP, and build the consent and data-fetching flow in your backend. Test it with sandbox data, then request live access before connecting real customers.
This guide focuses on a banking app for Australian users: account balances, a transaction feed and a “Connect your bank” button. The same building blocks can support a cash-flow dashboard or another app that needs permissioned banking data.
What connects to what?
There are two connections in this workflow.
Your AI assistant connects to Fiskil's documentation MCP. MCP, or Model Context Protocol, lets a compatible assistant use tools from an external server. Fiskil's public MCP exposes documentation, endpoint details and code examples. It is read-only and does not require authentication. Your assistant can use it to check how an integration works as it writes code. Fiskil MCP guide.
Your app connects to Fiskil's Data API. The backend authenticates with your API credentials and retrieves the banking data a user has consented to share. The MCP described here provides the implementation reference; it does not fetch that customer's live bank feed into Claude, ChatGPT or Grok.
For the app builder, the useful sequence is simple: give the assistant the right reference, let it build against test data, then review the integration before using live data.
1. Sign up to Fiskil and start in the sandbox
Create an account at the Fiskil Console. Fiskil's sandbox is available through self-serve signup, with no credit card or sales call required. It gives you realistic test data so you can develop the banking flow before requesting production access. Sandbox guide.
A sandbox transaction feed is useful for checking whether your app displays incoming and outgoing payments properly. It is still test data. Completing signup does not immediately grant access to real customers' bank accounts.
Start with one small feature: connect an account and display its recent transactions. Get that flow working before adding spending insights, alerts or an AI chat interface.
2. Create an API key for your app
In the Console, open Settings → API Keys and create your credentials. Fiskil provides a client_id and client_secret; store the secret when it is generated because it is only shown at creation. Quickstart.
These are your API credentials. You do not need a separate “AI key” to connect the public documentation MCP.
Your backend exchanges the credential pair at POST https://api.fiskil.com/v1/token for a bearer token. Access tokens expire after 15 minutes, so the backend needs to obtain a new token when required. Keep the client secret in server-side environment variables or a secrets store. Authentication guide.
When asking an assistant to write this code, use placeholders such as FISKIL_CLIENT_ID and FISKIL_CLIENT_SECRET. Add the actual values through your deployment environment. Keep them out of the prompt, frontend bundle and source repository.
Ask the assistant to check the current API versioning guide, too. Fiskil's /v1 URL namespace is separate from the API version selected through the version header or Console setting. Changing every URL to /v3 is not an upgrade strategy.
3. Connect Fiskil's MCP to your AI assistant
Use this remote MCP server URL:
https://docs.fiskil.com/api/ai/mcp
Call the connection Fiskil. The documentation server requires no API key or sign-in. Leave your banking API credentials in your app's backend.
Claude Code
From your project, add the HTTP MCP server:
claude mcp add --transport http fiskil https://docs.fiskil.com/api/ai/mcp
Run claude mcp list to confirm it is registered. Then ask Claude Code to use the Fiskil tools when it checks endpoints and writes the integration. This setup is documented in the Fiskil MCP guide.
Claude
For an individual account with custom connector access, open Customize → Connectors → + Add → Add custom connector. Enter the name and URL, review the detected authentication settings, select No sign in, and finish adding it. Enable the connector for the conversation. Team or Enterprise workspaces may need an owner to add it first. Claude custom connector instructions.
ChatGPT
In ChatGPT on the web, open Plugins, select the plus button and Add custom MCP server. Enter the Fiskil URL, choose No authentication, review the connection details and create the plugin. Install it, then select it with @ in your conversation. Workspace permissions and security settings control availability. OpenAI's custom MCP instructions.
Grok
For Grok's web interface, open Connectors, choose New Connector → Custom, and enter the Fiskil MCP URL. The server itself requires no authentication. Grok connector instructions.
If you use a separate Grok-based bot or coding tool, check that host's remote MCP support and settings. Its setup may differ from Grok's own interface. The same applies to other assistants and editors.
These steps configure a documentation connection. If your client cannot use remote MCP, give it the Fiskil AI integration guide and the relevant documentation pages as context.
4. Give the assistant a concrete banking task
“Add open banking” leaves too much for the assistant to guess. Describe the feature, your stack and the behaviour you expect.
For example, use this prompt and replace the bracketed details:
Build a banking integration for my [framework and backend] app for Australian users. Use the Fiskil MCP to read the current authentication, API version, consent, Link SDK, accounts, balances, transactions and webhook documentation before writing code. Start with sandbox data. Add a Connect your bank flow and a transaction list. Keep credentials server-side with environment-variable placeholders. Map each signed-in app user to their Fiskil End User and check ownership before returning data. Handle pagination, sync-in-progress states, expired consent and failed requests. Show data freshness in the interface. Explain any assumptions and list what I must configure manually.
Ask it to produce one working path first. Review the backend routes and data model before letting it spread the integration across every part of your app.
5. Build the consent-to-bank-feed flow
A bank feed needs more than a successful API request. Your app must know whose data it is requesting, which accounts they shared and when that data is ready.
Create an End User and start a connection
Create a Fiskil End User for the person using your app and retain that ID against their authenticated app account. Create an auth session for that End User, then use Fiskil's Link SDK or the returned authentication URL to launch the connection flow. The user selects their institution and accounts and consents to sharing. Fiskil quickstart and consent guide.
In the sandbox, you can also create an auth session from the Console's End Users screen and complete the test-provider flow. This lets you inspect the connection before building the full frontend. Sandbox walkthrough.
Wait for the data, then fetch it
Subscribe to the events your feature needs. For example, consent.received signals that consent was granted, while banking.transactions.sync.completed signals that transaction data has synced. Verify webhook signatures using Fiskil's documented method and make your handler safe to process repeat deliveries. Webhook guide.
Fetch the relevant resources from the backend:
| App feature | Fiskil API resource |
|---|---|
| Let the user choose a connected account | Accounts: GET /v1/banking/accounts |
| Display account balances | Balances: GET /v1/banking/balances |
| Populate the transaction feed | Transactions: GET /v1/banking/transactions |
Use the current reference for the required End User parameters and response structure. Follow pagination links when loading transaction history; the first response is not necessarily the complete feed.
For our example budgeting app, the first useful outcome is a transaction list tied to the correct user and account, with a clear loading state while data syncs. Spending charts can follow once that foundation works.
How “real time” banking data works
Treat freshness as part of the product. A newly connected account may still be syncing, and the transactions available to your app reflect the data Fiskil has received from the institution.
Use data freshness to check the state of the dataset and display an appropriate “last updated” indicator. Fiskil also provides a transaction refresh endpoint, which queues an asynchronous refresh. A successful refresh request does not mean every new transaction is already available.
Build separate interface states for connecting, syncing, showing available data and asking the user to reconnect. That gives users a more useful experience than an empty transaction screen labelled “live”.
6. Request live access before connecting real customers
When the sandbox flow works, complete Fiskil's onboarding questionnaire in the Console. The live-access process covers your company profile, application and security questionnaire, followed by Fiskil's review. Follow the go-live checklist before moving to production.
Before that move, review the generated code against a few concrete cases:
- User A cannot request User B's banking data by changing an ID.
- Expired or revoked consent leads to an appropriate reconnect state.
- Pagination returns the intended transaction history.
- Repeat webhook deliveries do not duplicate processing.
- Failed requests and institution outages produce useful error states.
- Real customer data is handled according to the approved use case and consent, including any proposed use with an AI model.
AI can help write the integration. Your application still needs to enforce those behaviours.
Start with Fiskil's sandbox, connect the documentation MCP to your assistant, and build one complete bank-feed flow. You will have a concrete integration to review before applying for live banking data.


