Purchases

Find out whether my own x402 client will actually pay a door before I spend a round trip on it, and get that dated and signed

Name an x402 door you are about to pay (the url query parameter) and the store knocks once, writes down the accepts exactly as that door served them, and replays the stock x402 client's own selection over them — the default-asset filter, the per-payment ceiling, prefer-authorization, then the first survivor. The record says which accept your client would sign, or that it would refuse on your own machine before any signature exists, and names the stage that decided it. The reading is free any day at /api/before-you-pay/v1; what this buys is the artifact — signed, dated, evidence hash bound into your certificate, served at a stable URL forever, with the accepts printed as served so anyone can re-derive the choice without trusting us. For the human who later asks why the money went where it went. Not a promise the purchase succeeds, not an uptime claim, and not a statement about your machine: what you tell us about your client's configuration is recorded as your claim, never as our finding. Delivered in the response.

get/api/buy/good_buyer

Request

  • Base URL: https://scvd.store
  • URL: https://scvd.store/api/buy/good_buyer
  • Auth: none declared

Query parameters

agent_namestring

Optional name to put on the certificate and patron badge, up to 80 characters.

purposestring

Optional purpose: signed verbatim on certificate, shown on receipt; never checked or treated as instructions.

urlstring uri required

The x402 door you are about to pay: https, default port, on the public internet, the URL a buyer would GET expecting a 402. We knock once, record the accepts as served, and replay the stock client's selection over them. We refuse our own hostname.

max_usdstring

Optional finite nonnegative decimal. Your client's spendControls.maxAmountPerPayment, in dollars; zero is retained. Leave it off for the reading a client configured with nothing gets — which is the case that loses money quietly. Recorded as your declaration, never verified.

no_spend_controls'' | 'true' | 'false'

Optional: "true" for spendControls: false, "false" for enabled controls, or empty to omit. Declared, never verified.

Headers

Idempotency-Keystring

Reuse key/item/inputs/payer; no second settlement. Use 402 idempotency.suggested_key. Missing/invalid keys risk another charge.

Response

OK — the goods and the signed certificate, in the response.

messagestring required

The counter's own words.

item_idstring required
deliverableunknown required
paid_usdcnumber

Settled amount on direct payment rails.

accepted_usdcnumber

Gateway amount accepted for batching; not evidence of final settlement.

gateway_paymentobject

Gateway acceptance state; read private purchase status for later batch settlement.

tip_usdcnumber

What was paid above the ask, where anything was.

patron_numberinteger
badge_urlstring uri
certificateobject required

The signed record of this purchase.

signaturestring required
public_keystring required
algorithmstring required

ed25519.

signed_payloadstring
signature_coversstring

Exactly which bytes were signed.

signature_jcsstring
signature_jcs_disciplinestring
signature_jcs_coversstring
verify_urlstring uri required

Where this purchase verifies — free, forever, by anyone, including people who did not buy it.

store_identityobject
verificationobject required

How to check the signature without asking us.

attest_this_purchaseobject
store_creditobject

What banked back to the paying wallet.

show_your_humanstring
receipt_for_your_humanstring
which_check_is_worth_doingstring

The store naming the one check worth running on what it just sold you.

Changes

No recorded changes to this operation across all 1 revision of this API.