developers Entrar a AdvantaCloud
Árbol del API · Facturas y cobranza › invoice

Detalle de una factura

invoice

Tipo

Query

Devuelve

InvoiceDetail

Permiso de la llave

Facturación

Estable

Devuelve una factura por su id, con su saldo y las ligas para descargar el XML del CFDI y su PDF.

Si la llave no tiene el permiso, la respuesta es invoice: null sin error; una factura que no existe responde NOT_FOUND. Así distingues una llave mal configurada de un id equivocado.

Descargas

xmlUrl trae el XML del CFDI tal como se timbró y pdfUrl, el PDF con el formato de la empresa. Las dos llegan sólo si la factura está timbrada, y el XML pide además el permiso «Consultar XML de Factura» en la llave.

Las ligas están firmadas, vencen a los 10 minutos y no llevan el header Authorization: descarga el archivo desde tu servidor en cuanto lo pidas, sin compartir la liga. Al descargar, AdvantaCloud vuelve a revisar que la llave exista y conserve sus permisos: si la liga venció o la llave perdió el permiso, responde HTTP 403. Para una liga nueva, vuelve a pedir la factura.

invoice(
  id: ID!
): InvoiceDetail

Argumentos

1

ArgumentoTipoDescripción
idID! ID!

Identificador de la factura, el mismo id que llega en invoicesConnection o en las aplicaciones de un cobro.

Obligatorio.

Lo que devuelve

InvoiceDetail

Campos principales de InvoiceDetail:

CampoTipoDescripción
idID! ID! Identificador de la factura.
folioString String Folio de la factura con su serie, p. ej. FMTY26100154.
uuidString String Folio fiscal (UUID) del CFDI; null mientras la factura no se timbra.
statusInvoiceStatus! InvoiceStatus! Estatus de la factura.
customerCustomer Customer Cliente de la factura.
currencyString String Clave SAT de la moneda de la factura, p. ej. MXN o USD.
totalMoney Money Total de la factura.
paidMoney Money Lo cobrado de la factura (total menos balance); null cuando balance es null.
balanceMoney Money Saldo por cobrar, en la moneda de la factura. Llega null si la factura no tiene cuenta por cobrar en AdvantaCloud.
dueDateDate Date 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.
xmlUrlString 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. Requiere «Consultar XML de Factura» en la llave; sin él llega null.
pdfUrlString String 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.
ordersOrderConnection OrderConnection Órdenes de venta incluidas en la factura, de la más antigua a la más reciente. Requiere «Ventas» en la llave; sin él llega null.20 por omisión, hasta 100 por página.

Ver todos los campos de InvoiceDetail

Permisos

Llave API Integraciones

Facturación

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

Sin el permiso Sin error

La consulta responde sin error, pero el resultado llega null.

Así lo conserva el API para las integraciones que ya lo usan: revisa los permisos de la llave si una lista llega vacía sin razón.

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.
NOT_FOUNDNo hay una factura 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 espera exponencial.

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