Skip to main content
PUT
Bulk Update Memberships

Headers

TENANT
string
required

The tenant you are making this request on behalf of

API-KEY
string
required

Your api key

Body

application/json
id
string
required
name
string | null
description
string | null
price
integer | null

Response

Successful Response

name
string
required

Name of the membership

price
integer
required

Price of the membership in cents

id
string

Unique identifier for the membership

externalId
string | null

External system identifier for the membership

description
string | null

Optional description of the membership

patientCreditAmount
integer
default:0

Amount of patient credit in cents

patientCreditFrequency
enum<string>
default:MONTHLY

Frequency of patient credit

Available options:
DAILY,
WEEKLY,
BIWEEKLY,
MONTHLY,
EVERY_FOUR_WEEKS,
EVERY_SIX_WEEKS,
EVERY_TEN_WEEKS,
EVERY_TWELVE_WEEKS,
QUARTERLY,
EVERY_FOUR_MONTHS,
SEMI_ANNUALLY,
YEARLY
patientCreditExpiryDays
integer | null

Days until patient credit expires

maxRenewals
integer | null
default:0

Maximum number of renewals (null means unlimited)

autoRenew
boolean
default:true

Whether the membership auto-renews

setupFee
integer
default:0

Setup fee for the membership in cents

freezeFee
integer
default:0

Fee to freeze the membership in cents

applySurcharge
boolean
default:false

Whether to apply credit card surcharge to membership charges

minimumBillingCycles
integer
default:0

Minimum number of billing cycles required

billingFrequency
enum<string>
default:MONTHLY

Billing frequency for the membership

Available options:
DAILY,
WEEKLY,
BIWEEKLY,
MONTHLY,
EVERY_FOUR_WEEKS,
EVERY_SIX_WEEKS,
EVERY_TEN_WEEKS,
EVERY_TWELVE_WEEKS,
QUARTERLY,
EVERY_FOUR_MONTHS,
SEMI_ANNUALLY,
YEARLY
benefitType
enum<string>
default:PREPAYMENT_DISCOUNT

What the cycle billing creates: PREPAYMENT_DISCOUNT, PATIENT_CREDIT_GRANT, or NONE

Available options:
PREPAYMENT_DISCOUNT,
PATIENT_CREDIT_GRANT,
NONE
recognitionMode
enum<string>
default:CASH

How cycle revenue is recognized: PER_REDEMPTION, STRAIGHT_LINE, CASH, or AS_CONSUMED. Defaults to CASH (whole cycle recognized at billing); other modes are an explicit opt-in.

Available options:
PER_REDEMPTION,
STRAIGHT_LINE,
CASH,
AS_CONSUMED
expectedUsesPerCycle
integer | null

PER_REDEMPTION only: how many redemptions a typical member makes per cycle, used as the recognition divisor. Leave blank when the redemption limit (quantity) already reflects expected usage; set it when the limit is a high cap (e.g. 100) rather than a typical count.

Required range: x > 0
textColor
string | null

Text color for the membership

isArchived
boolean
default:false

Whether the membership is archived

commissionable
boolean
default:true

Whether this membership is eligible for commissions

hiddenInPatientPortal
boolean
default:false

Whether this membership is hidden from the patient portal

ruleSetId
string | null

ID of the rule set for the membership

formId
string | null

ID of the form associated with this membership

form
MembershipFormTiny · object | null

Form associated with this membership

merchantAccountId
string | null

Bank account (merchant account) that membership deposits go to

depositStrategy
enum<string>
default:MEMBERSHIP_ACCOUNT

How to pick the merchant account at billing time. MEMBERSHIP_ACCOUNT always routes to merchant_account_id. LOCATION_ACCOUNT routes to the sold-at location's merchant account (falling back to merchant_account_id when the location has none).

Available options:
MEMBERSHIP_ACCOUNT,
LOCATION_ACCOUNT
feeSchedule
MembershipFeeScheduleEntry · object[] | null

Cycle-specific price overrides

tags
ItemTagSummary · object[]

Tags assigned to this membership

discountTemplates
DiscountTemplate · object[] | null

Discount templates for the membership

memberCount
integer | null
default:0

Number of active members

totalRevenue
integer | null
default:0

Total revenue from this membership, in cents

accountingBasis
enum<string> | null

Basis the total_revenue reflects: ACCRUAL = recognized revenue (earned as benefits are delivered), CASH = billed revenue (collected at cycle billing). Set only on responses that compute total_revenue; null otherwise. Lets the FE label what it shows.

Available options:
CASH,
ACCRUAL