🧪 STAGING — test environment · Stripe test mode · data may be reset · real cards will not work
Skip to content
← Back to the merchant guide For agents & the developers wiring them up

Operate GoCushy with your AI

GoCushy is the sales machinery an AI plugs into. Connect it once and any MCP-capable assistant can create products, compose offers, customise checkouts, read sales, and issue refunds — all on the merchant's own Stripe, all in plain English. This page is the operator's manual: the mental model, the golden path, the guardrails, and every tool. Prefer the plain-English merchant guide? See the merchant docs. Want the full REST surface and webhook signatures? See the developer docs.

WORKSPACE GUIDE · REVIEWED 13 SEPTEMBER 2026

An optional way to operate the same business

The web workspace works without an AI client. Connect a client only when you want it to act through the account’s permitted API operations. Start with the account and payment status, use a draft while preparing the offer, and review the result with the merchant before publishing or taking consequential actions.

An optional way to operate the same business: The web workspace works without an AI client. Connect a client only when you want it to act through the account’s permitted API operations. Start with the account and payment status, use a draft while preparing the offer, and review the result with the merchant before publishing or taking consequential actions.
Workflow illustration for the redesigned workspace. Availability follows your account’s permissions and enabled features.

Start with the setup guide · Open your workspace

01 — Overview

What GoCushy is

GoCushy is an MCP-native checkout and funnel that an AI operates on the merchant's own Stripe account. Payments run as Stripe Connect direct charges: the money lands in the merchant's Stripe, the buyers are the merchant's customers, and GoCushy never holds funds and is never the merchant of record. Payouts run on the merchant's normal Stripe schedule, to their bank.

Stripe's MCP gives your agent a payment link. GoCushy gives it a funnel — hosted checkout, order bumps, one-click upsells, subscriptions, and delivery, all settling on the merchant's own Stripe.

You (the agent) do the wiring: create the products, compose the offers, write the checkout copy, and hand back a live link. The one thing you cannot do is Stripe's identity verification — that returns a URL for the human to complete, and it must be completed by the account owner. Review and approval still belong to the merchant.

02 — Setup

Connect it

Three ways in, one credential. Every connection is authenticated with the merchant's API key — it starts with gc_ and comes from the dashboard under Settings → API keys. Treat it like a password: anyone (human or agent) holding it can create offers, read sales, and issue refunds.

Three ways to connect, one key, one accountA Claude Desktop config file, a ChatGPT connector URL and a curl call all carry the same gc_ key into the same GoCushy surface — the identical 57 operations and the identical server-side rules — which acts only on the account that key belongs to, settling on that merchant's own Stripe. Three ways to connect — one key, one account A config file, a connector URL, a curl call. Each carries the same gc_ key into the same 57 operations. 1 · A CONFIG FILE — CLAUDE DESKTOP, CURSOR claude_desktop_config.json or .cursor/mcp.json "gocushy": { "command": "npx", "args": ["-y", "@gocushy/mcp"], "env": { "GOCUSHY_API_KEY": "gc_live_7Kd8…q2" } 2 · A CONNECTOR URL — CHATGPT, HOSTED AGENTS MCP server URL https://mcp.gocushy.com/mcp/gc_live_7Kd8…q2 Authentication: “No authentication” — the key is the auth. 3 · A CURL CALL — ANYTHING ELSE curl https://api.gocushy.com/api/v1/me \ -H "Authorization: Bearer gc_live_7Kd8…q2" ONE gc_ KEY ONE SURFACE GoCushy api.gocushy.com/api/v1 57 operations the same, whichever door Same tools, same guardrails. MCP wraps the REST API — the identical server-side rules. acts only here ONE ACCOUNT — THE ONE THE KEY BELONGS TO Fernwood & Co. The Joinery Course $49 · Measured Drawings Pack $19 "stripe_connected": true settles on their own Stripe Three doors into one surface, not three products. The key decides the account, every time. Anyone holding the key can create offers, read sales and issue refunds. It comes from Settings → API keys; treat it like a password.
The three ways in are three doors into one surface, not three different products: a config file, a connector URL, and a curl call. The config file is claude_desktop_config.json (or .cursor/mcp.json), which runs "npx" with args ["-y", "@gocushy/mcp"] and sets GOCUSHY_API_KEY in its env block. The connector URL is https://mcp.gocushy.com/mcp/ with the key on the end, and Authentication set to "No authentication" — the key in the path is the authentication. The curl call is curl https://api.gocushy.com/api/v1/me with the key sent as an Authorization: Bearer header. All three carry the same gc_ key, reach the identical 57 operations and the identical server-side rules, and act only on the account that key belongs to — here Fernwood & Co., whose stripe_connected is true, so orders settle on their own Stripe. Anyone holding the key, human or agent, can create offers, read sales and issue refunds; it comes from Settings → API keys and should be treated like a password.

a. Local MCP — Claude Desktop, Claude Code, Cursor

The package is @gocushy/mcp on npm. For Claude Code, one command in the terminal:

Connecting an AIThe Connect your AI dialog in its two states — empty with a Generate a key button, and filled after generating, where every client snippet already carries the new key. Connecting an AI — one dialog, one button, five clients Press + Generate a key and every snippet below fills itself in. You copy one of them. That is the whole job. HOME › 🔌 CONNECT YOUR AI Connect your AI Works with any AI that speaks MCP. It stays in your browser; we never see it. Your API key (gc_…) — generate one → + Generate a key Already have one? Paste it above. ▾ ChatGPT ▸ Claude (claude.ai website) ▸ Claude Desktop (app) ▸ Claude Code (terminal) ▸ Cursor, VS Code, Windsurf & others the snippets read YOUR_API_KEY until you generate one PRESS IT THE SAME DIALOG, ONE CLICK LATER gc_live_7Kd8…q2 New key created & filled in below. The only time it is shown in full. Revoke it any time. ▾ ChatGPT mcp.gocushy.com/mcp/ gc_live_7Kd8…q2 Copy ▸ Claude Desktop — the same key, in an env block ▸ Claude Code — the same key, on one line Set Authentication to “No authentication”. The key is already in the URL — that IS the authentication. Every snippet carries the key. Copy the one for your client — you never type it twice. Generating a key does not revoke the old one. If you are replacing a key rather than adding a client, revoke the old one under API keys. A key minted by a team member is bound to that member: it can never exceed their role, and it dies the moment they are removed.
Classic interface illustration; use the workspace instructions above for current navigation. The dialog does the fiddly part: press Generate a key and every client snippet fills itself in, so you copy one line rather than assembling a URL. Set Authentication to "No authentication" — the key sits inside the URL and is the authentication. Generating a key never revokes an old one.
claude mcp add gocushy -e GOCUSHY_API_KEY=gc_… -- npx -y @gocushy/mcp

For Claude Desktop (or Cursor's .cursor/mcp.json), add the server to the config file:

{
  "mcpServers": {
    "gocushy": {
      "command": "npx",
      "args": ["-y", "@gocushy/mcp"],
      "env": { "GOCUSHY_API_KEY": "gc_…" }
    }
  }
}

b. Remote MCP — ChatGPT & hosted agents

No install. For connector-style clients that can't send custom headers, put the key in the path — the key is the authentication, so set Authentication to None:

https://mcp.gocushy.com/mcp/gc_…

ChatGPT specifics: browser only, paid plan required. Turn on Developer mode under Settings → Security and login, then add the server from chatgpt.com/plugins with the + button.

c. REST API — anything else

The same surface, JSON in and JSON out. Base URL and bearer auth:

curl https://api.gocushy.com/api/v1/me \
  -H "Authorization: Bearer gc_…"
Same tools, same guardrails. MCP wraps the REST API — whichever way you connect, you get the identical 57 operations and the identical server-side rules. MCP is just the fastest path.

03 — The model

Mental model

Two nouns, one settlement. Keep them straight and the whole surface falls into place:

  • Product — the thing being sold: a price plus delivery (where the buyer gets access). One-time or subscription.
  • Offer — how it's sold: a product wrapped in a live checkout, with an optional order bump (a checkbox add-on on the page) and a one-click upsell (accepted after payment, card already saved).
product (price + delivery)
   └─ offer (live checkout + optional bump + upsell)
        └─ settles on the merchant's own Stripe

The same product can appear in many offers — standalone, as a bump on one checkout, as an upsell on another. Every paid order settles directly on the merchant's Stripe; GoCushy is only ever the machinery in between.

04 — The happy path

Golden path

Zero to a shareable checkout link in six moves. Check state first, do the one human handoff, then build:

The path from a cold account to a shareable checkout linkThe golden path drawn as the agent's own call ledger for Fernwood & Co. Five rows in order: payment_status returns charges_enabled false and onboarded false; connect_payment, the one dark row, returns onboarding_url for a human to open; create_product sets price_cents 4900 and a delivery_url on The Joinery Course; create_offer returns the live checkout_url; get_checkout_link returns cushy_link https://cushy.link/k3x9f2 with status live. An arrow skips past row two when Stripe is already onboarded. Below the ledger, the warnings field stands as the gate before sharing. Cold account to a shareable link Five calls in order. One of them is not yours to make, and one gate stands before you share. 01 · THE FIVE CALLS, IN ORDER Fernwood & Co. · nothing set up yet skip 1 payment_status the rail, first charges_enabled: false · onboarded: false If this came back true, skip step 2 and go straight to create_product. 2 connect_payment the human step Returns onboarding_url — the one call you hand to a person. “Open this URL in a browser and complete Stripe onboarding.” 3 create_product the thing sold “The Joinery Course” · price_cents 4900 · delivery_url set Both, or the response comes back carrying a warnings field. 4 create_offer the checkout page Returns the live checkout_url immediately. “The offer can take real money as soon as this returns.” Bump and funnel attach here. 5 get_checkout_link the shareable link cushy_link: https://cushy.link/k3x9f2 · status: live “The cushy_link is the short shareable version — same checkout.” 02 · THE GATE BEFORE YOU SHARE warnings “The Joinery Course” has no delivery link yet — buyers who pay will have no way to access what they bought. Clear it before you share — update_product delivery_url, a delivery_note, or an order.paid webhook. Then open test_url: it walks checkout → bump → upsell → thank-you with payment simulated, even on drafts. An offer that can take money and deliver nothing is the one state this order prevents.
The path from a cold gocushy account to a shareable checkout link is five MCP calls in a fixed order, drawn here as the agent's own call ledger for Fernwood & Co. Step 1 is payment_status, which comes back charges_enabled: false and onboarded: false on a cold account; if it had come back true, step 2 is skipped and the agent goes straight to create_product. Step 2 is connect_payment, the one call an agent hands to a person: it returns an onboarding_url with the instruction "Open this URL in a browser and complete Stripe onboarding," and completing Stripe's identity verification is the only part of this path an agent cannot do. Step 3 is create_product, which needs both a price in cents (The Joinery Course at price_cents 4900) and a delivery method (delivery_url); miss the delivery and the response comes back carrying a warnings field. Step 4 is create_offer, which returns the live checkout_url immediately — "The offer can take real money as soon as this returns" — and is where an order bump and post-purchase funnel attach. Step 5 is get_checkout_link, which returns the hosted URL plus the short cushy_link (https://cushy.link/k3x9f2) and status: live. Before sharing, the gate is the warnings field: the real message reads "The Joinery Course" has no delivery link yet — buyers who pay will have no way to access what they bought. Clear it with update_product delivery_url, a delivery_note, or an order.paid webhook, then open the returned test_url, which walks checkout, bump, upsell and thank-you with payment simulated and works even on drafts. An offer that can take money and deliver nothing is the one state this order of operations exists to prevent.
  1. payment_status

    Check whether the merchant's Stripe is connected and charges are enabled. If it already is, skip straight to create_product.

  2. connect_payment — the human step

    If Stripe isn't ready, this returns the hosted onboarding URL. Hand it to the human to open and complete Stripe's identity verification. The merchant completes verification. Other consequential actions still require their authorization.

  3. create_product

    Create the thing being sold — a price (in cents) and delivery (see below). Subscriptions also need an interval.

  4. create_offer

    Wrap the product in a checkout. Attach an order bump and one-click upsell if you have them. The offer goes live immediately.

  5. get_checkout_link

    Fetch the hosted checkout URL (and its short gocushy.com/l/… link). This is the live checkout link and can accept payments. Use the separate test URL for a no-charge visual preview, then verify the real provider and delivery setup before sharing.

  6. Share

    Hand the link back to the human to drop into emails, posts, or their AI-built page. Done.

05 — Deliver the goods

Delivery

A live offer has to actually give the buyer something. Before you share a link, make sure the offer can deliver — set at least one of these:

  • delivery_url — the members area, download, or booking link. It becomes the "Access your purchase" button on the receipt and the signed thank-you page.
  • delivery_note — on-screen access text shown with (or in place of) the button: instructions, a code, next steps.
  • An order.paid webhook — register one with create_webhook so the merchant's own system grants access when the order is paid.
Resolve every warning before sharing. If a product has no delivery set, the response includes a warnings field. Don't hand the human a link that takes money and delivers nothing — clear the warnings first by adding a delivery URL, a note, or a webhook.

06 — What you can't do

Guardrails

Some things are deliberately out of your reach. These aren't missing features — they're what lets a merchant safely hand an agent their API key.

  • Prices, totals, and countdowns are computed server-side. You can't ship a checkout that charges a different amount than it shows, and you can't fake scarcity — a deadline must be a real future date, and the countdown hides when it passes and can never reset per-visitor.
  • Checkout copy is whitelisted blocks. Headline, subheadline, bullets, testimonials, guarantee, deadline, image, button text, accent — plain text, length-capped, HTML-escaped into fixed zones. You can fully customise a checkout and structurally cannot break the layout or hide the order form.
  • Buyer-sensitive URLs are signed. The thank-you page and access links only render for genuinely paid orders — nobody reaches the product by guessing a URL.
  • Tax and affiliates are gated behind the Tax & Affiliates Pack. Real tax collection, compliant invoices, and the affiliate program unlock with the pack — it's included in the $99/month plan, and a one-time add-on for Free-plan accounts.
  • Every action is logged. A full activity trail records who did what — the merchant, an agent (tagged with its API key), or GoCushy itself. Nothing an agent does is invisible.

07 — Reference

The tools

The registered MCP operations, checked against the current server. Read the returned validation errors and warnings; permissions, feature flags and provider capabilities still apply.

ToolPurpose
connect_paymentStart Stripe onboarding for this merchant account.
payment_statusCheck whether Stripe onboarding is complete and the account can take payments (charges_enabled).
create_productCreate a sellable product.
update_productUpdate a product's name, description, delivery link/note, or price.
seller_defaultsGet or set the seller's once-per-business answers — currency, brand accent colour, checkout template, and standard guarantee.
import_productsBring what the merchant already sells: imports active products (with default prices) from their connected Stripe account into gocushy.
list_productsList this account's products with their IDs and prices.
create_offerCompose a checkout: a main product, order bumps (checkbox add-ons at checkout — up to 3 via bumps[], or the single bump_product_id/bump_headline pair) and a post-purchase one-click sequence (up to 3 steps via funnel[] — upsell, then optionally a downsell shown only when that upsell is declined, then optionally a second upsell; or the single upsell_* fields).
update_checkoutSet the selling content on an offer's checkout page — described, not designed: your words render into gocushy's fixed, conversion-tested layout, so you can fully customise without ever breaking it.
get_checkout_linkGet the hosted checkout URL for an offer (by offer name or slug).
pause_offerStop an offer taking orders: its checkout link (and short cushy link) stops working immediately.
resume_offerRe-open a paused (draft) offer so its checkout link takes real money again — the last gate before an offer sells, so confirm with the seller first.
get_embed_codeGet copy-paste snippets to put an offer's checkout on any website (Lovable, WordPress, hand-coded — anything).
create_payment_requestCreate a payment request: a checkout pre-addressed to ONE named client — their name and email pre-filled, a fixed tax-inclusive amount due, an optional due date.
send_payment_requestEmail (or re-email) an open payment request to its named client: the amount, due date, note, the signed pay link, and the bank details when the request carries them.
list_payment_requestsPayment requests with status (open/paid/cancelled), a derived overdue flag, the client, amounts, and each request's signed url.
record_payment_request_paymentRecord that a payment request's client already paid OUTSIDE gocushy (a bank transfer, typically).
cancel_payment_requestWithdraw an open payment request: its checkout stops taking money and the client's link shows a 'withdrawn' page (not a broken 404).
list_ordersRecent orders: buyer, status (pending/paid/failed/refunded), totals, whether the bump and upsell were taken.
get_salesRevenue and conversion stats: totals, order counts, bump/upsell take rates, plus by_offer and by_project rollups.
get_offer_statsDeep-dive on a single offer: net revenue (gross minus refunds), paid orders + AOV, checkout completion rate (started-to-paid; page views are not tracked), bump/upsell take rates + upsell revenue, refund rate, daily revenue series, and the 20 most recent orders.
get_attribution_reportWhich ads actually made money — including the rebills and upsells an ad pixel never reports.
get_orders_behindThe receipts for one attribution row: the actual orders (date, buyer, amount net of refunds, status) that get_attribution_report counted under a given source / campaign / ad.
get_roasOne line per traffic source: revenue, rebills, LTV, and ROAS where the merchant has reported ad spend.
set_conversion_trackingSend purchases to Meta from gocushy's SERVER instead of relying on the browser pixel, which loses roughly a third of conversions to adblockers and never sees a rebill.
create_campaign_linkMint a SHORT link that carries a whole UTM set — cushy.link/t/comm rather than a 130-character tagged URL nobody can paste into a post or read out on a call.
update_campaign_linkChange where an existing short code goes, or fix its tags, WITHOUT changing the code.
list_campaign_linksEvery campaign short link on the account with its tags, destination and click count — busiest first.
report_ad_spendTell gocushy what was spent on a network for a period, so Trace can compute ROAS against real revenue.
connect_emailWire up the merchant's email platform with their API key.
connect_notificationsSend the merchant a chat ping on every sale — plus rebills, refunds, failed renewals (dunning) and cancellations — to Slack, Discord or Telegram.
connect_paypalAccept PayPal on checkouts using the merchant's OWN PayPal Business account.
connect_walletSet the merchant's OWN public wallet address to receive agent-paid USDC on Base (the x402 agent crypto rail).
set_followupMap an offer to email actions: when the trigger fires (purchase, refund, upsell_taken, renewal, abandoned, payment_failed, or dunning_recovered), the buyer is subscribed to the list and tagged.
list_followupsEvery follow-up rule across the account's offers, with per-rule health: enabled, last_fired_at (null = never fired), and the connection's status + error if its ESP credentials broke.
update_followupEdit an existing rule (IDs from list_followups) instead of stacking a new one: retarget its trigger, point it at a different connection or list, swap its tags, or pause/resume it with enabled.
delete_followupPermanently remove a follow-up rule (IDs from list_followups).
set_business_detailsSet the merchant's business profile: legal name, address, tax registration, invoice prefix.
tax_statusCheck whether Stripe Tax is activated on the merchant's own connected account and which registrations exist.
activate_taxActivate Stripe Tax on the merchant's OWN connected account by setting their head-office address (required — it flips tax from pending to active).
add_tax_registrationRegister the merchant with Stripe Tax for a jurisdiction they actually hold a registration in — this is what makes tax get charged there.
list_tax_registrationsList the merchant's Stripe Tax registrations (country + status).
create_webhookSubscribe the merchant's own system to order events (order.paid, order.refunded, order.failed, order.upsell_taken).
verify_purchaseCheck whether an email address has bought from this merchant (optionally a specific product or offer).
create_couponCreate a promo code buyers type at checkout — percent off OR a fixed amount off (never both).
cush_askAsk gocushy's own assistant a question about how gocushy works, or about this account's own numbers (revenue, orders, bump/upsell rates, setup gaps).
cush_confirmApply a change Cush proposed.
list_couponsAll coupons with their discount, scope, redemption counts, expiry, and active status.
deactivate_couponEnd a promo: the code immediately stops working at checkout.
reactivate_couponTurn a deactivated code back on — buyers can redeem it at checkout again immediately, still subject to its original expiry and redemption cap.
get_activityThe account's full activity trail, newest first — every meaningful action taken by the merchant in their dashboard (actor: user), by you or any other agent via the API (actor: ai, tagged with the API key used), and automatically by gocushy (actor: system — orders paid/failed/refunded).
create_affiliateRegister someone who promotes the merchant's offers for commission.
list_affiliatesAll affiliates with their referral codes and currently-due balances (released commissions minus clawbacks).
get_affiliate_linkThe shareable referral link for an affiliate + offer combination.
mark_commissions_paidAfter the merchant has actually sent an affiliate their released balance (PayPal/Wise/bank — their choice), record it here.
cancel_subscriptionCancel a buyer's subscription.
refund_orderRefund a paid order (full by default, or partial via amount_cents).

Use the developer reference for request shapes, errors, signatures and delivery behavior.

08 — In practice

Recipes

What the human actually says, and roughly what you do. They speak in sentences; you translate into the tools above.

One sentence to an agent, and the live checkout it producesThe first recipe on /docs/agent — "Set up a $49 course with a $19 workbook bump and add buyers to my welcome email." — shown as its six tool calls and then as the finished buyer-facing checkout page: The Joinery Course at USD 49.00, a ticked Measured Drawings Pack bump at USD 19.00, total USD 68.00, with the form column on the left and the story column on the right. One sentence in, one checkout out /docs/agent gives its first recipe six tool calls and never draws the page they build. Here it is. 01 · THE SENTENCE THE MERCHANT SAID “Set up a $49 course with a $19 workbook bump and add buyers to my welcome email.” Verbatim, /docs/agent → Recipes, first entry. What the agent then runs: create_product 4900 → create_product 1900 → create_offer (bump) → connect_email → set_followup (purchase) → get_checkout_link 02 · THE PAGE THAT COMES OUT Fernwood & Co. Email you@example.com Name (optional) Add Measured Drawings Pack + USD 19.00 Bumps live on single offers only — a cart offer never renders one. #payment-element Stripe mounts the card fields here Pay now By paying, you agree your payment method may be saved for one-click post-purchase offers from Fernwood & Co. The Joinery Course The Joinery Course USD 49.00 Measured Drawings Pack USD 19.00 Total USD 68.00 Ticking the bump unhides this row. Discount and Tax rows sit here too, hidden until a coupon or Stripe Tax. BLOCKS THIS RECIPE LEFT EMPTY image_url · subheadline · bullets testimonials · guarantee · deadline legal_note · accent · button_text Sold by Fernwood & Co. Payments secured by Stripe · Terms & Privacy Secure checkout by gocushy One sentence in, one live checkout out — and the page that teaches it never draws one. Two of that sentence's three clauses land on this page. “add buyers to my welcome email” becomes a follow-up rule on the purchase trigger — nothing a buyer ever sees. And with no rail connected, the card box and the button are replaced by one line: “This checkout isn't accepting payments yet — the seller hasn't connected a payment method.”
The first recipe on /docs/agent is a single sentence — "Set up a $49 course with a $19 workbook bump and add buyers to my welcome email." — which the agent turns into six tool calls (create_product, create_product, create_offer with the bump, connect_email, set_followup on the purchase trigger, get_checkout_link) and one live checkout page the docs never show. On that page the form column sits left (Email, Name (optional), the dashed bump box "Add Measured Drawings Pack / + USD 19.00", the Stripe #payment-element, and a "Pay now" button) and the story column sits right (The Joinery Course, USD 49.00, the bump row that only appears once the box is ticked, and Total USD 68.00). Two of the sentence's three clauses are visible here; the welcome-email clause becomes a follow-up rule the buyer never sees, and with no payment rail connected the card box and button are replaced by the line "This checkout isn't accepting payments yet — the seller hasn't connected a payment method."

"Set up a $49 course with a $19 workbook bump and add buyers to my welcome email."

create_product (course, 4900) → create_product (workbook, 1900) → create_offer with the workbook as the bump → connect_email if needed → set_followup on the purchase trigger → get_checkout_link and share.

"Run a 48-hour 20%-off coupon."

create_coupon for 20% off the offer, then hand back the code. The checkout applies the discount server-side; the countdown, if you set one, stays honest.

"Refund order #1042."

Confirm the order and amount with the human, then refund_order. The refund goes back through the merchant's Stripe and cascades — invoice, any refund follow-up rule, and any affiliate commission clawback all stay consistent.

"How did last month go, and who are my best affiliates?"

get_sales for the revenue, order counts, and per-offer breakdown → list_affiliates for each affiliate's numbers and due balance. Summarise it in plain English.

09 — Pricing & access

Pricing & access

One flat monthly price, everything included:

PlanPriceGoCushy platform fee
GoCushy$99/month (first 30 days free)0% added fees — everything included
Free$03% per sale

The paid plan is $99 a month with everything included and 0% added platform fees — the first 30 days are free, and the merchant can cancel any time. The Worldwide Tax & Affiliates Pack (real tax collection, compliant invoices, and the affiliate program) is included in the $99/month plan; on the Free plan it's an optional $95 one-time add-on. Free is $0 + a 3% platform fee per sale.

Stripe's standard processing rate always applies on top, charged by Stripe on the merchant's own account, on every plan — exactly as it would without GoCushy. gocushy's fee is only the platform fee shown above.

Start your 30-day free trial

$99 a month · everything included · 0% added platform fees · cancel any time.

Start your free trial