The service catalog endpoints give admin roles complete control over what offerings appear in the ServiciosYa platform. Staff can create new services, update their details, toggle their visibility, and (forDocumentation Index
Fetch the complete documentation index at: https://mintlify.com/CodexaCP/SERVICIOS-BACK/llms.txt
Use this file to discover all available pages before exploring further.
SUPER_ADMIN) logically delete them. Customers and admins use separate read endpoints: the admin listing exposes all services including inactive ones, while the customer-facing endpoint returns only active, non-deleted records. All endpoints are tenant-scoped — the companyID is resolved automatically from the authenticated user’s JWT claims.
POST /api/services
Creates a new service in the company’s catalog. Required role:SUPER_ADMIN, ADMIN_GENERAL, GESTOR_SUPREMO, or GESTOR
Request body
Display name of the service. Must be a non-empty string.
Optional free-text description shown to customers and staff.
Optional internal reference or SKU code for the service.
Customer-facing price in the company’s currency. Use a numeric value (e.g.
1500.00).Optional internal cost for margin tracking. Not exposed to customers.
Human-readable turnaround estimate (e.g.
"2 a 3 días hábiles").Must be one of the valid category values. The API normalises common variations — see the category normalisation note below.Accepted canonical values:
Escribania y legales, Presentacion de documentos, Pago de impuestos, patentes y otros, Traducciones legales, Delivery, Otros.When
true, service requests for this service may include an optional file attachment beyond the payment voucher. Defaults to false.Response
Returns200 OK with the auto-generated service identifier.
Example
PUT /api/services/{id}
Updates an existing service. All writable fields are replaced with the values supplied in the request body. Required role:SUPER_ADMIN, ADMIN_GENERAL, GESTOR_SUPREMO, or GESTOR
Path parameter
The
serviceID of the service to update.Request body
The body accepts the same fields as POST /api/services with the addition ofserviceID, which must match the path parameter.
Must equal the
{id} path parameter. The API returns 400 Bad Request if there is a mismatch.Updated display name.
Updated description.
Updated reference code.
Updated customer-facing price.
Updated internal cost.
Updated estimated turnaround text.
Updated category. Subject to the same normalisation rules as creation.
Updated attachment flag.
Response
Returns204 No Content on success.
Returns 400 Bad Request if serviceID in the body does not match the {id} path parameter.
PATCH /api/services/{id}/toggle
Toggles theisActive flag of a service. An active service becomes inactive, and an inactive service becomes active.
Required role: SUPER_ADMIN, ADMIN_GENERAL, GESTOR_SUPREMO, or GESTOR
Path parameter
The
serviceID of the service to toggle.Response
Returns204 No Content on success.
Deactivating a service removes it from the customer-facing
GET /api/services/available endpoint immediately. It does not affect any existing or in-progress service requests that reference it — those continue to show the service name and details from the time they were created.DELETE /api/services/{id}
Performs a logical deletion of a service by settingisDeleted = true. The record is retained in the database but is excluded from all listings, including admin views.
Required role: SUPER_ADMIN only
Path parameter
The
serviceID of the service to delete.Response
Returns204 No Content on success.
GET /api/services
Returns a paginated list of services for admin use. Includes inactive services; excludes logically deleted ones. Required role:SUPER_ADMIN, ADMIN_GENERAL, GESTOR_SUPREMO, or GESTOR
Query parameters
Page index (1-based). Defaults to
1.Number of records per page. Defaults to
10.Optional free-text search applied against service name, description, and reference code.
When
true, filters the results to active services only. Omit or set to false to include inactive services.Response
Returns200 OK with a paginated result object containing an array of ServiceResponse records.
Example
GET /api/services/available
Returns a paginated list of active, non-deleted services intended for customer browsing. This is the endpoint used by the Android app catalog screen. Required role:SUPER_ADMIN, ADMIN_GENERAL, GESTOR_SUPREMO, or CUSTOMER
Query parameters
Page index (1-based). Defaults to
1.Number of records per page. Defaults to
100.Optional free-text search applied against service name and description.
Optional category filter. When provided, only services in the specified category are returned.
Response
Returns200 OK with a paginated result object containing active ServiceResponse records.
The default
pageSize for this endpoint is 100 (versus 10 for the admin listing) to allow the mobile app to load the full catalog in a single request for offline browsing.GET /api/services/{id}
Returns the full detail of a single service. Required role:SUPER_ADMIN, ADMIN_GENERAL, GESTOR_SUPREMO, GESTOR, or CUSTOMER
Path parameter
The
serviceID to retrieve.Response
Returns200 OK with a ServiceResponse object.
Returns 404 Not Found if the service does not exist or belongs to a different company.
GET /api/services/by-category
Returns all active, non-deleted services belonging to a specific category. Required role:SUPER_ADMIN, ADMIN_GENERAL, GESTOR_SUPREMO, or CUSTOMER
Query parameters
The category to filter by. Must be a non-empty string. Returns
400 Bad Request if omitted or blank.Response
Returns200 OK with an array of ServiceResponse objects.
Returns 400 Bad Request if category is missing or blank.
ServiceResponse shape
The following fields are returned in service read responses.Unique identifier of the service.
Tenant identifier.
Display name of the service.
Optional description.
Optional internal reference code.
Customer-facing price.
Optional internal cost.
Human-readable turnaround estimate.
Normalised category value.
Whether requests for this service may include an optional attachment.
Whether the service is currently active.
Timestamp of when the service was created.
Category normalisation
The API accepts several common shorthand or variant spellings and normalises them to the canonical category value before persisting. For example, sending
Any value that does not match a canonical category or a known alias will result in a validation error from the underlying stored procedure.
"LEGALES" is accepted and stored as "Escribania y legales". The following aliases are recognised:| Alias accepted | Stored as |
|---|---|
LEGALES | Escribania y legales |
DOCUMENTOS | Presentacion de documentos |
COMPRAS | Pago de impuestos, patentes y otros |
TRADUCCIONES LEGALES | Traducciones legales |
DELIVERYS | Delivery |
OTHER | Otros |
OTROS | Otros |