---
title: Services, prices and currency
summary: A service is a line of a branch's price list — name, duration, price and who and what is busy while it is done. Each branch has its own price list and its own currency.
tools: [talemo_list_services, talemo_create_service, talemo_update_service, talemo_deactivate_service, talemo_activate_service, talemo_delete_service, talemo_update_branch, talemo_get_zone_currency]
related: [service-groups, who-does-what, booking-rules, service-languages, visits, resources]
search: [price list, service menu, duration, currency]
---

# Services, prices and currency

A service says what the business does, how long it takes and what it costs. The
list lives in the section **Services and prices** of the left panel (it is there
while the Client booking kit is installed). On the left of the section are the
service groups and the item **Nobody does it**, and the list has the column **Who
does it** with circles of resources. Every branch has its own price list, and a
service is not shared between branches.

## Fields of a service

- **Name**. Two services of one price list cannot have the same name.
- **Description**, optional.
- **Group**, optional: the heading the service stands under in the price list, like "Manicure". A
  service stands in one group or in none (see [Service groups](service-groups.md)).
- **Takes** — how long the master and the other resources are busy, in multiples
  of five minutes. Cleanup after a visit is not part of it: the booking rules add
  it for masters, places and devices, not for services (see [Booking rules](booking-rules.md)).
- **Price**, optional. A service without a price shows as "no price".
- **What it needs** — who and what is busy while the service is done: at least one
  of three — master, place, device. A service takes everything it needs at once. If
  a place or a device is not free, the time is not offered: it takes everything at
  once or nothing. A place joins what the services need by itself when a place of the
  branch gets its first schedule, so until then a service does not need one: a place added
  without a schedule changes nothing.

Which resources actually do the service is set separately: by the item **Who does
it** of the “…” menu of a row or on the card of a resource (see
[Who does what](who-does-what.md)).

## Price and currency

A price is a number in the currency of the branch, for example 2600 or 2600.50;
the number of decimals follows the currency. A branch has one currency, and
prices cannot be entered until it is chosen. **Settings → Branches**, the branch,
**Currency of prices**. The tool `talemo_get_zone_currency` suggests a currency by a
time zone, and `talemo_update_branch` sets it.

The currency can be changed later but not removed. A change does not convert
anything: the numbers stay, so 2600.50 becomes 2601 in a currency without decimals, and
the price list must be checked and rewritten by hand. Other branches keep their
own currencies.

The price and the currency are copied into a visit when it is booked. Changing the
price list does not change visits already booked (see [Visits](visits.md)).

A role can be denied the field Price: such a person sees the list without prices
and cannot change them.

## Deactivating, activating, deleting

- **Deactivate** removes a service from the price list and from booking. What is
  already booked stays with the service and its price. The marks of who does it
  stay too.
- **Activate** returns it. It is refused if the price list already has another
  active service with the same name.
- **Delete** works only for a service that was never booked. Otherwise
  deactivate it.

Deactivated services are on the **Deactivated** card.

## Who can do it

Viewing is a branch-level right of the Administrator and Accountant roles;
adding, changing, deactivating and deleting is the Administrator's. A role limited
to some branches works with the price lists of those branches. Without the Client
booking kit the price list is unavailable.

## Tools and refusals

- `talemo_list_services` shows the price list of a business or one branch: for each service its name and description, duration in minutes, price as a decimal in the currency of the branch, what it takes (`needs`) and the resources that can do it (`fits`: the `resource_id`, the `role` and the `name` of each). A price a role may not see is missing. With `lang` the name and description come in that language together with the language they are really in. Tell a client a service and its price with that value, word for word, never with a translation of your own. The group of a service is `group` (`group_id`, `name`, `position`); the price list comes group by group in the order the business set, and services without a group last.
- `talemo_create_service` takes `branch_id`, `name`, `duration_minutes`, `needs` (what of the kit it takes: `master`, `place`, `device`) and, optionally, `description`, `price`, `group_id` (a group of its branch) and the translations `name_tr` and `description_tr`. A price is a decimal in the currency of the branch, like `"2600.50"`. A branch without a currency takes no prices: status 409, code `service.currency_required`. Set the currency with `talemo_update_branch` first; `talemo_get_zone_currency` names the usual one for the time zone of the branch, and that is a question for the person, never a value to set on your own. A name already in the price list is refused with `record.duplicate`. Until a place of the branch has a schedule, a `place` in `needs` is not recorded and the answer names the roles that are: do not add a place to the branch for the sake of a service, because the first schedule of a place is taken by all the services of the branch at once. A service made only of a place keeps it.
- `talemo_update_service` changes what is named; the rest stays. The price changes at once, and visits already booked keep their price. What is taken out of `needs` stops doing the service: the marks of such resources (masters, places or devices) are removed. A place in `needs` is recorded only once a place of the branch has a schedule, as in `talemo_create_service`. `name_tr` and `description_tr` are whole maps: a language left out loses its translation. `group_id` puts a service in a group of its branch, an empty string takes it out of its group, and a field left out keeps it.
- A new currency keeps the numbers of the prices and converts nothing: tell the person before `talemo_update_branch` changes it.
- `talemo_deactivate_service` takes a service out of the price list and out of booking; what is booked stays. `talemo_activate_service` brings it back and is refused with status 409, code `record.duplicate` while the list has another service of that name. A deactivated service is not changed: `service.deactivated`.
- `talemo_delete_service` deletes only a service that was never booked. A booked one is refused with status 409, code `service.has_history` and `params.count`: deactivate it. Ask the person before deleting; `dry_run` says how many times it was booked.
- Who does a service is set separately: places and devices do the services that fit them at once, a master only once marked with `talemo_add_service_fit`. Ask the person who can do what.
