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

Complemento de pago de un cobro

paymentComplement

Tipo

Query

Devuelve

PaymentComplement

Permiso de la llave

Complemento de Pago

Estable

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.

El complemento no se emite al registrar el cobro: la empresa lo genera y lo timbra en AdvantaCloud con cobros ya conciliados con el banco, y un mismo complemento puede amparar varios cobros del cliente en el mes. Mientras el cobro no esté en un complemento, la respuesta es paymentComplement: null sin error. Timbrar o reintentar el timbrado no está disponible con Llave API.

Si la llave no tiene el permiso, la respuesta también es null sin error; un cobro que no existe sí responde NOT_FOUND.

Estado del timbrado

stampStatus dice en qué punto está el timbrado y qué descargas llegan:

  • REGISTERED: el complemento existe, pero aún no se envía a timbrar. Sin descargas.
  • PENDING: se envió a timbrar y falta la respuesta del PAC; vuelve a consultar en unos segundos. Sin descargas.
  • STAMPED: timbrado, con UUID; es un CFDI válido. XML y PDF.
  • FAILED: el PAC o el SAT rechazó el timbrado; el motivo está en stampError y la empresa lo corrige y lo vuelve a enviar. Sin descargas.
  • CANCEL_REQUESTED: se solicitó su cancelación al SAT y falta la respuesta. XML y PDF.
  • CANCELLED: cancelado. Sólo XML.
  • UNKNOWN: un estatus sin equivalente; revisa rawStatus. Sin descargas.

Cuando se completa la cancelación de un complemento, el cobro queda libre y la consulta vuelve a responder null hasta que la empresa emita otro. Si la empresa lo sustituye, la consulta devuelve desde ese momento el complemento nuevo, con otro folio y, al timbrarse, otro UUID. Guarda el UUID que recibiste y compáralo en cada consulta.

Descargas

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, que conserve el permiso «Complemento de Pago» y que el complemento siga en un estado con esa descarga: si no, o si la liga ya venció, responde HTTP 403, y si el complemento ya no tiene su XML, HTTP 404. Para una liga nueva, repite la consulta.

paymentComplement(
  collectionId: ID!
): PaymentComplement

Argumentos

1

ArgumentoTipoDescripción
collectionIdID! ID!

Identificador del cobro (Collection.id), no del complemento. Es el id que llega en collectionsConnection, collection o createCollection.

Obligatorio.

Lo que devuelve

PaymentComplement

Campos principales de PaymentComplement:

CampoTipoDescripción
idID! ID! Identificador del complemento. Varios cobros del mismo cliente pueden compartirlo.
folioString String Folio del complemento con su serie, p. ej. PF2610031.
uuidString String Folio fiscal (UUID) del complemento; null mientras no se timbra.
stampStatusString! 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.
stampErrorString String Motivo por el que se rechazó el timbrado, cuando stampStatus es FAILED.
stampedAtDateTime DateTime Fecha y hora del timbrado que devolvió el PAC. Antes de timbrarse trae la fecha con la que el complemento se envió a timbrar.
xmlUrlString 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. Requiere «Complemento de Pago» en la llave; sin él llega null.
pdfUrlString String 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. Requiere «Complemento de Pago» en la llave; sin él llega null.

Ver todos los campos de PaymentComplement

Permisos

Llave API Integraciones

Complemento de Pago

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 un cobro con ese collectionId en la empresa.Revisa que envías el id del cobro, no el del complemento.
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