Funds Confirmation
The Confirmation of Funds (CoF) API allows Card-Based Payment Instrument Issuers (CBPIIs) to check if sufficient funds are available in a customer's account before completing a transaction.
Overview
The CoF service is designed for card issuers and payment processors who need to verify fund availability in real-time before authorizing a transaction.
Real-time
Instant response for authorization decisions
Boolean Result
Simple yes/no funds availability response
No Balance Disclosure
Only confirms availability, not actual balance
Consent Requirements
CoF requests require a funds-confirmation consent with the FundsConfirmation permission. The consent must specify the account to check.
Account Binding
Unlike AIS consents, CoF consents are bound to a specific account. The account is selected during customer authorization and cannot be changed.
Confirm Funds
Check if sufficient funds are available for a specified amount.
/open-banking/v1/funds-confirmationsCheck funds availability for a specified amount.
Request
{
"consent_id": "consent_cof_abc123",
"reference": "TXN-12345",
"instructed_amount": {
"amount": "150.00",
"currency": "GBP"
}
}Response
{
"funds_available": true,
"funds_available_result": "Available",
"reference": "TXN-12345"
}Request Fields
| Field | Type | Description |
|---|---|---|
consent_id | string | Required. The funds-confirmation consent ID |
reference | string | Required. Your reference for this check (e.g., transaction ID) |
instructed_amount.amount | string | Required. Amount to check as decimal string |
instructed_amount.currency | string | Required. ISO 4217 currency code |
Response Fields
| Field | Type | Description |
|---|---|---|
funds_available | boolean | true if funds are available, false otherwise |
funds_available_result | string | "Available" or "NotAvailable" |
reference | string | Echo of your reference from the request |
Example Scenarios
Funds Available
Customer has £500 available, checking for £150:
{
"funds_available": true,
"funds_available_result": "Available",
"reference": "TXN-12345"
}Funds Not Available
Customer has £100 available, checking for £150:
{
"funds_available": false,
"funds_available_result": "NotAvailable",
"reference": "TXN-12345"
}Common Use Cases
Card Authorization
Before authorizing a card transaction, check if the linked bank account has sufficient funds.
Buy Now Pay Later
Verify customer can cover the first installment before approving a BNPL purchase.
Pre-Authorization
Check fund availability before placing a hold for hotel bookings or car rentals.
Best Practices
- Cache consent validity to avoid unnecessary authorization flows
- Include meaningful references for audit and reconciliation
- Handle NotAvailable gracefully - don't immediately decline the transaction
- Consider time-of-day effects on available balances (pending transactions)
- Implement fallback logic if the CoF check times out
Error Responses
Common error responses for the Funds Confirmation API:
invalid_requestMalformed request body
invalid_amountInvalid amount format
no_accountConsent does not specify an account
invalid_consentConsent not found
wrong_consent_typeThis endpoint requires a CoF consent
consent_invalidConsent is not active or has expired
permission_deniedConsent does not include FundsConfirmation permission
Rate Limits
The CoF endpoint has specific rate limits to prevent abuse:
| Environment | Per Consent | Per TPP |
|---|---|---|
| Sandbox | 10/minute | 100/minute |
| Production | 60/minute | 1000/minute |