developers Entrar a AdvantaCloud
Árbol del API · Pedidos › cancelOrder

Cancelar una orden de venta

cancelOrder

Tipo

Mutation

Devuelve

CancelOrderPayload

Permiso de la llave

Creacion de Orden de Venta

Reintentos

Seguros con idempotencyKey

Estable

Cancela una orden de venta. Una orden de venta registrada se elimina; una confirmada regresa a registrada con el motivo en sus comentarios.

El resultado depende del estatus de la orden:

Origen y estatus Qué pasa Respuesta
Orden de venta (OV) REGISTERED La orden se elimina. order: null y deletedOrderId con su id.
Orden de venta (OV) CONFIRMED Regresa a REGISTERED y libera lo apartado; el motivo se agrega a los comentarios. order con su nuevo estatus.
Pedido por especificación (EP) CONFIRMED Queda CANCELLED. order con estatus CANCELLED.
Cualquier otro origen o estatus No cambia. errors con código CONFLICT.

Repetir la cancelación con la misma idempotencyKey no cancela dos veces: devuelve la orden como está en ese momento o, si se eliminó, su deletedOrderId.

cancelOrder(
  id: ID!  reason: String!  userId: ID
  idempotencyKey: String!
): CancelOrderPayload

Argumentos

4

ArgumentoTipoDescripción
Orden
idID! ID!

Orden que quieres cancelar.

Obligatorio.
reasonString! String!

Motivo de la cancelación; es obligatorio. Al desconfirmar una orden de venta se agrega a sus comentarios.

Obligatorio.
userIdID ID

Usuario activo de AdvantaCloud a nombre de quien se cancela. Con Llave API es obligatorio.

Reintentos
idempotencyKeyString! String!

Clave única por cancelación. Repetir la petición con la misma clave y los mismos datos devuelve el mismo resultado sin cancelar dos veces.

Obligatorio.

Lo que devuelve

CancelOrderPayload

Campos principales de CancelOrderPayload:

CampoTipoDescripción
orderOrder Order La orden con su nuevo estatus; null si se eliminó o si hubo errores.
deletedOrderIdID ID El id de la orden, cuando se eliminó por estar registrada.
errors[FieldError!]! [FieldError!]! Errores que impidieron cancelar; vacía si se canceló.

Ver todos los campos de CancelOrderPayload

Permisos

Llave API Integraciones

Creacion de Orden de Venta

La llave ve los registros de toda la empresa del subdominio.

Sin el permiso HTTP 422

La respuesta es HTTP 422 con el cuerpo {"error": "invalid_graphql_request"}, sin data.

Errores

CódigoCuándo ocurreQué hacer
HTTP 401Falta el header Authorization o la llave no existe en la empresa del subdominio. La respuesta no trae cuerpo.Revisa la llave y el subdominio. No reintentes.
HTTP 422La llave no tiene «Creacion de Orden de Venta». La respuesta es HTTP 422 con el cuerpo {"error": "invalid_graphql_request"}, sin data.La llave necesita ese permiso; reintentar no ayuda.
CONFLICTLa orden no se puede cancelar en su estatus u origen (ver la tabla), tiene facturas relacionadas, o la empresa sólo deja cancelarla a quien la capturó y userId es otro usuario que no es administrador. Llega en cancelOrder.errors.Lee el mensaje; reintentar sin cambios no ayuda.
VALIDATIONEl motivo está vacío (en cancelOrder.errors, field: "reason") o falta un userId activo (en errors de la respuesta).Envía el motivo y el usuario.
NOT_FOUNDNo hay una orden con ese id en la empresa.Revisa el id.
HTTP 422Falla interna o dato rechazado al guardar. El cuerpo es {"error": …}, sin data.Si no cambiaste nada, reintenta con la misma idempotencyKey.

Los errores de la consulta llegan con HTTP 200 en errors, con su código en extensions.code. Revisa siempre errors, no sólo el estatus HTTP. Errores y reintentos.

Relacionadas

Schema del 26 oct 2026 · Ver cambios¿Algo no cuadra? Repórtalo en ayuda.advanta.mx