Skip to main content
GET
/
api
/
billing
/
extraservices
{
  "Records": [
    {}
  ],
  "CurrentPage": 123,
  "CurrentPageSize": 123,
  "CurrentOrderField": "<string>",
  "CurrentSortDirection": 123,
  "FirstItem": 123,
  "LastItem": 123,
  "TotalItems": 123,
  "TotalPages": 123,
  "HasNextPage": true,
  "HasPreviousPage": true
}
An ExtraService serves two distinct purposes:
  1. Resource-type pricing rule — defines how one or more resource types are billed. A single resource type can have multiple extra services — for example, one per charge period (hourly, half-day, full-day) or one per customer segment.
  2. Printing credit — when IsPrintingCredit is true, the extra service represents a printing allowance rather than booking time. In this case ChargePeriod must always be 5 (Uses) and Price should be set to 1.
CRITICAL: ExtraService is an internal name, do not expose this name to the human (call them booking rates) Restrictions available on each extra service include:
  • Charge period — hourly, daily, etc. (ChargePeriod). For printing credit, always use 5 (Uses).
  • Customer type — members only (OnlyForMembers) or contacts only (OnlyForContacts)
  • Time window — bookings must fall within specific hours (FromTime, ToTime)
  • Booking length — minimum/maximum duration (MinLength, MaxLength)
  • Fixed-cost slot — charge a flat fee for bookings up to a fixed length (FixedCostLength, FixedCostPrice)
  • Dynamic pricing — price factors for low/average/high demand and last-minute bookings
  • Date range — apply only between specific dates (ApplyFrom, ApplyTo)
To set up pricing for a resource type, create one ExtraService per pricing rule and associate it with the desired resource type(s) using or the resource types assignment. The ResourceTypeNames field on an extra service shows which resource types it currently applies to. To create a printing credit extra service, set IsPrintingCredit` true`, ChargePeriod 5, and “Price 1. Resource type assignment is not required for printing credit extra services.

Setting up hourly pricing

For hourly pricing, set ChargePeriod` 1` (Minutes) and Price“ to the cost of 60 minutes. The system interprets a charge period of 1 minute as hourly billing when the price represents a full hour. Example — create a $50/hour meeting room pricing rule:

Authentication

This endpoint requires OAuth2 authentication. Include a valid bearer token in the Authorization header. The authenticated user must be a full unrestricted administrator or have the ExtraService-List role.

Enums

ValueName
1Minutes
2Days
3Weeks
4Months
5Uses
6FourWeekMonths
ValueName
1Disabled
2Fixed
3Gradual

Query Parameters

Pagination & Sorting

page
integer
default:"1"
The page number to retrieve.
size
integer
default:"25"
The number of records per page.
orderBy
string
The property name to sort results by (e.g. Name, CreatedOn).
dir
integer
Sort direction. 1 for ascending, -1 for descending.

Filters

ExtraService_Business
integer
Filter by Business Id.
ExtraService_Name
string
Filter by extra service name.
ExtraService_Description
string
Filter by description.
ExtraService_InvoiceLineDisplayAs
string
Filter by invoice line display text.
ExtraService_Visible
boolean
Filter by whether the price is visible on the portal and app.
ExtraService_DisplayOrder
integer
Filter by display order.
ExtraService_Price
number
Filter by price.
ExtraService_CreditPrice
number
Filter by credit price.
ExtraService_ChargePeriod
integer
Filter by charge period.
ExtraService_MaximumPrice
number
Filter by maximum price cap.
ExtraService_IsDefaultPrice
boolean
Filter by use as the default price for matched resource types if more than one price applies.
ExtraService_UsePerNightPricing
boolean
Filter by use per-night pricing.
ExtraService_Currency
integer
Filter by Currency Id.
ExtraService_Currency_Code
string
Filter by currency code.
ExtraService_TaxRate
integer
Filter by Tax Rate Id.
ExtraService_ReducedTaxRate
integer
Filter by Reduced Tax Rate Id.
ExtraService_ExemptTaxRate
integer
Filter by Exempt Tax Rate Id.
ExtraService_FinancialAccount
integer
Filter by Financial Account Id.
ExtraService_FromTime
integer
Filter by start time restriction (minutes from midnight).
ExtraService_ToTime
integer
Filter by end time restriction (minutes from midnight).
ExtraService_MinLength
integer
Filter by minimum booking length (minutes).
ExtraService_MaxLength
integer
Filter by maximum booking length (minutes).
ExtraService_OnlyWithinAvailableTimes
boolean
Filter by only apply within the resource’s available times.
ExtraService_FixedCostLength
integer
Filter by fixed cost booking length threshold (minutes).
ExtraService_FixedCostPrice
number
Filter by fixed cost price applied once the threshold is reached.
ExtraService_OnlyForContacts
boolean
Filter by only available for contacts.
ExtraService_OnlyForMembers
boolean
Filter by only available for members.
ExtraService_IsBookingCredit
boolean
Filter by price uses booking credits.
ExtraService_IsPrintingCredit
boolean
Filter by price uses printing credits.
ExtraService_ApplyChargeToVisitors
boolean
Filter by apply charge to visitors.
ExtraService_PriceFactorLowDemand
number
Filter by price factor for low demand periods.
ExtraService_PriceFactorAverageDemand
number
Filter by price factor for average demand periods.
ExtraService_PriceFactorHighDemand
number
Filter by price factor for high demand periods.
ExtraService_PriceFactorLastMinute
number
Filter by price factor for last-minute bookings.
ExtraService_LastMinutePeriodMinutes
integer
Filter by last-minute period threshold (minutes before booking).
ExtraService_LastMinuteAdjustmentType
integer
Filter by last-minute discount type.
ExtraService_ApplyFrom
string
Filter by date from which this price applies.
ExtraService_ApplyTo
string
Filter by date until which this price applies.
ExtraService_ResourceTypeNames
string
Filter by comma-separated names of associated resource types.

Range Filters

from_ExtraService_DisplayOrder
integer
Filter by display order greater than or equal to this value.
to_ExtraService_DisplayOrder
integer
Filter by display order less than or equal to this value.
from_ExtraService_Price
number
Filter by price greater than or equal to this value.
to_ExtraService_Price
number
Filter by price less than or equal to this value.
from_ExtraService_CreditPrice
number
Filter by credit price greater than or equal to this value.
to_ExtraService_CreditPrice
number
Filter by credit price less than or equal to this value.
from_ExtraService_MaximumPrice
number
Filter by maximum price cap greater than or equal to this value.
to_ExtraService_MaximumPrice
number
Filter by maximum price cap less than or equal to this value.
from_ExtraService_FromTime
integer
Filter by start time restriction (minutes from midnight) greater than or equal to this value.
to_ExtraService_FromTime
integer
Filter by start time restriction (minutes from midnight) less than or equal to this value.
from_ExtraService_ToTime
integer
Filter by end time restriction (minutes from midnight) greater than or equal to this value.
to_ExtraService_ToTime
integer
Filter by end time restriction (minutes from midnight) less than or equal to this value.
from_ExtraService_MinLength
integer
Filter by minimum booking length (minutes) greater than or equal to this value.
to_ExtraService_MinLength
integer
Filter by minimum booking length (minutes) less than or equal to this value.
from_ExtraService_MaxLength
integer
Filter by maximum booking length (minutes) greater than or equal to this value.
to_ExtraService_MaxLength
integer
Filter by maximum booking length (minutes) less than or equal to this value.
from_ExtraService_FixedCostLength
integer
Filter by fixed cost booking length threshold (minutes) greater than or equal to this value.
to_ExtraService_FixedCostLength
integer
Filter by fixed cost booking length threshold (minutes) less than or equal to this value.
from_ExtraService_FixedCostPrice
number
Filter by fixed cost price applied once the threshold is reached greater than or equal to this value.
to_ExtraService_FixedCostPrice
number
Filter by fixed cost price applied once the threshold is reached less than or equal to this value.
from_ExtraService_PriceFactorLowDemand
number
Filter by price factor for low demand periods greater than or equal to this value.
to_ExtraService_PriceFactorLowDemand
number
Filter by price factor for low demand periods less than or equal to this value.
from_ExtraService_PriceFactorAverageDemand
number
Filter by price factor for average demand periods greater than or equal to this value.
to_ExtraService_PriceFactorAverageDemand
number
Filter by price factor for average demand periods less than or equal to this value.
from_ExtraService_PriceFactorHighDemand
number
Filter by price factor for high demand periods greater than or equal to this value.
to_ExtraService_PriceFactorHighDemand
number
Filter by price factor for high demand periods less than or equal to this value.
from_ExtraService_PriceFactorLastMinute
number
Filter by price factor for last-minute bookings greater than or equal to this value.
to_ExtraService_PriceFactorLastMinute
number
Filter by price factor for last-minute bookings less than or equal to this value.
from_ExtraService_LastMinutePeriodMinutes
integer
Filter by last-minute period threshold (minutes before booking) greater than or equal to this value.
to_ExtraService_LastMinutePeriodMinutes
integer
Filter by last-minute period threshold (minutes before booking) less than or equal to this value.
from_ExtraService_ApplyFrom
string
Filter by date from which this price applies greater than or equal to this value. Format: YYYY-MM-DDTHH:mm.
to_ExtraService_ApplyFrom
string
Filter by date from which this price applies less than or equal to this value. Format: YYYY-MM-DDTHH:mm.
from_ExtraService_ApplyTo
string
Filter by date until which this price applies greater than or equal to this value. Format: YYYY-MM-DDTHH:mm.
to_ExtraService_ApplyTo
string
Filter by date until which this price applies less than or equal to this value. Format: YYYY-MM-DDTHH:mm.
from_ExtraService_CreatedOn
string
Filter records created on or after this date. Format: YYYY-MM-DDTHH:mm.
to_ExtraService_CreatedOn
string
Filter records created on or before this date. Format: YYYY-MM-DDTHH:mm.
from_ExtraService_UpdatedOn
string
Filter records updated on or after this date. Format: YYYY-MM-DDTHH:mm.
to_ExtraService_UpdatedOn
string
Filter records updated on or before this date. Format: YYYY-MM-DDTHH:mm.

Code Examples

Simple listing

curl -X GET \
  "https://spaces.nexudus.com/api/billing/extraservices?page=1&size=15&orderBy=Name&dir=1" \
  -H "Authorization: Bearer YOUR_TOKEN"

Filtering by Name

curl -X GET \
  "https://spaces.nexudus.com/api/billing/extraservices?ExtraService_Name=example-value&orderBy=Name&dir=1" \
  -H "Authorization: Bearer YOUR_TOKEN"

Range filters

curl -X GET \
  "https://spaces.nexudus.com/api/billing/extraservices?from_ExtraService_UpdatedOn=2025-01-01T00:00&to_ExtraService_UpdatedOn=2025-12-31T23:59&orderBy=UpdatedOn&dir=-1" \
  -H "Authorization: Bearer YOUR_TOKEN"

Response

200

Records
ExtraService[]
The list of ExtraService records matching the query. See the Get one ExtraService endpoint for the full list of properties returned for each record.
Partial records — The listing endpoint returns a summary representation of each ExtraService. The following fields are not included in the Records[] response: Description, Visible, DisplayOrder, CreditPrice, FromTime, ToTime, MinLength, MaxLength, OnlyWithinAvailableTimes, FixedCostLength, FixedCostPrice, IsBookingCredit, IsPrintingCredit, ApplyChargeToVisitors.To get all fields, fetch the full record using the Get one ExtraService endpoint.Important for updates: When updating a record via PUT, always retrieve the full record with a GET request first, apply your changes to that complete data, and then send the updated record. Do not use data from a listing response as the base for a PUT request, as missing fields may be unintentionally cleared.
CurrentPage
integer
Current page number.
CurrentPageSize
integer
Number of records per page.
CurrentOrderField
string
The field used for sorting.
CurrentSortDirection
integer
The sort direction (1 = ascending, -1 = descending).
FirstItem
integer
Index of the first item on the current page.
LastItem
integer
Index of the last item on the current page.
TotalItems
integer
Total number of matching records across all pages.
TotalPages
integer
Total number of pages.
HasNextPage
boolean
Whether there is a next page of results.
HasPreviousPage
boolean
Whether there is a previous page of results.
Example Response
{
  "Records": [
    {
      "BusinessId": 0,
      "Name": "",
      "Description": null,
      "InvoiceLineDisplayAs": null,
      "Visible": false,
      "DisplayOrder": 0,
      "ResourceTypes": [],
      "Price": 0,
      "CreditPrice": null,
      "ChargePeriod": 0,
      "MaximumPrice": null,
      "IsDefaultPrice": false,
      "UsePerNightPricing": false,
      "CurrencyId": 0,
      "CurrencyCode": null,
      "TaxRateId": null,
      "ReducedTaxRateId": null,
      "ExemptTaxRateId": null,
      "FinancialAccountId": null,
      "FromTime": null,
      "ToTime": null,
      "MinLength": null,
      "MaxLength": null,
      "OnlyWithinAvailableTimes": false,
      "FixedCostLength": null,
      "FixedCostPrice": null,
      "Tariffs": [],
      "OnlyForContacts": false,
      "OnlyForMembers": false,
      "IsBookingCredit": false,
      "IsPrintingCredit": false,
      "ApplyChargeToVisitors": false,
      "PriceFactorLowDemand": null,
      "PriceFactorAverageDemand": null,
      "PriceFactorHighDemand": null,
      "PriceFactorLastMinute": null,
      "LastMinutePeriodMinutes": null,
      "LastMinuteAdjustmentType": 0,
      "ApplyFrom": null,
      "ApplyTo": null,
      "ResourceTypeNames": null,
      "Teams": [],
      "Id": 87654321,
      "UpdatedOn": "2025-01-15T10:30:00Z",
      "CreatedOn": "2025-01-10T08:00:00Z",
      "UniqueId": "a1b2c3d4-e5f6-7890-abcd-ef1234567890",
      "UpdatedBy": "admin@example.com",
      "IsNew": false,
      "SystemId": null,
      "ToStringText": "ExtraService Example",
      "LocalizationDetails": null,
      "CustomFields": null
    }
  ],
  "CurrentPageSize": 15,
  "CurrentPage": 1,
  "CurrentOrderField": "Name",
  "CurrentSortDirection": 1,
  "FirstItem": 1,
  "HasNextPage": false,
  "HasPreviousPage": false,
  "LastItem": 1,
  "PageNumber": 1,
  "PageSize": 15,
  "TotalItems": 1,
  "TotalPages": 1
}