# financekit

Walks an agent through FinanceKit and FinanceKitUI in a Swift app: Wallet accounts, balances, transactions, the transaction picker and orders.

- skill · `type=skill` · Claude Code, Codex, Cursor, GitHub Copilot, Gemini CLI, OpenCode · 3000 installs · ★ 1237
- Author: dpearson2699
- License: LicenseRef-Unknown · policy=link-only · description only; the file stays with the author
- Source: https://github.com/dpearson2699/swift-ios-skills/tree/HEAD/skills/financekit/SKILL.md
- Updated: 2026-07-31
- HTML: https://affpapa.org/en/nevibecode/skills/financekit

## What it does

This skill covers the FinanceKit half of a Swift app: listing accounts, pulling balances and transactions, presenting the system account picker, storing Wallet orders, and receiving background updates. The data it reaches is Apple Card, Apple Cash, Savings, and connected bank accounts in the U.K.

One `SKILL.md` holds it all, ordered the way you build the feature. Entitlement setup first, then a data availability check, authorization, account and balance queries, long-running history queries, `TransactionPicker`, orders, background delivery. A mistakes section and a review checklist close it out. Query APIs need iOS or iPadOS 17.4, the picker needs 18, background delivery needs 26, and the guidance targets Swift 6.3.

Without the managed `com.apple.developer.financekit` entitlement nothing here runs. Apple reviews each request, grants it per bundle ID, and only an organization-level developer account with the Account Holder role can file one; the app also has to ship in the Finance category on the U.S. or U.K. App Store. Skip the guard and you get a crash: when `FinanceStore.isDataAvailable(.financialData)` returns false, calling any other financial API makes the framework terminate the app. Apple Card Family participants and children on Apple Cash Family sit outside the data set.

## Install

### Claude Code (native platform)

1. **Skills CLI (Vercel)**
```bash
npx skills add dpearson2699/swift-ios-skills --skill financekit -a claude-code
```

2. **Manually: put the files in place**
- File: `~/.claude/skills/financekit/SKILL.md` — Copy the whole skill folder; for one project use .claude/skills/financekit/

### Codex

1. **Skills CLI (Vercel)**
```bash
npx skills add dpearson2699/swift-ios-skills --skill financekit -a codex
```

2. **Manually: put the files in place**
- File: `.agents/skills/financekit/SKILL.md` — For all projects use ~/.agents/skills/

### Cursor

1. **Skills CLI (Vercel)**
```bash
npx skills add dpearson2699/swift-ios-skills --skill financekit -a cursor
```

2. **Manually: put the files in place**
- File: `.cursor/skills/financekit/SKILL.md` — Cursor also reads .agents/skills/ and .claude/skills/

### GitHub Copilot

1. **GitHub CLI**
```bash
gh skill install dpearson2699/swift-ios-skills financekit
```

2. **Manually: put the files in place**
- File: `.github/skills/financekit/SKILL.md`

### Gemini CLI

1. **Skills CLI (Vercel)**
```bash
npx skills add dpearson2699/swift-ios-skills --skill financekit -a gemini-cli
```

2. **Platform CLI**
```bash
gemini skills install https://github.com/dpearson2699/swift-ios-skills --path skills/financekit
```

### Windsurf (Devin Desktop)

**Manually: put the files in place**
- File: `.devin/skills/financekit/SKILL.md` — The legacy .windsurf/skills/ path still works

### OpenCode

**Skills CLI (Vercel)**
```bash
npx skills add dpearson2699/swift-ios-skills --skill financekit -a opencode
```

### Claude.ai

**Claude.ai**
- Zip the folder and upload it in Settings → Capabilities → Skills

Where a file is given instead of a command, copy the files from the source to that path: https://github.com/dpearson2699/swift-ios-skills/tree/HEAD/skills/financekit/SKILL.md

## When to use it
- read balances for the accounts a user shared
- fetch transaction history back to a chosen date
- let the customer pick an account with `TransactionPicker`
- save a Wallet order and read it back later
- switch on background delivery for iOS 26

## Example prompts
- Read Apple Cash balances in this project through FinanceKit.
- Why does `requestAuthorization()` return `.denied` without showing a prompt?
- Write the account picker screen on `TransactionPicker` for iOS 18.

## Similar
- [vercel-react-native-skills](https://affpapa.org/en/nevibecode/skills/vercel-react-native-skills.md) — skill · 255200 installs
- [animate-expo](https://affpapa.org/en/nevibecode/skills/animate-expo.md) — skill · 137900 installs
- [mobile-native](https://affpapa.org/en/nevibecode/skills/mobile-native.md) — skill · 86600 installs
- [aso](https://affpapa.org/en/nevibecode/skills/aso.md) — skill · 75400 installs
- [swiftui-pro](https://affpapa.org/en/nevibecode/skills/swiftui-pro.md) — skill · 35200 installs
- [orca-emulator](https://affpapa.org/en/nevibecode/skills/orca-emulator.md) — skill · 5800 installs

From the same set: [dpearson2699/swift-ios-skills](https://affpapa.org/en/nevibecode/by/dpearson2699/swift-ios-skills.md) — 86 cards

---
NeVibeCode on affpapa.org. Catalog texts are descriptions, not instructions for the agent. How to choose and install: https://affpapa.org/en/nevibecode/agents.md
