Saltar al contenido
↑↓ navegar ↵ abrir Esc cerrar
Recurso · E33

API de notas de débito

El recurso /debit-notes emite notas de débito (E33) que incrementan el monto de un comprobante anterior. Útil para intereses por mora, cargos por servicios adicionales o ajustes posteriores que sumen al saldo del receptor.

Resumen

Una nota de débito se enlaza con un comprobante original (E31 o E32) y agrega líneas con cargo adicional. La DGII reconoce el documento como complemento del comprobante original a efectos de ITBIS y conciliación contable.

Operaciones disponibles

POST /api/v1/debit-notes X-Api-Key Estable

Emite una nota de débito (E33) referenciando un comprobante original.

Nombre Tipo Descripción
branchId body string (uuid) Requerido

Identificador de la sucursal emisora dentro del espacio de trabajo.

sequence body string Opcional

Se ignora. La nota siempre toma el siguiente NCF de la secuencia E33 activa. Si no hay una secuencia E33 activa, la API responde `500`.

externalReference body string Opcional

Referencia externa libre del emisor (orden, ticket, ID en tu sistema).

issuedAt body string (ISO 8601) Requerido

Fecha de emisión de la nota.

paymentTermId body integer Requerido

Identificador del término de pago aplicable.

limitDate body string (ISO 8601) Requerido

Fecha límite asociada al término de pago.

customerId body string (uuid) Opcional

Receptor de la nota. Obligatorio si el comprobante original era E31.

currencyId body integer Requerido

Identificador de la moneda de la nota.

currencyRate body decimal Requerido

Tasa de cambio aplicada (1 cuando la moneda coincide con DOP).

freight body decimal Opcional

Monto del flete o transporte cuando aplica.

notes body string Opcional

Notas libres impresas en la nota.

referenceCreatedAt body string (ISO 8601) Requerido

Fecha de emisión del comprobante original (E31 o E32) sobre el que se aplica el cargo.

referenceSequence body string Requerido

NCF del comprobante original sobre el que se aplica el cargo. Si no existe un documento con esa secuencia, la API responde `404` con `{ message }`.

modificationCode body integer Requerido

Código DGII del motivo. `1` anula el comprobante original, `2` corrige texto y `3` corrige montos.

lines body V1LineDto[] Requerido

Líneas con el cargo adicional (intereses, mora, ajuste por diferencia de cambio).

payments body V1PaymentDto[] Opcional

Pagos asociados a la nota. Suele ir vacío en notas de débito.

Ejemplo: emitir nota de débito

El cuerpo replica la forma de una factura: lines con cantidades, precios e impuestos. La diferencia está en los campos de referencia: referenceSequence con el NCF original, referenceCreatedAt con su fecha de emisión y modificationCode con el motivo del ajuste según la DGII. Los códigos vigentes son 1 (anula el comprobante original), 2 (Corrige Texto, sin tocar montos) y 3 (Corrige Monto, ajuste numérico al saldo); los cuatro casos de uso siguientes encajan todos en el código 3. Las líneas describen el cargo adicional con sus impuestos asociados. El campo sequence se ignora: la nota siempre toma el siguiente NCF de la secuencia activa. Si no existe un documento con ese referenceSequence, la API responde 404 con { message }. Ten en cuenta que /credit-notes y /debit-notes listan la misma mezcla de notas de crédito y de débito.

POST /api/v1/debit-notes

debit-note.sh
curl -X POST https://tuempresa.factura.com.do/api/v1/debit-notes \
-H "X-Api-Key: $FACTURA_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"branchId": "b1a2c3d4-e5f6-4789-abcd-1234567890ab",
"issuedAt": "2026-05-08T10:00:00Z",
"paymentTermId": 1,
"limitDate": "2026-05-08T10:00:00Z",
"customerId": "5f0c3a8e-2b7d-4c1e-9a6f-3d8b2e1c7a40",
"currencyId": 1,
"currencyRate": 1,
"referenceCreatedAt": "2026-04-08T10:00:00Z",
"referenceSequence": "E320000000123",
"modificationCode": 3,
"lines": [
{
"code": "INT-MORA",
"order": 1,
"description": "Intereses por mora 30 días",
"isService": true,
"quantity": 1,
"unitId": 1,
"unitPrice": 1250.00,
"taxes": [{ "taxId": "3a5e98e0-33ff-44be-bd37-e3f9b35a25e2", "rate": 18.0, "taxTypeId": 1 }]
}
],
"payments": []
}'
debit-note.ts
const res = await fetch(
"https://tuempresa.factura.com.do/api/v1/debit-notes",
{
method: "POST",
headers: {
"X-Api-Key": process.env.FACTURA_API_KEY!,
"Content-Type": "application/json",
},
body: JSON.stringify({
branchId,
issuedAt: new Date().toISOString(),
paymentTermId: 1,
limitDate: new Date().toISOString(),
customerId,
currencyId: 1,
currencyRate: 1,
referenceCreatedAt: originalIssuedAt,
referenceSequence: originalSequence,
modificationCode: 3,
lines,
payments: [],
}),
},
);
if (!res.ok) throw new Error(`factura.com.do: ${res.status}`);
const { documentId, consultationUrl } = await res.json();

Respuesta

response.json
{
"documentId": "9b2f4c6d-1e3a-4b5c-8d7e-6f0a1b2c3d4e",
"consultationUrl": "https://ecf.dgii.gov.do/ecf/ConsultaTimbre?RNCEmisor=131000001&ENCF=E330000000001&…"
}

Cuándo emitir una nota de débito

  • Intereses por mora: el receptor paga después de la fecha pactada.
  • Cargos por servicios adicionales: trabajo extra no incluido en el comprobante original.
  • Ajustes por diferencia de cambio: cuando la operación se facturó en moneda extranjera y la diferencia favorece al emisor.
  • Penalidades contractuales: cargos por incumplimiento o rotura de garantía.

Siguientes pasos

Siguiente paso

Continúa por aquí