Skip to main content
POST
Create ProductExtraService
A ProductExtraService links an ExtraService to a Product. The meaning of UsesIncluded depends on the type of the linked extra service:
  • Booking time (ExtraService with IsPrintingCredit = false) — customers receive an allowance of booking time for the resource type(s) associated with that extra service. For example, a product called “Hot Desk Bundle” might include 2 hours of meeting room usage — achieved by linking a “Meeting Room Hourly” extra service with UsesIncluded = 120.
  • Printing credit (ExtraService with IsPrintingCredit = true) — customers receive a number of print jobs/pages. UsesIncluded is the number of printing credits included. The linked extra service must have ChargePeriod = Uses and Price = 1.
Unit of UsesIncluded: The unit is determined by the ChargePeriod of the linked ExtraService:
  • Minutes (1): UsesIncluded is in minutes
  • Days (2): UsesIncluded is in days
  • Weeks (3): UsesIncluded is in weeks
  • Months (4): UsesIncluded is in months
  • Uses (5): UsesIncluded is in individual uses (e.g., print credits)
  • FourWeekMonths (6): UsesIncluded is in 4-week periods
When is the credit released? The credit is released as a CoworkerBookingCredit on the customer’s account when the product is purchased:
  • Admin sale (via CoworkerProduct): An admin can choose to release the credit before payment by setting ActivateNow = true when selling the product.
  • Member purchase (online, active contract): Credits are released immediately unless the Store.AlwaysInvoice business setting is enabled, in which case credits release after payment.
  • Contact purchase (online, no active contract): Credits are released after the product is paid.

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 ProductExtraService-Create role.

Enums

Request Body

Required Fields

integer
required
ID of the product linked to this record.
integer
required
ID of the extra service linked to this record. Check IsPrintingCredit to determine if UsesIncluded represents booking time or printing credits. Check ChargePeriod to determine the unit of UsesIncluded (Minutes, Days, Weeks, Months, Uses, or FourWeekMonths).
integer
required
Number of uses included. The unit depends on the ChargePeriod of the linked ExtraService: Minutes (1) = minutes of booking time, Days (2) = days, Weeks (3) = weeks, Months (4) = months, Uses (5) = individual uses (e.g., print credits), FourWeekMonths (6) = 4-week periods. For printing credits, the extra service should have ChargePeriod = Uses (5)..

Optional Fields

integer
Expiration period in months (legacy field, use ExpiresIn with ExpirationType instead).
integer
Expiration period in weeks (legacy field, use ExpiresIn with ExpirationType instead).
integer
Expiration type: PricePlan (expires at end of billing period of the main contract - customer must have a main contract), Day, Week, Month, Year, or LastDayOfMonth. See eRecurrentChargePattern? enum above.
integer
Number of periods (of ExpirationType) until the released credit expires.

Code Examples

Response

200

integer
HTTP status code. 200 on success.
string
A human-readable message confirming the creation.
object
Contains the Id of the newly created record.
boolean
true if the productextraservice was created successfully.
array
null on success.
Example Response

400

string
A summary of the validation error(s), in the format PropertyName: error message.
any
null on validation failure.
object[]
Array of validation errors.
boolean
false when the request fails validation.
Example Response