All skills
stripe avatar

/stripe-apps

@d547667 official
by stripestripe/ai1.9k stars
349

Use when building, modifying, or reviewing a Stripe App — or when the user describes something that implies one (e.g. "add a panel to the customer page", "customize my Stripe Dashboard", "react to Stripe events from my app", "connect my service to Stripe without sharing API keys"). Covers the full app development workflow (scaffold, preview, upload, versioning), UI extension architecture (sandboxed iframe, Stripe UI toolkit, viewports), extension types (UI extensions, backend-only, extension interfaces, embedded apps), authentication (platform keys, OAuth, restricted API keys), stripe-app.yaml manifest setup (permissions, viewports, CSP), webhook configuration for apps, Secret Store API, `fetchStripeSignature` auth, and marketplace publishing, plus submitting one agentic feedback report after a build. Use when the user mentions Stripe Apps, UI extensions, @stripe/ui-extension-sdk, @stripe/extensibility-sdk, script extensions, stripe-app.yaml, Dashboard extensions, or customizing the Stripe Dashboard.

Use this Skill: https://skilld.dev/gh/stripe/ai/stripe-apps

This session only. Nothing lands on disk.

referencesextension-types.md

≈1.3k tokens on demand. Your agent reads this file only when SKILL.md points to it.

Extension types

Extension types

Stripe Apps supports five extension types. Use the discovery interview in discovery.md to determine which one the user needs.

1. UI extension — “show something in the Dashboard”

Renders custom UI inside the Stripe Dashboard using the Stripe UI toolkit. Runs in a sandboxed iframe.

Plain-language examples:

  • “Show a customer’s loyalty points next to their Stripe profile”
  • “Add a button to send a custom invoice email”
  • “Build a full-screen analytics dashboard inside Stripe”
  • “Show a customer’s order history from my store next to their Stripe data”

What you can build:

  • Page-specific panels (next to a customer, payment, invoice, subscription, or product)
  • A side panel that appears everywhere in the Dashboard
  • A full-screen page inside the Dashboard
  • A setup/onboarding screen when users first install the app
  • An app settings page

Key constraints:

  • React 17 only (not 18+)
  • Only @stripe/ui-extension-sdk/ui components — no Tailwind, HTML, or third-party UI libraries
  • Can’t access window, document, or localStorage
  • Must use the SDK’s Stripe API client (see canonical docs for initialization pattern)

Read: ui-extensions.md, workflow.md

2. Backend-only app — “react to events, no Dashboard UI”

Runs on the developer’s server. Receives Stripe webhooks and calls the Stripe API. No Dashboard UI.

Plain-language examples:

  • “Email a download link after a payment”
  • “Sync purchases to a Google Sheet”
  • “Create an order in my fulfillment system when a payment succeeds”
  • “Notify my team on Slack when a new subscription starts”

How it works:

  • Your server receives Stripe events (webhooks)
  • Your server calls the Stripe API using platform keys (no manual key-sharing with merchants)
  • No UI — all logic runs server-side

Read: authentication.md, webhooks.md, backend.md, workflow.md

3. Full-stack app — “Dashboard UI + backend server”

Combines a UI extension with a backend server. The UI can show data from external services and trigger server-side actions.

Plain-language examples:

  • “Show my customer’s loyalty points in Stripe AND update them when they make a purchase”
  • “Let merchants configure their email templates from the Dashboard, then send emails from my server”
  • “Show real-time shipping status next to each payment”

How it works:

  • UI extension in the Dashboard for user interaction
  • Backend server for data storage, third-party API calls, and webhook processing
  • UI authenticates to the backend using fetchStripeSignature

Read: all reference files

4. Extension interfaces — “plug into the Stripe billing or payments engine”

Lets your app change how Stripe processes billing or payments. Available types:

Billing extensions:

  • Custom discount calculation
  • Custom proration calculation
  • Custom customer balance handling
  • Custom recurring billing item handling

Payments orchestration:

  • Custom payment routing

Availability: Read the extension-point catalog and the selected interface’s product documentation. Use its current applicability, supported implementation types, and account access requirements. Don’t assume all interfaces are in private preview. Ask for access confirmation only if that interface requires it and access hasn’t already been established.

5. Embedded apps — “embed a third-party Stripe App inside your platform” (private preview)

For Connect platforms that want to surface third-party Stripe Apps (like QuickBooks, Xero, or Mailchimp) directly inside their own product.

This is different from building an app. Embedded apps are for platforms that want to host existing apps, not for building new ones.

Private preview: If the user asks for this, point them to https://docs.stripe.com/stripe-apps/embedded-apps.

Full viewport routing table

For UI extensions — maps plain-language descriptions to viewport IDs:

What the user wants Viewport ID
Next to a specific customer stripe.dashboard.customer.detail
On the customers list page stripe.dashboard.customer.list
Next to a specific payment stripe.dashboard.payment.detail
On the payments list page stripe.dashboard.payment.list
Next to a specific invoice stripe.dashboard.invoice.detail
On the invoices list page stripe.dashboard.invoice.list
Next to a specific subscription stripe.dashboard.subscription.detail
On the subscriptions list page stripe.dashboard.subscription.list
Next to a specific product stripe.dashboard.product.detail
On the products list page stripe.dashboard.product.list
Everywhere in the Dashboard (side panel) stripe.dashboard.drawer.default
As its own full-screen page Full-page app — stripe.dashboard.fullpage
On the Dashboard homepage stripe.dashboard.home.overview
App settings page settings
First-run setup after install onboarding

For the full viewport reference, see https://docs.stripe.com/stripe-apps/reference/viewports.

Source: SKILL.md on GitHub

No alerts1d3 checks · Risk SAFE
  • Gen Agent Trust Hub1d

    This skill is a first-party developer tool for building Stripe Apps, using official Stripe CLI commands and documentation to guide the development process.

  • Socket1d

    No alerts

  • Snyk1d

    Risk: LOW · No issues

Signed by skilld at d547667. This ties the file your Agent reads to that commit on GitHub. It does not review the instructions.

Last checked against GitHub yesterday.

Activeupdated last week

README badge

README badge for stripe/ai/stripe-apps