Wallkit service pricing plans
Read public active service pricing-plan templates for resource billing and feature configuration. These are distinct from publisher Plan → Pricings used for member content/membership checkout. See In-depth integration tasks.
| Task | Operation |
|---|---|
| Read service pricing-plan choices | Pricing plans |
Example clients and synthetic values follow response conventions.
List public active service pricing plans
GET /api/v1/pricing/plans
Read service configuration templates; this creates no resource billing record, member membership, provider payment or content access.
Before you call
Guest access follows the shared read context.
Request
Bodyless. No resource/plan/member lookup, pagination/filter/ordering parameters. Source selects active=true and is_public=true, ordered by sort with no explicit direction (ascending database default); ties unspecified.
Result
HTTP 200 items array; [] when no eligible plans. Do not assume stored scalar values are converted to another type; this action has no explicit output casts.
| Field | Type / presence | Meaning |
|---|---|---|
| items[].id | stored integer | Service pricing-plan template ID, not publisher Plan or Pricing ID. |
| slug, title, description, content | stored string / nullable | Service-plan key/display text/content. |
| monthly_price | stored integer | Configured monthly billing value; no currency/unit is returned or established by this action. |
| transaction_fee | stored integer | Configured fee value; this projection does not establish percent/minor-unit interpretation. |
| free_signups, up_free_signups | stored integer | Signup allowance/over-allowance configuration copied to resource service settings; do not derive member entitlement. |
| up_free_signups_price | stored integer | Configured additional signup price; units/currency not established here. |
| free_support_hours | stored integer | Included support-hours configuration. |
| up_free_support_price_per_hour | stored integer | Additional support-hour price configuration; units/currency not established here. |
| available_paywall, available_ti_event, available_reader_id | stored Boolean flags / nullable | Service feature settings, not content allow decisions. |
| is_public, active | stored Boolean flags / nullable annotations | Eligibility flags selected true in this list. |
| extra | decoded JSON value / nullable stored value | Dynamic configuration, no closed schema. Fetched strings decode only when neither empty nor "0"; both remain unchanged. Other stored values can remain as stored; invalid JSON may become null. |
No created_at/updated_at/sort or publisher Pricing/currency object is selected.
Example: Compare a service-plan template
Read a synthetic template ID 7001 for service-plan display. This excerpt omits price values rather than guessing currency or units.
curl "${WALLKIT_API_BASE}/api/v1/pricing/plans"
const response = await fetch(`${process.env.WALLKIT_API_BASE}/api/v1/pricing/plans`);
console.log(response.status, await response.json());
import os, json
from urllib.request import Request, urlopen
from urllib.error import HTTPError
request = Request(os.environ["WALLKIT_API_BASE"] + "/api/v1/pricing/plans", method="GET")
try:
with urlopen(request) as response:
print(response.status, json.load(response))
except HTTPError as error:
print(error.code, json.load(error))
Synthetic HTTP 200 excerpt:
{
"items": [
{
"id": 7001,
"slug": "synthetic-service-plan",
"title": "Synthetic service plan",
"available_paywall": true,
"is_public": true,
"active": true
}
]
}
Consequential alternate
HTTP 200 items:[] means no active public templates collected. It does not mean the resource has no existing billing configuration or the member has no content Pricing.
Recovery
| Status | Code / shape | Cause | Next action |
|---|---|---|---|
| 409 | error | Service-plan lookup/projection fails; description Error get Pricing Plans list. | Handle unavailable choices and ask integration owner to inspect service pricing configuration. |
| 200 | items:[] | No eligible templates. | Do not fabricate a plan or use publisher catalog IDs as substitutes. |
Next task
Use this list for service-plan selection/display in the existing integration. For member content purchase, use publisher catalog and its distinct Pricing IDs instead.