Skip to main content
The Mesa de Ayuda API lets anyone submit a support ticket without authentication. Once created, you receive a unique ticketLabel you can use to track the request at any time.

Request types

Every ticket requires a tipo field that categorizes the nature of the request. The seven valid values are:
A formal request for a service or action that falls within the scope of normal operations. Use this when a user wants something done, such as provisioning access or creating an account.
A complaint about the quality of a service or the behavior of staff. Use this when a user is dissatisfied but is not claiming a direct harm or financial loss.
A claim of a right or entitlement that was not fulfilled. Use this when a user asserts that a committed service was not delivered or was delivered incorrectly.
A suggestion for improving a service, process, or product. Use this when the user is proposing an enhancement rather than reporting a problem.
An unplanned interruption or degradation of service. Use this for outages, errors, or failures that affect one or more users.
A general service request that does not fit the other categories. Use this as a catch-all for standard, pre-approved service tasks.
An information request or question. Use this when the user needs guidance, documentation, or clarification.

Create a ticket

1

Prepare the request body

Construct a JSON body with the required and optional fields described below.Required fields
FieldTypeConstraintsDescription
nombrestring3–150 charactersFull name of the requester.
emailstringValid email addressContact email for notifications and status lookups.
tipostringOne of seven valuesRequest type (see above).
categoriastring2–100 charactersPrimary category of the issue.
descripcionstringMinimum 10 charactersDetailed description of the problem or request.
prioridadstringMaximum 20 charactersUrgency level, e.g., BAJA, MEDIA, ALTA, CRITICA.
Optional fields
FieldTypeConstraintsDescription
documentostringMax 50 charactersNational ID or passport number.
telefonostringMax 30 charactersPhone number.
tieneWhatsappbooleanDefault falseWhether the phone number accepts WhatsApp.
empresaDepartamentostringMax 150 charactersCompany or department of the requester.
subcategoriastringMax 100 charactersSub-category for more specific routing.
asuntostringMax 200 charactersShort subject line, similar to an email subject.
areaAsignadastringMax 100 characters, default "MESA"Initial area responsible for the ticket.
2

Submit the ticket

Send a POST request to /api/tickets/crear. No authentication header is required.
curl
curl -X POST https://api.example.com/api/tickets/crear \
  -H "Content-Type: application/json" \
  -d '{
    "nombre": "Ana García",
    "email": "[email protected]",
    "telefono": "+573001234567",
    "tieneWhatsapp": true,
    "documento": "12345678",
    "empresaDepartamento": "Recursos Humanos",
    "tipo": "INCIDENTE",
    "categoria": "Sistemas",
    "subcategoria": "Correo electrónico",
    "asunto": "No puedo acceder a mi correo corporativo",
    "descripcion": "Desde esta mañana no puedo iniciar sesión en Outlook. Aparece el error 403 Forbidden.",
    "prioridad": "ALTA",
    "areaAsignada": "MESA"
  }'
3

Read the response

A successful request returns 200 OK with a JSON body containing your ticket reference.
response
{
  "ticketUuid": "a3f1c2d4-8b5e-4f7a-9c1d-2e3f4a5b6c7d",
  "ticketLabel": "TKT-2026-00142",
  "estado": "ABIERTO",
  "tipo": "INCIDENTE",
  "prioridad": "ALTA",
  "slaHoras": 4,
  "fechaCreacion": "2026-03-24T10:15:00Z",
  "fechaLimiteSla": "2026-03-24T14:15:00Z",
  "mensaje": "Su solicitud ha sido registrada exitosamente."
}
Save the ticketLabel value. You will need it to look up ticket status later.
slaHoras is the number of hours allowed to resolve the ticket under the service-level agreement. fechaLimiteSla is the absolute deadline derived from fechaCreacion plus slaHoras.

Look up ticket status

You can check the current state of any ticket using the label and the email address used when creating it. No authentication is required.
curl
curl -X POST https://api.example.com/api/tickets/consultar \
  -H "Content-Type: application/json" \
  -d '{
    "label": "TKT-2026-00142",
    "email": "[email protected]"
  }'
The response returns a ConsultarTicketOut object with the full current state:
response
{
  "ticketUuid": "a3f1c2d4-8b5e-4f7a-9c1d-2e3f4a5b6c7d",
  "ticketLabel": "TKT-2026-00142",
  "ticketNum": 142,
  "solicitanteNombre": "Ana García",
  "solicitanteEmail": "[email protected]",
  "solicitanteTel": "+573001234567",
  "tieneWhatsapp": true,
  "documento": "12345678",
  "empresaDepartamento": "Recursos Humanos",
  "tipoSolicitud": "INCIDENTE",
  "categoria": "Sistemas",
  "subcategoria": "Correo electrónico",
  "asunto": "No puedo acceder a mi correo corporativo",
  "descripcionProblema": "Desde esta mañana no puedo iniciar sesión en Outlook. Aparece el error 403 Forbidden.",
  "respuestaCliente": null,
  "areaAsignada": "MESA",
  "prioridadNombre": "ALTA",
  "estadoNombre": "ABIERTO",
  "creadoEn": "2026-03-24T10:15:00Z",
  "actualizadoEn": "2026-03-24T10:15:00Z",
  "ultimaFechaHistorial": "2026-03-24T10:15:00Z",
  "ultimaAccion": "CREACION",
  "ultimoMotivo": null,
  "ultimoActorNombre": "Ana García",
  "ultimoActorRol": "USUARIO"
}
The email you provide in the lookup request must exactly match the email used when the ticket was created. The lookup will fail if the values do not match.

Common ticket categories

The categoria field is free-form text, but consistent naming helps with routing and reporting. The following categories are commonly used:
CategoryTypical use
SistemasSoftware errors, login issues, application outages
InfraestructuraHardware failures, network problems, VPN access
Recursos HumanosHR processes, payroll queries, onboarding requests
FacturaciónInvoice disputes, payment issues, billing corrections
Soporte TécnicoGeneral technical help requests
Accesos y PermisosAccess provisioning, password resets, role changes
CapacitaciónTraining requests, documentation questions
Use subcategoria to narrow down the routing within a broad categoria. For example: categoria: "Sistemas" with subcategoria: "Correo electrónico" routes the ticket more precisely than the category alone.

Build docs developers (and LLMs) love