docs(billing): document Free plan and team-member add-on credit purchases - #483
docs(billing): document Free plan and team-member add-on credit purchases#483hongyi-chen wants to merge 5 commits into
Conversation
|
The latest updates on your projects. Learn more about Vercel for GitHub.
|
|
I'm starting a first review of this pull request. You can view the conversation on Warp. I completed the review and no human review was requested for this pull request. Comment Powered by Oz |
There was a problem hiding this comment.
Overview
This PR updates the billing docs to describe Free-plan add-on credit purchases, member-initiated team credit purchases, and the team payment-method behavior. The content is mostly consistent with the attached PR context, and I did not find security-specific findings in the documentation diff.
Concerns
- The Free-plan checkout copy assumes every Free-plan team has no saved payment method, but the same docs describe Free-plan teams that can already have a saved card after a previous checkout, and downgraded teams may also retain one. Make Stripe Checkout conditional on whether the team has a saved payment method.
Verdict
Found: 0 critical, 2 important, 0 suggestions
Request changes
Comment /oz-review on this pull request to retrigger a review (up to 3 times on the same pull request).
Powered by Oz
|
|
||
| #### Making a Free plan purchase | ||
|
|
||
| Because a Free plan team has no card on file, the first purchase collects payment details through Stripe Checkout instead of charging silently. |
There was a problem hiding this comment.
| Because a Free plan team has no card on file, the first purchase collects payment details through Stripe Checkout instead of charging silently. | |
| If the team doesn't have a saved payment method, the purchase collects payment details through Stripe Checkout instead of charging the team silently. |
There was a problem hiding this comment.
why do we need to mention we go through stripe checkout, i think you're overexplaining
|
|
||
| Yes. Free plan users can buy the same [add-on credit](/support-and-community/plans-and-billing/add-on-credits/) packs as paid plans and spend them on any model, without a subscription. Free plan packs cost 20% more than the paid-plan price: $12 for 400 credits, $24 for 1,000, $60 for 3,000, and $120 for 6,500. | ||
|
|
||
| Buy from **Settings** > **Billing and usage** in the Warp app, or from the **Add-on credits** card on the [Warp upgrade page](https://app.warp.dev/upgrade). Because a Free plan team has no card on file, the first purchase goes through Stripe Checkout to collect payment details. |
There was a problem hiding this comment.
| Buy from **Settings** > **Billing and usage** in the Warp app, or from the **Add-on credits** card on the [Warp upgrade page](https://app.warp.dev/upgrade). Because a Free plan team has no card on file, the first purchase goes through Stripe Checkout to collect payment details. | |
| Buy from **Settings** > **Billing and usage** in the Warp app, or from the **Add-on credits** card on the [Warp upgrade page](https://app.warp.dev/upgrade). If the team doesn't have a saved payment method, the purchase goes through Stripe Checkout to collect payment details. |
There was a problem hiding this comment.
do you really need to mention that we go through stripe checkout? i feel like it's not necessary, obviously we go through stripe checkout
…ases Non-admin team members can now purchase add-on credits, and Free plan users can buy credit packs without subscribing. When a team has no card on file, the card entered at Stripe Checkout is saved as the team's default payment method, so it can fund later purchases by other members and auto-reload. Only team admins can change or remove it. Documents the behavior for support and the AI responder, and corrects stale claims that add-on credits are paid-plan only and unusable on the Free plan. Co-Authored-By: Warp Agent <agent@warp.dev>
…ling glossary Co-Authored-By: Warp Agent <agent@warp.dev>
…llout Co-Authored-By: Warp Agent <agent@warp.dev>
…erexplanation Review feedback: - Drop the Stripe Checkout walkthrough; readers don't need the mechanics. - Keep payment edge cases out of the feature page and let the pricing FAQs carry them. - Remove exact prices; point at the pricing page instead. Also makes the payment-method wording conditional, which resolves the two automated review comments about assuming Free plan teams never have a card on file. Co-Authored-By: Warp Agent <agent@warp.dev>
8661214 to
73bf20c
Compare
|
|
||
| ### Can I buy credits on the Free plan without subscribing? | ||
|
|
||
| Yes. Free plan users can buy the same [add-on credit](/support-and-community/plans-and-billing/add-on-credits/) packs as paid plans and spend them on any model, without a subscription. Free plan packs cost 20% more than the paid-plan price: $12 for 400 credits, $24 for 1,000, $60 for 3,000, and $120 for 6,500. |
There was a problem hiding this comment.
can you please not include the rates, because these might be subject to change and i don't want the docs to go stale. warp.dev/pricing should be the source of truth when it comes to prices
|
|
||
| Yes. Free plan users can buy the same [add-on credit](/support-and-community/plans-and-billing/add-on-credits/) packs as paid plans and spend them on any model, without a subscription. Free plan packs cost 20% more than the paid-plan price: $12 for 400 credits, $24 for 1,000, $60 for 3,000, and $120 for 6,500. | ||
|
|
||
| Buy from **Settings** > **Billing and usage** in the Warp app, or from the **Add-on credits** card on the [Warp upgrade page](https://app.warp.dev/upgrade). Because a Free plan team has no card on file, the first purchase goes through Stripe Checkout to collect payment details. |
There was a problem hiding this comment.
do you really need to mention that we go through stripe checkout? i feel like it's not necessary, obviously we go through stripe checkout
| 2. Complete Stripe Checkout in your browser. The checkout link expires after 30 minutes; if it does, start the purchase again. | ||
| 3. Return to Warp. Your credits are granted as soon as checkout completes, and your new balance appears under **Settings** > **Billing and usage**. | ||
|
|
||
| If you aren't on a team yet, Warp creates a personal team named after your email address (for example, `you@example.com's Team`) and applies the purchase to it. You're the admin of that team, so you control its billing. |
There was a problem hiding this comment.
this is also not necessary
|
|
||
| #### Making a Free plan purchase | ||
|
|
||
| Because a Free plan team has no card on file, the first purchase collects payment details through Stripe Checkout instead of charging silently. |
There was a problem hiding this comment.
why do we need to mention we go through stripe checkout, i think you're overexplaining
|
|
||
| Because a Free plan team has no card on file, the first purchase collects payment details through Stripe Checkout instead of charging silently. | ||
|
|
||
| 1. Start the purchase. In the Warp app, go to **Settings** > **Billing and usage**, choose a denomination, then click **One-time purchase**. On the web, open the [Warp upgrade page](https://app.warp.dev/upgrade) and use the **Add-on credits** card below the plan cards. |
There was a problem hiding this comment.
this is pretty straightforward, i dont think this is something that we need to overexplain. users know how to go through a checkout flow
| * **Auto-reload** - When an admin turns auto-reload on, it governs every purchase on the team, and individual members can no longer buy add-on credits manually. | ||
| * **The team's payment method** - Every add-on credit purchase charges the payment method saved for the team. Only team admins can change or remove it, through the billing portal. See [How do I manage my billing?](/support-and-community/plans-and-billing/pricing-faqs/#how-do-i-manage-my-billing). | ||
|
|
||
| :::caution |
There was a problem hiding this comment.
i dont think this is a caution that we need to prominently mention here, but rather i'd prefer us to highlight this in FAQs wherever relevant. this only applies to a small portion of free users that are on teams where the non-admin purchases free credits and then someone else tries to purchase credits afterwards
|
|
||
| If you aren't on a team yet, Warp creates a personal team named after your email address (for example, `you@example.com's Team`) and applies the purchase to it. You're the admin of that team, so you control its billing. | ||
|
|
||
| #### The card you enter is saved for the team |
There was a problem hiding this comment.
can we simplify this section entirely, i don't think all of this needs to belong on this page and we can add it to FAQs as necessary
- Fold the shared-card FAQ pointer into the payment-method bullet instead of giving a niche edge case its own paragraph on the feature page. - Drop the remaining 'at checkout' process framing. - Cut duplicated Free-vs-paid rate comparisons; state it once with a link to the pricing page. Co-Authored-By: Warp Agent <agent@warp.dev>
Documents the "create chaos / sell control" add-on credit behavior discussed in the Slack thread, so support (and the AI responder) has something to point at when the inquiries land.
Why
Two behaviors are live in prod but undocumented, and the existing docs contradict one of them:
free_plan_credit_purchases_enabled: trueinconfig/prod.yaml).logic.PurchaseAddonCreditsis member-gated onceIndividualizeReloadCreditsis on.The support-relevant consequence: purchases charge the payment method saved for the team. If the team has no card yet, the buyer supplies one and it becomes the team default (
SetCustomerDefaultPaymentMethodFromPaymentIntent), so later purchases by other members and auto-reload charge it. Only admins can change or remove it, becauselogic.StripeBillingPortalrequireshasBillingAdminPermissions. That's the "hey, who's charging my card?" scenario.Changes
add-on-credits.mdx— one new short section, Who can purchase add-on credits: any active member can buy, no subscription needed, and admins own the spend cap, auto-reload, and the team payment method. It links to the Pricing FAQs for the shared-card specifics rather than covering them here. The plan availability line is also corrected — it claimed add-on credits were Build/Max/Business/Enterprise only.pricing-faqs.mdx— four new Q&As phrased the way a ticket arrives:Plus a "confirm which card your team has on file" item on the admin checklist, and a third option (buy add-on credits) under "Does the Free plan include AI usage?".
credits.mdx/plans-pricing-refunds.mdx— surface add-on credit purchase as a Free plan option, and point the refund policy at the "which card" FAQ..agents/references/terminology.md— addedAuto-reloadandteam-wide spend capto the billing glossary. Needed because the style linter only exempts bolded list terms that use an em dash, whileAGENTS.mdprescribes the**Term** - descriptionhyphen format.Review revisions
Reworked from the first draft based on review feedback:
Making the payment-method wording conditional also resolves both automated review comments about assuming Free plan teams never have a card on file.
Correction worth a close look
Several pages said add-on credits become unusable if you move to the Free plan ("you can't use them until you re-subscribe"). That is no longer true: a bonus grant is a valid credit source in
AdmitsInference(CostResolution.HasCreditSource()→AICreditsUsageAndCostTypeAnyBonusGrant), andRemoveFreeAIEnabledonly zeroes the Free tier's base request limit, so purchased credits still spend. Selling credits to Free plan users would be incoherent otherwise. Corrected inadd-on-credits.mdx,pricing-faqs.mdx, andplans-pricing-refunds.mdx— flagging it explicitly since it's a policy-shaped statement, not just wording.Follow-up not included here
add-on-credits.mdxalready carries a pre-existing price table (400/$10, 1,000/$20, 3,000/$50, 6,500/$100 with discount percentages), plus$200spend-limit defaults and "~40% off" in the auto-reload section. By the "no pricing in docs" rule those should move to the pricing page too, but they predate this PR and support may rely on them, so I left them rather than widen the blast radius. Happy to strip them in a follow-up.Validation
npm run build— exit 0, 364 pages built.check_links.py— 0 broken links (including after removing the Free plan section that other pages linked to).style_lint.py --changed— 14 findings, identical to themainbaseline for these files. No new issues.mainso this doesn't revert the style pass that landed there.Conversation: https://staging.warp.dev/conversation/6b6fd77c-c6e5-4921-b4eb-603ad32ffe1e
Run: https://oz.staging.warp.dev/runs/019fd415-468f-75b3-8bff-2c9db9da9e70
This PR was generated with Oz.