API and AuthenticationCustomer API
List Memberships
Retrieve the authenticated customer's memberships and available public plans
List Memberships
Returns the authenticated customer's membership records and the organization's active public customer plans. The response contains display-safe information only; payment-provider identifiers and internal billing metadata are not exposed.
Endpoint
GET /membershipsAuthentication
Requires a valid JWT access token.
Authorization: Bearer eyJhbGciOiJSUzI1NiJ9...Example Request
curl "https://edge.tiquo.app/api/client/v1/memberships" \
-H "Authorization: Bearer eyJhbGciOiJSUzI1NiJ9..."Response
{
"success": true,
"data": {
"memberships": [
{
"id": "membership_123",
"planId": "plan_gold",
"name": "Gold Member",
"description": "Priority booking and guest passes",
"type": "paid",
"price": 2500,
"currency": "GBP",
"billingPeriod": "monthly",
"status": "active",
"paymentStatus": "paid",
"startDate": 1749988800000,
"renewalDate": 1784116800000,
"features": ["Priority booking", "Guest passes"],
"color": "#d4af37",
"icon": "G",
"isCurrent": true
}
],
"availablePlans": [
{
"id": "plan_gold",
"name": "Gold",
"description": "Priority booking and guest passes",
"slug": "gold",
"type": "paid",
"price": 2500,
"currency": "GBP",
"billingPeriod": "monthly",
"features": ["Priority booking", "Guest passes"],
"color": "#d4af37",
"icon": "G",
"isPopular": true,
"isCurrent": true,
"signupUrl": "https://book.tiquo.app/embed/membership/plan_gold"
}
]
}
}Prices are integer minor units. For example, 2500 with currency GBP represents £25.00.
Membership Object
| Field | Type | Description |
|---|---|---|
id | string | Customer membership ID |
planId | string | Membership plan ID |
name | string | Membership plan name |
description | string or null | Public plan description |
type | string | free or paid |
price | integer | Membership price in minor currency units |
currency | string | ISO currency code |
billingPeriod | string | Billing interval such as monthly, yearly, or one_time |
status | string | active, inactive, expired, cancelled, or suspended |
paymentStatus | string | Membership payment status |
startDate | integer | Start timestamp in milliseconds |
endDate | integer or null | End timestamp in milliseconds |
renewalDate | integer or null | Next renewal timestamp in milliseconds |
trialEndDate | integer or null | Trial end timestamp in milliseconds |
features | string[] | Public membership features |
color | string or null | Display color configured on the plan |
icon | string or null | Display icon configured on the plan |
isCurrent | boolean | Whether the record is the current active membership |
Available Plan Object
availablePlans contains active, public plans that apply to customers. Company-only and private plans are excluded.
| Field | Type | Description |
|---|---|---|
id | string | Membership plan ID |
name | string | Plan name |
description | string or null | Public plan description |
slug | string | URL-friendly plan slug |
type | string | free or paid |
price | integer | Default price in minor currency units |
currency | string | ISO currency code |
billingPeriod | string | Default billing interval |
features | string[] | Public plan features |
color | string or null | Display color |
icon | string or null | Display icon |
isPopular | boolean | Whether the plan is marked as popular |
isCurrent | boolean | Whether the customer currently holds this plan |
signupUrl | string | Membership signup embed URL |
JavaScript
const response = await fetch(
'https://edge.tiquo.app/api/client/v1/memberships',
{
headers: {
Authorization: `Bearer ${accessToken}`,
},
}
);
const result = await response.json();
if (result.success) {
console.log(result.data.memberships);
console.log(result.data.availablePlans);
}With the Hosted Package, use window.Tiquo.getMemberships() or the data-tiquo-memberships and data-tiquo-membership-plans collection attributes instead of managing the access token directly.
Errors
| Status | Description |
|---|---|
401 | Missing, invalid, or expired access token |
500 | Internal server error |