Custom service requests let customers express interest in a service that is not yet present in the catalog. Instead of selecting from a fixed list, the customer describes what they need in free-form text and optionally indicates which catalog category prompted the inquiry. Staff then reviews these submissions and routes each one through a defined status lifecycle — potentially converting a popular request into a full catalog entry.Documentation 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.
What is a custom service request?
A custom service request is a lightweight inquiry record. It captures a proposed title, an optional description, an optional category hint, and a flag indicating whether the customer prefers to be contacted via WhatsApp. Unlike formal service requests, custom requests are not linked to a payment or a catalog entry at creation time. They serve as a discovery and triage tool for the operations team.Custom service request fields
| Field | Type | Description |
|---|---|---|
customServiceRequestId | long | Auto-generated primary key. |
possibleTitle | string | Short title describing the desired service. Required; trimmed on write. |
possibleDescription | string | Optional extended description. Truncated to 800 characters if longer. |
possibleCategory | string | Optional category the customer thinks the service belongs to. Truncated to 120 characters. |
sourceCategory | string | The catalog category the customer was browsing when they submitted the request. Truncated to 120 characters. Useful for funnel analysis. |
requestedViaWhatsApp | bool | When true, the customer indicated they would like to be contacted via WhatsApp. Defaults to true. |
status | string | Current lifecycle status (see below). |
adminNotes | string | Internal notes left by the reviewing staff member. Max 500 characters. |
createdAt | datetime | Timestamp of submission. |
reviewedAt | datetime | Timestamp of the last status update. |
reviewedBy | int | User ID of the staff member who last updated the status. |
Status lifecycle
Each custom service request moves through the following statuses as staff processes it.| Status | Meaning |
|---|---|
NUEVO | Freshly submitted; not yet reviewed by staff. |
CONTACTADO | Staff has reached out to the customer for more details. |
EN_REVISION | The request is being evaluated for catalog inclusion. |
CONVERTIDO_A_SERVICIO | A formal catalog service has been created from this request. |
DESCARTADO | The request was reviewed and will not be fulfilled or added to the catalog. |
Status values are case-insensitive on input — the API normalises them to uppercase internally. For example,
"contactado" and "CONTACTADO" are both accepted.POST /api/custom-service-requests
Submits a new custom service request on behalf of the authenticated user. Required role: Any authenticated userRequest body
A short title describing the desired service. Whitespace is trimmed. Returns
400 Bad Request if the trimmed value is blank.Optional extended description of the desired service. Values longer than 800 characters are silently truncated to 800 characters.
Optional category hint — the customer’s guess at where this service would fit. Values longer than 120 characters are truncated.
The catalog category the customer was browsing when they decided to submit this request. Values longer than 120 characters are truncated. See the tip below for how to use this field.
When
true, the customer prefers WhatsApp contact. Defaults to true.Response
Returns200 OK with the auto-generated identifier of the new request.
400 Bad Request if possibleTitle is missing or blank after trimming.
Example
GET /api/custom-service-requests
Returns a paginated admin view of all custom service requests for the authenticated company. 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
20.Optional free-text search applied against the request title, description, and customer details.
Optional filter by status value. Must be one of
NUEVO, CONTACTADO, EN_REVISION, CONVERTIDO_A_SERVICIO, or DESCARTADO. Case-insensitive.Response
Returns200 OK with a paginated result object. Each item in the data array is a CustomServiceRequestDto containing all fields listed in the Custom service request fields table, plus the submitting customer’s firstName, lastName, phone, and email.
PUT /api/custom-service-requests/{id}/status
Updates the status of a custom service request and optionally records internal admin notes. Required role:SUPER_ADMIN, ADMIN_GENERAL, GESTOR_SUPREMO, or GESTOR
Path parameter
The
customServiceRequestId of the request to update.Request body
The new status. Must be one of
NUEVO, CONTACTADO, EN_REVISION, CONVERTIDO_A_SERVICIO, or DESCARTADO (case-insensitive). Returns 400 Bad Request if the value is not in this set.Optional internal notes about the review decision. Values longer than 500 characters are silently truncated. Not visible to the customer.
Response
Returns200 OK on success.
Returns 400 Bad Request if status is missing or not one of the allowed values.
Example
CustomServiceRequestDto shape
The following fields appear in responses fromGET /api/custom-service-requests.
Unique identifier of the custom request.
Tenant identifier.
User ID of the customer who submitted the request.
Customer’s first name.
Customer’s last name.
Customer’s phone number.
Customer’s email address.
Proposed title of the desired service.
Extended description (max 800 chars).
Customer’s category hint (max 120 chars).
Catalog category the customer was browsing when submitting (max 120 chars).
Whether the customer requested WhatsApp contact.
Current lifecycle status.
Internal notes from the reviewing staff member (max 500 chars).
Timestamp of submission.
Timestamp of the most recent status update.
User ID of the staff member who performed the most recent status update.