Introduction

WelcomeServices map

Guides

AcceptSpend

Legal

SecurityPrivacyTerms

PreviousHandlesNextAccess & receipts
BlogPrivacyTerms

Sellers & resources

Accept-side APIs for sellers, priced resources, hosted gates, Stripe Profile (MPP/x402), Express or Standard Connect, withdraw, and recycle. Open-rail Accept credits seller balance; Connect withdraw Transfers that balance to the connected account.


Same flow in MCP: rill_sellers

Auth

Create seller, list sellers, recycle, and owner dashboard routes under /sellers/:id/* (Connect, payments, withdraw, resources) use an owner Supabase JWT. Agent/MCP seller-scoped routes under /sellers/me/* and /resources need Authorization: Bearer rill_sk_*. Send Idempotency-Key on withdraw, recycle, and resource PATCH.

Authorization: Bearer <owner JWT or rill_sk_*>

Featured endpoints

Create a seller

POST /sellers

Create an Accept seller and receive a rill_sk_* key. Call this before pay links, Stripe Profile, or Connect. Save the key immediately, it is shown once.

ParameterTypeRequiredDescription
namestringyesSeller display name
website_urlstringnohttps company website for directory listing
descriptionstringnoShort public listing copy

Request body

body
{
  "name": "Acme Accept"
}

What to save

Save the rill_sk_* seller key and seller id. Use the key for resources, payments, Connect, and withdraw.

  • MCP twin: rill_sellers action=create.

Create a priced resource

POST /resources

Create a priced HTTP or MCP SKU. Response includes gate_url (agents pay this) and pay_url (human pay page, same as MCP pay_page_url). Prefer MCP/CLI create-pay-link for the composed Accept response. Agents pay gate_url with pay-url once payments are enabled.

ParameterTypeRequiredDescription
path_or_toolstringyesHTTP path or MCP tool name
amountnumberyesUSD price
resource_typehttp|mcpnoDefaults to http
currency_codestringnoISO currency; defaults to USD

Request body

body
{
  "path_or_tool": "/research",
  "amount": 0.25,
  "resource_type": "http"
}

What to save

Save gate_url for agents (the SKU). pay_url is the human pay page for the same resource (MCP/CLI call it pay_page_url). Also save resource id and short_id.

  • List with GET /resources. Update with PATCH /resources/:id (idempotent).
  • MCP/CLI twins: rill_create_pay_link / create-pay-link, rill_resources action=create|update|deactivate.

Enable MPP / x402 on gates

PATCH /sellers/me/payments

Enable MPP/x402 on seller gate URLs so agents can finish pay. Optional stripe_profile_id when attaching a Stripe Profile. Open-rail settlement lands in Stripe and credits seller balance for Connect payout.

ParameterTypeRequiredDescription
stripe_profile_idstringnoStripe Profile id (profile_…) when linking a profile
mpp_enabledbooleannoDefaults to true when enabling
x402_enabledbooleannoEnable x402 when Base deposit is available

Request body

body
{
  "mpp_enabled": true,
  "x402_enabled": true
}

What to save

Confirm mpp_enabled / x402_enabled on the seller. Agents can then pay gate_url with open rails.

  • Open-rail pays credit seller balance for Connect payout.
  • MCP/CLI twins: rill_enable_payments / enable-payments.

Withdraw seller balance

POST /sellers/me/withdraw

Transfer seller balance (open-rail Accept credits and ledger) to Stripe Express after Connect KYC. Complete Connect onboard with your country → sync until payouts_enabled first. Auto payout also runs when Connect is ready and balance meets the minimum.

ParameterTypeRequiredDescription
amountnumberyesUSD amount to withdraw

Request body

body
{
  "amount": 10
}

What to save

Save the withdrawal id / status from the response. Check GET /sellers/me/balance for Connect readiness flags before retrying.

  • Owner recycle into the account wallet: POST /sellers/:id/recycle.
  • Connect steps: GET/POST /sellers/me/connect* or MCP rill_connect.
  • MCP twins: rill_withdraw, rill_recycle.

All endpoints

  • POST/sellersCreate seller + rill_sk_*
  • GET/sellersList sellers
  • GET/sellers/meSeller profile
  • GET/sellers/me/balanceBalance + Connect flags
  • PATCH/sellers/me/paymentsLink profile_… / enable MPP
  • POST/resourcesCreate priced resource
  • GET/resourcesList resources
  • GET/resources/:idResource by id
  • PATCH/resources/:idUpdate (idempotent)
  • DELETE/resources/:idDelete
  • POST/resources/:id/terms402 terms payload
  • GET/r/:resourceIdHosted gate (402 + optional MPP)
  • GET/sellers/me/connectEnriched Connect status
  • POST/sellers/me/connect/onboardExpress Account Link URL
  • POST/sellers/me/connect/linkStandard Connect OAuth URL
  • POST/sellers/me/connect/oauthComplete Standard OAuth with code
  • POST/sellers/me/connect/syncSync from Stripe
  • POST/sellers/me/connect/login-linkExpress login for KYC
  • POST/sellers/me/withdrawTransfer payout
  • POST/sellers/:id/connect/onboardOwner JWT Express Account Link
  • POST/sellers/:id/connect/syncOwner JWT sync Connect
  • POST/sellers/:id/connect/login-linkOwner JWT Express login
  • PATCH/sellers/:id/paymentsOwner JWT enable MPP/x402
  • POST/sellers/:id/withdrawOwner JWT ledger withdraw
  • GET/sellers/:id/resourcesOwner JWT list resources
  • POST/sellers/:id/resourcesOwner JWT create resource
  • PATCH/sellers/meSeller key: website_url, description
  • POST/sellers/:id/rotate-keyOwner JWT rotate rill_sk_* (shown once)
  • POST/sellers/:id/recycleSeller → account wallet

Usage notes

  • Accept go-live: create seller → gate URL → enable payments → webhook (payment.succeeded) → test with wallet pay-url.
  • API pay_url = MCP/CLI pay_page_url (human page). Agents always pay gate_url.
  • Dashboard owners can use /sellers/:id/* with JWT; agents keep /me + rill_sk_*.
  • Send Connect onboard_url or login_url to a human, never complete KYC inside an agent.
  • MCP/CLI twins: rill_sellers / create-seller / sellers list, create-pay-link, enable-payments, webhooks, rill_connect, rill_withdraw.