> ## Documentation Index
> Fetch the complete documentation index at: https://dev.acpay.do/llms.txt
> Use this file to discover all available pages before exploring further.

# Estados de un e-CF

> Qué significa cada estado de un e-CF ante la DGII y qué hacer en cada caso.

Cada comprobante (factura, nota o comprobante especial) tiene un `status` que refleja su situación ante la DGII. AC-PAY lo actualiza solo, en segundo plano: no necesitas consultar en bucle.

| Estado | Qué significa | Qué hacer |
| - | - | - |
| `pending` | Firmado y enviado; la DGII todavía no responde. | Esperar el webhook, o consultar el documento más tarde. |
| `accepted` | La DGII lo aceptó. Es válido. | Entregarlo al cliente (PDF o XML). |
| `accepted_with_observations` | Aceptado, con observaciones en `statusMessage`. Es válido. | Revisar las observaciones para los próximos comprobantes. |
| `rejected` | La DGII lo rechazó. El motivo está en `statusMessage`. | Corregir los datos y emitir un comprobante nuevo (con otra `Idempotency-Key`). |
| `cancelled` | Anulado. | Nada: ya no tiene efecto. |
| `error` | No se pudo procesar el envío. | Reintentarlo con `POST .../{id}/retry`: se reenvía con el mismo e-NCF. |

## El recorrido normal

1. `POST /v1/invoices` responde `201` con `status: pending`.
2. La DGII responde y el estado cambia a `accepted`, `accepted_with_observations` o `rejected`.
3. Si registraste un webhook, recibes `ecf.accepted` o `ecf.rejected` con el nuevo estado.

## Rechazado o con error: no es lo mismo

* **`rejected`** es una decisión de la DGII sobre el contenido. Repetir el mismo comprobante no lo arregla: corrige los datos y emite uno nuevo.
* **`error`** es un fallo del envío, no del contenido. `POST /v1/invoices/{id}/retry` (o `/v1/notes/{id}/retry`, `/v1/special-documents/{id}/retry`) lo reenvía con el mismo e-NCF, sin cuerpo.

## Anular y corregir

* **Anular** un e-CF aceptado: `POST /v1/invoices/{id}/void`, sin cuerpo. Recibes `ecf.cancelled` por webhook.
* **Corregir** montos o textos de una factura ya aceptada: emite una nota de crédito (`POST /v1/invoices/{id}/credit-notes`, E34) o de débito (`POST /v1/invoices/{id}/debit-notes`, E33). Cada nota tiene su propio estado y su propio recorrido.

`modificationCode` de las notas: `1` anulación total, `2` corrige textos, `3` corrige montos, `4` reemplazo de un comprobante en contingencia. Se emiten por líneas (`items`) o por monto (`amount` con ITBIS y `itbis` opcional), nunca con ambos.

## Tipos de e-CF

| Endpoint | Tipos |
| - | - |
| `POST /v1/invoices` | `31` crédito fiscal, `32` consumo, `44` regímenes especiales, `45` gubernamental |
| `POST /v1/invoices/{id}/credit-notes` | `34` nota de crédito |
| `POST /v1/invoices/{id}/debit-notes` | `33` nota de débito |
| `POST /v1/special-documents` | `41` compras, `43` gastos menores, `46` exportaciones, `47` pagos al exterior |


This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.