Budget and cadence
Set a total budget that runs once or resets weekly, monthly, quarterly, or annually. Unused budget does not roll over.
Agents can quote domains, request purchases or plan changes, track progress, and cancel eligible requests. They cannot approve a request, change a payment method, or grant themselves spending authority.
Agent API keys need the commerce:request permission string. It permits quotes and requests, not
approval or payment.
There is no MCP approval tool and no agent-plane approval endpoint.
| Actor | Allowed actions |
|---|---|
| Agent | Quote a domain, request a domain purchase, request a plan change, list and inspect its requests, cancel an eligible request, and relay the approval URL. |
| Billing member, admin, or owner | Approve or deny a request, set the approved maximum and renewal choice, manage payment authentication, and create or change future purchase limits. |
| Extrovert | Enforce plan capacity and purchase limits, reserve authority, collect payment, register and provision the domain, and reconcile uncertain outcomes. |
A paid plan and saved payment method do not grant an agent permission to spend. Autonomous purchasing starts off.
Call quote_domain. The quote includes availability, registration and renewal prices, currency,
premium status, required plan, blockers, and a 15-minute expiry. A quote does not reserve or buy
anything.
Call request_domain_purchase with a stable idempotency key. Repeating the same request returns
the same durable request. Reusing the key for different input returns an idempotency conflict.
If approval is required, give the human the returned approval_url. The request also includes
agent_next_action, notification_state, blockers, and poll_after_seconds.
Poll get_commerce_request no faster than poll_after_seconds. Use
list_commerce_requests to recover a lost request id.
Stop only at the appropriate terminal state. A domain is usable only when the request reaches
ready.
A human approval expires after seven days. Extrovert rechecks the price, approved maximum, plan capacity, and purchase limits before collecting payment.
Use request_plan_change for an upgrade or downgrade. An agent can request the change but cannot
approve it.
scheduled means the downgrade is scheduled. It does not mean the target plan is active.A domain purchase can include a required plan upgrade. The approval page shows separate ceilings for the annual domain price and the plan’s monthly price. A price above either approved ceiling stops the request before another charge.
The default action approves one exact request. A human can optionally create a bounded purchase limit for later requests.
Purchase limits can apply to an agent, project, or organization. Every matching limit is evaluated, and the most restrictive result wins. A broad organization limit cannot override a tighter project or agent limit.
Budget and cadence
Set a total budget that runs once or resets weekly, monthly, quarterly, or annually. Unused budget does not roll over.
Per-purchase maximum
Cap the amount that any one purchase may consume.
Domain count
Limit the number of domains independently of the plan’s capacity.
Domain constraints
Restrict allowed extensions and whether premium domains are permitted.
A one-time cadence does not mean unlimited. An optional expiry can end any limit, and a paused limit authorizes no purchases.
Extrovert reserves budget, domain count, and plan capacity before payment. This prevents concurrent requests from each spending the same remaining authority. The reservation is settled when payment is confirmed and released when an eligible request is denied or cancelled.
Do not collapse approval, payment, registration, and provisioning into one success flag.
| Stage | States | Meaning |
|---|---|---|
| Human decision | awaiting_human_approval, approved, blocked, denied, expired, cancelled | Authority is pending, constrained, or ended. Approval does not prove payment or registration. |
| Payment | plan_change_pending, payment_pending, payment_action_required, payment_failed | Billing is changing or payment is being collected. payment_action_required needs a signed-in human. |
| Domain work | queued, purchasing, provisioning, ready, purchase_failed | Registration and mail setup are asynchronous. Only ready means the domain is usable. |
| Plan completion | scheduled, completed | A downgrade is scheduled for period end, or the plan change has completed. |
| Recovery | reconciliation_required, refund_pending, refunded | Extrovert observed an uncertain or late financial outcome and stopped normal fulfillment. |
An agent must not claim:
awaiting_human_approval;approved or payment_action_required;payment_pending or queued;purchasing or provisioning;scheduled before effective_at.Cancel with cancel_commerce_request only while the request is still eligible. Keep using the same
durable request through payment failures and ambiguous timeouts.
refund_pending.ready.reconciliation_required. Do not create a duplicate
request.Blockers are structured. They can identify plan capacity, budget, per-purchase amount, domain count, extension, premium-domain authority, changed price, payment recovery, or downgrade capacity. Show the returned values and management URL to the human instead of replacing them with generic copy.
ready is reserved for a domain that has completed registration and mail setup.Keep the state and consequence visible:
ready.