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

Crear una orden de venta

createOrder

Tipo

Mutation

Devuelve

CreateOrderPayload

Permiso de la llave

Creacion de Orden de Venta

Reintentos

Seguros con idempotencyKey

Estable

Registra una orden de venta nueva con sus partidas. La orden queda registrada (REGISTERED), sin confirmar y sin apartar inventario.

La orden se registra a nombre del usuario de input.userId y con el precio vigente de cada artículo. Envía en expectedUnitPrice el precio que te dio quoteOrder: si cambió, la orden no se guarda y recibes CONFLICT en esa partida. Una partida con precio manual (unitPrice) no se compara.

Revisa siempre createOrder.errors y también errors de la respuesta: un error puede llegar en cualquiera de los dos y, con errores, order llega null. Las advertencias (warnings) de una orden creada no la invalidan.

Reintentos seguros

Si la conexión se corta y no sabes si la orden se creó, repite la petición con la misma idempotencyKey y los mismos datos: recibes la orden que ya se creó, sin duplicarla. La respuesta muestra la orden como está en ese momento, no una copia de la primera respuesta. La clave se recuerda alrededor de 30 días. Una clave repetida con datos distintos responde CONFLICT.

createOrder(
  input: OrderInput!  idempotencyKey: String!
): CreateOrderPayload

Argumentos

2

ArgumentoTipoDescripción
Orden
inputOrderInput! OrderInput!

Los datos de la orden y sus partidas (de 1 a 100). Ver OrderInput.

Obligatorio.
Reintentos
idempotencyKeyString! String!

Clave única que generas por cada orden, por ejemplo un UUID o el folio de tu sistema. Si repites la petición con la misma clave y los mismos datos, recibes la orden que ya se creó en lugar de una nueva.

Obligatorio.

Lo que devuelve

CreateOrderPayload

Campos principales de CreateOrderPayload:

CampoTipoDescripción
orderOrder Order La orden creada; null si hubo errores.
warnings[OrderWarning!] [OrderWarning!] Advertencias de existencia y crédito de la orden creada.
errors[FieldError!]! [FieldError!]! Errores que impidieron crear la orden; vacía si se creó.

Ver todos los campos de CreateOrderPayload

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.
VALIDATIONUn dato de la orden no es válido. Puede llegar en createOrder.errors (por ejemplo field: "lines[0].quantity") o en errors de la respuesta (por ejemplo, falta userId, la estructura de precios no es del cliente o hay más de 100 partidas). Revisa los dos.Corrige el dato y vuelve a enviar con una clave nueva.
CONFLICTEl precio de una partida ya no es el expectedUnitPrice que enviaste (field: lines[i].expectedUnitPrice), o la idempotencyKey ya se usó con otros datos.Vuelve a cotizar con quoteOrder; para otros datos usa otra clave.
NOT_FOUNDUn identificador del input no existe; field puede decir cuál.Revisa los identificadores.
INACTIVEUn catálogo del input existe pero ya no se ofrece.Pide opciones vigentes con orderDefaults.
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