Updates an existing Product record. You must include the Id of the record to update along with all required fields.
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-Edit role.
Enums
eProductType — SystemProductType values
Value Name 0 None 1 DayPass 2 CreditBundle 3 Stationery 4 BookingFeature 5 BookingProducts 99 Other
eRecurrentProductOptions — AvailableAs values
Value Name 0 None 1 RecurrentOrOneOff 2 OnlyRecurrent 3 OnlyOneOff
Request Body
Required Fields
The Id of the Product record to update.
Optional Fields
Category of the product: DayPass, CreditBundle, Stationery, BookingFeature, BookingProducts, or Other. See eProductType enum above.
Custom text shown on the invoice line instead of the product name.
Whether the product is visible to customers on the members portal and mobile app.
Controls whether the product can be sold as a one-off purchase, a recurring charge, or both (RecurrentOrOneOff, OnlyRecurrent, OnlyOneOff). See eRecurrentProductOptions enum above.
Restrict purchase to contacts (customers without an active contract).
Restrict purchase to customers with an active contract (members).
Whether the product is archived. Archived products cannot be sold but existing charges remain active.
Mark the product as featured or highlighted.
Enable stock tracking for this product. When enabled, each sale reduces the stock count.
Allow sales to continue even when stock reaches zero.
Stock level at which a low-stock alert is triggered.
Whether to pro-rate the price when the product is added or removed part-way through a billing period.
Whether to invoice the customer directly rather than their company or team.
CreateDeliveryWhenPurchased
Automatically create a delivery record for the customer when this product is purchased.
Code Examples
curl -X PUT \
"https://spaces.nexudus.com/api/billing/products" \
-H "Authorization: Bearer YOUR_TOKEN" \
-H "Content-Type: application/json" \
-d '{
"BusinessId": 0,
"Name": "",
"Description": "",
"DisplayOrder": 0,
"Price": 0,
"CurrencyId": 0,
"Id": 87654321
}'
Response
200
HTTP status code. 200 on success.
A human-readable message confirming the update.
Contains the Id of the updated record.
true if the product was updated successfully.
{
"Status" : 200 ,
"Message" : "Product was successfully updated." ,
"Value" : {
"Id" : 87654321
},
"OpenInDialog" : false ,
"OpenInWindow" : false ,
"RedirectURL" : null ,
"JavaScript" : null ,
"UpdatedOn" : "2025-01-15T10:30:00Z" ,
"UpdatedBy" : "admin@example.com" ,
"Errors" : null ,
"WasSuccessful" : true
}
400
A summary of the validation error(s), in the format PropertyName: error message.
null on validation failure.
Array of validation errors. The value that was submitted for the field, or null if missing.
The validation error message.
The name of the property that failed validation.
false when the request fails validation.
{
"Message" : "Name: is a required field" ,
"Value" : null ,
"Errors" : [
{
"AttemptedValue" : null ,
"Message" : "is a required field" ,
"PropertyName" : "Name"
}
],
"WasSuccessful" : false
}