vertical-fintech-mobile

Featured

Domain-knowledge pack for money on a phone — wallets, payments, custody and signing, transaction lifecycle, KYC/AML gates, and offline reconciliation. The rules that separate a payments app from a CRUD app with a currency symbol: a balance is a claim about a server, an idempotency key must outlive the process that made it, keys never enter JavaScript memory, and a device clock may not order financial events. Applied by architect/pm/design-advisor when specing a mobile product that moves money, and by mobile-app-builder while implementing it.

Code & Development 95 stars 13 forks Updated today MIT

Install

View on GitHub

Quality Score: 88/100

Stars 20%
66
Recency 20%
100
Frontmatter 20%
70
Documentation 15%
100
Issue Health 10%
50
License 10%
100
Description 5%
100

Skill Content

# Money on a phone — spec it like the network will fail mid-transfer A field app that loses a photo is annoying. A money app that loses — or duplicates — a transfer is a loss, a support case, and sometimes a regulator. Everything in the generic mobile contract still applies (offline queue, idempotency, permissions); this pack is the part that is different **because it is money**, and it is the part community skill sets do not carry, because it is domain knowledge rather than framework knowledge. The through-line: **the phone is not the ledger.** It is a client with an opinion, and every screen must be honest about how strong that opinion is. ## 1. A balance has three states, never two `confirmed` · `pending` · `unknown`. A number rendered without which of the three it is, is a lie the user will act on. - **confirmed** — the server said so, and the app has heard from the server recently enough to say when. - **pending** — the app has applied its own optimistic change on top. It is a *display*, not a fact, and it is labelled. - **unknown** — the app has not reached the server. This is NOT the last confirmed number rendered as though it were current. A stale balance shown as live is the defect this whole pack exists to prevent. Every balance carries **as of when**. "£1,240.55" is not an answer; "£1,240.55, as of 14:02" is. ## 2. The idempotency key must outlive the process The generic rule is "client-generated id so a re-sync never duplicates". For money that is ...

Details

Author
avelikiy
Repository
avelikiy/great_cto
Created
5 months ago
Last Updated
today
Language
JavaScript
License
MIT

Bundled in these plugins

Similar Skills

Semantically similar based on skill content — not just same category

Code & Development Listed

payments-and-money

Use when code handles money amounts, prices, currencies, payments, refunds, payouts, billing, wallets, ledgers, payment provider webhooks or card data

0 Updated today
rkaliev
AI & Automation Listed

payments

Integrate payments and billing correctly — card charges, payment intents, webhooks, idempotent money movement, subscriptions/invoicing, refunds/chargebacks, multi-currency, and reconciliation against a ledger. Use when wiring Stripe/Adyen/Braintree/PayPal, handling a payment webhook, designing a subscription or usage-based billing model, making a charge safe to retry, preventing double-charges, or reconciling provider events against an internal money ledger. Boundary vs api-design and security-web — api-design owns the protocol-neutral HTTP contract shape (idempotency-key mechanics, RFC 9457 errors, pagination) and security-web owns generic OWASP server hardening (authn/z, injection, secrets); this skill owns the money-correctness domain on top of both — never trusting client-sent amounts, PCI scope minimization via tokenization, the webhook-as-source-of-truth state machine, and double-entry reconciliation. Defers durable ledger schema design to db-design.

6 Updated 5 days ago
kouroshez
DevOps & Infrastructure Listed

padosoft-payments-reconciliation

Use this skill when money moves: a checkout or capture, a refund, a chargeback, a payout, a subscription renewal, a promotion or loyalty redemption, a usage or token bill. Also when the user reports that totals do not add up, that a customer was charged twice, that a refund exceeded the payment, that a payout cannot be tied to orders, that a promotion went over its cap, or that a payment request timed out and nobody knows whether it went through. It checks the state machine, the arithmetic that has to close, and the boundary between what the provider owns and what you own. Do not use it to integrate a specific provider's SDK, for PCI scope decisions, or for pricing and tax strategy.

1 Updated 5 days ago
padosoft