Dodo Payments Skills
August 8, 2026 · View on GitHub
Official AI agent skills from Dodo Payments for integrating payments, subscriptions, billing, and more into your applications.
Installation
Skills CLI (Any Agent)
Install skills using the skills CLI:
npx skills add dodopayments/skills
Or install individual skills:
npx skills add dodopayments/skills/dodo-payments/dodo-best-practices
npx skills add dodopayments/skills/dodo-payments/webhook-integration
npx skills add dodopayments/skills/dodo-payments/subscription-integration
Claude Code
Add the marketplace:
/plugin marketplace add dodopayments/skills
Install a plugin:
/plugin install dodo-best-practices
/plugin install webhook-integration
/plugin install subscription-integration
OpenCode
Skills are automatically available when configured in your OpenCode settings.
Available Skills
Getting started
| Skill | Description |
|---|---|
| dodo-best-practices | Orientation guide: SDKs, environments, auth, core concepts, and the canonical integration path |
| framework-adapters | Official adapter packages for Next.js, Express, Hono, Astro, Remix, SvelteKit, Nuxt, Fastify, TanStack, Bun, and Convex |
| testing-and-go-live | Test mode, test payment methods, webhook testing, and the production launch checklist |
Accepting payments
| Skill | Description |
|---|---|
| checkout-integration | Creating checkout sessions, payment links, and overlay checkout |
| subscription-integration | Subscription lifecycle, trials, plan changes, proration, and on-demand charging |
| mobile-checkout | In-app checkout for React Native, Flutter, iOS, and Android |
| webhook-integration | Receiving and verifying webhooks with the Standard Webhooks specification |
Billing models
| Skill | Description |
|---|---|
| credit-based-billing | Credit entitlements, balances, ledger, rollover, overage, and meter-based deduction |
| usage-based-billing | Metered billing with meters, event ingestion, and per-unit pricing |
| license-keys | License key activation, validation, and instance management |
Catalog and pricing
| Skill | Description |
|---|---|
| product-catalog-management | Products, pricing, add-ons, collections, images, and digital product delivery |
| discounts-and-promotions | Discount codes, eligibility rules, stacking, and subscription-cycle limits |
| localized-pricing | Localized pricing, adaptive currency, and purchasing power parity |
Customers and operations
| Skill | Description |
|---|---|
| customer-management | Customers, the self-service portal, payment methods, and wallets |
| refunds-and-disputes | Issuing refunds, handling disputes and chargebacks, reconciling access |
UI and integrations
| Skill | Description |
|---|---|
| billing-sdk | BillingSDK React components for pricing tables and billing UI |
| better-auth-integration | The @dodopayments/better-auth plugin for customer sync, checkout, and portal |
What are Skills?
Skills are reusable capabilities for AI agents. They provide procedural knowledge that helps agents accomplish specific tasks more effectively. Think of them as plugins that enhance what your AI agent can do when working with Dodo Payments.
Contributing
Skills are pasted verbatim into an agent's context and reproduced as-is, so a wrong field name propagates exactly as reliably as correct code — and usually fails silently rather than loudly. Four checks run in CI and should be run locally before opening a PR:
npm install
npm run check # validate + typecheck (TypeScript, Go, Python)
npm run validate enforces structural rules: real API hostnames, correct dodo_test_/dodo_live_ key
formats, no hand-rolled webhook HMAC, no deprecated SDK calls, no type suppression, and agreement between
each skill's directory name, its frontmatter, marketplace.json, and the README table.
npm run typecheck extracts every TypeScript block from every SKILL.md and compiles it against the
real dodopayments types — plus the @dodopayments/* framework adapters, so adapter examples are checked
rather than degrading to any. This is what catches wrong field and parameter names.
npm run typecheck:go and npm run typecheck:python do the same for Go and Python examples, using
go build against dodopayments-go and pyright against the real Python SDK. The Python check creates a
virtualenv on first run and reuses it afterwards.
Blocks that are deliberate counter-examples are skipped, but only when explicitly labelled — a bolded
**Wrong:**-style marker, or an <!-- typecheck: skip --> comment. Inferring "this is meant to be broken"
from surrounding prose silently removed coverage from correct blocks, so opting out is now deliberate and
greppable.
When you add or change an example, prefer fixing the field name over casting to any — the point of the
check is that the published example actually compiles.
Resources
License
MIT