Skip to main content
Execution status: Admitted personal preview tasks use Praxa’s bundled inference and pass fail-closed funding reservation and settlement authority. BYO provider keys, request-defined budgets, organization pooling, and public organization billing remain unavailable.
Portal status: Subscription display and eligible Stripe Checkout are source-ready, pending Worker deployment and an authenticated billing canary. Subscription cancellation, payment-method changes, and a Stripe Customer Portal are not implemented in the developer portal.

Current bundled funding

Praxa’s provider credentials fund the live minimal task lane. An admitted task must pass reservation authority before execution. Authoritative task and provider evidence later settles its retail usage. The public request cannot select a provider, model, funding mode, price, budget, or billing account. The cancellation-reconciliation migration and compatible Workers are deployed. Production canaries proved that a pre-dispatch cancellation releases its full reservation with zero charge, while a provider-in-flight uncertain outcome settles its frozen ceiling once before the exact non-retryable run_outcome_unknown projection.

Source-ready developer-portal billing

The source-ready billing page reads the signed-in user’s existing usage and subscription evidence. It can show:
  • current entitlement or free status;
  • included and remaining credits;
  • wallet credits;
  • subscription lifecycle status;
  • current-period end and auto-renew state; and
  • the original purchase provider when that evidence exists.
It renders monthly and annual products from Praxa’s canonical server-reviewed catalog. The documentation does not duplicate those prices because the catalog, not a prose table, controls the current sell price and included allowance.

Starting checkout

An eligible free user can choose an allowlisted catalog plan. The browser sends only the selected known Stripe price identifier and same-origin success/cancel locations to the authenticated checkout route. The client accepts only a trusted https://checkout.stripe.com response before navigating. The server repeats the subscription-state check before contacting Stripe:
  • active, in_grace, and in_retry subscription states return a stable management conflict instead of creating another subscription Checkout;
  • a failed or unrecognized subscription-state read fails closed;
  • terminal expired or revoked evidence may start a new subscription Checkout; and
  • one-time credit-pack checkout remains a separate purchase intent.
This prevents the portal from presenting a duplicate-purchase flow as subscription management.

What the portal cannot manage yet

An existing subscriber cannot cancel, change a payment method, or switch the original purchase provider through the developer portal. Those actions stay with the original App Store or web purchase provider until Praxa has a verified account-to-customer mapping and a real customer-management session. A new Stripe Checkout is not a substitute for that authority.

Usage readback is not invoice authority

GET /v1/usage is live for personal keys with usage:read. It includes only tenant-matched public tasks and derives:
  • token and model-call counts from completed provider-call rows;
  • billable amount from canonical settled retail evidence; and
  • key attribution from immutable task-origin evidence.
It does not expose active reservations, provider cost, margin, or a finalized invoice. It cannot replace entitlement, reservation, settlement, reconciliation, refunds, or payment-processor authority.

Unavailable funding controls

  • BYO provider credentials and BYO routing;
  • request policy, maxSpendMicros, model-lane pins, or tool allowlists;
  • organization-owned subscriptions and pooled organization budgets;
  • customer-authored policy packs or per-key budget ceilings;
  • a developer-portal Customer Portal or cross-provider cancellation flow; and
  • outcome pricing as a generic /v1/execute contract.
The SDK reserves some policy fields, but the current handler rejects the whole override. Existing product-specific budgets and pricing do not make those public controls available.

See also

Last modified on August 14, 2026