Skip to main content
GET
/
api
/
public
/
coworkers
/
profiles
/
current
/
benefits
{
  "Personal": {},
  "Personal.BookingCredits": [
    {}
  ],
  "Personal.BookingCredits[].Id": 123,
  "Personal.BookingCredits[].Name": "<string>",
  "Personal.BookingCredits[].TotalCredit": 123,
  "Personal.BookingCredits[].RemainingCredit": 123,
  "Personal.BookingCredits[].CaneBeUsedForBookings": true,
  "Personal.BookingCredits[].CaneBeUsedForEvents": true,
  "Personal.BookingCredits[].IsUniversalCredit": true,
  "Personal.BookingCredits[].IsFromTariff": true,
  "Personal.BookingCredits[].ExpireDate": {},
  "Personal.ExtraServices": [
    {}
  ],
  "Personal.ExtraServices[].Id": 123,
  "Personal.ExtraServices[].ExtraService.Id": 123,
  "Personal.ExtraServices[].ExtraService.Name": "<string>",
  "Personal.ExtraServices[].ExtraService.IsPrintingCredit": true,
  "Personal.ExtraServices[].TotalUses": 123,
  "Personal.ExtraServices[].RemainingUses": 123,
  "Personal.ExtraServices[].ChargePeriod": "<string>",
  "Personal.ExtraServices[].IsFromTariff": true,
  "Personal.ExtraServices[].ExpireDate": {},
  "Personal.TimePasses": [
    {}
  ],
  "Personal.TimePasses[].Id": 123,
  "Personal.TimePasses[].TimePass.Id": 123,
  "Personal.TimePasses[].TimePass.Name": "<string>",
  "Personal.TimePasses[].TotalUses": {},
  "Personal.TimePasses[].RemainingUses": {},
  "Personal.TimePasses[].Used": true,
  "Personal.TimePasses[].IsFromTariff": true,
  "Personal.TimePasses[].ExpireDate": {},
  "Team": {},
  "401 Unauthorized": {}
}

Get Customer Benefits

Returns all plan benefits currently available to the active customer profile. Benefits are granted through active plan (tariff) subscriptions and include booking credits, extra services (such as printing), and time passes. The portal uses this to display the benefits panel on the My Plans page and to gate access to credit-based features.

Authentication

Requires a valid customer bearer token.

Query Parameters

_shape
string
Comma-separated list of field paths to include in the response. When provided, only the specified fields are returned — useful for reducing payload size. Supports nested paths using dot notation.

Response

The response is split into Personal benefits (belonging to the individual profile) and Team benefits (shared across the customer’s team).
Personal
object
Benefits belonging to the individual customer profile.
Personal.BookingCredits
array
Booking credit allowances granted by active plans.
Personal.BookingCredits[].Id
number
Unique identifier for the booking credit record.
Personal.BookingCredits[].Name
string
Display name of the booking credit allowance.
Personal.BookingCredits[].TotalCredit
number
Total credit amount granted (in the location’s currency).
Personal.BookingCredits[].RemainingCredit
number
Remaining credit balance available to spend.
Personal.BookingCredits[].CaneBeUsedForBookings
boolean
true when this credit can be applied to room and desk bookings.
Personal.BookingCredits[].CaneBeUsedForEvents
boolean
true when this credit can be applied to event ticket purchases.
Personal.BookingCredits[].IsUniversalCredit
boolean
true when this credit applies to all resource types.
Personal.BookingCredits[].IsFromTariff
boolean
true when this credit was granted by an active plan subscription rather than manually assigned.
Personal.BookingCredits[].ExpireDate
string | null
ISO 8601 datetime when this credit expires. null if it does not expire.
Personal.ExtraServices
array
Extra service allowances (e.g. printing credits) granted by active plans.
Personal.ExtraServices[].Id
number
Unique identifier for the extra service record.
Personal.ExtraServices[].ExtraService.Id
number
Identifier of the extra service type.
Personal.ExtraServices[].ExtraService.Name
string
Display name of the extra service.
Personal.ExtraServices[].ExtraService.IsPrintingCredit
boolean
true when this service is a printing credit (e.g. PaperCut integration).
Personal.ExtraServices[].TotalUses
number
Total number of uses granted.
Personal.ExtraServices[].RemainingUses
number
Remaining uses available.
Personal.ExtraServices[].ChargePeriod
string
How uses are measured: "Minutes", "Days", "Weeks", "Months", "Uses", or "FourWeekMonths".
Personal.ExtraServices[].IsFromTariff
boolean
true when granted by an active plan subscription.
Personal.ExtraServices[].ExpireDate
string | null
ISO 8601 expiry datetime. null if it does not expire.
Personal.TimePasses
array
Time pass allowances granted by active plans.
Personal.TimePasses[].Id
number
Unique identifier for the time pass record.
Personal.TimePasses[].TimePass.Id
number
Identifier of the time pass type.
Personal.TimePasses[].TimePass.Name
string
Display name of the time pass.
Personal.TimePasses[].TotalUses
number | null
Total number of uses granted. null for unlimited passes.
Personal.TimePasses[].RemainingUses
number | null
Remaining uses. null for unlimited passes.
Personal.TimePasses[].Used
boolean
true when this specific time pass instance has been used.
Personal.TimePasses[].IsFromTariff
boolean
true when granted by an active plan subscription.
Personal.TimePasses[].ExpireDate
string | null
ISO 8601 expiry datetime. null if it does not expire.
Team
object
Benefits shared with the customer’s team. Contains the same structure as Personal (BookingCredits, ExtraServices, TimePasses).

Example Response

{
  "Personal": {
    "BookingCredits": [
      {
        "Id": 5,
        "Name": "Monthly Booking Allowance",
        "TotalCredit": 200.0,
        "RemainingCredit": 145.5,
        "CaneBeUsedForBookings": true,
        "CaneBeUsedForEvents": false,
        "IsUniversalCredit": false,
        "IsFromTariff": true,
        "ExpireDate": "2026-04-30T23:59:59Z"
      }
    ],
    "ExtraServices": [],
    "TimePasses": [
      {
        "Id": 12,
        "TimePass": { "Id": 3, "Name": "Day Pass" },
        "TotalUses": 5,
        "RemainingUses": 3,
        "Used": false,
        "IsFromTariff": true,
        "ExpireDate": null
      }
    ]
  },
  "Team": {
    "BookingCredits": [],
    "ExtraServices": [],
    "TimePasses": []
  }
}

TypeScript Integration

import endpoints from '@/api/endpoints'
import { MyBenefits } from '@/types/public/billing/MyBenefits'
import { useData } from '@/api/fetchData'
import { createShape } from '@/helpers/shape-helper'

const shape = createShape<MyBenefits>()([
  'Personal.BookingCredits.Id',
  'Personal.BookingCredits.Name',
  'Personal.BookingCredits.RemainingCredit',
  'Personal.TimePasses.Id',
  'Personal.TimePasses.TimePass.Name',
  'Personal.TimePasses.RemainingUses',
])

const { resource: benefits } = useData<MyBenefits>(httpClient, endpoints.coworkers.benefits, {
  shape: shape.fields,
})

Usage in Portal

ContextSource file
My Plans page — benefits panelsrc/views/user/plans/useMyBenefitsData.ts
Benefits display componentsrc/views/user/plans/components/MyBenefitsSection.tsx

Error Responses

401 Unauthorized
error
The bearer token is missing, expired, or invalid.
MethodEndpointDescription
GET/api/public/coworkers/profilesList all profiles for the current session
GET/api/public/plans/myList active plans for the current customer
PUT/api/public/coworkers/profiles/currentSwitch the active profile