""" Un banco del catálogo de la empresa. """ type Bank { """ Clave del banco en el catálogo de la empresa, p. ej. `BANORTE`. """ code: String """ Identificador del banco. """ id: ID! """ Nombre del banco. """ name: String } """ Una cuenta bancaria de la empresa. """ type BankAccount { """ Banco de la cuenta. """ bank: Bank """ Clave de la cuenta en el catálogo de la empresa; suele ser el número de cuenta o la CLABE. """ code: String """ Empresa a la que pertenece la cuenta. """ companyId: ID """ Clave SAT de la moneda de la cuenta, p. ej. `MXN`. """ currency: String """ Identificador de la cuenta. """ id: ID! } """ Una terminal para cobros con tarjeta. """ type BankTerminal { """ `true` si la terminal está activa. """ active: Boolean! """ Banco de la cuenta de la terminal; `null` si no tiene cuenta. """ bank: Bank """ Cuenta bancaria donde se depositan sus cobros; `null` si la terminal sirve a cualquier cuenta. Un cobro con esta terminal debe ir a esta cuenta. """ bankAccount: BankAccount """ Clave de la cuenta bancaria de la terminal, la misma de `bankAccount.code`; `null` si la terminal no tiene cuenta. """ code: String """ Empresa del grupo a la que pertenece la terminal; `null` si sirve a todas las empresas. """ companyId: ID """ Identificador de la terminal. """ id: ID! """ Nombre de la terminal. """ name: String! } """ La orden cancelada, el `id` de la orden eliminada o los errores. """ type CancelOrderPayload { """ El `id` de la orden, cuando se eliminó por estar registrada. """ deletedOrderId: ID """ Errores que impidieron cancelar; vacía si se canceló. """ errors: [FieldError!]! """ La orden con su nuevo estatus; `null` si se eliminó o si hubo errores. """ order: Order } """ Una opción de un catálogo de la empresa, con su identificador y su texto para mostrar. """ type CatalogOption { """ Texto para mostrar. Casi siempre es la clave y el nombre separados por una barra vertical, p. ej. `MAY | Mayoreo`. """ label: String! """ Identificador de la opción; es el que envías en el argumento o campo que pide ese catálogo. """ value: ID! } """ Un pago recibido de un cliente, con su forma de cobro y las facturas a las que se aplicó. """ type Collection { """ Importe recibido, en la moneda de la cuenta bancaria que lo recibió. """ amount: Money """ Las facturas a las que se aplicó el cobro, con el importe aplicado a cada una, por su último cambio. """ applications(after: String, first: Int): CollectionApplicationConnection! """ Cobrador asignado al cobro; `null` si no tiene. """ cobdorId: ID """ Clave SAT de la moneda del cobro, p. ej. `MXN` o `USD`. """ currency: String """ Fecha y hora en que se recibió el pago. Es la fecha de pago que lleva el complemento de pago. """ date: DateTime """ Identificador del cobro; úsalo con [`collection(id:)`](https://developers.advanta.mx/referencia/facturas-y-cobranza/collection/) y con [`paymentComplement(collectionId:)`](https://developers.advanta.mx/referencia/facturas-y-cobranza/paymentComplement/). """ id: ID! """ Forma de cobro. """ paymentMethod: PaymentMethod """ Clave del estatus tal como la guarda AdvantaCloud; útil cuando `status` es `UNKNOWN`. """ rawStatus: String """ Liga al PDF del complemento de pago que incluye el cobro, aunque todavía no esté timbrado. Llega `null` mientras el cobro no está en un complemento. Está firmada y vence a los 10 minutos. """ receiptPdfUrl: String """ Referencia del pago, p. ej. la clave de rastreo de una transferencia. """ reference: String """ Estatus del cobro. """ status: CollectionStatus! """ Tipo de cobro, `Cobro` o `Anticipo`. """ tpcbro: String """ Unidad de negocio del cobro. """ xcumId: ID } """ La parte de un cobro que se aplicó a una factura. """ type CollectionApplication { """ Importe aplicado, en la moneda del cobro. Si la factura es de otra moneda, AdvantaCloud lo convirtió con el tipo de cambio del cobro. """ amount: Money """ Factura a la que se aplicó. """ invoice: Invoice } """ Una página de las aplicaciones de un cobro con la información para pedir la siguiente. """ type CollectionApplicationConnection { """ Las mismas aplicaciones, cada una con su `cursor`. """ edges: [CollectionApplicationEdge] """ Las aplicaciones de esta página. La forma más corta de leerlas. """ nodes: [CollectionApplication] """ Dónde estás en la lista. """ pageInfo: PageInfo! } """ Una aplicación de la página junto con su cursor. """ type CollectionApplicationEdge { """ Cursor de esta aplicación; pásalo en `after` para seguir desde aquí. """ cursor: String! """ La aplicación. """ node: CollectionApplication } """ Cuánto de un cobro nuevo se aplica a una factura. """ input CollectionApplicationInput { """ Importe que se aplica, mayor que cero, en la moneda del cobro. Convertido a la moneda de la factura con el tipo de cambio del cobro, no puede pasar de su saldo (`balance`). """ amount: Money! """ Factura del mismo cliente del cobro, timbrada (`INVOICED`) y con cuenta por cobrar. Es el `id` que llega en [`invoicesConnection`](https://developers.advanta.mx/referencia/facturas-y-cobranza/invoicesConnection/) o en [`invoice`](https://developers.advanta.mx/referencia/facturas-y-cobranza/invoice/). """ invoiceId: ID! } """ Una página de cobros con la información para pedir la siguiente. """ type CollectionConnection { """ Los mismos cobros, cada uno con su `cursor`. """ edges: [CollectionEdge] """ Los cobros de esta página. La forma más corta de leerlos. """ nodes: [Collection] """ Dónde estás en la lista. """ pageInfo: PageInfo! } """ Un cobro de la página junto con su cursor. """ type CollectionEdge { """ Cursor de este cobro; pásalo en `after` para seguir desde aquí. """ cursor: String! """ El cobro. """ node: Collection } """ Los datos para registrar un cobro con [`createCollection`](https://developers.advanta.mx/referencia/facturas-y-cobranza/createCollection/) y, si quieres, aplicarlo a facturas del cliente en la misma operación. """ input CollectionInput { """ Importe recibido, mayor que cero, en la moneda de la cuenta bancaria. """ amount: Money! """ Facturas del cliente a las que se aplica el cobro, hasta 100 y sin repetir factura. Si no aplicas, omítelo o envía `[]`: con `null` la petición responde HTTP 422. """ applications: [CollectionApplicationInput!] = [] """ Cuenta bancaria de la empresa donde se recibió el pago; debe ser del banco de `bankId`. Su moneda es la moneda del cobro. """ bankAccountId: ID! """ Banco donde se recibió el pago. """ bankId: ID! """ Cobrador del cobro; debe ser un empleado marcado como cobrador. """ cobdorId: ID """ Cliente que hizo el pago. """ customerId: ID! """ Fecha y hora en que se recibió el pago, con su desfase horario, p. ej. `"2026-10-24T10:15:00-06:00"`. Es la fecha de pago que llevará el complemento de pago. """ date: DateTime! """ Tipo de cambio del cobro en pesos por unidad de la moneda extranjera, mayor que cero, p. ej. `"17.250000"`. Si lo omites se usa el vigente en AdvantaCloud para la moneda de la cuenta; si no hay uno vigente, la petición responde HTTP 422. Es obligatorio para aplicar un cobro en pesos a una factura en dólares. """ exchangeRate: Decimal """ Forma de cobro, de [`paymentMethodOptions`](https://developers.advanta.mx/referencia/catalogos/paymentMethodOptions/). Si es con tarjeta (`card: true`), el cobro pide `terminalId`. """ paymentMethodId: ID! """ Referencia del pago, p. ej. la clave de rastreo de la transferencia. """ reference: String """ Terminal bancaria de un cobro con tarjeta, activa, de [`bankTerminals`](https://developers.advanta.mx/referencia/facturas-y-cobranza/bankTerminals/); si la terminal tiene cuenta bancaria o empresa, deben ser las del cobro. Con otra forma de cobro se ignora. """ terminalId: ID """ Tipo de cobro, `Cobro` o `Anticipo`. Si lo omites, `Cobro`. """ tpcbro: String """ Usuario activo de AdvantaCloud a nombre de quien se registra el cobro. Obligatorio con Llave API, aunque el schema lo marque opcional. """ userId: ID """ Almacén del cobro. Si no envías `xcumId`, el cobro toma la unidad de negocio del almacén. """ warehouseId: ID! """ Unidad de negocio del cobro, si no es la del almacén. Las facturas que apliques deben ser de esta unidad de negocio, salvo que la empresa permita repartir cobros entre unidades. """ xcumId: ID } """ En qué punto está un cobro, de su registro a su conciliación con el banco. """ enum CollectionStatus { """ Aplicado completo a facturas """ APPLIED """ Cancelado """ CANCELLED """ Aplicado en parte; le queda importe por aplicar """ PARTIALLY_APPLIED """ Aplicado y conciliado con el banco """ RECONCILED """ Registrado, sin aplicar a facturas """ REGISTERED """ Sin equivalente; revisa `rawStatus` """ UNKNOWN } """ El cobro registrado con sus aplicaciones, o los errores que lo impidieron. """ type CreateCollectionPayload { """ El cobro registrado, con sus aplicaciones; `null` si hubo errores. """ collection: Collection """ Errores que impidieron registrar el cobro; vacía si se registró. """ errors: [FieldError!]! } """ La orden creada, o los errores que lo impidieron. """ type CreateOrderPayload { """ Errores que impidieron crear la orden; vacía si se creó. """ errors: [FieldError!]! """ La orden creada; `null` si hubo errores. """ order: Order """ Advertencias de existencia y crédito de la orden creada. """ warnings: [OrderWarning!] } """ Un término de crédito, como contado o crédito a 30 días. """ type CreditTerm { """ Clave del término. """ code: String """ Identificador del término de crédito. """ id: ID! """ Nombre del término. """ name: String } """ Una moneda del catálogo de la empresa. """ type Currency { """ `true` si es la moneda base de la empresa. """ base: Boolean! """ Clave de la moneda, p. ej. `MXN`. """ code: String """ Identificador de la moneda; es el que se envía en `currencyId`. """ id: ID! """ Nombre de la moneda. """ name: String """ Clave de la moneda en el catálogo del SAT. """ satCode: String } """ Una moneda del catálogo de la empresa, lista para mostrarse en una lista de selección. """ type CurrencyOption { """ `true` si es la moneda base de la empresa. """ base: Boolean """ Clave de la moneda en la empresa, p. ej. `MXN`. """ code: String """ Clave y nombre de la moneda, p. ej. `MXN | Peso mexicano`. """ label: String! """ Nombre de la moneda. """ name: String """ Identificador de la moneda; es el que se envía en `currencyId`. """ value: ID! } """ Un cliente de la empresa con sus datos de contacto, su crédito, su saldo y sus valores para las órdenes de venta. """ type Customer { """ Lugares de entrega del cliente, del modificado hace más tiempo al más reciente. """ addresses(after: String, first: Int): CustomerAddressConnection! """ Estructura de precios auxiliar. Cuando el cliente tiene una, sus precios tienen prioridad sobre los de `priceStructure`. """ auxPriceStructure: PriceStructure """ Crédito disponible, `creditLimit` menos `balance`. """ availableCredit: Money """ Saldo por cobrar: las parcialidades pendientes de sus facturas, vencidas y por vencer, menos los cobros que aún no se aplican a una factura. Es negativo si el cliente tiene saldo a favor. """ balance: Money """ Clave del cliente, p. ej. `C-0042`. """ code: String """ Contactos del cliente, ordenados por nombre. """ contacts: [CustomerContact!]! """ Clave SAT de la moneda de crédito, p. ej. `MXN`. El límite y los saldos están en esta moneda. """ creditCurrency: String """ Límite de crédito, en la moneda de crédito (`creditCurrency`). """ creditLimit: Money """ Término de crédito del cliente; es el que se propone en sus órdenes. """ creditTerm: CreditTerm """ Moneda de los documentos del cliente. """ documentCurrency: Currency """ Correo electrónico. """ email: String """ Identificador del cliente; es el que se envía en `customerId`. """ id: ID! """ Nombre del cliente. """ name: String """ Número del cliente en el programa de recompensas. """ noreco: String """ Importe de las parcialidades ya vencidas, sin descontar los cobros por aplicar. """ overdueBalance: Money """ Número de facturas con saldo por cobrar, sin contar las facturas de anticipo. """ pendingInvoicesCount: Int! """ Teléfono. """ phone: String """ Estructura de precios principal del cliente. """ priceStructure: PriceStructure """ RFC del cliente. """ rfc: String """ Vendedor asignado al cliente. """ salesperson: Employee """ Forma de embarque del cliente; es la que toman sus órdenes si no envías otra. """ shippingMethod: ShippingMethod """ Fecha y hora de la última modificación del cliente; úsala con [`customersConnection(updatedAfter:)`](https://developers.advanta.mx/referencia/clientes/customersConnection/). """ updatedAt: DateTime """ `true` si el cliente puede comprar con tipos de venta «Venta Plus». """ vtplus: Boolean! } """ Un lugar de entrega de un cliente. """ type CustomerAddress { """ Ciudad. """ city: String """ Clave del lugar de entrega. """ code: String """ Identificador del lugar de entrega; es el que se envía en `addressId`. """ id: ID! """ Estado, normalmente con su clave ISO 3166-2 sin el país, p. ej. `NLE` para Nuevo León. """ state: String """ Calle. El número exterior e interior se guardan aparte y no llegan aquí. """ street: String """ Código postal. """ zip: String } """ Una página de lugares de entrega de un cliente con la información para pedir la siguiente. """ type CustomerAddressConnection { """ Los mismos lugares de entrega, cada uno con su `cursor`. """ edges: [CustomerAddressEdge] """ Los lugares de entrega de esta página. """ nodes: [CustomerAddress] """ Dónde estás en la lista de lugares de entrega. """ pageInfo: PageInfo! } """ Un lugar de entrega de la página junto con su cursor. """ type CustomerAddressEdge { """ Cursor de este lugar de entrega; pásalo en `after` para seguir desde aquí. """ cursor: String! """ El lugar de entrega. """ node: CustomerAddress } """ Los datos para registrar o actualizar un lugar de entrega con [`upsertCustomerAddress`](https://developers.advanta.mx/referencia/clientes/upsertCustomerAddress/). """ input CustomerAddressInput { """ Ciudad. """ city: String! """ Clave del lugar de entrega, p. ej. `BOD-APO`. """ code: String! """ País, con su clave ISO de dos letras, p. ej. `MX`. """ country: String! """ Cliente del lugar de entrega. """ customerId: ID! """ Descripción del lugar de entrega, como el nombre de la sucursal o el horario de recepción. """ description: String! """ Número exterior. """ exteriorNumber: String! """ Lugar de entrega que se actualiza; debe ser del cliente de `customerId`. Omítelo para registrar uno nuevo. """ id: ID """ Número interior. Al actualizar, si lo omites se conserva el que tenía. """ interiorNumber: String """ Municipio o alcaldía. """ municipality: String! """ Colonia. """ neighborhood: String! """ Estado. Usa la clave ISO 3166-2 sin el país, como la guarda AdvantaCloud: `NLE` para Nuevo León, `CMX` para la Ciudad de México. """ state: String! """ Calle, sin el número. """ street: String! """ Código postal. """ zip: String! } """ Una página de clientes con la información para pedir la siguiente. """ type CustomerConnection { """ Los mismos clientes, cada uno con su `cursor`. """ edges: [CustomerEdge] """ Los clientes de esta página. La forma más corta de leerlos. """ nodes: [Customer] """ Dónde estás en la lista. """ pageInfo: PageInfo! } """ Una persona de contacto de un cliente. """ type CustomerContact { """ Correo electrónico. """ email: String """ Identificador del contacto; es el que se envía en `contactId`. """ id: ID! """ Celular. """ mobile: String """ Nombre. """ name: String """ Teléfono. """ phone: String """ `true` si es el contacto principal. """ principal: Boolean! } """ Un cliente con todos los datos de [`Customer`](https://developers.advanta.mx/tipos/Customer/), más sus órdenes de venta recientes y sus facturas con saldo por cobrar. """ type CustomerDetail { """ Lugares de entrega del cliente, del modificado hace más tiempo al más reciente. """ addresses(after: String, first: Int): CustomerAddressConnection! """ Estructura de precios auxiliar. Cuando el cliente tiene una, sus precios tienen prioridad sobre los de `priceStructure`. """ auxPriceStructure: PriceStructure """ Crédito disponible, `creditLimit` menos `balance`. """ availableCredit: Money """ Saldo por cobrar: las parcialidades pendientes de sus facturas, vencidas y por vencer, menos los cobros que aún no se aplican a una factura. Es negativo si el cliente tiene saldo a favor. """ balance: Money """ Clave del cliente, p. ej. `C-0042`. """ code: String """ Contactos del cliente, ordenados por nombre. """ contacts: [CustomerContact!]! """ Clave SAT de la moneda de crédito, p. ej. `MXN`. El límite y los saldos están en esta moneda. """ creditCurrency: String """ Límite de crédito, en la moneda de crédito (`creditCurrency`). """ creditLimit: Money """ Término de crédito del cliente; es el que se propone en sus órdenes. """ creditTerm: CreditTerm """ Moneda de los documentos del cliente. """ documentCurrency: Currency """ Correo electrónico. """ email: String """ Identificador del cliente; es el que se envía en `customerId`. """ id: ID! """ Nombre del cliente. """ name: String """ Número del cliente en el programa de recompensas. """ noreco: String """ Importe de las parcialidades ya vencidas, sin descontar los cobros por aplicar. """ overdueBalance: Money """ Facturas del cliente con saldo por cobrar, sin las facturas de anticipo. Con `search`, sólo las que tienen ese texto en el folio o en el UUID; si el texto aparece en el nombre o la clave del cliente, llegan todas. """ pendingInvoices(after: String, first: Int, search: String): InvoiceConnection """ Número de facturas con saldo por cobrar, sin contar las facturas de anticipo. """ pendingInvoicesCount: Int! """ Teléfono. """ phone: String """ Estructura de precios principal del cliente. """ priceStructure: PriceStructure """ Órdenes de venta del cliente, de la más reciente a la más antigua, sin cotizaciones de venta. Llegan 10 si no pides otro número con `first`. """ recentOrders(after: String, first: Int): OrderConnection """ RFC del cliente. """ rfc: String """ Vendedor asignado al cliente. """ salesperson: Employee """ Forma de embarque del cliente; es la que toman sus órdenes si no envías otra. """ shippingMethod: ShippingMethod """ Fecha y hora de la última modificación del cliente. """ updatedAt: DateTime """ `true` si el cliente puede comprar con tipos de venta «Venta Plus». """ vtplus: Boolean! } """ Un cliente de la página junto con su cursor. """ type CustomerEdge { """ Cursor de este cliente; pásalo en `after` para seguir desde aquí. """ cursor: String! """ El cliente. """ node: Customer } """ Un cliente activo que coincide con la búsqueda de [`customerSuggestions`](https://developers.advanta.mx/referencia/clientes/customerSuggestions/). """ type CustomerSuggestion { """ Clave del cliente. """ code: String """ Identificador del cliente; es el que se envía en `customerId`. """ id: ID! """ Clave y nombre del cliente para mostrar, p. ej. `C-0042 | Ferretería Hermanos Garza`. """ label: String! """ Nombre del cliente. """ name: String """ RFC del cliente. """ rfc: String } """ Fecha sin hora en formato `AAAA-MM-DD`, p. ej. `"2026-10-24"`. """ scalar Date @specifiedBy(url: "https://tools.ietf.org/html/rfc3339") """ Fecha y hora ISO 8601 con microsegundos y desfase horario, p. ej. `"2026-10-24T11:42:08.000000-06:00"`. Con Llave API llega en la hora del centro de México. """ scalar DateTime @specifiedBy(url: "https://tools.ietf.org/html/rfc3339") """ Número decimal como texto, con hasta seis decimales, p. ej. `"17.250000"` para un tipo de cambio. """ scalar Decimal """ Un empleado de la empresa, como el vendedor de una orden. """ type Employee { """ Identificador del empleado. """ id: ID! """ Clave del empleado. """ idempl: String """ Nombre del empleado. """ name: String } """ Un error de una mutación, ligado al dato que lo causó. """ type FieldError { """ Código del error, p. ej. `VALIDATION`, `CONFLICT`, `NOT_FOUND` o `INACTIVE`. """ code: String! """ Dato que causó el error, p. ej. `customerId` o `lines[1].quantity` (partidas numeradas desde 0); `base` o `null` si es de la operación completa. """ field: String """ Descripción del error para mostrar o registrar; no compares contra este texto. """ message: String! } """ Cómo controla el inventario un artículo según su tipo de artículo. """ type InventoryControl { """ `true` si el lote o la serie se asignan automáticamente. """ autoLot: Boolean! """ `true` si usa costo identificado: cada entrada al inventario debe llevar un costo mayor que cero. """ identifiedCost: Boolean! """ `true` si el artículo pide lote o número de serie. """ lot: Boolean! """ Clave del control de lote tal como la guarda AdvantaCloud: `N` sin control, `L` lote, `S` serie, `P` pedimento, o combinaciones como `LP` o `SP`. """ lotControl: String """ `true` si maneja lotes con fecha de caducidad. """ lotExpiry: Boolean! """ `true` si pide el número de pedimento de importación. """ pedimento: Boolean! """ Decimales que admite una cantidad del artículo; los de `rounding`, o 5 si `roundingType` es `0`. """ quantityDecimals: Int! """ Número de decimales al que se redondean las cantidades. """ rounding: Int! """ Tipo de redondeo: `0` ninguno, `1` normal, `2` al entero inferior, `3` al entero superior. """ roundingType: Int! """ `true` si maneja número de serie: cada pieza es un saldo con cantidad 1. """ serial: Boolean! } """ Una factura de la empresa con su cliente, su total y su saldo por cobrar. Es lo que llega en las listas; para descargar su XML o su PDF pide la factura con [`invoice(id:)`](https://developers.advanta.mx/referencia/facturas-y-cobranza/invoice/). """ type Invoice { """ Saldo por cobrar, en la moneda de la factura. Llega `null` si la factura no tiene cuenta por cobrar en AdvantaCloud. """ balance: Money """ Clave SAT de la moneda de la factura, p. ej. `MXN` o `USD`. """ currency: String """ Cliente de la factura. """ customer: Customer """ Fecha de vencimiento del pago de la factura. No se borra al cobrarse: la factura está vencida si esta fecha ya pasó y `balance` es mayor que cero. Llega `null` si la factura no tiene cuenta por cobrar. """ dueDate: Date """ Folio de la factura con su serie, p. ej. `FMTY26100154`. """ folio: String """ Identificador de la factura; úsalo con [`invoice(id:)`](https://developers.advanta.mx/referencia/facturas-y-cobranza/invoice/) y en las aplicaciones de [`createCollection`](https://developers.advanta.mx/referencia/facturas-y-cobranza/createCollection/). """ id: ID! """ Fecha y hora de emisión de la factura. """ issuedAt: DateTime """ Órdenes de venta incluidas en la factura, de la más antigua a la más reciente. """ orders(after: String, first: Int): OrderConnection """ Lo cobrado de la factura (`total` menos `balance`); `null` cuando `balance` es `null`. """ paid: Money """ Clave del estatus tal como la guarda AdvantaCloud; útil cuando `status` es `UNKNOWN`. """ rawStatus: String """ Estatus de la factura. """ status: InvoiceStatus! """ Total de la factura. """ total: Money """ Folio fiscal (UUID) del CFDI; `null` mientras la factura no se timbra. """ uuid: String } """ Una página de facturas con la información para pedir la siguiente. """ type InvoiceConnection { """ Las mismas facturas, cada una con su `cursor`. """ edges: [InvoiceEdge] """ Las facturas de esta página. La forma más corta de leerlas. """ nodes: [Invoice] """ Dónde estás en la lista. """ pageInfo: PageInfo! } """ Una factura con las ligas para descargar su XML y su PDF. La devuelve [`invoice(id:)`](https://developers.advanta.mx/referencia/facturas-y-cobranza/invoice/); en las listas la misma factura llega como [`Invoice`](https://developers.advanta.mx/tipos/Invoice/), sin ligas. """ type InvoiceDetail { """ Saldo por cobrar, en la moneda de la factura. Llega `null` si la factura no tiene cuenta por cobrar en AdvantaCloud. """ balance: Money """ Clave SAT de la moneda de la factura, p. ej. `MXN` o `USD`. """ currency: String """ Cliente de la factura. """ customer: Customer """ Fecha de vencimiento del pago de la factura. No se borra al cobrarse: la factura está vencida si esta fecha ya pasó y `balance` es mayor que cero. Llega `null` si la factura no tiene cuenta por cobrar. """ dueDate: Date """ Folio de la factura con su serie, p. ej. `FMTY26100154`. """ folio: String """ Identificador de la factura. """ id: ID! """ Fecha y hora de emisión de la factura. """ issuedAt: DateTime """ Órdenes de venta incluidas en la factura, de la más antigua a la más reciente. """ orders(after: String, first: Int): OrderConnection """ Lo cobrado de la factura (`total` menos `balance`); `null` cuando `balance` es `null`. """ paid: Money """ Liga para descargar el PDF de la factura, que se genera al descargarlo con el formato de la empresa. Está firmada y vence a los 10 minutos. Llega `null` si la factura no está timbrada. """ pdfUrl: String """ Clave del estatus tal como la guarda AdvantaCloud; útil cuando `status` es `UNKNOWN`. """ rawStatus: String """ Estatus de la factura. """ status: InvoiceStatus! """ Total de la factura. """ total: Money """ Folio fiscal (UUID) del CFDI; `null` mientras la factura no se timbra. """ uuid: String """ Liga para descargar el XML del CFDI timbrado. Está firmada y vence a los 10 minutos. Llega `null` si la factura no está timbrada. """ xmlUrl: String } """ Una factura de la página junto con su cursor. """ type InvoiceEdge { """ Cursor de esta factura; pásalo en `after` para seguir desde aquí. """ cursor: String! """ La factura. """ node: Invoice } """ En qué punto de su ciclo fiscal está una factura. """ enum InvoiceStatus { """ Cancelación solicitada al SAT, en espera de respuesta """ CANCELLATION_REQUESTED """ Cancelada """ CANCELLED """ Confirmada, en espera de timbrarse """ CONFIRMED """ Timbrada y vigente; la única a la que se aplican cobros """ INVOICED """ Registrada, aún sin timbrar """ REGISTERED """ Sin equivalente, p. ej. una factura sustituida; revisa `rawStatus` """ UNKNOWN } """ Importe como texto decimal, con al menos dos y hasta seis decimales, p. ej. `"4872.00"`. Nunca llega como número flotante. """ scalar Money type Mutation { """ Cancela una orden de venta. Una orden de venta registrada se elimina; una confirmada regresa a registrada con el motivo en sus comentarios. """ cancelOrder( """ Orden que quieres cancelar. """ id: ID! """ 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. """ idempotencyKey: String! """ Motivo de la cancelación; es obligatorio. Al desconfirmar una orden de venta se agrega a sus comentarios. """ reason: String! """ Usuario activo de AdvantaCloud a nombre de quien se cancela. Con Llave API es obligatorio. """ userId: ID ): CancelOrderPayload """ Registra un pago recibido de un cliente y, si lo indicas, lo aplica a sus facturas en la misma operación. No emite ni timbra el complemento de pago. """ createCollection( """ Clave única que generas por cada cobro, de hasta 200 caracteres, por ejemplo un UUID o la referencia del pago en tu sistema. Si repites la petición con la misma clave y los mismos datos, recibes el cobro que ya se registró en lugar de uno nuevo. """ idempotencyKey: String! """ Los datos del cobro y sus aplicaciones a facturas (hasta 100). Ver [`CollectionInput`](https://developers.advanta.mx/tipos/CollectionInput/). """ input: CollectionInput! ): CreateCollectionPayload """ Registra una orden de venta nueva con sus partidas. La orden queda registrada (`REGISTERED`), sin confirmar y sin apartar inventario. """ createOrder( """ 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. """ idempotencyKey: String! """ Los datos de la orden y sus partidas (de 1 a 100). Ver [`OrderInput`](https://developers.advanta.mx/tipos/OrderInput/). """ input: OrderInput! ): CreateOrderPayload """ Registra un lugar de entrega nuevo para un cliente o actualiza uno que ya tiene, y devuelve el lugar de entrega como quedó. """ upsertCustomerAddress( """ Clave única que generas por cada registro o cambio, por ejemplo un UUID, de hasta 200 caracteres. Si repites la petición con la misma clave y los mismos datos, recibes el lugar de entrega que ya se guardó en lugar de otro nuevo. """ idempotencyKey: String! """ Los datos del lugar de entrega. Con `input.id` actualiza ese lugar de entrega; sin él registra uno nuevo. Ver [`CustomerAddressInput`](https://developers.advanta.mx/tipos/CustomerAddressInput/). """ input: CustomerAddressInput! ): UpsertCustomerAddressPayload } """ Una orden de venta con su cliente, sus importes, sus partidas y su avance de facturación, cobro y embarque. """ type Order { """ Facturas de anticipo del cliente que se pueden aplicar a la orden. """ advanceInvoices: [OrderAdvanceInvoice!] """ Total de anticipos aplicados a la orden. """ advancesAppliedTotal: Money """ La `idempotencyKey` con la que esta misma llave creó la orden con [`createOrder`](https://developers.advanta.mx/referencia/pedidos/createOrder/); `null` si la creó otra llave, un usuario o la aplicación, o si su registro ya se depuró (una tarea diaria borra los de más de 30 días). """ clientKey: String """ Estatus de cobro; vacío mientras no tiene cobros. """ collectionStatus: String """ Contacto del cliente para esta orden. """ contact: CustomerContact """ Fecha y hora de captura, con su desfase horario. """ createdAt: DateTime """ Usuario que capturó la orden. """ createdBy: UserSummary """ Término de crédito. """ creditTerm: CreditTerm """ Clave de la moneda de la orden, p. ej. `MXN`. """ currency: String """ Cliente de la orden. """ customer: Customer """ Lugar de entrega. """ deliveryAddress: CustomerAddress """ Fecha de vencimiento de la orden; es el mismo dato que `dueDate`. """ deliveryDate: Date """ Fecha en que se entregó la orden. """ deliveryOn: Date """ Descuento total. """ discount: Money """ Fecha de vencimiento de la orden. """ dueDate: Date """ Tipo de cambio de la orden. """ exchangeRate: Decimal """ Fecha de entrega comprometida con el cliente. """ fhprox: Date """ Folio visible en la aplicación y en los documentos, p. ej. `OV00512`. """ folio: String """ Identificador de la orden; úsalo con [`order(id:)`](https://developers.advanta.mx/referencia/pedidos/order/). """ id: ID """ Clave SAT del incoterm, en órdenes de comercio exterior. """ incoterm: String """ `true` si el cliente pidió factura; `false` si se entrega con remisión. """ invoiceRequested: Boolean """ Estatus de facturación; vacío mientras la orden no se factura. """ invoiceStatus: String """ Partidas de la orden por número de partida, paginadas con cursores igual que las listas. """ lines(after: String, first: Int): OrderLineConnection! """ Comentarios de la orden. Al desconfirmar una orden de venta con [`cancelOrder`](https://developers.advanta.mx/referencia/pedidos/cancelOrder/), el motivo se agrega aquí. """ notes: String """ Observaciones de la orden. """ observ: String """ Saldo por cobrar de la orden. """ openBalance: Money """ Dónde se capturó la orden. """ origin: OrderOrigin! """ Cobros aplicados a la orden, del más reciente al más antiguo. """ payments: [OrderPayment!] """ Total cobrado por moneda de la cuenta bancaria. """ paymentsTotals: [OrderPaymentTotal!] """ Liga al PDF de la orden con el formato (`formatId`) y la leyenda opcional (`legendId`) de [`orderPrintOptions`](https://developers.advanta.mx/referencia/pedidos/orderPrintOptions/). Está firmada y vence a los 10 minutos. """ pdfUrl(formatId: ID!, legendId: ID): String """ Nivel de precios aplicado. """ priceLevel: Int """ La estructura de precios de las partidas, cuando todas las que tienen una usan la misma; `null` si ninguna tiene o si hay varias distintas. """ priceStructure: PriceStructure """ Proyecto al que se carga la orden. """ project: Project """ Orden de compra del cliente. """ purchaseOrder: String """ Clave del origen tal como la guarda AdvantaCloud; útil cuando `origin` es `UNKNOWN`. """ rawOrigin: String """ Clave del estatus de embarque tal como la guarda AdvantaCloud. """ rawShipmentStatus: String """ Clave del estatus tal como la guarda AdvantaCloud; útil cuando `status` es `UNKNOWN`. """ rawStatus: String """ Referencia libre de la orden. """ reference: String """ Clasificador de venta. """ saleClassifier: CatalogOption """ Tipo de venta. """ saleType: SaleType """ Vendedor asignado. """ salesperson: Employee """ Avance del embarque de la orden. """ shipment: OrderShipment! """ Clasificador de embarque. """ shipmentClassifier: String """ Costo de envío. """ shippingCost: Money """ Forma de embarque. """ shippingMethod: ShippingMethod """ Estatus de la orden. """ status: OrderStatus! """ Importe antes de impuestos. """ subtotal: Money """ Etiquetas de la orden. """ tags: [String!]! """ Impuestos. """ tax: Money """ Total de la orden. """ total: Money """ Peso total de las partidas. """ totalWeight: Quantity """ Almacén que surte la orden. """ warehouse: Warehouse } """ Una factura de anticipo del cliente que se puede aplicar a la orden. """ type OrderAdvanceInvoice { """ Importe ya aplicado a esta orden. """ applied: Money! """ Lo más que puede quedar aplicado a esta orden (saldo del anticipo más lo ya aplicado). """ available: Money! """ Concepto. """ concept: String! """ Moneda. """ currency: String """ Fecha y hora de la factura. """ date: DateTime """ Folio de la factura. """ folio: String """ Identificador de la factura de anticipo. """ id: ID! """ Total de la factura. """ total: Money } """ Una página de órdenes de venta con la información para pedir la siguiente. """ type OrderConnection { """ Las mismas órdenes, cada una con su `cursor`. """ edges: [OrderEdge] """ Las órdenes de esta página. La forma más corta de leerlas. """ nodes: [Order] """ Dónde estás en la lista. """ pageInfo: PageInfo! } """ Los valores con los que conviene empezar una orden para un cliente. """ type OrderDefaults { """ Lugares de entrega del cliente. """ addresses: [CustomerAddress!]! """ Contactos del cliente. """ contacts: [CustomerContact!]! """ Término de crédito propuesto. """ creditTerm: CreditTerm """ `true` si la empresa fija el término de crédito (del cliente o del tipo de venta). """ creditTermLocked: Boolean! """ Términos de crédito que puede usar la orden. """ creditTerms: [CreditTerm!]! """ Moneda propuesta. """ currency: Currency """ `true` si la empresa permite actualizar los datos del cliente desde la orden. """ customerUpdate: Boolean! """ `true` si el vendedor se toma del cliente. """ fixedSeller: Boolean! """ `true` si el término de crédito se toma del cliente. """ fixedTc: Boolean! """ Esa estructura de precios con su clave y su moneda. """ priceStructure: PriceStructure """ Estructura de precios que [`quoteOrder`](https://developers.advanta.mx/referencia/pedidos/quoteOrder/) y [`createOrder`](https://developers.advanta.mx/referencia/pedidos/createOrder/) aceptan para el cliente. """ priceStructureId: ID """ Tipos de venta activos. """ saleTypes: [SaleType!]! """ Vendedor propuesto (el del cliente, o el del usuario si así lo configura la empresa). """ salesperson: Employee """ `true` si la empresa fija el vendedor. """ salespersonLocked: Boolean! """ `true` si el vendedor se toma del usuario que captura. """ sellerFromUser: Boolean! """ Forma de embarque del cliente. """ shippingMethod: ShippingMethod """ Almacén propuesto. """ warehouse: Warehouse """ `true` si el término de crédito se toma del tipo de venta. """ xcrmFromType: Boolean! } """ Una orden de la página junto con su cursor. """ type OrderEdge { """ Cursor de esta orden; pásalo en `after` para seguir desde aquí. """ cursor: String! """ La orden. """ node: Order } """ Los datos para cotizar ([`quoteOrder`](https://developers.advanta.mx/referencia/pedidos/quoteOrder/)) o crear ([`createOrder`](https://developers.advanta.mx/referencia/pedidos/createOrder/)) una orden de venta. """ input OrderInput { """ Lugar de entrega del cliente; las opciones están en `orderDefaults.addresses`. """ addressId: ID """ Contacto del cliente; las opciones están en `orderDefaults.contacts`. """ contactId: ID """ Término de crédito; las opciones están en `orderDefaults.creditTerms`. """ creditTermId: ID! """ Moneda de la orden. """ currencyId: ID! """ Cliente. """ customerId: ID! """ Fecha de vencimiento de la orden (`AAAA-MM-DD`). """ deliveryDate: Date """ Fecha de entrega comprometida con el cliente (`AAAA-MM-DD`). """ fhprox: Date """ Clave SAT de un incoterm, en órdenes de comercio exterior. """ incoterm: String """ Partidas de la orden, de 1 a 100. """ lines: [OrderLineInput!]! """ Orden de compra del cliente. """ noocmp: String """ Comentarios de la orden. """ notes: String """ Observaciones de la orden. """ observ: String """ Estructura de precios; debe ser la principal o la auxiliar del cliente. Toma el `priceStructureId` de [`orderDefaults`](https://developers.advanta.mx/referencia/pedidos/orderDefaults/). """ priceStructureId: ID! """ Proyecto activo del almacén de la orden. """ projectId: ID """ Referencia libre de la orden. """ refere: String """ Tipo de venta activo; las opciones están en `orderDefaults.saleTypes`. """ saleTypeId: ID! """ Usuario activo de AdvantaCloud a nombre de quien se captura la orden. Obligatorio con Llave API; puede determinar el vendedor si la empresa lo toma del usuario. Con llave, la orden no queda limitada a los almacenes asignados a ese usuario. """ userId: ID """ Almacén de venta que surte la orden. """ warehouseId: ID! """ Vendedor. Si la configuración de la empresa toma el vendedor del cliente o del usuario, se ignora. """ xremId: ID """ Forma de embarque. Si lo omites se usa la del cliente; si el cliente no tiene, es obligatorio. """ xvemId: ID } """ Un artículo de la orden con su cantidad, su precio y sus importes. """ type OrderLine { """ Precio base de la partida; si no tiene uno aparte, es el mismo `unitPrice`. No es necesariamente el precio de lista. """ basePrice: Money """ `true` si la partida lleva un texto propio además de la descripción del artículo. """ customDescription: Boolean! """ Texto adicional de la partida. Cuando `customDescription` es `true`, la factura lo agrega a la descripción del artículo. """ description: String """ Importe del descuento. """ discount: Money """ Grupo de la partida. """ group: String """ Identificador de la partida. """ id: ID """ Estatus de inventario de la partida. """ inventoryStatusId: ID """ Fecha y hora en que se fijó el precio. """ lastPriceDate: DateTime """ Número de la partida dentro de la orden. """ lineNumber: Int """ Ubicación del almacén de la que sale. """ location: WarehouseLocation """ Lote o serie. """ lot: String """ Comentarios de la partida. """ notes: String """ Si la partida es parte de un paquete, la partida principal del paquete. """ packageId: ID """ Clave del artículo del paquete al que pertenece la partida. """ packageProductCode: String """ Porcentaje de descuento manual de la partida. """ pdscto: Decimal """ Identificador de una referencia cruzada del artículo. """ priceListId: ID """ Clave de esa estructura de precios. """ priceStructureCode: String """ Estructura de precios que dio el precio. """ priceStructureId: ID """ Artículo. """ product: Product """ Fecha de entrega prometida de la partida. """ promisedDate: Date """ Cantidad pedida, en la unidad de la partida. """ quantity: Quantity """ Referencia de la partida. """ reference: String """ Descuento de vendedor aplicado. """ sellerDiscountId: ID """ Cantidad ya embarcada. """ shipped: Quantity """ Costo de envío de la partida. """ shippingCost: Money """ Forma de embarque de la partida. """ shippingMethodId: ID """ Estatus de la partida tal como lo guarda AdvantaCloud (`Regis`, `Confi`, `Embar`, `Cerra`…); puede diferir del de la orden. """ status: String """ Importe antes de impuestos. """ subtotal: Money """ Impuestos. """ tax: Money """ Total de la partida. """ total: Money """ Unidad de medida. """ unit: Unit """ Precio unitario aplicado. """ unitPrice: Money """ Almacén que surte la partida. """ warehouse: Warehouse """ Peso de la partida. """ weight: Quantity } """ Una página de partidas de una orden con la información para pedir la siguiente. """ type OrderLineConnection { """ Las mismas partidas, cada una con su `cursor`. """ edges: [OrderLineEdge] """ Las partidas de esta página. """ nodes: [OrderLine] """ Dónde estás en la lista de partidas. """ pageInfo: PageInfo! } """ Una partida de la página junto con su cursor. """ type OrderLineEdge { """ Cursor de esta partida; pásalo en `after` para seguir desde aquí. """ cursor: String! """ La partida. """ node: OrderLine } """ Un artículo de la orden que vas a cotizar o crear. """ input OrderLineInput { """ Texto adicional de la partida; la factura lo agrega a la descripción del artículo. Sin caracteres de control, salvo salto de línea y tabulador. """ description: String """ Precio unitario que esperas, normalmente el `unitPrice` de [`quoteOrder`](https://developers.advanta.mx/referencia/pedidos/quoteOrder/). Si el precio vigente es otro, [`createOrder`](https://developers.advanta.mx/referencia/pedidos/createOrder/) rechaza la partida con `CONFLICT`. Se ignora si envías `unitPrice`. """ expectedUnitPrice: Money """ Lote o serie. """ lot: String """ Porcentaje de descuento manual, dentro del máximo que permite la empresa. """ pdscto: Decimal """ Artículo activo. """ productId: ID! """ Cantidad, como texto decimal positivo (`"12.00"`). """ quantity: Quantity! """ Precio manual, de al menos `0.01`. Si la empresa exige precio de lista, sólo se acepta cuando la estructura de precios permite editarlo y nunca por debajo del precio de lista; si no lo exige, es libre. Un precio fijo por conversión de moneda no se cambia. Si lo omites se usa el precio de lista; sin precio de lista, la partida se guarda en 0 y puede rechazarse por sus impuestos. """ unitPrice: Money } """ Dónde se capturó la orden. """ enum OrderOrigin { """ Cotización de mostrador """ CT """ Cotización de venta; sólo llega si la pides con `origin` """ CV """ Cotización con origen `CZ` """ CZ """ Pedido por especificación """ EP """ Orden de venta """ OV """ Punto de venta """ PV """ Otro origen; revisa `rawOrigin` """ UNKNOWN """ Venta mostrador """ VM } """ Un cobro aplicado a una orden de venta. """ type OrderPayment { """ Importe cobrado. """ amount: Money """ Banco. """ bank: Bank """ Cuenta bancaria que recibió el cobro. """ bankAccount: BankAccount """ Usuario que registró el cobro. """ createdBy: UserSummary """ Clave SAT de la moneda de la cuenta bancaria. """ currency: String """ Fecha y hora del cobro. """ date: DateTime """ Tipo de cambio del cobro. """ exchangeRate: Decimal """ Identificador del cobro. """ id: ID! """ Forma de cobro. """ paymentMethod: PaymentMethod """ Referencia del cobro. """ reference: String """ Terminal bancaria, en cobros con tarjeta. """ terminal: BankTerminal """ Tipo de cobro. """ type: String } """ Lo cobrado a una orden en una moneda. """ type OrderPaymentTotal { """ Moneda. """ currency: String """ Total cobrado en esa moneda. """ total: Money! } """ Formatos y leyendas para pedir el PDF de una orden. """ type OrderPrintOptions { """ Formatos de impresión de órdenes de venta; uno es obligatorio en [`Order.pdfUrl`](https://developers.advanta.mx/tipos/Order/#pdfUrl). """ formats: [PrintOption!]! """ Leyendas que se pueden agregar al PDF; opcionales. """ legends: [PrintOption!]! } """ La orden calculada por [`quoteOrder`](https://developers.advanta.mx/referencia/pedidos/quoteOrder/), sin guardar. """ type OrderQuote { """ La orden con precios, descuentos, impuestos y totales calculados. No tiene `id` ni folio. """ order: Order! """ Advertencias de existencia, precio y crédito. """ warnings: [OrderWarning!]! } """ Avance del embarque de una orden. """ type OrderShipment { """ Estatus de embarque. """ status: ShipmentStatus! } """ Cómo se ordena [`ordersConnection`](https://developers.advanta.mx/referencia/pedidos/ordersConnection/). """ enum OrderSort { """ Fecha de captura, de la más reciente a la más antigua (por omisión) """ CREATED_AT_DESC """ Folio, del mayor al menor """ FOLIO_DESC } """ En qué punto de su ciclo está una orden de venta. """ enum OrderStatus { """ Cancelada """ CANCELLED """ Cerrada """ CLOSED """ Confirmada """ CONFIRMED """ En espera de aprobación """ PENDING_APPROVAL """ Por confirmar """ PENDING_CONFIRMATION """ Preconfirmada por el vendedor """ PRECONFIRMED """ Cotización de mostrador """ QUOTED """ Cotización aprobada por el cliente """ QUOTE_APPROVED """ Cotización convertida en orden """ QUOTE_CONVERTED """ Cotización rechazada por el cliente """ QUOTE_DECLINED """ Cotización vencida """ QUOTE_EXPIRED """ Cotización solicitada """ QUOTE_REQUESTED """ Cotización enviada al cliente """ QUOTE_SENT """ Registrada, aún sin confirmar """ REGISTERED """ Rechazada """ REJECTED """ Vendida """ SOLD """ Sin equivalente; revisa `rawStatus` """ UNKNOWN } """ Avisos al cotizar o crear una orden. """ enum OrderWarning { """ La orden rebasa el crédito disponible del cliente """ CREDIT_EXCEEDED """ No hay existencia suficiente de algún artículo en el almacén """ NO_STOCK """ El precio de una partida ya no coincide con su `expectedUnitPrice`; [`createOrder`](https://developers.advanta.mx/referencia/pedidos/createOrder/) la rechaza con `CONFLICT` """ PRICE_CHANGED } """ Dónde estás en una lista paginada con cursores. """ type PageInfo { """ Cursor del último elemento; pásalo en `after` para pedir la página siguiente. """ endCursor: String """ Hay más elementos después de esta página. """ hasNextPage: Boolean! """ `true` si pediste esta página con `after`, es decir, si no es la primera. """ hasPreviousPage: Boolean! """ Cursor del primer elemento de esta página. """ startCursor: String } """ El CFDI con complemento de pagos (REP) que ampara uno o varios cobros de un cliente, con su estado de timbrado y las ligas para descargarlo. """ type PaymentComplement { """ Folio del complemento con su serie, p. ej. `PF2610031`. """ folio: String """ Identificador del complemento. Varios cobros del mismo cliente pueden compartirlo. """ id: ID! """ Liga para descargar el PDF del complemento timbrado. Llega con `STAMPED`, y con `CANCEL_REQUESTED` si el complemento llegó a timbrarse; si no, `null`. Está firmada y vence a los 10 minutos. """ pdfUrl: String """ Clave del estatus tal como la guarda AdvantaCloud; útil cuando `stampStatus` es `UNKNOWN`. """ rawStatus: String """ Motivo por el que se rechazó el timbrado, cuando `stampStatus` es `FAILED`. """ stampError: String """ Estado del timbrado: `REGISTERED`, `PENDING`, `STAMPED`, `FAILED`, `CANCEL_REQUESTED`, `CANCELLED` o `UNKNOWN`. Sólo con `STAMPED` el complemento es un CFDI válido. Es texto, no un enum: trata un valor desconocido como `UNKNOWN`. """ stampStatus: String! """ Fecha y hora del timbrado que devolvió el PAC. Antes de timbrarse trae la fecha con la que el complemento se envió a timbrar. """ stampedAt: DateTime """ Folio fiscal (UUID) del complemento; `null` mientras no se timbra. """ uuid: String """ Liga para descargar el XML timbrado. Llega con `STAMPED`, y con `CANCEL_REQUESTED` o `CANCELLED` si el complemento llegó a timbrarse; si no, `null`. Está firmada y vence a los 10 minutos. """ xmlUrl: String } """ Una forma de cobro del catálogo de la empresa, como efectivo, transferencia o tarjeta. """ type PaymentMethod { """ `true` si es un cobro con tarjeta, que lleva terminal bancaria. """ card: Boolean! """ Clave de la forma de cobro en el catálogo de la empresa, p. ej. `TRA`. No es la clave de forma de pago del SAT. """ code: String """ Identificador de la forma de cobro; es el `paymentMethodId` de [`createCollection`](https://developers.advanta.mx/referencia/facturas-y-cobranza/createCollection/). """ id: ID! """ Nombre de la forma de cobro, p. ej. `Transferencia electrónica`. """ name: String } """ Una forma de cobro habilitada en la empresa, con su marca de tarjeta. """ type PaymentMethodOption { """ `true` si es un cobro con tarjeta, que lleva terminal bancaria. """ card: Boolean! """ Clave y nombre de la forma de cobro, p. ej. `EFE | Efectivo`. """ label: String! """ Identificador de la forma de cobro; es el que se envía en `paymentMethodId`. """ value: ID! } """ Una lista de precios de una estructura de precios, con su vigencia. """ type PriceList { """ Clave de la lista. """ code: String """ Identificador de la lista; es el que se envía en [`priceListEntriesConnection(listId:)`](https://developers.advanta.mx/referencia/productos-y-precios/priceListEntriesConnection/). """ id: ID! """ Nombre de la lista. """ name: String """ Inicio de la vigencia de la lista. """ validFrom: DateTime """ Fin de la vigencia de la lista. """ validUntil: DateTime } """ Una página de las listas de precios de una estructura con la información para pedir la siguiente. """ type PriceListConnection { """ Las mismas listas, cada una con su `cursor`. """ edges: [PriceListEdge] """ Las listas de esta página. """ nodes: [PriceList] """ Dónde estás en las listas de la estructura. """ pageInfo: PageInfo! } """ Una lista de precios de la página junto con su cursor. """ type PriceListEdge { """ Cursor de esta lista; pásalo en `after` para seguir desde aquí. """ cursor: String! """ La lista de precios. """ node: PriceList } """ El precio de un artículo en una lista de precios. """ type PriceListEntry { """ Precio en la moneda de la lista. En una lista de descuentos es el porcentaje de descuento, no un precio. """ amount: Money """ Identificador del precio. """ id: ID! """ Artículo. """ productId: ID """ Unidad de medida del precio. El precio de un artículo sólo toma los de su unidad ([`Product.unit`](https://developers.advanta.mx/tipos/Product/#unit)). """ unitId: ID """ Fecha y hora de la última modificación; úsala con [`priceListEntriesConnection(updatedAfter:)`](https://developers.advanta.mx/referencia/productos-y-precios/priceListEntriesConnection/). """ updatedAt: DateTime! """ Hasta cuándo es válido este precio; `null` si no vence. Según la configuración de la empresa, un precio vencido puede seguir contando en el precio calculado. """ validUntil: DateTime } """ Una página de precios de una lista con la información para pedir la siguiente. """ type PriceListEntryConnection { """ Los mismos precios, cada uno con su `cursor`. """ edges: [PriceListEntryEdge] """ Los precios de esta página. La forma más corta de leerlos. """ nodes: [PriceListEntry] """ Dónde estás en la lista. """ pageInfo: PageInfo! } """ Un precio de la página junto con su cursor. """ type PriceListEntryEdge { """ Cursor de este precio; pásalo en `after` para seguir desde aquí. """ cursor: String! """ El precio. """ node: PriceListEntry } """ Un conjunto de listas de precios con el que se calcula el precio de un artículo para un cliente. """ type PriceStructure { """ Clave de la estructura, p. ej. `MAY`. """ code: String """ Clave SAT de la moneda de la estructura, tomada de su primera lista de precios. """ currency: String """ Identificador de la estructura; es el que se envía en `priceStructureId`. """ id: ID! """ Listas de precios que forman la estructura, de la modificada hace más tiempo a la más reciente, vigentes o no. """ lists(after: String, first: Int): PriceListConnection! """ Nombre de la estructura. """ name: String } """ Una página de estructuras de precios con la información para pedir la siguiente. """ type PriceStructureConnection { """ Las mismas estructuras, cada una con su `cursor`. """ edges: [PriceStructureEdge] """ Las estructuras de esta página. La forma más corta de leerlas. """ nodes: [PriceStructure] """ Dónde estás en la lista. """ pageInfo: PageInfo! } """ Una estructura de precios de la página junto con su cursor. """ type PriceStructureEdge { """ Cursor de esta estructura; pásalo en `after` para seguir desde aquí. """ cursor: String! """ La estructura de precios. """ node: PriceStructure } """ Un formato o una leyenda de impresión. """ type PrintOption { """ Identificador; pásalo en `formatId` o `legendId`. """ id: ID! """ Nombre del formato o texto de la leyenda. """ label: String! } """ Un artículo del catálogo de la empresa, con su unidad, su familia, su control de inventario y, si lo pides, su precio. """ type Product { """ Código de barras; si tiene dos, el principal. """ barcode: String """ Descripción adicional, en una o dos líneas separadas por un salto de línea. """ description: String """ Familia del artículo. Si pertenece a varias, llega sólo una. """ family: ProductFamily """ Identificador del artículo; es el que se envía en `productId`. """ id: ID! """ Clave del artículo, p. ej. `TOR-0420`. """ idpart: String """ Liga a la imagen del artículo. Está firmada y vence a los 7 días; `null` si no tiene imagen. """ imageUrl: String """ Cómo controla el inventario el artículo, de los lotes y series al redondeo de cantidades. """ inventoryControl: InventoryControl """ Descripción principal del artículo. """ name: String """ Precio de lista en la unidad del artículo, antes de descuentos e impuestos. Llega sólo en [`product`](https://developers.advanta.mx/referencia/productos-y-precios/product/) y [`productsConnection`](https://developers.advanta.mx/referencia/productos-y-precios/productsConnection/) cuando envías `customerId` o `priceStructureId`; en los demás casos, como en las partidas de una orden, llega `null`. """ price: ProductPrice """ Unidad de medida del artículo; sus precios y cantidades están en esta unidad. """ unit: Unit """ Fecha y hora de la última modificación del artículo; úsala con `productsConnection(updatedAfter:)`. Un cambio de precio no la mueve. """ updatedAt: DateTime } """ Una página de artículos con la información para pedir la siguiente. """ type ProductConnection { """ Los mismos artículos, cada uno con su `cursor`. """ edges: [ProductEdge] """ Los artículos de esta página. La forma más corta de leerlos. """ nodes: [Product] """ Dónde estás en la lista. """ pageInfo: PageInfo! } """ Un artículo de la página junto con su cursor. """ type ProductEdge { """ Cursor de este artículo; pásalo en `after` para seguir desde aquí. """ cursor: String! """ El artículo. """ node: Product } """ Una familia con la que la empresa agrupa sus artículos. """ type ProductFamily { """ Clave de la familia. """ code: String """ Identificador de la familia; es el que se envía en `familyId` o `familyIds`. """ id: ID! """ Nombre de la familia. """ name: String } """ El precio de oferta de un artículo en una estructura de precios. """ type ProductOffer { """ Precio unitario de oferta, tal como está capturado en la lista auxiliar de la estructura. """ amount: Money! """ Hasta cuándo es válida la oferta; `null` si no vence. Una oferta vencida también llega. """ validUntil: DateTime } """ El precio de lista de un artículo para un cliente o una estructura de precios. """ type ProductPrice { """ Precio unitario de lista, antes de descuentos e impuestos, con las listas vigentes de la estructura en la moneda pedida. Llega en `"0.00"` si ninguna tiene precio del artículo. """ amount: Money! """ Clave SAT de la moneda del precio, p. ej. `MXN`. """ currency: String """ Lista de precios del precio, cuando la estructura tiene una sola lista vigente en esa moneda (sin contar las de descuentos); si tiene varias, llega `null`. """ listId: ID """ Precio de oferta del artículo, de la lista auxiliar de la estructura; `null` si no tiene. Se toma tal como está capturado: no se convierte a la moneda del precio ni se descarta si ya venció, así que revisa su `validUntil`. """ offer: ProductOffer """ Hasta cuándo es válido el precio: la fecha más próxima entre el fin de la lista y la vigencia del precio del artículo. Llega `null` cuando `listId` es `null`. """ validUntil: DateTime } """ Un artículo que coincide con la búsqueda de [`productSuggestions`](https://developers.advanta.mx/referencia/productos-y-precios/productSuggestions/). """ type ProductSuggestion { """ Identificador del artículo; es el que se envía en `productId`. """ id: ID! """ Clave del artículo. """ idpart: String """ Descripción principal del artículo. """ name: String """ Unidad de medida del artículo. """ unit: SuggestedUnit } """ Un proyecto al que se cargan órdenes. """ type Project { """ Clave del proyecto. """ code: String """ Identificador del proyecto. """ id: ID! """ Nombre del proyecto. """ name: String } """ Cantidad como texto decimal, con dos a seis decimales, p. ej. `"1200.00"`. """ scalar Quantity type Query { """ Lista las terminales bancarias activas para los cobros con tarjeta de un almacén, con su cuenta bancaria y su banco. """ bankTerminals( """ Sólo las terminales de esta cuenta bancaria y las que no tienen cuenta. Envía la cuenta del cobro para descartar las de otras cuentas. """ bankAccountId: ID """ Almacén del cobro, el mismo `warehouseId` que enviarás a [`createCollection`](https://developers.advanta.mx/referencia/facturas-y-cobranza/createCollection/). Llegan las terminales de la empresa a la que pertenece el almacén y las que no tienen empresa. Es obligatorio, aunque el schema lo marque opcional. """ warehouseId: ID ): [BankTerminal!]! """ Lista las unidades de negocio de la empresa ordenadas por clave. """ businessUnitOptions: [CatalogOption!]! """ Devuelve un cobro por su `id`, con su importe, su forma de cobro y las facturas a las que se aplicó. """ collection( """ Identificador del cobro, el mismo `id` que llega en [`collectionsConnection`](https://developers.advanta.mx/referencia/facturas-y-cobranza/collectionsConnection/) o en [`createCollection`](https://developers.advanta.mx/referencia/facturas-y-cobranza/createCollection/). """ id: ID! ): Collection """ Lista los tipos que acepta un cobro nuevo: cobro de facturas o anticipo. """ collectionTypeOptions: [CatalogOption!]! """ Lista los cobros de la empresa con su importe, su forma de cobro y las facturas a las que se aplicaron. Filtra por cliente y por fecha del pago, y recorre el resultado por páginas con cursores. """ collectionsConnection( """ Cursor de la página anterior (`pageInfo.endCursor`). Devuelve los cobros que siguen. """ after: String """ Sólo los cobros de este cliente. """ customerId: ID """ Cuántos cobros devolver desde el inicio o desde `after`. Sin `first` llegan 20; si pides más de 100 recibes 100. """ first: Int """ Pagos recibidos desde este día, inclusive (`AAAA-MM-DD`). """ from: Date """ Pagos recibidos hasta este día, inclusive. Con Llave API el día se corta en la hora del centro de México. """ to: Date ): CollectionConnection! """ Lista los empleados marcados como cobradores, ordenados por su clave de empleado. """ collectorOptions: [CatalogOption!]! """ Lista las monedas de la empresa con su clave, su nombre y cuál es la moneda base. """ currencyOptions: [CurrencyOption!]! """ Devuelve un cliente por su `id`, con su crédito y su saldo, sus lugares de entrega y contactos, sus órdenes de venta más recientes y sus facturas con saldo por cobrar. """ customer( """ Identificador del cliente, el mismo `id` que llega en [`customersConnection`](https://developers.advanta.mx/referencia/clientes/customersConnection/), [`customerSuggestions`](https://developers.advanta.mx/referencia/clientes/customerSuggestions/) o [`Order.customer`](https://developers.advanta.mx/tipos/Order/#customer). """ id: ID! ): CustomerDetail """ Busca clientes activos por nombre, clave, RFC o correo y devuelve hasta 20, ordenados por nombre. """ customerSuggestions( """ Texto a buscar. Basta con que aparezca en cualquier parte del nombre, la clave, el RFC o el correo, sin distinguir mayúsculas: `"garza"` encuentra «Ferretería Hermanos Garza». Un número también encuentra al cliente con ese `id`. Con el texto vacío llegan los primeros 20 clientes activos por nombre. """ query: String! ): [CustomerSuggestion!]! """ Lista los clientes de la empresa, del modificado hace más tiempo al más reciente. Busca por nombre, RFC, correo o clave, trae sólo los que tienen saldo por cobrar o los modificados desde un momento, y recorre el resultado por páginas con cursores. """ customersConnection( """ Cursor de la página anterior (`pageInfo.endCursor`). Devuelve los clientes que siguen. """ after: String """ Cuántos clientes devolver desde el inicio o desde `after`. Sin `first` llegan 20; si pides más de 100 recibes 100. """ first: Int """ Clientes cuyo nombre, RFC, correo o clave **empieza** con el texto, sin distinguir mayúsculas: `"ferre"` encuentra «Ferretería Hermanos Garza», pero `"garza"` no. Para buscar en cualquier parte del nombre usa [`customerSuggestions`](https://developers.advanta.mx/referencia/clientes/customerSuggestions/). """ search: String """ Sólo los clientes modificados después de este momento (ISO 8601 con desfase horario). Para sincronizar, envía el `updatedAt` más reciente que ya guardaste. """ updatedAfter: DateTime """ `true`: sólo los clientes con al menos una factura con saldo por cobrar, sin contar las facturas de anticipo. Esas facturas están en [`invoicesConnection`](https://developers.advanta.mx/referencia/facturas-y-cobranza/invoicesConnection/) con `customerId` y `onlyPending: true`. """ withPendingBalance: Boolean ): CustomerConnection """ Devuelve una factura por su `id`, con su saldo y las ligas para descargar el XML del CFDI y su PDF. """ invoice( """ Identificador de la factura, el mismo `id` que llega en [`invoicesConnection`](https://developers.advanta.mx/referencia/facturas-y-cobranza/invoicesConnection/) o en las aplicaciones de un cobro. """ id: ID! ): InvoiceDetail """ Lista las facturas de la empresa con su cliente, su total y su saldo por cobrar. Filtra por cliente, estatus, fecha de emisión o texto, pide sólo las que tienen saldo pendiente y recorre el resultado por páginas con cursores. """ invoicesConnection( """ Cursor de la página anterior (`pageInfo.endCursor`). Devuelve las facturas que siguen. """ after: String """ Sólo las facturas de este cliente. """ customerId: ID """ Cuántas facturas devolver desde el inicio o desde `after`. Sin `first` llegan 20; si pides más de 100 recibes 100. """ first: Int """ Emitidas desde este día, inclusive (`AAAA-MM-DD`). """ from: Date """ Con `true`, sólo las facturas con saldo por cobrar mayor que cero; no incluye las facturas de anticipo. Con `false` u omitido, todas. """ onlyPending: Boolean """ Texto que contiene el folio, el UUID, o el nombre o la clave del cliente, sin distinguir mayúsculas: `"0154"` encuentra `FMTY26100154`. """ search: String """ Uno o varios estatus; basta con que la factura tenga uno de ellos. Una lista vacía no trae ninguna factura. """ status: [InvoiceStatus!] """ Emitidas hasta este día, inclusive. Con Llave API el día se corta en la hora del centro de México. """ to: Date ): InvoiceConnection! """ Devuelve una orden de venta por su `id`, con su cliente, sus importes y sus partidas. """ order( """ Identificador de la orden, el mismo `id` que llega en [`ordersConnection`](https://developers.advanta.mx/referencia/pedidos/ordersConnection/) o en [`createOrder`](https://developers.advanta.mx/referencia/pedidos/createOrder/). """ id: ID! ): Order """ Devuelve los valores con los que conviene empezar una orden para un cliente: estructura de precios, términos de crédito, tipos de venta, vendedor, almacén, moneda, lugares de entrega y contactos. """ orderDefaults( """ Cliente de la orden. """ customerId: ID! """ Tipo de venta, cuando el término de crédito depende de él. """ saleTypeId: ID """ Usuario activo de AdvantaCloud a nombre de quien se capturará la orden. Obligatorio con Llave API: el vendedor y el almacén propuestos pueden depender de ese usuario. """ userId: ID """ Almacén que quieres usar; si no es un almacén de venta válido, se propone otro. """ warehouseId: ID ): OrderDefaults! """ Lista los formatos de impresión de órdenes de venta y las leyendas opcionales que puedes pedir en [`Order.pdfUrl`](https://developers.advanta.mx/tipos/Order/#pdfUrl). """ orderPrintOptions: OrderPrintOptions! """ Lista las órdenes de venta de la empresa, de la más reciente a la más antigua. Filtra por cliente, vendedor, almacén, estatus, origen y rango de fechas, y recorre el resultado por páginas con cursores. """ ordersConnection( """ Cursor de la página anterior (`pageInfo.endCursor`). Devuelve las órdenes que siguen. """ after: String """ Sólo las órdenes de este cliente. """ customerId: ID """ Nombre del cliente que contiene el texto, sin distinguir mayúsculas. """ customerName: String """ Cuántas órdenes devolver desde el inicio o desde `after`. Sin `first` llegan 20; si pides más de 100 recibes 100. """ first: Int """ Folio que contiene el texto: `"512"` encuentra `OV00512`. """ folio: String """ Capturadas desde este día, inclusive (`AAAA-MM-DD`). """ from: Date """ Dónde se capturó: orden de venta (`OV`), venta mostrador (`VM`), punto de venta (`PV`)… Sin este filtro no llegan las cotizaciones de venta (`CV`); pídelas con `origin: [CV]`. """ origin: [OrderOrigin!] """ Orden de compra del cliente que contiene el texto. """ purchaseOrder: String """ Referencia de la orden que contiene el texto. """ reference: String """ Tipo de venta. """ saleTypeId: ID """ Vendedor asignado. """ salespersonId: ID """ `CREATED_AT_DESC`: más recientes primero. `FOLIO_DESC`: folio descendente. Si lo omites o envías `null`, se usa `CREATED_AT_DESC`. """ sort: OrderSort = CREATED_AT_DESC """ Uno o varios estatus; basta con que la orden tenga uno de ellos. """ status: [OrderStatus!] """ Capturadas hasta este día, inclusive. Con Llave API el día se corta en la hora del centro de México. """ to: Date """ Usuario que capturó la orden. """ userId: ID """ Almacén que surte la orden. """ warehouseId: ID ): OrderConnection! """ Devuelve el complemento de pago (REP) que incluye un cobro: el estado de su timbrado, su UUID y las ligas para descargar el XML y el PDF. """ paymentComplement( """ Identificador del cobro ([`Collection.id`](https://developers.advanta.mx/tipos/Collection/#id)), no del complemento. Es el `id` que llega en [`collectionsConnection`](https://developers.advanta.mx/referencia/facturas-y-cobranza/collectionsConnection/), [`collection`](https://developers.advanta.mx/referencia/facturas-y-cobranza/collection/) o [`createCollection`](https://developers.advanta.mx/referencia/facturas-y-cobranza/createCollection/). """ collectionId: ID! ): PaymentComplement """ Lista las formas de cobro habilitadas en la empresa, en el orden que ella definió, y dice cuáles son con tarjeta. """ paymentMethodOptions( """ `true`: quita las formas de cobro con la clave SAT `99` («Por definir»). """ excludeUnspecified: Boolean ): [PaymentMethodOption!]! """ Lista las formas de cobro habilitadas en la empresa con su clave y su nombre, en el orden que ella definió, sin decir cuáles son con tarjeta. """ paymentTypeOptions( """ `true`: quita las formas de cobro con la clave SAT `99` («Por definir»). """ excludeUnspecified: Boolean ): [CatalogOption!]! """ Lista los precios de una lista de precios, artículo por artículo, en el orden en que se registraron. Filtra por artículos o por fecha de modificación para traer sólo lo que cambió. """ priceListEntriesConnection( """ Cursor de la página anterior (`pageInfo.endCursor`). Devuelve los precios que siguen. """ after: String """ Cuántos precios devolver desde el inicio o desde `after`. Sin `first` llegan 20; si pides más de 100 recibes 100. """ first: Int """ Lista de precios, el `id` que llega en [`PriceStructure.lists`](https://developers.advanta.mx/tipos/PriceStructure/#lists). Si no existe, la lista llega vacía. """ listId: ID! """ Sólo los precios de estos artículos. """ productIds: [ID!] """ Sólo los precios modificados después de este momento (ISO 8601 con desfase horario). Para sincronizar, envía el `updatedAt` más reciente que ya guardaste. """ updatedAfter: DateTime ): PriceListEntryConnection! """ Lista las estructuras de precios de la empresa o, con `orderId`, sólo las que admite una orden de venta. """ priceStructureOptions( """ Sólo las estructuras de precios que admite esta orden de venta, según su tipo de venta, su cliente y su almacén, ordenadas por clave. Sin `orderId` llegan todas, sin un orden garantizado. Si la orden no existe, la respuesta es HTTP 422. """ orderId: ID ): [CatalogOption!]! """ Lista las estructuras de precios de la empresa con las listas de precios que las forman, de la modificada hace más tiempo a la más reciente. """ priceStructuresConnection( """ Cursor de la página anterior (`pageInfo.endCursor`). Devuelve las estructuras que siguen. """ after: String """ Cuántas estructuras devolver desde el inicio o desde `after`. Sin `first` llegan 20; si pides más de 100 recibes 100. """ first: Int ): PriceStructureConnection! """ Devuelve un artículo por su `id`, con su unidad, su familia y su control de inventario, y su precio para un cliente o una estructura de precios. """ product( """ Moneda del precio: sólo cuentan las listas de precios vigentes en esa moneda. Sin `currencyId` se usa la moneda de documentos del cliente o, sin cliente, la primera moneda registrada en la empresa. Envíala siempre. """ currencyId: ID """ Calcula `price` con la estructura de precios de este cliente: la auxiliar si tiene una y el artículo tiene precio en ella; si no, la principal. """ customerId: ID """ Identificador del artículo, el mismo `id` que llega en [`productsConnection`](https://developers.advanta.mx/referencia/productos-y-precios/productsConnection/), [`productSuggestions`](https://developers.advanta.mx/referencia/productos-y-precios/productSuggestions/) o en las partidas de una orden. """ id: ID! """ Calcula `price` con esta estructura de precios. Con `customerId` no hace falta; si envías los dos, ésta debe ser la principal o la auxiliar del cliente, y el precio sale de la del cliente. """ priceStructureId: ID ): Product """ Busca artículos por clave, descripción o código de barras y devuelve hasta 50, ordenados por clave. """ productSuggestions( """ Sólo los artículos de alguna de estas familias. Una lista vacía no devuelve artículos. """ familyIds: [ID!] """ `true`: sólo los artículos activos. Si lo omites o envías `false`, llegan también los inactivos y los obsoletos. """ onlyActive: Boolean """ Texto a buscar. Encuentra los artículos cuya clave contiene el texto, cuyo código de barras es exactamente el texto o cuya descripción contiene todas sus palabras, en cualquier orden y sin distinguir mayúsculas: `"tornillo 1/4"` encuentra «Tornillo hexagonal 1/4 x 2». Con el texto vacío llegan los primeros 50 artículos por clave. """ query: String! ): [ProductSuggestion!]! """ Lista los artículos de la empresa, del modificado hace más tiempo al más reciente. Busca por clave, descripción o código de barras, filtra por familia y trae el precio de cada artículo para un cliente o una estructura de precios. """ productsConnection( """ Cursor de la página anterior (`pageInfo.endCursor`). Devuelve los artículos que siguen. """ after: String """ Moneda del precio: sólo cuentan las listas de precios vigentes en esa moneda. Sin `currencyId` se usa la moneda de documentos del cliente o, sin cliente, la primera moneda registrada en la empresa. Envíala siempre. """ currencyId: ID """ Calcula `price` con la estructura de precios de este cliente: la auxiliar si tiene una (y la principal para los artículos que no tienen precio en la auxiliar); si no, la principal. """ customerId: ID """ Sólo los artículos de esta familia ([`Product.family`](https://developers.advanta.mx/tipos/Product/#family)`.id`). """ familyId: ID """ Cuántos artículos devolver desde el inicio o desde `after`. Sin `first` llegan 20; si pides más de 100 recibes 100. """ first: Int """ Por omisión llegan sólo los artículos activos. Con `false` llegan también los inactivos y los obsoletos. """ onlyActive: Boolean = true """ Calcula `price` con esta estructura de precios. Con `customerId` no hace falta; si envías los dos, ésta debe ser la principal o la auxiliar del cliente, y el precio sale de la del cliente. """ priceStructureId: ID """ Artículos cuya clave, descripción o código de barras **empieza** con el texto, sin distinguir mayúsculas: `"tor"` encuentra `TOR-0420`. Para buscar palabras en cualquier parte de la descripción usa [`productSuggestions`](https://developers.advanta.mx/referencia/productos-y-precios/productSuggestions/). """ search: String """ Sólo los artículos modificados después de este momento (ISO 8601 con desfase horario). Para sincronizar, envía el `updatedAt` más reciente que ya guardaste. """ updatedAfter: DateTime ): ProductConnection! """ Calcula precios, descuentos, impuestos y totales de una orden sin guardarla. Devuelve la orden calculada y las advertencias de existencia, precio y crédito. """ quoteOrder( """ La orden a cotizar, con los mismos datos que enviarás a `createOrder`. Ver [`OrderInput`](https://developers.advanta.mx/tipos/OrderInput/). """ input: OrderInput! ): OrderQuote """ Lista las unidades de medida de la empresa ordenadas por clave, o sólo la unidad de un artículo. """ unitOptions( """ Sólo la unidad de medida de este artículo. Si el artículo no existe, la lista llega vacía. """ productId: ID ): [UnitOption!]! """ Lista los almacenes de la empresa ordenados por clave, con el identificador que piden las órdenes de venta y los cobros. """ warehouseOptions( """ `true`: sólo los almacenes activos. Si lo omites o envías `false`, llegan activos e inactivos. """ active: Boolean """ Sólo los almacenes de esta empresa del grupo. Es el `companyId` que llega en cada almacén. """ companyId: ID ): [WarehouseOption!]! } """ Un tipo de venta de la empresa. """ type SaleType { """ Clave del tipo de venta. """ code: String """ Término de crédito ligado al tipo de venta, cuando la empresa lo toma de aquí. """ creditTerm: CreditTerm """ Identificador del tipo de venta. """ id: ID! """ Nombre del tipo de venta. """ name: String """ `true` si es un tipo de venta «Venta Plus»: sólo se acepta para clientes con `vtplus`. """ vtplus: Boolean! } """ Cuánto se ha embarcado de una orden. """ enum ShipmentStatus { """ Embarcada en parte """ PARTIAL """ Sin embarcar """ PENDING """ Embarcada por completo """ SHIPPED """ Sin equivalente; revisa `rawShipmentStatus` """ UNKNOWN } """ Cómo se entrega una orden. """ type ShippingMethod { """ Clave de la forma de embarque. """ code: String """ Identificador de la forma de embarque. """ id: ID! """ Nombre de la forma de embarque. """ name: String } """ La unidad de medida de un artículo encontrado con [`productSuggestions`](https://developers.advanta.mx/referencia/productos-y-precios/productSuggestions/). """ type SuggestedUnit { """ Clave de la unidad, p. ej. `PZA`. """ code: String """ Identificador de la unidad. """ id: ID! } """ Una unidad de medida, como pieza o kilogramo. """ type Unit { """ Clave de la unidad, p. ej. `PZA`. """ code: String """ Identificador de la unidad. """ id: ID! """ Nombre de la unidad. """ name: String } """ Una unidad de medida del catálogo de la empresa, lista para mostrarse en una lista de selección. """ type UnitOption { """ Clave de la unidad, p. ej. `PZA`. """ code: String """ Clave y nombre de la unidad, p. ej. `PZA | Pieza`. """ label: String! """ Identificador de la unidad; es el mismo `id` de [`Product.unit`](https://developers.advanta.mx/tipos/Product/#unit). """ value: ID! } """ El lugar de entrega registrado o actualizado, o los errores que lo impidieron. """ type UpsertCustomerAddressPayload { """ El lugar de entrega como quedó guardado; `null` si hubo errores. """ address: CustomerAddress """ Errores de los datos, cada uno con el dato que lo causó. Lista vacía si se guardó. """ errors: [FieldError!]! } """ Un usuario de AdvantaCloud, como quien capturó una orden. """ type UserSummary { """ Clave del usuario. """ code: String """ Identificador del usuario; es el que se envía en `userId`. """ id: ID! """ Nombre del usuario. """ name: String } """ Un almacén de la empresa. """ type Warehouse { """ Clave del almacén, p. ej. `MTY01`. """ code: String """ Identificador del almacén. """ id: ID! """ Nombre del almacén. """ name: String } """ Una ubicación dentro de un almacén. """ type WarehouseLocation { """ Clave de la ubicación. """ code: String """ Identificador de la ubicación. """ id: ID! """ Nombre de la ubicación. """ name: String """ Almacén al que pertenece. """ warehouseId: ID } """ Un almacén del catálogo de la empresa, listo para mostrarse en una lista de selección. """ type WarehouseOption { """ Clave del almacén, p. ej. `MTY01`. """ code: String """ Empresa del grupo a la que pertenece el almacén. Sirve para filtrar con [`warehouseOptions(companyId:)`](https://developers.advanta.mx/referencia/catalogos/warehouseOptions/). """ companyId: ID """ Clave y nombre del almacén, p. ej. `MTY01 | Monterrey Centro`. """ label: String! """ Identificador del almacén; es el que se envía en `warehouseId`. """ value: ID! }