import { Aside } from "@astrojs/starlight/components";

Útil para hacer polling cuando no quieres depender solo de
[webhooks](/webhooks/suscribirse/), o para auditar qué se envió realmente a
la DGII.

## Estado y detalle

```
GET /api/v1/ecf/{id}
```

Devuelve la misma forma que `POST /ecf`: ver
[Respuesta y estados](/emision/respuesta-estados/) para el detalle completo
de cada campo y de cada estado posible.

## XML firmado

```
GET /api/v1/ecf/{id}/xml
GET /api/v1/ecf/{id}/xml?rfce=true
```

El `<ECF>` firmado tal como se envió a la DGII, con el desglose completo
por línea que no está en la respuesta JSON (retenciones, ITBIS por línea,
descuentos). Con `?rfce=true` devuelve el `<RFCE>` en vez del `<ECF>`
completo, solo disponible cuando `submitsRfce` es `true` en la respuesta
del comprobante.

## TrackIds

```
GET /api/v1/ecf/{id}/trackids
```

```json
[
  {
    "trackId": "TRACK-ABC-123",
    "estado": "Aceptado",
    "fechaRecepcion": "2026-02-21T10:30:06-04:00"
  }
]
```

Los identificadores que la DGII asignó a este comprobante. Normalmente uno
solo, pero puede haber más de uno si NovaFE tuvo que reenviarlo.

<Aside type="note" title="No disponible en CerteCF">
  Este endpoint de la DGII solo existe en TesteCF y en Producción (eCF).
</Aside>

## Listado y búsqueda

```
GET /api/v1/ecf?type=31&status=accepted&page=1&pageSize=20
```

| Parámetro     | Nota                                                                        |
| ------------- | --------------------------------------------------------------------------- |
| `type`        | Filtra por tipo de e-CF.                                                    |
| `status`      | Filtra por estado (ver [Respuesta y estados](/emision/respuesta-estados/)). |
| `search`      | Búsqueda libre.                                                             |
| `from` / `to` | Rango de fechas de emisión.                                                 |
| `page`        | Empieza en 1.                                                               |
| `pageSize`    | 20 por defecto, hasta 100.                                                  |

Todos los parámetros son opcionales. La respuesta trae una fila resumida
por comprobante, no el detalle completo:

```json
{
  "items": [
    {
      "id": "0194f2c1-8a3e-7b21-9c44-1f2e3d4a5b6c",
      "status": "accepted",
      "encf": "E310000000042",
      "type": 31,
      "issueDate": "21-02-2026",
      "montoTotal": 2360.0,
      "buyerRnc": "131880681",
      "buyerName": "Mi Cliente SRL",
      "createdAt": "2026-02-21T10:30:05-04:00"
    }
  ],
  "totalCount": 1,
  "page": 1,
  "pageSize": 20
}
```

Para el detalle completo de un comprobante puntual de la lista, usa
`GET /ecf/{id}`.