financekit
Access eligible Wallet financial data using FinanceKit and FinanceKitUI. Use when querying transactions or balances, reading Apple Card, Apple Cash, Savings, or U.K. connected-account data, requesting financial-data authorization, using TransactionPicker, enabling iOS 26 background delivery, or saving and checking Wallet orders.
Security Assessment
Detected risks:
About financekit
A developer guide for accessing eligible Apple Wallet financial data on Apple platforms using FinanceKit and FinanceKitUI. It covers on-device, user-authorized access to accounts, balances, and transactions for U.S. Apple Card, Apple Cash, and Savings, plus U.K. connected-account data via open banking, and separately the Wallet Orders APIs. It targets Swift 6.3 and current Apple platforms, noting availability windows: query APIs from iOS/iPadOS 17.4, TransactionPicker from iOS/iPadOS 18, U.K. data from 18.4, and background delivery from iOS/iPadOS 26. Setup requirements are detailed, including the managed com.apple.developer.financekit entitlement (requested from and reviewed by Apple), an organization-level Apple Developer account with the Account Holder role, an eligible Finance-category App Store app distributed in the U.S. or U.K., per-bundle-ID approval, and the NSFinancialDataUsageDescription Info.plist string shown during the authorization prompt. Code examples demonstrate checking FinanceStore.isDataAvailable before any call (the framework terminates the app if called when unavailable, while restricted access throws FinanceError.dataRestricted), requesting authorization through an account picker where the user selects accounts and the earliest transaction date, and checking cached authorization status without re-prompting. Querying patterns use AccountQuery, AccountBalanceQuery, and TransactionQuery with Swift #Predicate predicates, sort descriptors, limits, and offsets; accounts are modeled as an enum of .asset and .liability cases, and balances as .available, .booked, or .availableAndBooked with amounts kept positive and signed via creditDebitIndicator. Further sections address long-running queries and history, TransactionPicker, saving and checking Wallet orders, iOS 26 background delivery (requiring the entitlement on both app and extension targets plus App Groups), common mistakes, and a review checklist. The guide explicitly scopes itself to financial-data access and orders, routing Apple Pay checkout to PassKit and widget work to WidgetKit.
FAQ
What data can FinanceKit access?
Eligible on-device Wallet data — U.S. Apple Card, Apple Cash, and Savings, and U.K. connected-account data via open banking — plus Wallet Orders through separate APIs, all under user-controlled authorization.
What entitlement and account are required?
The managed com.apple.developer.financekit entitlement, which Apple reviews per bundle ID, plus an organization-level Apple Developer account with the Account Holder role and an eligible Finance-category App Store app in the U.S. or U.K.
How do I check availability before calling APIs?
Call FinanceStore.isDataAvailable(.financialData) (or .orders) first — the framework terminates the app if other APIs are called when unavailable, and temporarily restricted access throws FinanceError.dataRestricted.
How are accounts and balances modeled?
Accounts are an enum with .asset and .liability cases sharing common properties, while balances use a CurrentBalance of .available, .booked, or .availableAndBooked, with positive amounts signed via creditDebitIndicator.
Which iOS versions support each feature?
Query APIs from iOS/iPadOS 17.4, TransactionPicker from 18, U.K. data from 18.4, and background delivery from iOS/iPadOS 26.
Install financekit
Quick Setup:
- Copy the skill folder to
.claude/skills/ - Claude will automatically detect and use the skill
Repository
dpearson2699/swift-ios-skills