stripe-apps

Builds, scaffolds, and publishes Stripe Apps with UI extensions, backends, and webhooks.

2|Updated Aug 12, 2026
One-click install
npx skills add https://github.com/prianshumitra/Rentify --skill stripe-apps-prianshumitra
Or copy as Structured Prompt for Agent▼
Please help me install this Agent Skill.
Skill: stripe-apps
Source: https://github.com/prianshumitra/Rentify/tree/main/backend/.agents/skills/stripe-apps
Command: npx skills add https://github.com/prianshumitra/Rentify --skill stripe-apps-prianshumitra

SYSTEM DOCUMENTATION & REQUIREMENTS

💡 This Skill includes references (resource) components.

What problem does it solve? Building a Stripe App requires navigating a complex workflow — scaffolding with the Stripe CLI, configuring the stripe-app.yaml manifest, choosing authentication types, wiring webhooks, and respecting sandboxed iframe constraints — and mistakes in any step produce broken apps. This Skill guides the entire lifecycle with enforced rules, discovery questions, and canonical documentation lookups. ## Core Features & Use Cases - Guided Discovery & Architecture Routing: Asks structured questions to determine whether you need a UI extension, backend-only app, full-stack app, or extension interface, then maps answers to viewports and auth types. - End-to-End Build Workflow: Scaffolds projects with stripe generate app, writes complete runnable files (App.tsx, server.js, stripe-app.yaml), and enforces the build, test, preview, and upload sequence. - Platform Constraint Enforcement: Blocks common failure patterns such as raw HTML in UI extensions, React 18 APIs, CSS frameworks, and the deprecated stripe apps create command. - Use Case: A developer wants to show customer loyalty points next to each customer in the Stripe Dashboard and sync updates via webhooks — the Skill interviews them, scaffolds the app, writes the UI extension and backend, and walks them through upload and installation. ## Quick Start Ask the assistant to build a Stripe App that shows a panel on the customer detail page in the Stripe Dashboard.

Frequently Asked Questions about stripe-apps

High-intent search queries and answers about installing and using this skill.

FAQPage Schema
How do I build a Stripe App with a Dashboard UI extension?▼

Scaffold the project with `stripe generate app <name>`, then modify the generated stripe-app.yaml and ui/src/views/App.tsx. UI extensions must use only components from @stripe/ui-extension-sdk/ui — no raw HTML, CSS frameworks, or React 18 APIs, since the sandbox runs React 17.0.2.

What is the difference between platform keys, OAuth, and restricted API keys for Stripe Apps?▼

Restricted API keys are the recommended default: Stripe generates a scoped key at install with only your declared permissions. Platform keys use the Stripe-Account header to act across many merchants, suiting public marketplace apps. OAuth is only needed when the merchant must be merchant-of-record.

Can I use Tailwind or standard HTML elements in a Stripe App UI extension?▼

No. UI extensions run in a sandboxed iframe where raw HTML tags, CSS files, Tailwind, MUI, and styled-components are blocked. You must compose layouts exclusively with SDK components like Box, Button, and TextField using the css prop with design tokens.

Why does fetchStripeSignature fail during local development?▼

The signing secret (starting with absec_) is only generated on the first `stripe apps upload`. You must upload a version of your app before fetchStripeSignature or the Secret Store API will work, even when previewing locally with `stripe apps start`.

How do I set up webhooks for a public Stripe App?▼

Public apps using platform keys configure one webhook endpoint with 'Listen to events on Connected accounts' enabled, and identify merchants via event.account. Apps using restricted API keys cannot use Connect webhook fanout, so each merchant manages their own webhooks. The event_read permission must be declared in the manifest.

Why does my Stripe App upload fail with an invalid manifest error?▼

Invalid manifest errors come from missing required fields or malformed YAML in stripe-app.yaml. Check indentation and ensure id, version, and name are present, and include `extensions: []` even if your app has no backend extensions.