Pay Cofounder with MPP
Buy company credits from a Machine Payments Protocol wallet, then spend them on Cofounder services like company research.
Your agent can buy prepaid company credits with a Machine Payments Protocol (MPP) wallet, then spend the company's balance on Cofounder services such as company research, which returns a saved report with sources.
top-up → wallet pays payment_url → credits land → research start draws on the balance
Buying credits only adds credits. Research is a separate call that needs company access.
Price and Requirements
- A company admin can buy $10 to $5,000 in credits, in whole US cents. A $10 purchase adds $10 to the company's balance. Confirmed funds cover any unpaid company bills first.
- Every credit purchase needs an active $40/month company credit subscription. Each subscription payment also adds $40 in credits. Start it through Stripe Checkout.
- An MPP purchase is a one-time payment. It doesn't start or renew a subscription, or turn on automatic recharges.
- Services draw from the shared company balance. A top-up is not a fixed-price research purchase, and unused credits carry over.
Create a Credit Purchase
Create the purchase from the CLI, MCP, or API. If the response is lost, retry with the same idempotency key and amount. You won't be charged twice.
cofounder company billing top-up 1000 \
--pay-with mpp \
--idempotency-key company-research-funding-001The MCP tool is company_billing_top_up. The API route is
POST /cofounder-cli/v1/company/billing/top-ups, with this JSON body:
{
"amount_cents": 1000,
"pay_with": "mpp",
"idempotency_key": "company-research-funding-001"
}Save the returned transaction id and payment_url. The public payment
endpoint is POST https://api.superoptimizers.cofounder.co/billing/mpp/{token}.
Always use the complete payment_url Cofounder returns. Don't build the URL
yourself. Its token unlocks only that purchase and expires, so keep it
private.
Pay Through a Compatible Wallet
- Send a
POSTtopayment_urlwithout a payment credential. A pending purchase returns HTTP402with payment offers inWWW-Authenticate. - The wallet reads the challenge, shows the amount and seller, and gets approval for the purchase.
- Retry the same URL with the wallet's
Payment-Authorizationheader. The Base x402 option usesPayment-Signatureinstead. Send only one of these headers per request. - A confirmed purchase returns HTTP
200, a transaction withstate: credited, and aPayment-Receiptheader when the payment credential is authenticated. HTTP202means payment is still settling. It doesn't prove the credits arrived.
The payment URL needs no Cofounder login or API key. Creating the purchase
and spending the credits still need company access. A GET request doesn't
start a payment.
Always take amounts, networks, and destinations from the offers returned for your purchase. Supported methods:
| Method | Payment credential |
|---|---|
| Stripe card or Link | Shared Payment Token scoped to the seller's Stripe profile |
| Tempo | Wallet payment on the offered Tempo network |
| Base USDC | EIP-3009 authorization, including the Base x402 option |
| Solana USDC | Transfer with the purchase's required memo and finalized confirmation |
Check the Seller
Cofounder's seller is The General Intelligence Company:
view the Stripe profile.
The production Business Profile ID is
profile_61VNemPyLY6duDVnvA6VNemOP2SQNzOcfQgZdsGsqBvc.
For a Stripe payment, check methodDetails.networkId in the challenge
before approving it. Sandbox profiles start with profile_test_ and live
profiles don't. Sandbox blockchain offers use test networks. Never use live
payment credentials or funds to test a sandbox purchase.
Buy One Research Report Directly
You can also buy a single company research job without credits. The payment pays for that job only and never becomes a credit balance.
cofounder research purchases create --domain stripe.comThe MCP tool is research_purchases_create
(POST /cofounder-cli/v1/research/purchases). It returns the new job_id,
the price in amount_usd ($1.00), and a private payment_url. Nothing is
charged or started until the URL is paid, and the offer expires after an
hour.
POSTtopayment_urlwithout a credential. HTTP402returns a Stripe card or Link challenge for the price. Its description andopaquemetadata name the job ID.- Retry with the wallet's
Payment-Authorizationheader. The Stripe PaymentIntent getsmetadata.research_job_idset to the same job ID, and only then does the research start. - The paid request waits up to four minutes and returns HTTP
200with thejob_id, the finishedreport, itsgroundingsources, thepayment_intent_id, and aPayment-Receiptheader. If research is still running it returns202with the receipt. Request the same URL again for the report.
If research fails after payment, you get 502 with the receipt and job ID.
Contact support with them for a refund to the original payment method.
Example: Buy Credits, Then Research a Company
Once the purchase is confirmed, check the balance:
cofounder company billing getThen request a report with its own spending limit and idempotency key. These commands do paid work, and the research limit is separate from the credit purchase amount:
cofounder research start \
--query "Summarize Stripe's products, target customers, and competitors. Cite sources." \
--title "Stripe company research" \
--max-cost-usd 5 \
--idempotency-key stripe-company-research-001
cofounder research jobs get --job-id <job-id>
cofounder research jobs results get --job-id <job-id>research start returns a job_id. Research takes a while, so check
research jobs get until status is completed before treating the report
as delivered. The results include the report and its sources. The job's
library_files point to the saved outputs, and cost.settled shows the
final charge.
See Research for the API routes and other output formats.
Keep Receipts
Keep both the credit transaction ID and the research job ID. They identify different records:
- The credit transaction
ididentifies the credit purchase. It also appears asmetadata.company_transaction_idon the Stripe PaymentIntent. - The research
job_ididentifies the service request and its saved results. Research is charged to the company balance separately.
A top-up isn't tied to any one report. The top-up API doesn't take a research job ID, credits can fund many operations, and existing credits can also pay for research. So a top-up receipt alone doesn't prove a particular result was delivered. To prove research delivery, keep the completed job, its settled cost, and the returned report or Library files. To tie one payment to one report, use a direct research purchase instead.
Pending Payments, Failures, and Refunds
Payment went through but the balance didn't change
Find the saved transaction with
cofounder company billing transactions list, then retry it with
cofounder company billing transactions retry <transaction-id>. Cofounder
checks the saved payment before adding the credits. Keep the original
purchase. Don't create and pay another top-up to recover. Contact support if
it stays pending.
Research failed or was cancelled
For ordinary research jobs, the held credits are released and the job isn't
charged. A job still being reconciled or publishing its output isn't
finished yet. Check the same job before starting another. Prospect searches
in enumerate mode can keep charges for work already done. See
Research.
Refunds
Released research credits go back to the company balance. They don't refund the original MPP payment. To request a payment refund, contact Cofounder Support or email support@generalintelligencecompany.com. Include the company ID, credit transaction ID, payment receipt or reference, and the research job ID if relevant. Approved refunds go back through the payment provider and show up in the company's credit ledger.
Inspect a Challenge Without Paying
Given an existing, pending payment_url, this request needs no Cofounder
API key and sends no payment credential:
curl --include --request POST "$PAYMENT_URL"It returns the challenge without charging anything, and it doesn't run research. For a full sandbox test, use a purchase created in the sandbox and a compatible test wallet. Approving in a live wallet can move real money. Redact URL tokens, authorization headers, Shared Payment Tokens, and wallet credentials from any logs or evidence you share.