Happklaar API
string · uuid · requiredstring · uuid · required
POST
https://api.happklaar.nl/v1
/billing/plan-change/preview
Request Body
Validates POST /v1/billing/plan-change/preview (D-40 + D-42).
Body:
from_tier_id: required UUID — current paid tier the household is on.
to_tier_id: required UUID — target tier the user is considering.
Authorization: Owner-only (D-42). The pivot row on `account_household`
is looked up by (user_id, household_id) and rejected unless its `role`
casts to {@see AccountHouseholdRole::Owner}. Laravel surfaces a `false`
return as 403 Forbidden, no literal status code is touched in user-code.
Per CLAUDE.md "DI over facades" — constructor-injects the
{@see CurrentHouseholdResolver} contract so the authorize() pivot lookup
can resolve the caller's active household without touching the auth/config
facades. Laravel resolves FormRequest constructors out of the container.
from_tier_idto_tier_idResponses
PlanChangePreviewResource
Billing.PlanChangePreviewResource · required