Payments logo

Payments

Community
whawkinsiv
payments

Use this skill to take money: 'set up Stripe,' 'add subscriptions,' 'payment link,' 'billing,' 'customer portal,' 'webhooks,' 'failed payments,' 'sales tax or VAT,' or 'refunds.' Starts with a payment link or invoice for the first customers, then sets up Stripe Checkout, the customer portal, and webhooks that grant access, with test and go-live checklists. Not for deciding what to charge (use pricing).

Overview

Publisherwhawkinsiv
Repositorysolo-founder-skills
Skill namepayments
Stars
260
Forks
44
Bundled files
Instructions only
LicenseMIT
Links
  • Markdown instructions

    A SKILL.md file the model loads on demand, so it only costs tokens when a request actually matches.

  • Works with any LLM

    AI skills are plain Markdown, not provider-specific code, so this works with GPT, Claude, Gemini, Grok, or a local model.

  • Self-contained

    Everything the model needs lives in the instructions — no extra files to sync.

  • Open source

    Published by whawkinsiv on GitHub. Read the source before you install it.

Installation

Install the Payments AI skill in TypingMind to use it with any LLM, or drop it into another agent that reads SKILL.md.

1

Install in TypingMind

TypingMind installs a skill straight from its GitHub folder — it reads SKILL.md, bundles the resource files, and stores the result locally.

  1. Open the app and go to Plugins → Skills.
  2. Choose "Install from GitHub".
  3. Paste the skill folder URL below and confirm.
    https://github.com/whawkinsiv/solo-founder-skills/tree/main/skills/payments
  4. Enable the skill in any chat where you want it available.
Plugins → Skills → Add skill → From GitHub URL, then paste the folder URL and press Continue.
2

Install in another agent

Any agent that reads the Agent Skills format can use this skill — copy the folder into that agent's skills directory.

Claude Code — .claude/skills
git clone --depth 1 https://github.com/whawkinsiv/solo-founder-skills.git /tmp/solo-founder-skills
mkdir -p .claude/skills
cp -r /tmp/solo-founder-skills/skills/payments .claude/skills/payments
Restart Claude Code after copying so it picks up the new skill.

Use it in TypingMind

Enable Payments in any TypingMind chat and the model takes it from there. Its name and description sit in the system prompt, and the moment a request matches, the model loads the full instructions itself — you never invoke it by hand, and it costs no tokens until it is actually used.

The model loads Payments on its own as soon as a request matches it.

Works with any AI model

AI skills are plain Markdown instructions rather than provider-specific code, so Payments is not tied to the model it was written for. Install it once in TypingMind and use it with GPT-5, Claude, Gemini, Grok, DeepSeek, Mistral, Llama, or a local model you run yourself — all on your own API keys.

  • Loaded only when it is needed

    The system prompt carries just the name and description. The instructions are fetched on the first matching request, so an idle skill costs nothing.

  • Switch models mid-chat

    Because the skill is instructions rather than code, changing model does not break it — the next model reads the same SKILL.md.

Skill instructions

This is the SKILL.md content the model loads. Read it before installing — a skill is instructions your model will follow.

Payments

Take money with the least code that works. Stripe is the default for a solo founder: hosted checkout, a hosted billing portal, and good test tools.

Stage 1: The first customers

Use a Stripe Payment Link or an invoice. No billing code. The founder grants access by hand after each payment. This works for the first 10 customers and often longer. Build billing in the app when granting access by hand starts taking real time.

Stage 2: Billing in the app

  1. Create products and prices in the Stripe Dashboard, not in code. Reference them by price ID or lookup key.
  2. Use Stripe Checkout (the hosted payment page). Do not build a card form.
  3. Use the Customer Portal for card updates, plan changes, cancellations, and invoices. Do not build a billing page. Set cancellation to happen at the end of the billing period, and turn on the cancellation-reason question.
  4. Store each customer's subscription status in the database, updated only from webhooks.
  5. Set trials when you create the Checkout session or the subscription.

Webhooks

Grant access from the verified webhook, never from the redirect page. The redirect can fail, and anyone can load it. Handle at least:

EventDo
checkout.session.completedActivate the subscription and grant access
customer.subscription.updatedUpdate the plan and status
customer.subscription.deletedRemove paid access
invoice.payment_failedShow an "update your card" banner

Every webhook endpoint:

  • verifies the signature before acting
  • returns a success response quickly, and does slow work afterwards
  • handles duplicate events safely: store the event ID and skip repeats
  • logs the event type and ID, so failures can be traced

Subscription states

StatusThe app should
activeGive paid access
active, set to cancel at period endKeep access until the period ends
past_dueKeep access for now, and show the update-card banner
canceled or unpaidRemove paid access. Keep the data.

Failed payments

Turn on Stripe's automatic retries and its emails about failed payments and expiring cards. Show the banner in the app. Failed cards cause a large share of churn, and most of it is recoverable.

Tax

Decide before the first sale in a new country or state:

  • Stripe Tax calculates and collects tax. Registering and filing are still the founder's job.
  • A merchant of record (such as Paddle or Lemon Squeezy) sells on the founder's behalf and handles registration and filing, for higher fees.

When registration is required depends on the place and on sales volume. Check the current rules for where customers are, and ask an accountant once revenue starts.

Test before going live

In test mode:

  • A successful purchase (card 4242 4242 4242 4242)
  • A declined card (4000 0000 0000 0002)
  • A card that needs authentication (4000 0025 0000 3155)
  • Cancel, upgrade, and downgrade
  • Each webhook arrives and updates the database (check the webhook logs in Stripe)

Going live:

  • Live keys in production's environment variables
  • A live webhook endpoint with its own signing secret
  • One real purchase with your own card, then a refund

Rules

  • Prices live in Stripe, not in code. Changing a price should not need a deploy.
  • Never store card numbers. Checkout keeps card data off your server.
  • Check current fees on Stripe's pricing page. Fees change, so do not rely on numbers in old notes.

Output

The working payment flow for the founder's stage, the completed test checklist, and a note on the tax decision.

Frequently asked questions

What does the Payments AI skill do?

Use this skill to take money: 'set up Stripe,' 'add subscriptions,' 'payment link,' 'billing,' 'customer portal,' 'webhooks,' 'failed payments,' 'sales tax or VAT,' or 'refunds.' Starts with a payment link or invoice for the first customers, then sets up Stripe Checkout, the customer portal, and webhooks that grant access, with test and go-live checklists. Not for deciding what to charge (use pricing).

Why use Payments on TypingMind?

Because you install it once and use it with any model. Payments is plain Markdown rather than provider-specific code, so the same skill runs on GPT-5, Claude, Gemini, Grok, or a local model — and you can switch model mid-chat without it breaking. TypingMind runs on your own API keys, so you pay providers directly instead of a per-seat subscription, and your skills and chats stay in your own storage.

How do I install Payments in TypingMind?

Open Plugins → Skills → Install from GitHub in TypingMind and paste https://github.com/whawkinsiv/solo-founder-skills/tree/main/skills/payments. TypingMind reads its SKILL.md and installs it as a skill you can enable per chat.

Which AI models can use Payments?

Any model you connect in TypingMind. AI skills are plain Markdown instructions rather than provider-specific code, so GPT, Claude, Gemini, Grok, and local models can all load this skill when a request matches it.

How many AI models can I use with Payments?

As many as you like. As long as a model supports skills, you can use Payments with it — GPT, Claude, Gemini, Grok, DeepSeek, Mistral, Llama and more — all on TypingMind with your own API keys.

Is the Payments AI skill free?

Yes. It is published on GitHub by whawkinsiv under the MIT license. You only pay your own AI provider for the tokens you use.

What are AI skills?

An AI skill is a reusable instruction bundle that teaches an AI model how to do one specific task. It follows the open Agent Skills format: a SKILL.md file with a name and description, plus any scripts, templates or reference files the model may need. The model reads the instructions only when your request matches the skill, so an installed skill costs nothing until it is used.

How are AI skills different from plugins or MCP servers?

A plugin or MCP server gives a model new tools to call — code that runs somewhere and returns a result. An AI skill gives the model knowledge and process instead: how to approach a task, which steps to follow, what good output looks like. Skills are plain Markdown, so they need no server, no API key and no runtime, and they work with any model.

View all

Set up your own AI workspace now

Get notified about new features and future giveaways by subscribing to our newsletter 👇