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.
npx skills add dpearson2699/swift-ios-skills --skill financekit --agent claude-code
Same command for any agent — swap --agent for codex, cursor, copilot.
Weekly change comes from our own snapshots, not the repository page — it measures attention, not adoption.
What it does
Access eligible financial data from Apple Wallet, including U.S. Apple Card, Apple Cash, and Savings, plus U.K. connected-account data. It provides on-device access to accounts, balances, and transactions with user-controlled authorization, and supports Wallet orders, TransactionPicker, and iOS 26 background delivery. It targets Swift 6.3 / current Apple platforms; APIs appear from iOS/iPadOS 17.4 (data queries), TransactionPicker from iOS/iPadOS 18, and background delivery from iOS/iPadOS 26.
How it works
- Setup and Entitlements: requires a managed com.apple.developer.financekit entitlement, organization-level developer account, and an Account Holder role. Configure entitlements in Xcode and add NSFinancialDataUsageDescription to Info.plist; enable background delivery by adding entitlements to app and extension targets and using App Groups.
- Data Availability checks: verify FinanceStore.isDataAvailable(.financialData) for data APIs; separate check for Wallet orders.
- Authorization: requestAuthorization to present account picker; handle .authorized, .denied, or .notDetermined; can also query current status via authorizationStatus().
- Querying Accounts and Balances: fetch accounts by AccountQuery with sort and predicate; read balances via AccountBalanceQuery; handle asset vs liability accounts and their fields.
- Querying Transactions: use TransactionQuery with predicates, sort descriptors, limit, offset; read transactionAmount, creditDebitIndicator, and description; apply built-in predicate helpers for status, type, and merchant category.
- Long-Running Queries and History: use AsyncSequence-based history for catch-up and live updates; persist HistoryToken via Codable to resume.
- Transaction Picker: use FinanceKitUI’s TransactionPicker for ephemeral access; selections are not persisted.
- Wallet Orders: saving and querying Wallet orders with saveOrder and containsOrder; UI integration via AddOrderToWalletButton.
- Background Delivery: enable extension-based background delivery for accounts, balances, and transactions; implement didReceiveData(for:) in the extension and terminate appropriately.
- Common Mistakes: guard availability, respect credit/debit indicators, handle data-restricted errors, avoid replacing resumable history with snapshots.
When to use it
Use when querying transactions or balances, reading Apple Card/Apple Cash/Savings or UK data, requesting financial-data authorization, using TransactionPicker, enabling iOS 26 background delivery, or saving and checking Wallet orders.
What it can touch
FinanceKit, FinanceKitUI, and related APIs are used; commands and code snippets show usage of:
- guard FinanceStore.isDataAvailable(.financialData)
- store.requestAuthorization(), store.authorizationStatus()
- fetchAccounts(), fetchBalances(for:), fetchTransactions(query:)
- TransactionPicker, AddOrderToWalletButton
- saveOrder(signedArchive:), containsOrder(matching:), FullyQualifiedOrderIdentifier
- enableBackgroundDelivery(for:frequency:), didReceiveData(for:)
Caveats
- Requires a managed FinanceKit entitlement and appropriate Apple developer program setup.
- Data availability does not guarantee data exists; access can be restricted and may throw FinanceError.dataRestricted.
- Background delivery extension requires proper target configuration and App Groups.
- Wallet orders APIs are separate from financial-data query APIs.
- The material emphasizes on-device data access with user authorization and does not guarantee specific outcomes beyond stated processes.
# FinanceKit Access eligible financial data from Apple Wallet, including U.S. Apple Card, Apple Cash, Savings, and U.K. connected-account data. FinanceKit provides on-device access to accounts, balances, and transactions with user-controlled authorization. Targets Swift 6.3 / current Apple platforms; query APIs are available from iOS/iPadOS 17.4, `TransactionPicker` from iOS/iPadOS 18, and background delivery from iOS/iPadOS 26. Keep FinanceKit guidance focused on financial-data access, Wallet order storage/querying, TransactionPicker, and background delivery. Route Apple Pay checkout to PassKit, widget UI/timeline work to WidgetKit, and Wallet order-tracking email or Apple Business Connect optimization outside this skill. ## Contents - [Setup and Entitlements](#setup-and-entitlements) - [Data Availability](#data-availability) - [Authorization](#authorization) - [Querying Accounts](#querying-accounts) - [Account Balances](#account-balances) - [Querying Transactions](#querying-transactions) - [Long-Running Queries and History](#long-running-queries-and-history) - [Transaction Picker](#transaction-picker) - [Wallet Orders](#wallet-orders) - [Background Delivery](#background-delivery)
- Contents
- Setup and Entitlements
- Requirements
- Project Configuration
- Data Availability
- Authorization
- Checking Current Status
- Querying Accounts
- Working with Account Types
- Account Balances
- Reading Balance Amounts
- Querying Transactions
- Reading Transaction Data
- Built-In Predicate Helpers
What does the financekit skill do?
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.
How do I install it?
Run `npx skills add dpearson2699/swift-ios-skills --skill financekit --agent claude-code` — it drops the skill into your project so the agent can pick it up. Swap the --agent value for codex, cursor or copilot if you use one of those.
Where does this skill come from?
From dpearson2699/swift-ios-skills, a repository with 963 stars. We read it straight from the repository tree rather than a submitted listing, so what you see here is what is actually published.
Is a popular skill a good skill?
Not necessarily. Stars measure attention, not adoption — a repository can trend for a week and be abandoned. That is why we show the weekly change from our own snapshots next to the total, instead of a single flattering number.