Concepts

Price a revision as free, flat, or variable, and see what recuut asks the payer to pay.

A revision is free, has a flat Price, or has a variable Price based on its variables. recuut owns the payment policy around that choice: accepted payment methods, settlement coordination, and payout policy.

Your application identifies the resource and reports its execution. It never accepts a price, amount, or payment method from caller input.

Free

A revision is free when Require payment is off, or when it has no Price. Access returns HTTP 200 with a null transaction_id and a RECUUT-RESOURCE-EXECUTION-ID header. Your application performs the work, returns the result, and reports the execution with Complete a free resource execution. recuut records the reported status, elapsed milliseconds, media type, and size of each free execution, never the response body. Framework integrations report it for you.

Flat

A fixed Price charges the same amount for every paid request. The guides use a fixed 0.01 USD Price. recuut denominates settlement in USDC at 1:1, so the payer receives a requirement for 10,000 Base Sepolia USDC atomic units. USDC uses six decimal places, so 1 USDC is 1,000,000 atomic units.

The wallet must have at least the required amount, and its approval limit must be at least that amount. Test a paid request uses a 100,000-unit limit (0.10 USDC), which covers the example without approving an open-ended amount. This wallet limit is separate from a variable Price maximum.

Variable

A usage-based Price adds a base fee to charges for the revision's variables, up to a Price maximum.

Before access, your application sends every revision value whose source is Input. recuut validates those values against the published revision and adds the base fee and input charges. Missing or unknown inputs are rejected, and a calculated charge above the Price maximum is rejected before your handler runs.

After the handler runs, your application completes the transaction with the full truthful usage: the same input values plus values whose source is Output. recuut adds the reported charges. If the full calculated charge exceeds the authorized maximum, recuut records the calculated charge and excess, settles only the maximum, and returns the receipt that allows your application to release the successful result. Your application does not clamp or omit usage to fit the maximum.

An input rejection and a capped completion are grouped into the same maximum-charge dashboard alert. recuut sends email when that alert opens, not for every occurrence.

If a calculated USD amount has more than six decimal places, recuut rounds the final total up once to the next atomic unit.

Prices and revisions

Prices and revisions change independently:

ChangeConsequence
Change a priceFuture payers receive new payment requirements. The execution reporting contract stays the same.
Publish a new revisionFuture executions use new reporting rules. Historical transactions keep the revision that described them.

The payment requirements returned to a payer include the active price. An x402-capable wallet uses those requirements when it prepares payment proof. The wallet does not receive the merchant API key or choose the merchant policy. Test payment requirements use Base Sepolia (eip155:84532) and test USDC.

See the x402 payment retry →

On this page