Skip to main content
Proceeds supports the MPP Stripe charge method. A buyer or agent with a card or a Link account can pay your paywall in the same request, with no wallet and no stablecoins. Cards are one more rail on the same charge URL. There is no separate card URL:
When a paywall accepts cards, the 402 challenge lists Stripe next to the other rails it accepts. The buyer’s client picks the one it can pay.
Card payments settle to your connected Stripe account, not your Proceeds wallet. Proceeds creates the charge on your account as a direct charge, so you are the merchant of record and see the payment in your Stripe Dashboard.

Requirements

Cards are charged in USD. The card amount is the paywall price: a 0.50 USDC price is a 50 cent card charge.
The $0.50 floor is Stripe's minimum card charge. A paywall priced under $0.50 can still be paid on its other rails. It just doesn’t offer cards.

1. Connect Stripe

1

Open Settings

Open the profile menu at the bottom of the left sidebar and choose Settings.
2

Connect with Stripe

Under Card payments (Stripe), click Connect with Stripe and approve Proceeds on your Stripe account. You return to Proceeds when it’s done.
3

Confirm the connection

Proceeds reads your Stripe profile (profile_…) automatically. If Stripe doesn’t return one, paste it under Stripe profile. Cards stay off until the connection is ready: a profile id, charges enabled, and a live or test mode that matches.
A Stripe account can only be linked to one Proceeds account. To disconnect, use Settings, or remove the Proceeds app from your Stripe account.

2. Turn on cards for a paywall

  1. In Paywalls, edit the paywall.
  2. Set the Price to 0.50 or more, in whole cents. On a tiered paywall each tier is checked on its own, so each tier you want to sell by card has to meet that floor.
  3. In Paywall Details, check that Accept card payments (Stripe) is on. It is on by default.
Paywall drawer with the price set to 0.500000 USD and Accept card payments (Stripe) switched on. The note under the toggle says Settles to your connected Stripe account.

Accept card payments (Stripe) turned on

The toggle appears once the Stripe connection is ready to take payments (a Stripe profile, charges enabled, and a live or test mode that matches). A connection by itself is not enough. Under it you’ll see Settles to your connected Stripe account. If an exact price is under $0.50 or isn’t whole cents, the note says the card option isn’t offered at this price. On a tiered paywall that note stays on the settlement line when at least one tier qualifies; a tier that doesn’t qualify still isn’t offered as a card payment. Save the paywall. Changes apply on the next request.

3. See the card option in the challenge

If cards are on and the connection is ready, the 402 response includes a WWW-Authenticate: Payment challenge with method="stripe" next to your other methods. The decoded request for the Stripe challenge looks like this:
Illustrative challenge request
This example is illustrative. Your values come from your paywall and your connected Stripe account. amount is in the smallest currency unit: with "decimals": 2, "50" is $0.50.
Don’t see method="stripe"? Check all of these:
  • Accept card payments (Stripe) is on for the paywall.
  • In Settings, the Stripe connection shows Connected. That line means the connection is active, it has a Stripe profile id (profile_…), charges are enabled, and its live or test mode matches. Anything short of that is spelled out on the status line (profile still needed, charges not enabled, or a live/test mismatch).
  • The charged price is at least $0.50 in whole cents. On a tiered paywall, that is the tier the buyer pays.
paymentMethodTypes tells the buyer’s client that a card or a Link account is accepted.

How buyers pay

Buyers and agents pay with a client that supports MPP Stripe charge. The client creates a one-time Shared Payment Token for the charge and retries the request with it. Proceeds confirms the payment on your Stripe account and then proxies your API response. You don’t run any Stripe or mppx code. For the client side, see the MPP Stripe charge reference and Link. Share the same charge URL and buyer prompt as for any paywall. See Sell to agents.

Reconcile payments

Card payments that complete show in Transactions as Completed, with the Stripe PaymentIntent (pi_…) as the payment reference. Check Events when a card attempt doesn’t show up there. Funds settle in your Stripe account on Stripe’s payout schedule, so reconcile them in your Stripe Dashboard.

Pricing tip

Stripe’s card processing fees apply to your Stripe account on each charge. Because part of Stripe’s fee is a fixed amount per charge, a lower price keeps less of the payment. See Stripe’s pricing. If your calls are cheap, keep card-eligible endpoints at a price that covers fees, or leave cards off and take those calls on other rails.

Test it

When your Stripe connection is in test mode, the console Test Payment flow includes a Card (Stripe test) option. That is the Stripe connection’s mode, not the console Mainnet mode switch. See Test paywalls. Live card payments use the buyer’s own client, as above.

Configure pricing

Set prices, including the $0.50 floor for cards.

MPP Stripe charge

The protocol reference for buyers and client builders.