dist/codex/shopify-commerce/skills/shopify-payments/SKILL.md
Integrate Shopify payments — Shopify Payments (Stripe-powered), Payment Apps API, payment session flow, Billing API for app charges, refund processing, and PCI compliance. Use when working with Shopify payment processing.
npx skillsauth add orcaqubits/agentic-commerce-claude-plugins shopify-paymentsInstall this skill globally with one command. Works with Claude Code, Cursor, and Windsurf.
3 of 9 scanners reported clean
Some scanners were skipped, did not run, or reported a non-clean status. Review each row below.
Fetch live docs:
site:shopify.dev payments apps api for Payment Apps APIsite:shopify.dev billing api app charges for app billingsite:shopify.dev shopify payments for Shopify Payments overviewsite:shopify.dev payment session resolve reject for payment session flowsite:shopify.dev app subscription create usage record for billing mutationsShopify's built-in payment processor (powered by Stripe):
Customer → Checkout → Payment Method Selection → Authorization → Capture
| Method | Details | |--------|---------| | Credit/Debit cards | Visa, Mastercard, Amex, Discover | | Shop Pay | Shopify's accelerated checkout | | Apple Pay | On supported devices/browsers | | Google Pay | On supported devices/browsers | | Local methods | Varies by country (iDEAL, Bancontact, etc.) |
Fetch live docs for supported payment methods by country — availability varies by region and changes over time.
For building custom payment gateways as Shopify apps:
1. Customer selects your payment method at checkout
2. Shopify creates payment session → calls your app's payment endpoint
3. Your app processes payment with your gateway
4. Return: RESOLVE (success) or REJECT (failure)
5. Optional: REDIRECT for additional auth (3D Secure, bank redirect)
6. Optional: CONFIRM for pending/async payments
| Operation | Mutation | When |
|-----------|----------|------|
| Approve payment | paymentSessionResolve | Payment succeeded |
| Decline payment | paymentSessionReject | Payment failed |
| Redirect customer | paymentSessionRedirect | 3D Secure, bank auth |
| Confirm payment | paymentSessionConfirm | Async/pending payment settled |
| Approve refund | refundSessionResolve | Refund succeeded |
| Decline refund | refundSessionReject | Refund failed |
| Approve capture | captureSessionResolve | Manual capture succeeded |
| Decline capture | captureSessionReject | Manual capture failed |
| Approve void | voidSessionResolve | Void succeeded |
| Decline void | voidSessionReject | Void failed |
Fetch live docs for each session mutation's input fields and the
PaymentSessionActionsRedactwebhook — the API surface for payment apps is complex and version-sensitive.
payments_app_configure GraphQL mutationsFetch live docs: Web-search
site:shopify.dev build payment extensionfor current extension configuration, required endpoints, and testing procedures.
For charging merchants for your app:
| Type | Mutation | Use Case |
|------|----------|----------|
| Recurring | appSubscriptionCreate | Monthly/annual subscription |
| One-time | appPurchaseOneTimeCreate | One-time feature purchase |
| Usage-based | appUsageRecordCreate | Metered billing (per-action, per-order) |
appSubscriptionCreate → returns confirmationUrlconfirmationUrlappSubscriptionCreateappUsageRecordCreateFetch live docs for
AppSubscriptionInputandAppUsageRecordInputfields — pricing models, trial days, currency options, and line item structures change across API versions.
refundCreate mutation (on orders)refundSessionResolve/refundSessionRejectShopify handles PCI compliance for:
Your app must:
refundSessionResolveFetch the Shopify Payment Apps API and Billing API documentation for exact session flow, mutation inputs, testing procedures, and webhook requirements before implementing.
development
Build with Spree's headless Next.js storefront — the official `spree/storefront` repo (Next.js 16 App Router with Server Actions and Turbopack, React 19 Server Components, Tailwind CSS 4, TypeScript 5, `@spree/sdk`, Sentry), server-only auth (httpOnly JWT cookies + publishable key), MeiliSearch faceted catalog, one-page checkout with Apple/Google Pay/Klarna/Affirm/SEPA, multi-region market routing, GA4 + JSON-LD SEO, and Vercel/Docker deployment. Use when forking or customizing the storefront, or evaluating headless adoption.
tools
Build Spree extensions as Rails engines — gem scaffolding, `bin/rails g spree:extension`, mounting routes/migrations/assets, the modern `prepend` decorator pattern (`*_decorator.rb` with `self.prepended(base)`), generators (`spree:model_decorator`, `spree:controller_decorator`), the four customization surfaces in preference order (Events > Webhooks > Dependencies > Decorators), Spree::Dependencies for swapping service objects, gem release/versioning, and the deprecated Deface engine. Use when building a reusable Spree extension or adding non-trivial customization to an app.
development
Build with Spree's event bus and Webhooks 2.0 — `Spree::Events` publication, `Spree::Subscriber` DSL with `subscribes_to` and `on`, wildcard matching, lifecycle events (`{model}.created/.updated/.deleted` via `publishes_lifecycle_events`), the canonical event catalog (order.*, payment.*, shipment.*, product.*), Webhooks 2.0 endpoints, HMAC-SHA256 signing (`X-Spree-Webhook-Signature`), exponential-backoff retries, and Sidekiq job orchestration. Use when wiring event-driven business logic, building webhook consumers, or replacing ActiveSupport callback chains.
tools
Cross-cutting Spree development patterns — the customization preference hierarchy (Events > Webhooks > Dependencies > Decorators), `Spree::Dependencies` service-object swapping, the `_decorator.rb` + `prepend` + `self.prepended` idiom, idempotent subscribers and webhook receivers, multi-store scoping discipline, prefixed IDs, calculator polymorphism (shipping/promotion/tax share the base), service-object composition with `dry-monads` or simple results, why to avoid `class_eval` reopening and Deface, and Spree-on-Rails idioms (Hotwire/Turbo Stimulus, ActiveStorage, Action Cable, Sidekiq). Use when designing the architecture of a Spree extension or solving cross-cutting concerns.