Skip to content

Read Membership account

GET
/v1/object-types/hospitality.membership_account/objects/{id}
curl --request GET \
--url https://api.aerandil.com/v1/object-types/hospitality.membership_account/objects/2489E9AD-2EE2-8E00-8EC9-32D5F69181C0 \
--header 'Authorization: Bearer <token>'

Read an existing instance.

The durable identity that survives every membership transition — upgrade, downgrade, freeze, cancellation, renewal. One per primary member; dependents (spouse, children, registered companions) attach under it as separate membership rows (commit 2). Distinct from the individual access-bearing membership because the account identity is what the operator tracks for billing (one subscription per account in commit 3), recognition (the long arc of the member-property relationship), and clinical-record binding (assessments attach to an individual membership, but the family unit lives on the account). The Mindbody Premier factoring of Pricing Option vs Membership vs Autopay vs Contract is the load-bearing reference for why account and access record are separate primitives.

id
required
string format: uuid

Object id (UUID v7, server-generated at create time).

branch
string format: uuid

Read through an open branch’s copy-on-first-write overlay view instead of the canonical (main) plane. Does not compose with as_of (422). The branch must exist under the caller’s tenant.

Object found.

Media typeapplication/json
object
created_at
required
string format: date-time
id
required
string format: uuid
object_type
required
Allowed value: hospitality.membership_account
properties
required
object
home_property_ref
Home property — where the member primarily exercises access
string format: uuid
id
required
Account id
string
joined_at
required
When the primary member first enrolled
string format: date-time
marketing_consent_inherits_from_person
Marketing consent inherits from primary person (GDPR / CCPA)
boolean
member_number
Operator-side member number
string
notes
Operator notes
string
primary_person_ref
Primary member (typed reference to person)
string format: uuid
referred_by_text
Referrer (free text — referrer may not be in the system)
string
status
required
Account status
string
Allowed values: active frozen terminated legacy_lifetime
provenance

Per-property source attribution and pins. An entry under properties means the property’s current value came from that source (on the source’s own clock, source_updated_at); an entry under pins is a human override protecting the property from sourced writes.

object
pins
object
key
additional properties
object
pinned_at
string format: date-time
pinned_by
object
reason
required
string
properties
object
key
additional properties
object
external_id
string
recorded_at
required
string format: date-time
source
required
string
source_updated_at
string format: date-time
stream
string
scope
required
One of: discriminator: level
object
level
required
string
Allowed value: tenant
Allowed values: tenant
tenant_id
required
string format: uuid
updated_at
required
string format: date-time
version
required
integer
>= 1
Example
{
"object_type": "hospitality.membership_account",
"properties": {
"status": "active"
},
"scope": {
"level": "tenant"
}
}
ETag
string
/^"\d+"$/

Quoted strong validator (RFC 7232 §2.3) carrying the object’s monotonic version. Informational on the read path — object mutation goes through typed actions on /v1/actions/{action}/apply, not raw CRUD.

No object with that id (or soft-deleted).