---
title: "Corregir o anular una factura | Timbro"
description: "Emite una nota de crédito o de débito, o reemplaza una factura que la DGII rechazó"
canonical: "https://timbro.do/docs/comprobantes/corregir-ecf/"
---

Facturar

# Corregir o anular una factura

Una factura que la DGII aceptó no se edita ni se borra. Para anularla o cambiar sus montos, emites una nota que la modifica: una nota de crédito (E34) para anularla o reducir lo facturado, o una nota de débito (E33) para aumentarlo. Cada nota es una factura más en `/v1/invoices`, con su propio `invoiceId` y su propio e-NCF.

## Emite una nota de crédito o de débito

La nota indica la factura original en `originalInvoiceId`, el código de modificación y el motivo. Sus artículos son los montos que la nota corrige, no los de la factura original:

- [TypeScript](https://timbro.do/docs/comprobantes/corregir-ecf/#tab-panel-0-0)
- [Python](https://timbro.do/docs/comprobantes/corregir-ecf/#tab-panel-0-1)

```ts
import { createTimbroInvoices } from "@timbro/invoices";

const timbro = createTimbroInvoices({ apiKey: process.env.TIMBRO_INVOICES_API_KEY! });
const creditNote = await timbro.invoices.create({
  invoiceReference: "venta-842-nota-credito-1",
  type: "E34",
  originalInvoiceId: "f35b7ae4-c484-4c63-981e-4f0f15e913b5",
  modificationCode: "3",
  reason: "Devolución parcial",
  currency: "DOP",
  incomeType: "01",
  paymentTerms: { type: "immediate" },
  items: [{
    description: "Servicio devuelto",
    quantity: "1",
    unit: "unit",
    kind: "service",
    unitPrice: "100.00",
    tax: { kind: "itbis_18", included: true },
  }],
});
```

```python
import os

from timbro_invoices import TimbroInvoices

timbro = TimbroInvoices(api_key=os.environ["TIMBRO_INVOICES_API_KEY"])
credit_note = timbro.invoices.create({
    "invoiceReference": "venta-842-nota-credito-1",
    "type": "E34",
    "originalInvoiceId": "f35b7ae4-c484-4c63-981e-4f0f15e913b5",
    "modificationCode": "3",
    "reason": "Devolución parcial",
    "currency": "DOP",
    "incomeType": "01",
    "paymentTerms": {"type": "immediate"},
    "items": [{
        "description": "Servicio devuelto",
        "quantity": "1",
        "unit": "unit",
        "kind": "service",
        "unitPrice": "100.00",
        "tax": {"kind": "itbis_18", "included": True},
    }],
})
```

| Código | Para qué sirve                                  | Tipos     |
| ------ | ----------------------------------------------- | --------- |
| `1`    | Anular la factura completa                      | E34       |
| `2`    | Corregir un texto, como el nombre del comprador | E33 y E34 |
| `3`    | Corregir montos                                 | E33 y E34 |

La factura original debe estar aceptada. Timbro comprueba que una nota de crédito no supere el saldo que queda de la factura original, contando las notas anteriores. El motivo (`reason`) admite hasta 90 caracteres.

Emitir una nota no devuelve dinero. Si el cliente pagó con Timbro, [reembolsa el pago y relaciona la nota con el reembolso](https://timbro.do/docs/comprobantes/cobrar-una-factura/#reembolsa-una-venta-facturada).

## Corrige una factura que no emitiste con Timbro

Si la factura original se emitió con otro sistema de facturación o en papel, Timbro no tiene su `invoiceId`. En su lugar, envía `externalOriginal` con su número y su fecha de emisión:

```json
{
  "fiscalNumber": "E310000000123",
  "issuedOn": "2026-08-14"
}
```

`fiscalNumber` puede ser un e-NCF o un NCF en papel. Si la original es una Factura de Consumo (E32), envía también su `total`, porque la DGII exige los datos del comprador en una nota contra una Factura de Consumo de RD$ 250,000.00 o más. En ese caso, envía el comprador de la factura original en `externalOriginal.buyer`. Si la original se emitió con otro RNC, por ejemplo antes de una fusión, envía ese RNC en `issuerTaxId`.

## Reemplaza una factura rechazada

Si la API responde `422` y no devuelve un `invoiceId`, no se creó ninguna factura. Corrige los campos que indica el error y vuelve a llamar a `invoices.create`.

Si la DGII rechazó la factura (`authorityRejected`), o una persona administradora del negocio la cerró antes de que llegara a la DGII (`closed`), emite su reemplazo con `invoices.replace`. Envía el `invoiceId` de la factura rechazada y la solicitud completa ya corregida:

- [TypeScript](https://timbro.do/docs/comprobantes/corregir-ecf/#tab-panel-1-0)
- [Python](https://timbro.do/docs/comprobantes/corregir-ecf/#tab-panel-1-1)

```ts
const replacement = await timbro.invoices.replace(
  "f35b7ae4-c484-4c63-981e-4f0f15e913b5",
  {
    invoiceReference: "venta-842-factura-2",
    type: "E32",
    currency: "DOP",
    incomeType: "01",
    paymentTerms: { type: "immediate" },
    items: [{
      description: "Servicio",
      quantity: "1",
      unit: "unit",
      kind: "service",
      unitPrice: "1250.00",
      tax: { kind: "itbis_18", included: true },
    }],
  },
);
```

```python
replacement = timbro.invoices.replace(
    "f35b7ae4-c484-4c63-981e-4f0f15e913b5",
    {
        "invoiceReference": "venta-842-factura-2",
        "type": "E32",
        "currency": "DOP",
        "incomeType": "01",
        "paymentTerms": {"type": "immediate"},
        "items": [{
            "description": "Servicio",
            "quantity": "1",
            "unit": "unit",
            "kind": "service",
            "unitPrice": "1250.00",
            "tax": {"kind": "itbis_18", "included": True},
        }],
    },
)
```

El reemplazo tiene un `invoiceId` y un e-NCF nuevos, y `replacesInvoiceId` identifica la factura que reemplaza. Si usas `source`, conserva su `id` y envía una `version` nueva. Si se pierde la respuesta, repite la misma solicitud con la misma `invoiceReference` para recuperar el mismo reemplazo. Algunos reemplazos necesitan una autorización antes de emitirse; si es el caso, la respuesta de la API lo indica.

Un reemplazo no es una nota de crédito o de débito: sirve para una factura que nunca quedó aceptada.

[Página anterior\
Descargar y enviar la factura](https://timbro.do/docs/comprobantes/entregar-comprobante/)[Siguiente página\
Responder las facturas de tus suplidores](https://timbro.do/docs/comprobantes/facturas-de-suplidores/)

Vende, atiende a tus clientes y cobra desde tu celular

© 2026 Timbro. Todos los derechos reservados

[Español](https://timbro.do/docs/comprobantes/corregir-ecf/)[English](https://timbro.do/en/docs/comprobantes/corregir-ecf/)

## Productos

[Facturación](https://timbro.do/facturacion-electronica/)[Atiende](https://timbro.do/atiende/)[Cobra](https://timbro.do/pagos/)[Portal Timbro](https://timbro.do/portal-timbro/)[Integraciones](https://timbro.do/integraciones/)[Cuenta Timbro](https://timbro.do/cuenta-timbro/)[Precios](https://timbro.do/precios/)

## Desarrolladores

[SDK y API](https://timbro.do/desarrolladores/)[Documentación](https://timbro.do/docs/)[Referencia de la API](https://timbro.do/docs/reference/payments/)

## Empresa

[INDEXA, la empresa detrás de Timbro](https://indexa.do/)[Presentaciones](https://timbro.do/presentaciones/)

## Ayuda

[Cómo empezar](https://timbro.do/como-empezar/)[Guía de facturación electrónica](https://timbro.do/guias/facturacion-electronica-republica-dominicana/)[Contacto](https://timbro.do/contacto/)<hola@timbro.do>

## Legal

[Condiciones para negocios](https://timbro.do/politicas/negocios/)[Política de uso](https://timbro.do/politicas/uso/)[Privacidad](https://timbro.do/politicas/privacidad/)[Seguridad](https://timbro.do/politicas/seguridad/)[Todos los documentos](https://timbro.do/politicas/)
