← Back to schema index

Plan

Subscription plan available on the platform. Returned by `GET /v1/plans` so the user can compare options and choose a plan.

Properties

Field Type Description
slug * string Unique plan identifier (immutable). Used to reference the plan in other requests (e.g. `PUT /v1/users/me/subscription`).
name * string Human-readable plan name shown in the UI.
monthly_validation_limit * integer Validations included per calendar month. `0` means the plan includes no validations (upgrade required). Very large values (e.g. 999999) represent virtually unlimited quota.
is_default * boolean `true` if this plan is automatically assigned to new accounts.
billing_model * string Billing model: `free` — no charge; `tiered` — fixed price per period; `metered` — usage reported to Stripe; `hybrid` — base plus overage.
trial_days integer | null Trial days before billing starts. `null` when the plan offers no trial.
included_validations integer | null Validations included before overage charges apply on hybrid plans. `null` for `free` and `enterprise` plans.
is_public * boolean `true` if the plan appears on the public pricing page. `false` hides the plan from self-service (e.g. `admin_granted` or `enterprise` plans).
stripe_product_id string | null Associated Stripe Product identifier. `null` when the plan is not connected to Stripe (free or manually managed plans).
is_active * boolean Inactive plans are not shown to users and cannot be assigned. Only visible to administrators.
sort_order * integer Display order in the UI: lower value = first. Controls the sequence of plans in the pricing card.
user_count integer Active (non-revoked) users currently on this plan.
beneficiaries_max integer -1 = unlimited; >=0 caps beneficiaries per plan.
retry_max_retries integer | null Per-plan cap on retries per validation. `null` inherits the global default from `config/validation_retries.php`.
retry_max_pending_per_user integer | null Per-plan cap on pending retries per user at any moment. `null` inherits the global default.
retry_max_dispatched_per_day integer | null Per-plan cap on retries dispatched per day per user. `null` inherits the global default.
features array List of bilingual plan feature bullets to display in the pricing card. Ordered by ascending `sort_order`. Public endpoints include only active feature rows.

Used in operations

  • GET /v1/admin/plans
  • POST /v1/admin/plans/create/execute
  • GET /v1/admin/plans/{slug}
  • POST /v1/admin/plans/{slug}/update/execute
  • PUT /v1/admin/plans/{slug}/default
  • PUT /v1/admin/plans/{slug}/toggle
  • GET /v1/plans

Referenced by schemas