Skills DirectorySkills Directory
SkillsLearnSecurityCategoriesDocsCommunityBlog
Sign InSubmit Skill
Skills Directory

Security-tested agent skills for Claude, coding agents, and AI workflows.

Directory

  • Browse Skills
  • All Skills A–Z
  • Claude Skills
  • Claude Code Skills
  • Agent Skills
  • Categories
  • Authors
  • Submit a Skill

Learn

  • Learn Hub
  • Install Claude Skills
  • Write SKILL.md
  • Skills vs MCP
  • Directories Compared

Security

  • Security
  • Methodology
  • Secure Claude Skills
  • Security Badges

Company

  • About
  • Community
  • Blog
  • API Docs
  • Advertise

2026 Skills Directory. All rights reserved.

ProTermsPrivacyRefunds
Back to skills

Financekit

ASecurity

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.

3 stars
0 votes
0 copies
0 views
Added 9/28/2026
developmentgoswiftapidocumentation

Works with

cliapi

Security Analysis

A100/100

Scanned 9/28/2026

Install to Claude Code

$npx -y skills add thiennc-tesoglobal/ios-skills --skill financekit --agent claude-code

Installs into .claude/skills of the current project.

Are you the author of Financekit?

Add the live security badge to your README — it updates automatically with every re-scan.

Security grade badge for Financekit
[![Security: A — Skills Directory](https://www.skillsdirectory.com/api/skills/thiennc-tesoglobal-financekit/badge)](https://www.skillsdirectory.com/skills/thiennc-tesoglobal-financekit)

More formats (shields.io, HTML) on the badges page.

Files
SKILL.md
---
name: financekit
description: "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."
---

# FinanceKit

Use FinanceKit for eligible Wallet financial data, selective transaction
imports, Wallet order storage/querying, and iOS 26+ background delivery. Query
APIs start at iOS/iPadOS 17.4, `TransactionPicker` at 18, and background
delivery at 26.

Route Apple Pay checkout to `passkit`, widget rendering/timelines to
`widgetkit`, and merchant email/Business Connect optimization outside this skill.

## Contents

- [Eligibility and setup](#eligibility-and-setup)
- [Choose the access workflow](#choose-the-access-workflow)
- [Data and sync invariants](#data-and-sync-invariants)
- [Background delivery](#background-delivery)
- [Wallet orders](#wallet-orders)
- [Common mistakes](#common-mistakes)
- [Review checklist](#review-checklist)
- [References](#references)

## Eligibility and setup

FinanceKit financial-data access is a managed capability. Verify all of these
before implementation:

- Organization Apple Developer account and Account Holder request.
- Eligible Finance-category iPhone app distributed through the U.S. or U.K.
  App Store with a genuine financial-management feature.
- Apple approval for `com.apple.developer.financekit` on the exact bundle ID.
- Clear `NSFinancialDataUsageDescription`.
- Required regulatory/account-connectivity obligations for apps offering
  financial products.

U.S. support covers eligible Apple Card, Apple Cash, and Savings data; family
exclusions apply. U.K. support starts at iOS/iPadOS 18.4 for supported open
banking institutions. Check current Apple eligibility before promising coverage.

Always guard availability before any financial-data or order API:

```swift
import FinanceKit

guard FinanceStore.isDataAvailable(.financialData) else { return }
let status = try await FinanceStore.shared.requestAuthorization()
```

Calling financial APIs when unavailable can terminate the app. Availability
does not guarantee accounts exist, and temporary restrictions surface as
`FinanceError.dataRestricted`.

## Choose the access workflow

| Need | API |
|---|---|
| Ongoing account, balance, or transaction access | `FinanceStore` authorization and queries |
| Selective immediate transaction import | FinanceKitUI `TransactionPicker` |
| Resumable catch-up or monitoring | Account/balance/transaction history sequences |
| Save/check a Wallet order | Orders availability plus `saveOrder`/`containsOrder` |
| Receive changes outside app lifetime | iOS 26+ background delivery extension |

Read [FinanceKit extended patterns](references/financekit-patterns.md) for
predicate factories, pagination, fields, currency formatting, credit/debit
interpretation, a resumable sync manager, SwiftUI integration, extension
lifecycle, and detailed error handling.

## Data and sync invariants

- Query only the data the feature needs. The user chooses accounts and the
  earliest exposed transaction date.
- Monetary amounts are positive. Apply `creditDebitIndicator`; do not infer sign
  from `Decimal`.
- Interpret credits in account context: a credit on a liability account may be
  a payment/refund increasing available credit, not income.
- Model ongoing sync across authorized accounts, balances, and transactions—not
  transactions alone.
- History changes contain inserted, updated, and deleted IDs. Commit local
  deletes/upserts before persisting `newToken`.
- Keep separate tokens per stream/account. On
  `FinanceError.historyTokenInvalid`, discard only the affected token and run a
  fresh catch-up for that scope.
- Use `isMonitoring: false` for finite catch-up and a separate
  `isMonitoring: true` sequence for live monitoring.
- Delete locally retained financial data when access is revoked or no longer
  justified.

## Background delivery

iOS 26+ registration methods are synchronous and nonthrowing:

```swift
FinanceStore.shared.enableBackgroundDelivery(
    for: [.accounts, .accountBalances, .transactions],
    frequency: .daily
)
```

The app and background extension both need the FinanceKit entitlement and a
shared App Group for durable state. Implement `didReceiveData(for:)` and return
only after essential writes complete. `willTerminate()` is the final chance to
save partial work, not a guarantee of unlimited cleanup time.

Hourly/daily/weekly frequencies are expected minimum intervals when data
changes; they are not exact schedules. Register every data type the local model
depends on.

## Wallet orders

Guard `.orders` availability independently. Handle every `SaveOrderResult`
(`added`, `cancelled`, `newerExisting`) and every contains result. A signed
archive is a server/merchant contract; do not fabricate or mutate it client-side.
Use `AddOrderToWalletButton` when the system presentation fits the product.

## Common Mistakes

- Calling authorization or queries before `isDataAvailable`.
- Treating authorized status as proof that data exists or remains unrestricted.
- Treating positive amounts as already signed.
- Replacing resumable history with repeated full snapshots.
- Persisting a history token before local changes commit.
- Using a full authorization flow when `TransactionPicker` is sufficient.
- Adding the entitlement only to the app while the extension also uses FinanceKit.
- Assuming background frequency is an exact delivery schedule.

## Review Checklist

- [ ] Eligibility, managed entitlement, bundle ID, region, and usage string are verified.
- [ ] Availability is checked before every data family and restriction errors are handled.
- [ ] Authorization and selective picker workflows follow least access.
- [ ] Amount signs and asset/liability interpretation are correct.
- [ ] Queries cover only needed fields and use bounded pagination where relevant.
- [ ] History applies deletes/upserts before token persistence and recovers invalid tokens by scope.
- [ ] Ongoing sync covers accounts, balances, and transactions as required.
- [ ] Background extension entitlement, App Group, data types, and save boundary are correct.
- [ ] Orders handle all save/existence outcomes.
- [ ] Revoked or obsolete financial data is removed.

## References

- [FinanceKit data queries and formatting](references/financekit-patterns.md)
- [FinanceKit sync manager and background lifecycle](references/financekit-sync-and-lifecycle.md)
- [FinanceKit documentation](https://sosumi.ai/documentation/financekit)
- [FinanceKitUI documentation](https://sosumi.ai/documentation/financekitui)
- [FinanceKit entitlement](https://sosumi.ai/documentation/bundleresources/entitlements/com.apple.developer.financekit)
- [Background delivery extension](https://sosumi.ai/documentation/financekit/implementing-a-background-delivery-extension)
- [FinanceKit eligibility](https://sosumi.ai/documentation/financekit)

Attribution

thiennc-tesoglobalthiennc-tesoglobal
View sourceMore from thiennc-tesoglobal →
SSkills DirectorySkills Directory

Ship a skill? Prove it's safe.

Free 120-pattern security scan, letter grade, and an embeddable README badge.

Submit a skill

Is this your skill, or is something wrong with this listing? Request removal or report an issue. Author removals are honored within 72 hours.

Comments (0)

No comments yet. Be the first to comment!

SSkills DirectorySkills Directory

Ship a skill? Prove it's safe.

Free 120-pattern security scan, letter grade, and an embeddable README badge.

Submit a skill

Related Skills

Browser Extension Developer

Use this skill when developing or maintaining browser extension code in the `browser/` directory, including Chrome/Firefox/Edge compatibility, content scripts, background scripts, or i18n updates.

284972 votes

Seo Optimizer

SEO optimization with keyword analysis, readability assessment, technical validation, content quality. Use for search rankings, blog posts, content audits, or encountering keyword density, readability scores, meta tags, schema markup errors.

2222 votes

Google Official Seo Guide

Official Google SEO guide covering search optimization, best practices, Search Console, crawling, indexing, and improving website search visibility based on official Google documentation

1862 votes

Tanstack Start

Build a full-stack TanStack Start app on Cloudflare Workers from scratch — SSR, file-based routing, server functions, D1+Drizzle, better-auth, Tailwind v4+shadcn/ui. Use whenever the user mentions TanStack Start, asks to scaffold a full-stack Cloudflare app with SSR, wants an SSR dashboard, or asks for a React 19 + Cloudflare Workers app with file-based routing and server functions — even if they don't name TanStack Start specifically. No template repo — Claude generates every file fresh per ...

10311 votes

Pentest

PTES-aligned adversarial security audit for backend, frontend, and mobile applications. Produces a CVSS-scored Hacker Report with verified PoCs and phased remediation.

5491 votes
View all in development →