skills/sales-checkoutpage/SKILL.md
Checkout Page platform help — no-code Stripe-based hosted checkout builder (checkoutpage.com) for digital products, subscriptions, payment plans, pay-what-you-want, and event tickets, with order bumps, 1-click upsells, cart-abandonment recovery, and form/lead capture; a REST API (api.checkoutpage.com/v1, Bearer auth, cursor pagination), conversion webhooks, and a native MCP server for AI assistants. Use when setting up a Checkout Page checkout or event-ticket page, syncing Checkout Page payments or subscriptions into a CRM or warehouse, verifying or backing up the unsigned conversion webhook, building a paid checkout via the Checkout Page MCP, choosing between the Launch and Grow plans or forecasting the sales-volume cap, or troubleshooting Stripe-only limits and owning your own tax (not a Merchant of Record). Do NOT use for checkout-conversion strategy across carts (use /sales-checkout) or picking a Merchant of Record for global tax (use /sales-merchant-of-record).
npx skillsauth add sales-skills/sales sales-checkoutpageInstall 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.
Checkout Page (checkoutpage.com) is a no-code, Stripe-based hosted checkout builder for creators and small teams: branded checkout pages for digital products, subscriptions, payment plans, pay-what-you-want, and event tickets, plus form/lead capture — with order bumps, 1-click upsells, and cart-abandonment recovery. 0% platform transaction fees, but it is not a Merchant of Record (runs on your Stripe account → you own tax). Its edge is that forms, checkout, events, and customers share one REST API + native MCP server.
If references/learnings.md exists, read it first for accumulated platform knowledge.
Ask only what you can't infer from the user's prompt:
conversion webhookSkip-ahead rule: if the user's prompt already has enough context, go straight to Step 2.
| If the user's question is about… | Route to |
|---|---|
| Which cart/checkout platform to pick, or checkout-conversion strategy across tools (bump/upsell design, cart abandonment) | /sales-checkout {question} |
| Digital-product pricing, validation, launch strategy | /sales-digital-products {question} |
| Choosing a Merchant of Record for global tax/VAT (Checkout Page is NOT one) | /sales-merchant-of-record {question} |
| Migrating active subscriptions between billing platforms without double-billing | /sales-subscription-billing {question} |
| Running an affiliate program (Checkout Page integrates Rewardful/Tolt) | /sales-affiliate-program {question} |
When routing, give the exact command: "This is a {domain} question — run: /sales-checkout {original question}"
Otherwise, answer Checkout Page-specific questions directly using Step 3.
Read references/platform-guide.md for the full reference — capabilities & automation
surface (what's API-, webhook-, MCP-accessible vs UI-only), pricing/plan gates and the
sales-volume cap, data model (decimal-string money, Stripe id cross-reference), and quick-start
recipes (webhook listener, nightly incremental pull, MCP event-checkout build).
For raw endpoint detail, auth, pagination, rate limits, verbatim conversion webhook payloads,
and MCP tool list, read references/checkoutpage-api-reference.md.
Answer using only the relevant section — don't dump the full reference.
object — payment, subscription, or submission — to route
each conversion type. The conversion payload has no documented HMAC signature or retry
policy — post to a tokenized/unguessable endpoint URL, re-fetch the object by id via the REST
API before provisioning access or moving money, dedupe on orderId, and keep a polling backup.
Re-check the live docs for a signing scheme before trusting deliveries."23.99" in the display
currency — unlike SamCart/Sellfy (cents). Read Stripe object ids (stripePaymentId,
stripeSubscriptionId, stripeCustomerId) straight from the payload to reconcile in Stripe./sales-merchant-of-record.claude mcp add --transport http checkoutpage https://mcp.checkoutpage.com then /mcp to authenticate — because forms + Stripe checkout share
one MCP (13 tools), an agent can build a paid event-registration page end-to-end from a prompt.429, back off and
resume from the last cursor (starting_after = last id); keep bulk pulls incremental.If you discover a gotcha or tip not in references/learnings.md, append it there with today's date.
Best-effort from research (2026-07) — review these, especially plan pricing/caps and the webhook-signature status, which may have changed.
"23.99"), not cents — don't divide by 100.trailStart is a vendor typo in the subscription payload (trial start); trialEnd is
spelled correctly. Read fields exactly as sent.GET /v1/checkout-pages) and action
(/v1/checkout-pages/list) path styles — confirm the exact spelling against live docs before coding./sales-checkout — Checkout-page strategy and cart-platform selection (Checkout Page vs ThriveCart vs SamCart vs Gumroad; bumps, upsells, cart abandonment)/sales-digital-products — Digital-product strategy: pricing, validation, launch/sales-merchant-of-record — Choosing a Merchant of Record for global tax (Checkout Page is not one)/sales-subscription-billing — Subscription billing engines and migrating active subscribers without double-billing/sales-samcart — SamCart platform help (the subscription-priced dedicated cart, feature-gated instead of volume-capped)/sales-thrivecart — ThriveCart platform help (the lifetime-license cart alternative)/sales-affiliate-program — Affiliate program strategy (Checkout Page integrates Rewardful/Tolt)/sales-do — Not sure which skill to use? The router matches any sales objective to the right skill. Install: npx skills add sales-skills/sales --skill sales-do -a claude-codeUser says: "How do I get every Checkout Page sale and subscription into HubSpot automatically?"
Skill does: Sets up a store-level webhook at a tokenized URL, branches on object
(payment/subscription/submission), ignores livemode:false in production, and — because the
payload is unsigned — re-fetches the customer/payment by id via GET /v1/customers/{id} before
upserting; parses amount as a decimal string, maps queryParameters UTMs for attribution, and
adds a nightly cursor-paginated GET /v1/payments reconciliation pull (per the platform-guide recipes).
Result: HubSpot stays in sync with verified data even if an unsigned webhook is missed or spoofed.
User says: "Can I make a ticketed workshop checkout with an attendee name and dietary field without clicking around?"
Skill does: Walks them through claude mcp add --transport http checkoutpage https://mcp.checkoutpage.com
/mcp OAuth, then prompts the agent to call create_checkout_page for the ticket, create_form
for the attendee fields, and create_coupon for a launch code — noting forms + Stripe checkout
share one MCP so the whole flow runs in chat.
Result: A live paid event page with custom fields, built end-to-end from a single prompt.User says: "I'm doing about $8K/mo in digital sales — is Checkout Page's Launch plan enough or do I need Grow?" Skill does: Flags that Launch caps around ~$3K/mo in sales while $8K/mo lands in a Grow volume tier, so the cap — not features (which are ~all shared) — forces the choice; notes 0% platform fees (Stripe's ~2.9%+30¢ still applies) and presents pricing as best-effort to verify at checkoutpage.com/pricing. Result: User picks Grow from their sales volume, not feature FOMO.
Symptom: Payloads look spoofable, occasionally missing, or contain test data in production.
Cause: No documented HMAC signature or retry policy; livemode:false events come from the
dashboard "Test payments" tool; there's no documented delivery log.
Solution: Put a secret token in the endpoint URL path, verify every payload by re-fetching the
object via the REST API, drop livemode:false in prod, return 200 fast, dedupe on orderId, and
reconcile nightly with a cursor-paginated GET /v1/payments pull.
Symptom: All requests fail with 401 even with a key.
Cause: Key not sent as a Bearer token, or generated for the wrong store/environment.
Solution: Send Authorization: Bearer YOUR_API_KEY over HTTPS with a key generated in the
dashboard for the correct store. For the MCP, authenticate via OAuth (/mcp) on a Stripe-connected account.
Symptom: Large payment/customer pulls start returning 429.
Cause: 500 req/min per store, 100 req/min per API key.
Solution: Back off on 429 (exponential, start ~1–2s) and resume from the last cursor
(starting_after = last object id); page at limit=100; keep pulls incremental rather than
re-reading history.
tools
Wizlogo (wizlogo.com) platform help — a budget online logo maker (template/style-variation, marketed as "AI") plus a hub of FREE branding tools (business-name, blog-name and slogan generators, business-card maker, invoice generator, color converter, domain search). The pricing traps: the FREE logo is PERSONAL-USE-ONLY; the two cheap paid tiers are RASTER PNG/JPG only — Single (~€39.99 one-time) and Unlimited (~€3.99 per WEEK, recurring) — and VECTOR (SVG/PDF/EPS) is gated to the ~€299.99 Enterprise tier, which also bundles human designer edits and a social kit. Transparent PNG is on all paid plans. Use when making a Wizlogo logo, understanding free-vs-paid or personal-vs-commercial use, which tier unlocks vector/SVG for print, the weekly-subscription billing trap, its free name/slogan generators, or whether it has an API (UI-only — no public API, webhooks, Zapier or MCP). Do NOT use to just generate the business name (use /sales-namelix) or to compare/validate branding tools (use /sales-idea-validation).
tools
VistaPrint platform help (vistaprint.com, a Cimpress company) — the small-business design + print + digital-marketing platform: a free AI Logomaker (4 generations, 60 more after free sign-up) exporting SVG/PNG/PDF at 4000x4000 with no watermark, a free Brand Kit, business cards/flyers/signage/apparel/promo print, and a website builder. THE RIGHTS TRAP: VistaPrint states NO intellectual-property rights transfer on an AI-generated logo — you get usage rights but CANNOT register it for trademark or copyright; only its human designer service transfers full IP. Use when making a VistaPrint logo, asking if you own or can trademark it, running out of AI logo credits, printed colors not matching the screen, bleed/DPI/font file-prep rejections, or asking whether VistaPrint has an API (the consumer site does not — automation runs through the parent Cimpress Open partner-fulfilment API). Do NOT use for Vista Social scheduling (use /sales-vistasocial) or comparing logo tools market-wide (use /sales-idea-validation).
tools
Turbologo (turbologo.com) platform help — a budget AI/DIY logo maker: enter a business name + industry, pick icons and colors, and it proposes logo concepts you refine in an in-browser editor, then pay a one-time fee to download (designing is free, previews are watermarked, downloading is the paywall). Vector SVG/PDF is gated to the mid tier and up; the top tier adds a brand kit (business cards, letterheads, email signatures, social assets). Use when generating a logo in Turbologo, choosing which download tier to buy, vector SVG vs raster PNG, removing the free watermark, the time-limited edit-after-purchase window, pay-to-download pricing questions, whether an AI logo is yours to trademark, or whether Turbologo has an API to bulk-generate logos (it is UI-only — no public API, webhooks, Zapier, or MCP). Do NOT use to generate the business name (use /sales-namelix), compare or validate branding tools across the market (use /sales-idea-validation), or build wider marketing creative (use /sales-canva).
tools
Online Logo Maker (onlinelogomaker.com) platform help — a long-standing free/freemium DIY logo maker: build the mark yourself from icons, shapes, text, and fonts — MANUAL/template-based, NOT enter-a-name-get-AI-concepts. The free pack downloads a LOW-RES 300px PNG with a background; vector SVG, transparent PNG, and 2000px high-res are gated to a one-time lifetime Premium pack (not a subscription). The free tier's commercial-use rights are disputed by reviewers — clean ownership effectively needs Premium, and a shared-icon mark can be non-distinctive. Use for building/editing a logo here, free download vs Premium, vector SVG or transparent PNG, one-time pricing, commercial-use/trademark terms, near-namesake confusion (NOT LogoMaker.com / LogoMakr / Logomakerr.ai), or whether it has an API (UI-only — no API, webhooks, Zapier, MCP). Do NOT use to generate the business name (use /sales-namelix), compare branding tools across the market (use /sales-idea-validation), or build wider creative (use /sales-canva).