# SOF25 - Create a service Call FrequencyRecommended usage: 60 per minuteMaximum usage: 60 per minute Endpoint: POST /api/mms/services ## Query parameters: - `shop_id` (integer) Use this parameter when your user has access to several shops. If not specified, the shop_id from your default shop will be used. ## Request fields (application/json): - `booking` (object) Service booking method. The type of the booking must reflect the associated Model's booking. By default, booking will be of type NO_BOOKING. - `booking.type` (string, required) Enum: "NO_BOOKING", "DATETIME_REQUEST", "SCHEDULED_EVENTS" - `category` (object, required) Service category - `category.code` (string, required) Service category code. The category must exist in the configuration. - `custom_attribute_values` (array) Service custom attributes values - `custom_attribute_values.code` (string, required) Custom attribute code. The attribute must exist in the configuration. - `custom_attribute_values.type` (string, required) Custom attribute type Enum: "BOOLEAN", "DATE_TIME", "INTEGER", "DECIMAL", "TEXT", "LONG_TEXT", "VALUE_LIST", "LINK", "VIDEO" - `custom_attribute_values.value` (object, required) - `date_availability_end` (string) Date when the service ends being available - `date_availability_start` (string) Date when the service starts being available - `description` (string) Service description - `inactive_reasons` (array) Reason why the service is inactive. Enum: "MANUALLY_DISABLED" - `location` (object) Service location method. The type of the location must reflect the associated Model's location. By default, location will be of type NO_LOCATION. - `model` (object, required) Service model - `model.code` (string, required) Service model code - `pricing` (object, required) Service pricing method - `pricing.options` (array) Service pricing options. - `pricing.options.code` (string, required) Pricing option identifier - `pricing.type` (string, required) Price type. It must be equal to the price type in the Model configuration. Enum: "FIXED_PRICE", "ESTIMATED_PRICE", "FIXED_PRICE_MULTI", "ESTIMATED_PRICE_MULTI" - `quantity` (object) Service quantity method. By default, quantity will be of type NO_QUANTITY. - `quantity.max_per_order` (integer) Maximum quantity per order - `service_tax_code` (string) Service tax code - `title` (string, required) Service title ## Response 201 fields (application/json): - `booking` (object, required) Service booking method - `booking.type` (string) Enum: "NO_BOOKING", "DATETIME_REQUEST", "SCHEDULED_EVENTS" - `category` (object, required) Service category - `category.code` (string, required) Category code - `category.label` (string, required) Category label - `code` (string, required) Service code - `consumption` (object, required) Service consumption method: how will the service be consumed ? - `consumption.type` (string, required) Type of consumption Enum: "VOUCHER", "CONFIRMATION_BY_SHOP" - `custom_attribute_values` (array, required) Service custom attributes values - `custom_attribute_values.code` (string, required) Custom attribute code - `custom_attribute_values.label` (string, required) Custom attribute label - `custom_attribute_values.type` (string, required) Custom attribute field type Enum: "BOOLEAN", "DATE_TIME", "INTEGER", "DECIMAL", "TEXT", "LONG_TEXT", "VALUE_LIST", "LINK", "VIDEO" - `custom_attribute_values.value` (object) Custom attribute field value - `date_availability_end` (string) Date when the service ends being available - `date_availability_start` (string) Date when the service starts being available - `date_created` (string, required) Service creation date - `date_updated` (string, required) Service update date - `description` (string) Service description - `inactive_reasons` (array, required) List of reasons why the service is inactive. If the service is active, this list is empty Enum: "MANUALLY_DISABLED", "ZERO_QUANTITY", "ORDER_REFUSED", "ORDER_ACCEPTANCE_TIMEOUT", "NOT_IN_AVAILABILITY_PERIOD", "SHOP_NOT_OPEN", "SHOP_SUSPENDED", "SHOP_CURRENCY_DISABLED", "MISSING_REQUIRED_FIELDS", "VALIDATION_NEEDED", "NO_SESSION" - `location` (object, required) Service location method: where the service will be provided ? - `medias` (array) All the medias associated to a service - `medias.mime_type` (string, required) Media Mime type - `medias.url` (string, required) Media URL - `model` (object, required) Service model - `model.code` (string, required) Service model code - `model.title` (string, required) Service model title - `pricing` (object, required) Service pricing method - `pricing.max_price_per_unit` (number, required) Maximum price at which the service will be provided. It's a price per unit. - `pricing.min_price_per_unit` (number, required) Minimum price at which the service will be provided. It's a price per unit. - `pricing.options` (array) Service pricing options. The list is ordered as configured by the operator. - `pricing.options.code` (string, required) Option code - `pricing.options.label` (string, required) Option label - `pricing.type` (string, required) Price type of the service.When the price type is FIXED_PRICE, the price defined when placing an order is final. The price cannot be modified.When the price type is ESTIMATED_PRICE, the price can be negotiated between the seller and the customer. The price can be updated by editing the pricing options of the order.When the price type is FIXED_PRICE_MULTI, the price defined when placing an order is final. The price cannot be modified. The price has multiple possibilities.When the price type is ESTIMATED_PRICE_MULTI, the price can be negotiated between the seller and the customer. The price can be updated by editing the pricing options of the order. The price has multiple possibilities. Enum: "FIXED_PRICE", "ESTIMATED_PRICE", "FIXED_PRICE_MULTI", "ESTIMATED_PRICE_MULTI" - `quantity` (object, required) Service quantity method - `quantity.max_per_order` (integer) Maximum quantity per order - `service_tax_code` (string) Service tax code - `title` (string, required) Service title