Plans

Update an employer plan

Changed on

Patch plan metadata. Archive with isArchived: true; publish/unpublish with isPublic. There is no hard DELETE.

patch/plans/{id}

Request

  • Base URL: https://api.cavuno.com/v1
  • URL: https://api.cavuno.com/v1/plans/{id}
  • Auth: HTTP bearer

Path parameters

idstring required

The plan ID returned by create or list endpoints.

Request body

namestring
descriptionstring
isPublicboolean

Publish/unpublish the plan.

isRecommendedboolean
isArchivedboolean

Archive the plan (soft-delete). There is no hard DELETE.

displayOrderinteger
pricingMode'priced' | 'contact'

How the plan is sold. priced takes a price and syncs it to Stripe; contact renders a contact CTA and creates no Stripe objects — setting a price on a contact plan is rejected. Omitted on create means priced.

priceTextstring

Display price text for a contact plan. Send an empty string to clear it.

ctaTextstring

CTA label for a contact plan. Empty string clears it.

ctaDestinationstring

CTA target for a contact plan. Must be an https, mailto:, or tel: URL. Empty string clears it.

Response

Updated plan.

idstring required

Unique identifier for the plan.

object'plan' required
namestring required
descriptionstring nullable required
kindstring required
billingInterval'day' | 'week' | 'month' | 'year' nullable required

Subscription billing interval. Required for kind=subscription. Pair with billingIntervalCount for non-1 counts (quarterly = month × 3).

billingIntervalCountinteger nullable required

Stripe recurring.interval_count. Null/omitted means 1. Quarterly is month × 3.

purpose'job_posting' | 'talent_access' | 'membership' | 'job_seeker' | 'employer_service' | 'job_seeker_service' required

What the plan entitles: job-posting, talent-access, membership (employer membership), job-seeker (candidate paywall), or contact-led employer_service / job_seeker_service catalogue rows.

isPublicboolean required
isRecommendedboolean required
isArchivedboolean required
displayOrdernumber nullable required
pricingMode'priced' | 'contact' required

How the plan is sold. Plans created before this field existed report priced.

priceTextstring nullable required

Operator-authored display price text for a contact plan, e.g. "From $2,000". Null when unset.

ctaTextstring nullable required

Operator-authored CTA label for a contact plan.

ctaDestinationstring nullable required

The CTA target: an https, mailto:, or tel: URL. Null when unset, in which case no CTA is rendered.

Changes