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

Lista de facturas

invoicesConnection

Tipo

Query

Devuelve

InvoiceConnection!

Permiso de la llave

Facturación

Página

20 por omisión · máx. 100

Estable

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.

Úsala para llevar la cartera a tu sistema: con customerId y onlyPending: true tienes lo que un cliente debe, y con from y to, lo emitido en un periodo. Para el XML o el PDF de una factura usa invoice(id:).

La lista trae también las notas de crédito de la empresa, que llegan con el mismo tipo y sólo se distinguen por la serie de su folio. Una factura sin cuenta por cobrar llega con balance, paid y dueDate en null; una factura vencida es la que tiene dueDate en el pasado y balance mayor que cero.

La llave ve las facturas de toda la empresa del subdominio, sin importar quién las emitió.

invoicesConnection(
  first: Int  after: String  customerId: ID
  onlyPending: Boolean  status: [InvoiceStatus!]
  from: Date  to: Date  search: String
): InvoiceConnection!

Argumentos

8

ArgumentoTipoDescripción
Paginación
firstInt Int

Cuántas facturas devolver desde el inicio o desde after. Sin first llegan 20; si pides más de 100 recibes 100.

afterString String

Cursor de la página anterior (pageInfo.endCursor). Devuelve las facturas que siguen.

Filtros
customerIdID ID

Sólo las facturas de este cliente.

onlyPendingBoolean Boolean

Con true, sólo las facturas con saldo por cobrar mayor que cero; no incluye las facturas de anticipo. Con false u omitido, todas.

status[InvoiceStatus!] [InvoiceStatus!]

Uno o varios estatus; basta con que la factura tenga uno de ellos. Una lista vacía no trae ninguna factura.

fromDate Date

Emitidas desde este día, inclusive (AAAA-MM-DD).

toDate Date

Emitidas hasta este día, inclusive. Con Llave API el día se corta en la hora del centro de México.

Estatus de una factura

InvoiceStatus

REGISTEREDRegistrada, aún sin timbrar
CONFIRMEDConfirmada, en espera de timbrarse
INVOICEDTimbrada y vigente; la única a la que se aplican cobros
CANCELLATION_REQUESTEDCancelación solicitada al SAT, en espera de respuesta
CANCELLEDCancelada
UNKNOWNSin equivalente, p. ej. una factura sustituida; revisa rawStatus

Ver InvoiceStatus

Lo que devuelve

InvoiceConnection!

nodes[Invoice]Las facturas de esta página. La forma más corta de leerlas.
edges[InvoiceEdge]Las mismas facturas, cada una con su cursor.
pageInfoPageInfo!Dónde estás en la lista.
hasNextPageBoolean!Hay más elementos después de esta página.
endCursorStringCursor del último elemento; pásalo en after para pedir la página siguiente.
hasPreviousPageBoolean!true si pediste esta página con after, es decir, si no es la primera.
startCursorStringCursor del primer elemento de esta página.

Campos principales de Invoice

CampoTipoDescripción
idID! ID! Identificador de la factura; úsalo con invoice(id:) y en las aplicaciones de createCollection.
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.
issuedAtDateTime DateTime Fecha y hora de emisión de la factura.
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.
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.
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 Invoice

Paginación

first · after

Pide hasta 100 facturas por página junto con pageInfo. Repite la misma consulta pasando endCursor en after mientras hasNextPage sea true. El orden es estable: no se saltan facturas entre páginas. Más sobre paginación.

Página 1

first: 100
endCursor: "WzEs…MTAwXQ"
hasNextPage: true

Página 2

after: "WzEs…MTAwXQ"
endCursor: "WzEs…MjAwXQ"
hasNextPage: true

Página 3

after: "WzEs…MjAwXQ"
endCursor: "WzEs…MjQ3XQ"
hasNextPage: false

Las facturas llegan por su última modificación, de la más antigua a la más reciente. Una factura que se modifica mientras recorres la lista pasa al final y puede llegar otra vez: guárdalas por id. Aplicarle un cobro cambia su saldo, pero no la cambia de lugar.

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 nodes llega vacío y hasNextPage es false.

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.
argumentLiteralsIncompatibleUn argumento escrito en la consulta no tiene el tipo esperado: una fecha que no es AAAA-MM-DD o un estatus fuera de InvoiceStatus. Si el valor llega en una variable, el error trae extensions.problems y puede no traer code.Corrige la consulta; reintentar no ayuda.
VALIDATIONEl cursor de after está mal formado o es de otra lista, o first es negativo.Empieza de nuevo sin after y usa sólo cursores de pageInfo.
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