Ticket identifiers
Each ticket has two identifiers assigned at creation:| Field | Format | Example | Purpose |
|---|---|---|---|
ticket_uuid | UUID v4 | 3f7a1b2c-... | Stable internal ID used in API paths (/tickets/{ticket_id}) |
ticket_label | Human-readable label | TK-2024-00042 | Displayed to requesters for follow-up via /consultar |
fn_crear_ticket and included in the response from POST /tickets/crear.
Ticket types
When creating a ticket you must specify itstipo. The valid values are:
State machine
The diagram below shows all states and the operations that cause transitions between them.cancelar and archivar are terminal states — no further transitions are possible from them.Operations reference
crear — open a new ticket
crear — open a new ticket
Endpoint:
POST /tickets/crearWho can perform it: Anyone (no authentication required).Creates a new ticket and assigns it the NUEVO state. The requester provides their contact details, ticket type, category, priority, and description. The API calls fn_crear_ticket internally and returns the ticket_uuid, ticket_label, SLA deadline, and initial state.Required fields include: nombre, email, tipo, categoria, descripcion, prioridad.asignar — assign to an agent or area
asignar — assign to an agent or area
Endpoint:
POST /tickets/{ticket_id}/asignarWho can perform it: ADMIN, MESA.Moves the ticket from NUEVO (or back from TRANSFERIDO / RECLASIFICADO) to ASIGNADO. Use this to associate the ticket with a specific agent or area so work can begin.transferir — move to a different area
transferir — move to a different area
Endpoint:
POST /tickets/{ticket_id}/transferirWho can perform it: ADMIN, MESA.Reassigns the ticket to a different area when the original assignment was incorrect or the ticket needs handling by another team. Sets the state to TRANSFERIDO. Call asignar afterwards to put it back into ASIGNADO.reclasificar — change type or category
reclasificar — change type or category
Endpoint:
POST /tickets/{ticket_id}/reclasificarWho can perform it: ADMIN, MESA.Updates the ticket’s classification (type, category, subcategory, or priority) when the original submission was inaccurate. Sets the state to RECLASIFICADO. Call asignar afterwards to resume processing.pausar — put the ticket on hold
pausar — put the ticket on hold
Endpoint:
POST /tickets/{ticket_id}/pausarWho can perform it: ADMIN, MESA, AREA.Pauses work on the ticket, for example while waiting for a response from the requester or a third party. Sets the state to PAUSADO. SLA tracking behaviour during a pause depends on your system configuration.reabrir — resume a paused ticket
reabrir — resume a paused ticket
Endpoint:
POST /tickets/{ticket_id}/reabrirWho can perform it: ADMIN, MESA.Resumes a ticket that was previously paused. Returns the ticket to ASIGNADO so work can continue.actualizar — add progress notes
actualizar — add progress notes
Endpoint:
POST /tickets/{ticket_id}/actualizarWho can perform it: ADMIN, MESA, AREA.Records an update or progress note against the ticket without changing its core state. Use this to log actions taken, attach references, or communicate status changes internally.cancelar — close without resolution
cancelar — close without resolution
Endpoint:
POST /tickets/{ticket_id}/cancelarWho can perform it: ADMIN, MESA, AREA.Closes the ticket without resolving it. Use this when the request is invalid, a duplicate, or withdrawn by the requester. This is a terminal state — the ticket cannot be reopened after cancellation.archivar — archive a resolved ticket
archivar — archive a resolved ticket
Endpoint:
POST /tickets/{ticket_id}/archivarWho can perform it: ADMIN, MESA, AREA.Archives the ticket after it has been resolved. This is a terminal state — use it to mark tickets as fully complete and remove them from active queues.Operations by role
| Operation | ADMIN | MESA | AREA |
|---|---|---|---|
| crear | public | public | public |
| asignar | ✓ | ✓ | — |
| transferir | ✓ | ✓ | — |
| reclasificar | ✓ | ✓ | — |
| reabrir | ✓ | ✓ | — |
| actualizar | ✓ | ✓ | ✓ |
| pausar | ✓ | ✓ | ✓ |
| cancelar | ✓ | ✓ | ✓ |
| archivar | ✓ | ✓ | ✓ |
Looking up a ticket (public)
Requesters do not need an account. They can check the status of their ticket using theticket_label returned at creation: