canonical: https://jentic.com/apis/biapi.pro/biapi

# Biapi Pro Budgea API

The Budgea API by Powens (formerly Budget Insight) is an open banking aggregation platform covering PSD2-regulated bank connections, account information, transaction history, payment initiation, and personal finance management features. Agents can connect end users to French and European banks, retrieve normalised transaction feeds, categorise spending, and trigger SEPA payments. The spec exposes 167 endpoints across banking connectors, accounts, transactions, categories, users, webhooks, and document-based wealth aggregation. Authentication relies on JWT tokens minted from `/auth/jwt` and user access tokens minted from `/auth/token.`

## For AI agents

Aggregate bank accounts, fetch normalised transactions, categorise spending, and initiate SEPA payments across European banks via the Budgea open banking platform.

## Scope

Does not handle card issuing, accounting ledgers, or merchant card acceptance - use for PSD2 bank aggregation and payment initiation only.

## Capabilities

- Connect end users to French and European banks under PSD2 access-to-account
- Fetch normalised transaction history across linked bank accounts
- Categorise transactions using the Budgea category taxonomy and keyword rules
- Initiate SEPA credit transfers and recurring payments through PSD2 payment initiation
- Manage user accounts and issue per-user access tokens for the API
- Retrieve the catalogue of supported bank connectors and their fields
- Subscribe to webhooks that notify on transaction updates and connection status

## Use cases

### Personal Finance Management Aggregator

Build a PFM application that aggregates a user's bank accounts across multiple French and European banks, categorises every transaction, and produces a monthly spending breakdown. Budgea handles the PSD2 connection lifecycle, normalises transactions across banks, and applies a category taxonomy with keyword rules. Typical integration time for a PFM MVP is 3-4 weeks including the redirect flow.

Example prompt: Fetch every account and the last 90 days of transactions for user 9876, then group totals by category.

### SEPA Payment Initiation

Trigger payments directly from a connected bank account under PSD2 payment initiation services. Budgea brokers the redirect to the user's bank for strong customer authentication, then returns the payment status. This is suitable for invoice settlement, recurring rent collection, and account-funded e-commerce checkout in the EU.

Example prompt: Initiate a 250 EUR SEPA transfer from connection 4567 to IBAN FR76xxxxxxxxxxxxxxxxx with reference 'INV-2026-001'.

### Lending Underwriting Data Pull

Pull a normalised income and expenditure feed from a borrower's bank account to underwrite a loan. The Budgea connection delivers categorised transactions, recurring income detection, and account balance trends. Lenders avoid building per-bank scrapers and rely on the Budgea connector catalogue, which covers most retail banks in France and major European markets.

Example prompt: Retrieve 12 months of transactions from user 1234's primary current account and flag every recurring salary deposit.

### AI Agent Spending Coach

An AI agent acts as a spending coach, answering questions like 'how much did I spend on dining this month?' by querying Budgea through Jentic. The agent does not handle JWT minting itself - Jentic stores both the manage token and per-user tokens in the vault and injects the right credential per call.

Example prompt: Search Jentic for 'list user transactions Budgea', load the schema, and return all dining-category transactions for the current month.

## Key endpoints

| Method | Path | Description |
| --- | --- | --- |
| POST | `/admin/jwt` | Generate a manage JWT token |
| POST | `/auth/jwt` | Generate a user JWT token |
| POST | `/auth/token` | Login to the API with credentials |
| GET | `/banks` | List supported bank connectors |
| GET | `/categories` | List the category taxonomy |

## Key resources

- **Banks** — Catalogue of supported bank connectors and their fields
- **Connections** — User-bank connections including state and refresh status
- **Accounts** — Bank accounts linked through a user's connections
- **Transactions** — Normalised transactions across all linked accounts
- **Categories** — Budgea category taxonomy and keyword rules
- **Auth tokens** — JWT manage tokens and per-user access tokens

## Why Jentic

- **Setup:** Wiring the Budgea API by hand means minting manage tokens and per-user JWTs at `/admin/jwt` and `/auth/jwt`, carrying the right token on each PSD2 aggregation call, and building payloads yourself. Through Jentic you install once, import Budgea from the API Directory, store the manage credentials once, and your agent calls it.
- **Permission scoping:** Budgea passes user and bank identifiers in the request body and token rather than pinning a resource in the path for these operations, so limit the agent to the operations it needs, such as listing banks or categories. You choose that set, so token-minting or payment-initiation operations are not reachable unless you include them.
- **Credential handling:** Your Budgea manage token and per-user JWTs are stored once, encrypted, by your own Jentic One instance and injected at execution time. They never enter the agent's prompt, logs, or context.
- **Discovery method:** Agents search Jentic by intent such as 'list supported banks' or 'get transaction categories', and Jentic returns the matching Budgea operation with its input schema so the agent calls the right endpoint without browsing the reference docs.

## Related APIs

- **Plaid API** — Plaid is the dominant open banking aggregator in the US and Canada, where Budgea has limited coverage.
- **TrueLayer API** — TrueLayer offers PSD2 aggregation and payments with strong UK and EU coverage.
- **GoCardless API** — GoCardless collects recurring direct debits that can be reconciled against Budgea-aggregated bank accounts.

## FAQ

### What authentication does the Budgea API use?

Budgea uses JWT tokens. POST to `/admin/jwt` for a manage token (tied to your client credentials) and POST to `/auth/jwt` or `/auth/token` to mint a per-user token after a user has connected. Through Jentic, both tokens are stored encrypted in your Jentic One instance and injected at execution time so the agent never handles raw secrets.

### Can I initiate SEPA payments with the Budgea API?

Yes. Budgea offers PSD2 payment initiation services and the spec includes payment-related endpoints under the /users and /banks resources. The user's bank handles strong customer authentication via redirect; Budgea returns the payment status to your application.

### What are the rate limits for the Budgea API?

Rate limits are tier-dependent and not declared in the OpenAPI spec. Powens documents quotas in the partner agreement; expect HTTP 429 with a Retry-After header when limits are hit. Manage-token-scoped calls are rate-limited per client; per-user calls are limited per user-token.

### How do I list a user's transactions through Jentic?

Search Jentic for 'list user transactions Budgea', load the matching operation, and execute with the user_id. With the SDK: pip install jentic, then SearchRequest, LoadRequest, ExecutionRequest in an async flow - Jentic injects the right user JWT for the call.

### Which banks does Budgea cover?

GET /banks returns the live catalogue of supported connectors. Coverage is strongest in France and major European markets. Each connector entry exposes fields such as the required login parameters and the connector's source feed (PSD2 API or web aggregation fallback).

### Does Budgea support webhooks for transaction updates?

Yes - Budgea exposes webhook subscriptions so your application can be notified when transactions change or a connection moves into an error state. Configure webhook URLs in the Powens admin console and consume them via your own HTTPS endpoint.

### Can I limit what my agent is allowed to do with the Budgea API?

Yes. Because you self-host Jentic One, your own rules decide which Budgea operations and credentials the agent can use, and Budgea carries the user and bank identifiers in the request body and token rather than in the path. You can grant read-only operations such as GET /banks, GET /categories, or listing a user's transactions while withholding the rest. Token-minting endpoints like `/admin/jwt` and `/auth/jwt` and SEPA payment initiation stay unreachable unless you explicitly include them.
