PreCFDI - Listado paginado de peticiones
Este endpoint permite consultar de forma paginada las peticiones de facturación registradas en Fénix.
Está diseñado para:
- Obtener listados por bloques de registros
- Aplicar ordenamiento
- Filtrar resultados por datos clave de la petición.
Es útil para integraciones que necesiten consultar el estado de peticiones PreCFDI, revisar errores, identificar facturas enviadas o localizar órdenes específicas.
---
# Parámetros de consulta (Query Params)
Estos parámetros son opcionales y se envían por URL.
| Parámetro | Tipo | Requerido | Descripción |
| --- | --- | --- | --- |
| `orderNo` | string | No | Filtra por un número de orden específico. |
| `status` | string | No | Filtra por el estado actual de la petición. |
| `customerRfc` | string | No | Filtra las peticiones por RFC del cliente receptor. |
## Query Param `status`
| Parámetro | Tipo | Requerido | Descripción |
| --- | --- | --- | --- |
| `status` | string | No | Filtra las peticiones por su estado actual dentro del flujo PreCFDI. Solo acepta valores definidos en el catálogo de estados. |
### Valores permitidos para `status`
| Valor | Descripción |
| --- | --- |
| `NUEVA` | La petición fue registrada en el sistema y está pendiente de procesamiento. |
| `ERROR` | La petición presentó un error durante alguna etapa del proceso. |
| `ENVIADA_AL_SELLER` | La petición fue enviada al seller y está en espera de la carga del CFDI por parte del Seller |
| `FACTURADA` | La petición ya fue procesada y facturada correctamente. |
## Body de ejemplo
``` json
{
"lazyState": {
"first": 0,
"page": 0,
"rows": 10,
"sortField": null,
"sortOrder": "asc"
}
}
```
---
# Descripción del body
## Objeto raíz
| Campo | Tipo | Requerido | Descripción |
| --- | --- | --- | --- |
| `lazyState` | object | Sí | Contiene la configuración de paginación y ordenamiento de la consulta. |
## Objeto `lazyState`
| Campo | Tipo | Requerido | Descripción |
| --- | --- | --- | --- |
| `first` | integer | Sí | Índice del primer registro a recuperar. Normalmente se usa como desplazamiento para paginación. |
| `page` | integer | Sí | Número de página actual. Generalmente inicia en `0`. |
| `rows` | integer | Sí | Número de registros que se desean recuperar por página. |
| `sortField` | string / null | No | Campo por el cual se ordenarán los resultados. Si se envía `null`, no se aplica orden por un campo específico. |
| `sortOrder` | string | Sí | Dirección del ordenamiento. Valores esperados: `asc` o `desc`. |
# Descripción del response
## Objeto raíz
| Campo | Tipo | Descripción |
| --- | --- | --- |
| `total_records` | integer | Número total de registros que coinciden con la búsqueda, independientemente del tamaño de página solicitado. |
| `records` | array | Lista de peticiones PreCFDI recuperadas en la página actual. |
---
# Detalle de cada registro en `records`
## Datos generales de la petición
| Campo | Tipo | Descripción |
| --- | --- | --- |
| `id` | string | Identificador único interno de la petición en Fénix. |
| `reqTransactionId` | string | Identificador de transacción agrupadora de la petición. Puede representar un lote o conjunto relacionado de líneas. |
| `reqTransactionLineId` | string | Identificador único de la línea de transacción. Se usa para distinguir una petición específica dentro de una transacción. |
| `purpose` | string | Propósito de la petición. Ejemplo: `ORIGINAL, REFACTURA, REENVIO` |
| `dateInvoiced` | string (ISO 8601) | Fecha asociada a la peticion. |
| `invoiceId` | string | Identificador de la factura o referencia principal de negocio. |
| `orderNo` | string | Número de orden asociado a la petición. |
| `sellerId` | string | Identificador del vendedor o emisor relacionado con la petición. |
| `autoMotor` | boolean | Indica si la petición pertenece a flujo automotriz. Valores: `true` o `false`. |
---
## Objeto `payload`
Contiene datos funcionales para la generación del comprobante.
| Campo | Tipo | Descripción |
| --- | --- | --- |
| `usoCDFI` | string | Clave de uso CFDI del receptor. Ejemplo: `G03`. |
| `paymentMethods` | object | Información de método o tipo de pago reportado en la petición. |
### `payload.paymentMethods`
| Campo | Tipo | Descripción |
| --- | --- | --- |
| `paymentType` | string | Tipo de pago recibido en la petición. Ejemplos: `CREDIT`, `DEBIT`. |
---
## Objeto `customer`
Datos del cliente o receptor del CFDI.
| Campo | Tipo | Descripción |
| --- | --- | --- |
| `rfc` | string | RFC del cliente receptor. |
| `name` | string | Nombre o razón social del cliente. |
| `regimenFiscalReceptor` | string | Clave del régimen fiscal del receptor. |
| `address` | object | Domicilio fiscal o domicilio asociado al receptor. |
### `customer.address`
| Campo | Tipo | Descripción |
| --- | --- | --- |
| `addressType` | string | Tipo de dirección. Ejemplo observado: `INVOICE`. |
| `addressLineOne` | string | Primera línea de dirección. |
| `addressLineTwo` | string | Segunda línea de dirección o número exterior/interior. |
| `locality` | string | Localidad del domicilio. |
| `subLocality` | string | Colonia, zona o subdivisión de la localidad. |
| `city` | string | Ciudad o municipio descriptivo. |
| `state` | string | Nombre del estado. |
| `countryCode` | string | Código de país. Ejemplo: `MX`. |
| `zipCode` | string | Código postal del receptor. |
| `stateCode` | string | Código interno o abreviado del estado. |
| `localityCode` | string | Código interno de localidad. |
| `municipalityCode` | string | Código interno de municipio. |
---
## Objeto `seller`
Datos del emisor o vendedor.
| Campo | Tipo | Descripción |
| --- | --- | --- |
| `name` | string | Nombre o razón social del vendedor. |
| `rfc` | string | RFC del vendedor o emisor. |
| `zipCode` | string | Código postal fiscal del vendedor. |
---
## Objeto `lineDetail`
Describe el detalle de la línea o concepto de la petición.
| Campo | Tipo | Descripción |
| --- | --- | --- |
| `primeLineNo` | string | Número de línea principal dentro de la orden o transacción. |
| `unitOfMeasure` | string | Unidad de medida del producto. |
| `quantity` | number | Cantidad de unidades solicitadas o facturadas. |
| `unitPrice` | number | Precio unitario del concepto antes de totales finales. |
| `objetoImp` | string | Clave SAT que indica si el concepto es objeto de impuesto. |
| `item` | object | Información descriptiva y fiscal del producto. |
| `charges` | array | Lista de cargos o descuentos asociados a la línea. |
| `taxes` | object | Impuestos calculados para la línea. |
| `lineTotals` | object | Totales monetarios consolidados de la línea. |
### `lineDetail.item`
| Campo | Tipo | Descripción |
| --- | --- | --- |
| `description` | string | Descripción comercial del producto o servicio. |
| `taxProductCode` | string | Clave SAT del producto o servicio. |
| `upc` | string | Código UPC o identificador comercial del artículo. |
### `lineDetail.charges[]`
| Campo | Tipo | Descripción |
| --- | --- | --- |
| `code` | string | Código del cargo o descuento aplicado. Ejemplos observados: `COUPON_DISC`, `SHIPPING_CH`, `SHIP_DISC`. |
| `amount` | number | Monto del cargo o descuento. |
### `lineDetail.taxes`
| Campo | Tipo | Descripción |
| --- | --- | --- |
| `total` | number | Total de impuestos de la línea. |
| `raw` | array | Desglose individual de impuestos calculados. |
### `lineDetail.taxes.raw[]`
| Campo | Tipo | Descripción |
| --- | --- | --- |
| `tax` | number | Importe del impuesto. |
| `taxName` | string | Nombre interno del impuesto. Ejemplos observados: `IVA_TAX`, `SHIP_IVA_TAX`. |
| `category` | string | Categoría sobre la que aplica el impuesto. Ejemplos observados: `PRICE`, `SHIPPING`. |
| `taxPercentage` | number | Porcentaje del impuesto aplicado. |
### `lineDetail.lineTotals`
| Campo | Tipo | Descripción |
| --- | --- | --- |
| `subTotal` | number | Subtotal del concepto antes de impuestos finales. |
| `discountTotal` | number | Total de descuentos aplicados a la línea. |
| `shippingTotal` | number | Total de envío asociado a la línea. |
| `taxTotal` | number | Total de impuestos de la línea. |
| `total` | number | Total final de la línea. |
---
## Objeto `metadata`
Información operativa de la petición dentro de Fénix.
| Campo | Tipo | Descripción |
| --- | --- | --- |
| `status` | string | Estado actual de la petición. Ejemplos observados: `ERROR`, `FACTURADA`, `ENVIADA_AL_CLIENTE`. |
| `creationDate` | string (ISO 8601) | Fecha de creación del registro en el sistema. |
---
## Objeto `lastLog`
Último evento o bitácora asociado a la petición.
| Campo | Tipo | Descripción |
| --- | --- | --- |
| `title` | string | Título resumido del último evento registrado. |
| `message` | string | Descripción detallada del último evento o error. |
| `level` | string | Nivel del log. Ejemplos observados: `INFO`, `ERROR`. |
| `date` | string (ISO 8601) | Fecha y hora en que ocurrió el último evento. |
This endpoint expects an object.
lazyState
OK
total_records
records
400
Bad Request Error
