canonical: https://jentic.com/apis/openbanking.org.uk/confirmation-funds-openapi

# Openbanking Confirmation of Funds API Specification

The UK Open Banking Confirmation of Funds (CBPII) API lets a card-based payment instrument issuer ask a bank whether sufficient funds are available on a PSU's account for a specific amount. The 4-endpoint surface covers creating, retrieving, and revoking funds-confirmation-consents plus the actual /funds-confirmations check. The PSU first authorises the consent under PSUOAuth2Security, then the CBPII calls /funds-confirmations under TPPOAuth2Security with the consent ID. The response is a yes/no flag, not the actual balance.

## For AI agents

Check whether a UK bank account has sufficient funds for a given amount via the regulated CBPII standard's 4 endpoints, with consent-scoped OAuth 2.0.

## Scope

Does not return balances, transactions, or initiate payments - use for yes/no funds availability checks (CBPII) only.

## Capabilities

- Create a funds-confirmation-consent that the PSU then authorises for a specific account
- Retrieve the state of a funds-confirmation-consent before using it
- Submit a /funds-confirmations request with an amount and currency to receive a yes/no funds flag
- Revoke a funds-confirmation-consent when the issuer no longer needs the check
- Drive pre-authorisation card flows with a regulator-aligned source of truth
- Operate without storing the PSU's actual balance - only a yes/no outcome is exposed
- Combine consent management and funds checks under one OAuth 2.0 model

## Use cases

### Card Pre-Authorisation

Card-based payment instrument issuers (CBPIIs) check whether a linked UK bank account holds enough funds before authorising a card transaction. After the PSU authorises the funds-confirmation-consent, the CBPII calls /funds-confirmations with the proposed amount and currency. The bank returns a yes/no flag rather than a balance, keeping disclosure minimal.

Example prompt: POST to /funds-confirmations with the consent ID, instructedAmount.amount='150.00', and instructedAmount.currency='GBP', then read the FundsAvailable boolean from the response.

### Buy-Now-Pay-Later Eligibility

BNPL providers acting as CBPIIs validate that a customer's nominated UK bank account can fund the next instalment before approving a purchase. The standard returns only a yes/no funds flag, which satisfies regulator requirements for minimal data exposure while still letting the BNPL provider make a credible affordability decision in the moment.

Example prompt: Call POST /funds-confirmations with the BNPL instalment amount, capture FundsAvailable, and decline the application if the flag is false.

### Consent Lifecycle for CBPII

Manage the lifecycle of funds-confirmation-consents from creation through revocation so the PSU stays in control. The agent creates a consent with POST /funds-confirmation-consents, stores the ConsentId, surfaces the consent in the user's settings, and revokes it via DELETE when the user opts out.

Example prompt: Create the consent with POST /funds-confirmation-consents, then on user opt-out call DELETE /funds-confirmation-consents/{ConsentId}.

### AI Agent Funds Check Tool via Jentic

Equip an AI agent with a regulated funds-availability tool through Jentic. The agent searches Jentic by intent, loads the schema for /funds-confirmations, and executes the call with the PSU and CBPII tokens held in your Jentic One instance. The yes/no outcome makes the integration safe for downstream automated decisions.

Example prompt: Use Jentic search 'check whether a bank account has enough funds', load the POST /funds-confirmations schema, and execute with the consent ID, amount, and currency to receive the FundsAvailable flag.

## Key endpoints

| Method | Path | Description |
| --- | --- | --- |
| POST | /funds-confirmation-consents | Create a new funds-confirmation-consent |
| GET | /funds-confirmation-consents/{ConsentId} | Retrieve the state of a consent |
| DELETE | /funds-confirmation-consents/{ConsentId} | Revoke a funds-confirmation-consent |
| POST | /funds-confirmations | Submit a funds availability check |

## Key resources

- **FundsConfirmationConsents** — Create, retrieve, and revoke the consent that the PSU authorises for a specific account.
- **FundsConfirmations** — Submit a yes/no funds-availability check for a given amount and currency under an active consent.

## Why Jentic

- **Setup:** Wiring the Confirmation of Funds API by hand means standing up the TPP client_credentials and PSU authorization_code OAuth flows, tracking which token each CBPII operation needs, and handling the consent lifecycle yourself. Through Jentic you install once, import the Confirmation of Funds API from the API Directory, store the OAuth credentials once, and your agent calls it.
- **Permission scoping:** The API puts the consent id in the URL path (/funds-confirmation-consents/{ConsentId}), so a rule can pin your agent to one funds-confirmation consent: it can create the consent, read it, and run the yes/no funds check against it. You choose the operations it may call, so consent deletion is not included unless you add it.
- **Credential handling:** Your TPP client_credentials and PSU authorization_code OAuth tokens are stored once, encrypted, by your own Jentic One instance and the right token is selected per operation at execution time. They never enter the agent's prompt, logs, or context.
- **Discovery method:** Agents search Jentic by intent such as 'check whether a bank account has enough funds' or 'set up a funds-confirmation consent', and Jentic returns the matching Confirmation of Funds operation with its ConsentId and amount schema so the agent calls the right endpoint without browsing the reference docs.

## Related APIs

- **Open Banking Account and Transaction API** — AISP standard for reading actual balances, transactions, and direct debits.
- **Open Banking Event Notifications** — Push notifications from ASPSPs to TPPs about consent and resource events.
- **Plaid API** — Aggregator API for bank data and balance checks across multiple regions.

## FAQ

### What authentication does the Open Banking CBPII API use?

Two OAuth 2.0 schemes. TPPOAuth2Security uses client_credentials and is what the CBPII uses to call the consent and funds-confirmation endpoints. PSUOAuth2Security uses authorization_code with strong customer authentication so the PSU can authorise the consent. Through Jentic both tokens live in the encrypted vault and are routed per-operation.

### Can I check whether an account has enough funds for a £100 payment?

Yes. Once the PSU has authorised a funds-confirmation-consent, POST to /funds-confirmations with InstructedAmount.Amount='100.00' and InstructedAmount.Currency='GBP' along with the ConsentId. The response contains a FundsAvailable boolean - the actual balance is never returned.

### What are the rate limits for the Open Banking CBPII API?

Rate limits are set per ASPSP rather than by the standard. Banks publish their CBPII limits in their developer portals; respect HTTP 429 with exponential back-off. Funds checks are typically rate-limited per consent and per minute.

### How do I run a funds check through Jentic?

Run the Jentic search 'check whether a bank account has enough funds', select POST /funds-confirmations, load its schema, and execute with the ConsentId, instructedAmount.amount, and instructedAmount.currency. Jentic attaches the TPP token automatically.

### Does this API return the account balance?

No. By design, Confirmation of Funds returns only a yes/no FundsAvailable flag. Use the AISP Account and Transaction API instead when the actual balance, transactions, or statements are needed.

### How do I revoke a funds-confirmation-consent?

Call DELETE /funds-confirmation-consents/{ConsentId} with a valid TPPOAuth2Security token. The bank then rejects subsequent /funds-confirmations calls that reference that ConsentId.

### Can I limit what my agent is allowed to do with the Confirmation of Funds API?

Yes. Because you run your own self-hosted Jentic One instance, your rules decide which operations and credentials the agent may use. This API carries the consent id in the URL path (/funds-confirmation-consents/{ConsentId}), so you can pin the agent to a single funds-confirmation consent and let it create the consent, read its state, and run the yes/no funds check against it. Since you choose the operations, deletion of a consent stays out of reach unless you explicitly allow it.
