https://api.veriko.mx/v1/plans/{slug}/prices Active prices of a plan
Returns the active prices of the plan identified by slug so the client can display the price breakdown by currency × interval × kind before checkout. stripe_price_id is NOT exposed here — price resolution lives server-side in POST /v1/billing/checkout-session (the client only sends plan_slug, currency, billing_interval). If the plan does not exist, is disabled, or has is_public = 0, returns 404 plan_not_found (defense-in-depth against enumeration). meta.plan carries a plan mini-summary (billing_model, trial_days, included_validations) so the UI can render context without a separate fetch. Accepts API key authentication.
| Parameter | In | Type | Required | Description |
|---|---|---|---|---|
slug * | path | string | required | Plan slug. |
curl -X GET 'https://api.veriko.mx/v1/plans/{slug}/prices' \
-H 'Authorization: Bearer mxcep_••••'
Python example — coming soon.
JavaScript example — coming soon.
PHP example — coming soon.
| Field | Type | Description |
|---|---|---|
type * | string | |
id * | string | Composite key `<currency>_<interval>_<kind>` (e.g. `MXN_month_base`). |
attributes * | object | Stripe price tied to a plan, surfaced to clients without revealing `stripe_price_id`. A plan may carry several prices for combinations of currency × interval × kind (`base` for the flat fee + optional `metered_overage` for metered overage). |
currency | string | Price currency. |
billing_interval | string | Billing cadence. |
kind | string | Price kind. `base` = flat cycle fee; `metered_overage` = per-unit charge over the included amount. |
unit_amount | integer | null nullable | Amount in minor units (cents). `null` when the price is tiered server-side in Stripe (the rate is computed at billing time and cannot be pre-displayed as a single number). |
tax_behavior | string | How tax is treated in `unit_amount`. `inclusive` = already included; `exclusive` = added on top at checkout. |
| Status | Class | Description | Body |
|---|---|---|---|
| 200 | 2xx | Active prices of the plan + summary at `meta.plan`. | ListPlanPricesResponse |
| 401 | 4xx | Authentication is required or the provided credentials are invalid. | ErrorResponse |
| 404 | 4xx | `plan_not_found` — slug does not exist, plan is disabled, or `is_public = 0`. | ErrorResponse |
| 422 | 4xx | `plan_slug_invalid` — `slug` does not match `[a-z0-9_-]{1,50}`. | ErrorResponse |
| 429 | 4xx | Rate limit exceeded | ErrorResponse |
| Status | Code | Detail |
|---|---|---|
| 401 | unauthorized | Invalid or missing authentication credentials. Envelope
|
| 429 | rate_limit_exceeded | Rate limit exceeded. Try again in 45 seconds. Envelope
Response headers
|