Ir al contenido

listCustomers()

Busca clientes de la cuenta con un filtro de texto y paginación por offset.

Permiso: customer:read

listCustomers(
input?: CustomerListQuery,
options?: RequestOptions
): Promise<CustomerRecord[]>

Referencia HTTP: GET /customers

  • Devuelve un arreglo, sin meta.pagination ni hasMore. El límite del servidor es 50 por defecto, con máximo de 100. Para recorrer páginas, aumenta offset y termina cuando recibas menos elementos que limit; consulta la guía de paginación del SDK.
ArgumentoTipoObligatorioUso
inputCustomerListQueryNoSe puede omitir; el valor predeterminado es {}.
optionsRequestOptionsNosignal e idempotencyKey; consulta las opciones por solicitud.

Opciones por solicitud: signal e idempotencyKey.

Los campos siguientes corresponden a input en TypeScript. Un campo opcional se puede omitir; null solo se admite cuando aparece en su tipo. Las validaciones de negocio se ejecutan en el servidor.

CampoTipoObligatorioDescripción
querystringNoTexto de búsqueda. No es un identificador exacto ni un cursor.Mínimo 1 carácter. Máximo 120 caracteres
limitnumber (entero)NoCantidad máxima de elementos por página. El servidor usa 50 si se omite.Mínimo: 1. Máximo: 100
offsetnumber (entero)NoCantidad de elementos que se saltan. El servidor usa 0 si se omite.Mínimo: 0. Máximo: 1000000

Usa el cliente factucat de Instala y conecta. Los IDs y datos fiscales de este ejemplo son ilustrativos: reemplázalos por los registros de tu cuenta y ambiente.

const resultado = await factucat.listCustomers(
{
"query": "AAA010101AAA",
"limit": 50,
"offset": 0
},
)
console.log(resultado)

Resuelve una Promise<CustomerRecord[]>. El valor recibido es directamente data, sin el envoltorio HTTP ni sus metadatos.

Elemento del arreglo

CampoTipoObligatorioDescripción
idstringSíID de FactuCat del recurso. No es el UUID fiscal.Formato: uuid
userIdstringSíID de la cuenta propietaria del recurso.Mínimo 1 carácter
legalNamestringSíNombre o razón social del receptor.
rfcstringSíRFC del receptor.
postalCodestringSíCódigo postal fiscal, como cadena de cinco dígitos.
taxRegimestringSíClave del régimen fiscal del receptor.
preferredCfdiUsestring | nullNoUso de CFDI preferido del cliente (clave SAT, por ejemplo G03). Opcional.
fiscalResidencestringNoClave del país de residencia fiscal, cuando aplica.
taxIdstringNoIdentificación tributaria extranjera, cuando aplica.
emailstringNoCorreo del cliente.Formato: email
whatsappPhonestringNoTeléfono de WhatsApp del cliente.
sendInvoicesbooleanSíPreferencia de entrega de comprobantes al cliente; las opciones del timbrado también controlan los envíos.
invoiceLanguage"es" | "en"SíIdioma preferido del cliente para la factura.
currency"MXN" | "USD" | "EUR"SíMoneda del cliente o del comprobante.
createdAtstringSíFecha y hora de creación en formato ISO 8601; se devuelve como string.Formato: date-time
updatedAtstringSíFecha y hora de última actualización en formato ISO 8601.Formato: date-time

Ejemplo de respuesta

[
{
"id": "10112233-4455-4677-8899-aabbccddeeff",
"userId": "usuario_ejemplo",
"legalName": "EMPRESA DE EJEMPLO",
"rfc": "AAA010101AAA",
"postalCode": "06000",
"taxRegime": "601",
"sendInvoices": false,
"invoiceLanguage": "es",
"currency": "MXN",
"createdAt": "2026-09-08T12:00:00Z",
"updatedAt": "2026-09-08T12:00:00Z"
}
]

Las fechas se entregan como cadenas ISO 8601. Un campo opcional puede estar ausente. Tipos, paginación y archivos.

La promesa se rechaza si la API devuelve un error, falla la conexión o los datos no cumplen el contrato. Cómo manejar los errores.