Skip to main content
GET
/
api
/
billing
/
products
{
  "Records": [
    {}
  ],
  "CurrentPage": 123,
  "CurrentPageSize": 123,
  "CurrentOrderField": "<string>",
  "CurrentSortDirection": 123,
  "FirstItem": 123,
  "LastItem": 123,
  "TotalItems": 123,
  "TotalPages": 123,
  "HasNextPage": true,
  "HasPreviousPage": true
}
A Product represents an item that can be sold to customers. Products can be sold via contracts (ContractProduct entity), added to bookings (BookingProduct entity), or purchased directly (CoworkerProduct entity). Products support both one-off sales and recurring charges. Recurring charges can be set to daily, weekly, monthly, or yearly frequencies, or charged every time a contract is invoiced. For invoice-linked recurring charges, prefer using ContractProduct to associate the sale directly with a specific contract rather than relying on the customer’s MainContract. Use AvailableAs to control whether a product can be sold as a one-off purchase, a recurring charge, or both. The SystemProductType field categorises the product (e.g. day pass, credit bundle, booking product, stationery, or other). Products can optionally track stock levels, be restricted to specific pricing plans (tariffs), and be limited to members or contacts only.

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 Product-List role.

Enums

ValueName
0None
1DayPass
2CreditBundle
3Stationery
4BookingFeature
5BookingProducts
99Other
ValueName
0None
1RecurrentOrOneOff
2OnlyRecurrent
3OnlyOneOff

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

Product_Business
integer
Filter by Business Id.
Product_Business_Name
string
Filter by business name.
Product_Name
string
Filter by product name.
Product_SystemProductType
integer
Filter by category of the product: DayPass, CreditBundle, Stationery, BookingFeature, BookingProducts, or Other.
Product_Description
string
Filter by product description.
Product_InvoiceLineDisplayAs
string
Filter by custom text shown on the invoice line instead of the product name.
Product_Sku
string
Filter by sKU code.
Product_Tags
string
Filter by tags.
Product_DisplayOrder
integer
Filter by display order.
Product_Price
number
Filter by product price.
Product_Visible
boolean
Filter by whether the product is visible to customers on the members portal and mobile app.
Product_SyncToSquare
boolean
Filter by sync to Square.
Product_Currency
integer
Filter by Currency Id.
Product_Currency_Code
string
Filter by currency code.
Product_TaxRate
integer
Filter by Tax Rate Id.
Product_ReducedTaxRate
integer
Filter by Reduced Tax Rate Id.
Product_ExemptTaxRate
integer
Filter by Exempt Tax Rate Id.
Product_FinancialAccount
integer
Filter by Financial Account Id.
Product_AvailableAs
integer
Filter by controls whether the product can be sold as a one-off purchase, a recurring charge, or both (RecurrentOrOneOff, OnlyRecurrent, OnlyOneOff).
Product_OnlyForContacts
boolean
Filter by restrict purchase to contacts (customers without an active contract).
Product_OnlyForMembers
boolean
Filter by restrict purchase to customers with an active contract (members).
Product_Archived
boolean
Filter by whether the product is archived. Archived products cannot be sold but existing charges remain active.
Product_Starred
boolean
Filter by mark the product as featured or highlighted.
Product_TrackStock
boolean
Filter by enable stock tracking for this product. When enabled, each sale reduces the stock count.
Product_AllowNegativeStock
boolean
Filter by allow sales to continue even when stock reaches zero.
Product_CurrentStock
integer
Filter by current stock level.
Product_StockAlertLevel
integer
Filter by stock level at which a low-stock alert is triggered.
Product_ApplyProRating
boolean
Filter by whether to pro-rate the price when the product is added or removed part-way through a billing period.
Product_ImageFileName
string
Filter by Image File Name.
Product_NewImageUrl
string
Filter by New Image Url.
Product_ClearImage
boolean
Filter by Clear Image File.
Product_InvoiceCoworker
boolean
Filter by whether to invoice the customer directly rather than their company or team.
Product_SyncToNexKiosk
boolean
Filter by sync to NexKiosk.
Product_CreateDeliveryWhenPurchased
boolean
Filter by automatically create a delivery record for the customer when this product is purchased.

Range Filters

from_Product_DisplayOrder
integer
Filter by display order greater than or equal to this value.
to_Product_DisplayOrder
integer
Filter by display order less than or equal to this value.
from_Product_Price
number
Filter by product price greater than or equal to this value.
to_Product_Price
number
Filter by product price less than or equal to this value.
from_Product_CurrentStock
integer
Filter by current stock level greater than or equal to this value.
to_Product_CurrentStock
integer
Filter by current stock level less than or equal to this value.
from_Product_StockAlertLevel
integer
Filter by stock level at which a low-stock alert is triggered greater than or equal to this value.
to_Product_StockAlertLevel
integer
Filter by stock level at which a low-stock alert is triggered less than or equal to this value.
from_Product_CreatedOn
string
Filter records created on or after this date. Format: YYYY-MM-DDTHH:mm.
to_Product_CreatedOn
string
Filter records created on or before this date. Format: YYYY-MM-DDTHH:mm.
from_Product_UpdatedOn
string
Filter records updated on or after this date. Format: YYYY-MM-DDTHH:mm.
to_Product_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/products?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/products?Product_Name=example-value&orderBy=Name&dir=1" \
  -H "Authorization: Bearer YOUR_TOKEN"

Range filters

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

Response

200

Records
Product[]
The list of Product records matching the query. See the Get one Product endpoint for the full list of properties returned for each record.
Partial records — The listing endpoint returns a summary representation of each Product. The following fields are not included in the Records[] response: DisplayOrder, AvailableAs, OnlyForContacts, OnlyForMembers, InvoiceCoworker.To get all fields, fetch the full record using the Get one Product 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,
      "BusinessName": null,
      "Name": "",
      "SystemProductType": 0,
      "Description": "",
      "InvoiceLineDisplayAs": null,
      "Sku": null,
      "Tags": null,
      "DisplayOrder": 0,
      "Price": 0,
      "Visible": false,
      "SyncToSquare": false,
      "CurrencyId": 0,
      "CurrencyCode": null,
      "TaxRateId": null,
      "ReducedTaxRateId": null,
      "ExemptTaxRateId": null,
      "FinancialAccountId": null,
      "AvailableAs": 0,
      "OnlyForContacts": false,
      "OnlyForMembers": false,
      "Tariffs": [],
      "Archived": false,
      "Starred": false,
      "TrackStock": false,
      "AllowNegativeStock": false,
      "CurrentStock": null,
      "StockAlertLevel": null,
      "ApplyProRating": false,
      "ImageFileName": null,
      "NewImageUrl": null,
      "ClearImageFile": null,
      "InvoiceCoworker": false,
      "SyncToNexKiosk": false,
      "CreateDeliveryWhenPurchased": false,
      "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": "Product 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
}