Cofounder CLI

Payments

Take payments with Stripe — test in a sandbox, connect your live account, and manage products, prices, payment links, and invoices.

Cofounder connects your company to Stripe. Agents start in a Stripe test sandbox, where they can build and try your checkout without touching your real account or charging anyone. When you're ready to take real money, connect your live Stripe account.

Check where things stand

Run this first. It shows whether the company has a test sandbox, whether you've claimed it, whether a live account is connected, and how far your app's payment setup has got:

MCPCLIAPI
payments_getcofounder payments getGET /cofounder-cli/v1/company/stripe

Try it in a test sandbox

MCPCLIAPI
payments_onboardcofounder payments onboard --country USPOST /cofounder-cli/v1/company/stripe/onboarding
payments_claim_link_getcofounder payments claim-link getGET /cofounder-cli/v1/company/stripe/claim-link

onboard creates the company's Stripe test account, or returns the existing one. --country is the business's two-letter country code. It returns a link for the founder to open in a browser and claim the sandbox under their own Stripe login. claim-link get returns that link again without starting over.

Connect your live Stripe account

MCPCLIAPI
payments_connect_livecofounder payments connect-livePOST /cofounder-cli/v1/company/stripe/connect-live
payments_dashboard_link_createcofounder payments dashboard-link createPOST /cofounder-cli/v1/company/stripe/dashboard

connect-live returns a link the founder opens in a browser to approve the Cofounder Stripe App on their existing Stripe account. You don't need a sandbox first. Connecting doesn't turn on payments in your app by itself. dashboard-link create returns a browser link to your Stripe dashboard.

Never paste Stripe keys into chat or command arguments. These commands return a Cofounder link rather than a Stripe one; Stripe's own claim and dashboard links open only in your signed-in browser.

Test or live

Every command below works on the test sandbox unless you pass --mode live (mode: "live" on MCP), which needs connect-live done first. In live mode, writes change your real Stripe account and customers can pay you real money.

On MCP, each Stripe write takes an idempotency_key; the CLI fills one in for you (--idempotency-key). If a write fails partway, retry with the same key so Stripe doesn't make the object twice. Stripe forgets keys after about 24 hours, so after that, check whether the first attempt went through before you retry.

Read your Stripe data

MCPCLIAPI
payments_account_getcofounder payments account getGET /cofounder-cli/v1/company/stripe/data/account
payments_balance_getcofounder payments balance get --mode liveGET /cofounder-cli/v1/company/stripe/data/balance
payments_listcofounder payments list --resource customersGET /cofounder-cli/v1/company/stripe/data/{resource}
payments_invoices_getcofounder payments invoices get --invoice-id <id>GET /cofounder-cli/v1/company/stripe/data/invoices/{invoice_id}

balance get shows available and pending funds. list returns one page at a time of products, prices, portal-configurations, webhooks, events, customers, subscriptions, invoices, charges, refunds, payment-intents, payouts, or payment-links; pass the returned next_cursor as --cursor for the next page.

Sell something

Create a product, give it a price, then share a payment link:

MCPCLIAPI
payments_products_createcofounder payments products create --name "Pro plan"POST /cofounder-cli/v1/company/stripe/data/products
payments_prices_createcofounder payments prices create --product <prod_id> --unit-amount 2900 --currency usd --recurring-interval monthPOST /cofounder-cli/v1/company/stripe/data/prices
payments_products_updatecofounder payments products update --product-id <prod_id> --default-price <price_id>POST /cofounder-cli/v1/company/stripe/data/products/{product_id}
payments_payment_links_createcofounder payments payment-links create --line-items '[{"price":"<price_id>","quantity":1}]'POST /cofounder-cli/v1/company/stripe/data/payment-links
payments_payment_links_updatecofounder payments payment-links update --link-id <id> --no-activePOST /cofounder-cli/v1/company/stripe/data/payment-links/{link_id}

Amounts are in the currency's smallest unit, so 2900 in usd is $29.00. Leave out --recurring-interval for a one-time price, or use day, week, month, or year. payment-links update --no-active stops a link from taking payments; --active turns it back on.

Send an invoice

MCPCLIAPI
payments_invoices_createcofounder payments invoices create --customer-email ada@example.com --currency usd --line-items '[{"description":"Setup","unit_amount":50000}]'POST /cofounder-cli/v1/company/stripe/data/invoices
payments_invoices_sendcofounder payments invoices send --invoice-id <id> --expected-customer-email ada@example.com --expected-amount-due 50000 --expected-currency usdPOST /cofounder-cli/v1/company/stripe/data/invoices/{invoice_id}/send

invoices create makes a draft and sends nothing. It finds the customer by email or creates one, and the invoice is due in 7 days unless you set --days-until-due. invoices send only goes ahead if the invoice's recipient, amount, and currency still match what you pass. In live mode, Stripe emails the invoice to the customer, so review it with invoices get first. Test mode sends no email.

Customer portal and webhooks

MCPCLIAPI
payments_portal_updatecofounder payments portal update --configuration-id <id> --headline "Acme billing" --privacy-policy-url <url>POST /cofounder-cli/v1/company/stripe/data/portal-configurations/{configuration_id}
payments_webhooks_updatecofounder payments webhooks update --webhook-id <id> --url <url> --enabled-event invoice.paidPOST /cofounder-cli/v1/company/stripe/data/webhooks/{webhook_id}

portal update sets the headline and links (return URL, privacy policy, terms of service) on the page where customers manage their billing. webhooks update changes an existing webhook's URL, events, or on/off state (--disabled); it doesn't create new ones. Find the IDs with cofounder payments list --resource portal-configurations or --resource webhooks.

Next steps

To reach customers by email, phone, social, and ads, go to Communicate and Sell.