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/plansPOST /v1/admin/plans/create/executeGET /v1/admin/plans/{slug}POST /v1/admin/plans/{slug}/update/executePUT /v1/admin/plans/{slug}/defaultPUT /v1/admin/plans/{slug}/toggleGET /v1/plans