POST
/api/mod/facturacion/{espacio}/orders/{orden}/cancelCancela una orden
Cancela una orden que aún no se ha pagado y libera su stock en Productos. No se puede deshacer.
- PERMISOescribe
- CRÉDITOSno gasta
- AUTENTICACIÓNBearer bth_…
PARÁMETROS
| CAMPO | TIPO | REQUERIDO | QUÉ ES |
|---|---|---|---|
| espacio | string | SÍ | El id del espacio (sale en GET /api/companies). Tiene que tener el módulo Facturación. |
| orden | string | SÍ | El id de la orden: el que devolvió crearla (32 caracteres hexadecimales). |
CUERPO · JSON
| CAMPO | TIPO | REQUERIDO | QUÉ ES |
|---|---|---|---|
| motivo | string | no | Por qué. Queda en la historia. |
| actor | string | no | Quién la cancela. Sin él, la historia dice "operador". |
RESPUESTA 200
La orden, en cancelled, con los campos de GET orders/{orden}.
| CAMPO | TIPO | QUÉ ES |
|---|---|---|
| estado | "cancelled" | Cancelada. |
ERRORES DE ESTA RUTA · SIEMPRE {"detail": …}
| STATUS | CUÁNDO | DETAIL LITERAL |
|---|---|---|
| 403 | El espacio no tiene el módulo Facturación | módulo no habilitado para este espacio. |
| 403 | La clave es de solo lectura | Tu cuenta es de solo lectura en este espacio. |
| 404 | No hay una orden con ese id en el espacio | orden no encontrada. |
| 409 | La orden ya está pagada, despachada o vencida | transición ilegal: <de> → cancelled |
| 422 | Falta un campo obligatorio o uno no es de su tipo (detail es una lista) | — |
Y los de cualquier ruta —clave inválida, cuenta no al día, IP, límites—, en Errores, límites y créditos.
CONVIENE SABER
- El cuerpo es obligatorio aunque sus campos no: manda al menos
{}. - Cancelar una orden ya cancelada no da error: la devuelve igual.