Skip to main content
PUT
/
api
/
billing
/
extraservices
Update ExtraService
curl --request PUT \
  --url https://spaces.nexudus.com/api/billing/extraservices \
  --header 'Authorization: Basic <encoded-value>' \
  --header 'Content-Type: application/json' \
  --data '
{
  "Id": 123,
  "BusinessId": 123,
  "Name": "<string>",
  "DisplayOrder": 123,
  "Price": 123,
  "ChargePeriod": 123,
  "CurrencyId": 123,
  "LastMinuteAdjustmentType": 123,
  "FromTime": 123,
  "ToTime": 123
}
'
{
  "Status": 123,
  "Message": "<string>",
  "Value": "<any>",
  "WasSuccessful": true,
  "Errors": [
    {
      "AttemptedValue": "<any>",
      "Message": "<string>",
      "PropertyName": "<string>"
    }
  ]
}

Documentation Index

Fetch the complete documentation index at: https://learn.nexudus.com/llms.txt

Use this file to discover all available pages before exploring further.

Updates an existing ExtraService 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 ExtraService-Edit role.

Enums

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

Request Body

Required Fields

Id
integer
required
The Id of the ExtraService record to update.
BusinessId
integer
required
ID of the business linked to this record.
Name
string
required
Extra service name.
DisplayOrder
integer
required
Display order.
Price
number
required
Unit price amount.
ChargePeriod
integer
required
Charge period.
CurrencyId
integer
required
ID of the currency linked to this record.
LastMinuteAdjustmentType
integer
required
Last-minute discount type.

Optional Fields

Description
string
Free-text description of this extra service.
InvoiceLineDisplayAs
string
Invoice line display text.
Visible
boolean
Whether the price is visible on the portal and app.
ResourceTypes
integer[]
List of resource types linked to this record.
AddedResourceTypes
integer[]
The added resource types value for this extra service.
RemovedResourceTypes
integer[]
The removed resource types value for this extra service.
CreditPrice
number
Credit price.
MaximumPrice
number
Maximum price cap.
IsDefaultPrice
boolean
Use as the default price for matched resource types if more than one price applies.
UsePerNightPricing
boolean
Use per-night pricing.
TaxRateId
integer
ID of the tax rate linked to this record.
ReducedTaxRateId
integer
ID of the reduced tax rate linked to this record.
ExemptTaxRateId
integer
ID of the exempt tax rate linked to this record.
FinancialAccountId
integer
ID of the financial account linked to this record.
FromTime
integer
Start time restriction (minutes from midnight).
ToTime
integer
End time restriction (minutes from midnight).
MinLength
integer
Minimum booking length (minutes).
MaxLength
integer
Maximum booking length (minutes).
OnlyWithinAvailableTimes
boolean
Only apply within the resource’s available times.
FixedCostLength
integer
Fixed cost booking length threshold (minutes).
FixedCostPrice
number
Fixed cost price applied once the threshold is reached.
Tariffs
integer[]
List of tariffs linked to this record.
AddedTariffs
integer[]
The added tariffs value for this extra service.
RemovedTariffs
integer[]
The removed tariffs value for this extra service.
OnlyForContacts
boolean
Only available for contacts.
OnlyForMembers
boolean
Only available for members.
IsBookingCredit
boolean
Price uses booking credits.
IsPrintingCredit
boolean
Price uses printing credits.
ApplyChargeToVisitors
boolean
Apply charge to visitors.
PriceFactorLowDemand
number
Price factor for low demand periods.
PriceFactorAverageDemand
number
Price factor for average demand periods.
PriceFactorHighDemand
number
Price factor for high demand periods.
PriceFactorLastMinute
number
Price factor for last-minute bookings.
LastMinutePeriodMinutes
integer
Last-minute period threshold (minutes before booking).
ApplyFrom
string
Date from which this price applies.
ApplyTo
string
Date until which this price applies.
ResourceTypeNames
string
Comma-separated names of associated resource types.
Teams
integer[]
List of teams linked to this record.
AddedTeams
integer[]
The added teams value for this extra service.
RemovedTeams
integer[]
The removed teams value for this extra service.

Children

TimeSlots
object[]
The days and times this extra service price is available for booking. The year, month and day component of FromTime/ToTime is always 1976-01-01.

Code Examples

curl -X PUT \
  "https://spaces.nexudus.com/api/billing/extraservices" \
  -H "Authorization: Bearer YOUR_TOKEN" \
  -H "Content-Type: application/json" \
  -d '{
    "BusinessId": 0,
    "Name": "",
    "DisplayOrder": 0,
    "Price": 0,
    "ChargePeriod": 0,
    "CurrencyId": 0,
    "LastMinuteAdjustmentType": 0,
    "Id": 87654321,
    "TimeSlots": [
        {
            "DayOfWeek": 0,
            "FromTime": "2025-01-15T10:30:00Z",
            "ToTime": "2025-01-15T10:30:00Z",
            "Available": null
        }
    ]
}'

Response

200

Status
integer
HTTP status code. 200 on success.
Message
string
A human-readable message confirming the update.
Value
object
Contains the Id of the updated record.
WasSuccessful
boolean
true if the extraservice was updated successfully.
Errors
array
null on success.
Example Response
{
  "Status": 200,
  "Message": "ExtraService 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

Message
string
A summary of the validation error(s), in the format PropertyName: error message.
Value
any
null on validation failure.
Errors
object[]
Array of validation errors.
WasSuccessful
boolean
false when the request fails validation.
Example Response
{
  "Message": "Name: is a required field",
  "Value": null,
  "Errors": [
    {
      "AttemptedValue": null,
      "Message": "is a required field",
      "PropertyName": "Name"
    }
  ],
  "WasSuccessful": false
}