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

# Tipos de documento

> Catálogo de tipos de DTE (factura, notas, recibos, ticket): qué son, cuándo usarlos, qué países los soportan y sus campos obligatorios adicionales.

El campo `tipo` del cuerpo de `POST /dte` determina qué clase de documento se emite. El mismo API se usa para los tres países soportados — Guatemala, El Salvador y República Dominicana — pero **no todos los tipos están disponibles en todos los países**, y cada uno mapea a un código distinto del catálogo de la autoridad fiscal local (SAT, MH o DGII). Esta página cubre el catálogo compartido; el detalle de identificación del receptor y de impuestos por país vive en [Guatemala](/paises/guatemala), [El Salvador](/paises/el-salvador) y República Dominicana.

<Note>
  Para la forma completa del JSON (campos comunes a todos los tipos) vea [Estructura del DTE](/dte/estructura). Esta página se enfoca en qué cambia según `tipo`.
</Note>

## Catálogo por país

| `tipo`                                         | Documento                                                        | 🇬🇹 Guatemala                                      | 🇸🇻 El Salvador    | 🇩🇴 República Dominicana                      |
| ---------------------------------------------- | ---------------------------------------------------------------- | --------------------------------------------------- | ------------------- | ---------------------------------------------- |
| `factura` (por defecto)                        | Factura / Comprobante de Crédito Fiscal / Factura Crédito Fiscal | ✅ `FACT` (o variante por régimen, ver nota)         | ✅ CCF, tipo MH `03` | ✅ FCFE, tipo DGII `31` (o `44` CERP, ver nota) |
| `ticket`                                       | Factura de Consumidor Final                                      | ❌ no soportado — se rechaza la solicitud            | ✅ FCF, tipo MH `01` | ✅ FCE, tipo DGII `32`                          |
| `facturaCambiaria`                             | Factura Cambiaria (venta a crédito con abonos)                   | ✅ `FCAM` (o variante por régimen)                   | ❌                   | ❌                                              |
| `facturaEspecial`                              | Factura Especial / Factura de Sujeto Excluido                    | ✅ `FESP`                                            | ✅ FSE, tipo MH `14` | ❌                                              |
| `facturaExportacion` (o `esExportacion: true`) | Factura de Exportación                                           | ✅ misma familia `FACT` + complemento de exportación | ✅ FEX, tipo MH `11` | ✅ CEXP, tipo DGII `46`                         |
| `notaCredito`                                  | Nota de Crédito                                                  | ✅ `NCRE`                                            | ✅ tipo MH `05`      | ✅ NCRE, tipo DGII `34`                         |
| `notaDebito`                                   | Nota de Débito                                                   | ✅ `NDEB`                                            | ✅ tipo MH `06`      | ✅ NDEB, tipo DGII `33`                         |
| `notaAbono`                                    | Nota de Abono                                                    | ✅ `NABN`                                            | ❌                   | ❌                                              |
| `recibo`                                       | Recibo                                                           | ✅ `RECI`                                            | ❌                   | ❌                                              |
| `reciboDonacion`                               | Recibo de Donación                                               | ✅ `RDON`                                            | ❌                   | ❌                                              |

<Note>
  El código de tres/cuatro letras entre paréntesis (`FACT`, `NCRE`, etc.) es el que Fegora escribe en el atributo `Tipo` del XML certificado guatemalteco; para El Salvador y República Dominicana la autoridad fiscal identifica el tipo con un código numérico (`DocType`/`eNCF` de dos dígitos), no una sigla.
</Note>

<Warning>
  **`ticket` no existe en Guatemala.** Es un concepto propio de El Salvador (Factura Consumidor Final) y República Dominicana (Factura de Consumo). Una cuenta emisora guatemalteca que envíe `tipo: "ticket"` recibe un rechazo explícito (`codigo: "FEG_BUSINESS_RULE_VIOLATION"`, mensaje "El tipo de documento 'ticket' no es válido para Guatemala.") en lugar de emitirse silenciosamente como factura.
</Warning>

## Facturas

### factura (por defecto)

Venta general de bienes o servicios. Es el tipo por defecto si se omite `tipo`.

<Tabs>
  <Tab title="🇬🇹 Guatemala">
    El código SAT exacto (`FACT` u otro) depende de la **afiliación de IVA de la cuenta emisora**, no de un campo que el cliente controle por solicitud: cuentas de régimen general emiten `FACT`; cuentas de contribuyente agropecuario emiten `FACA`; cuentas de pequeño contribuyente emiten `FPEQ`, `FAPE` o `FAAE` según el régimen electrónico específico. Este mapeo lo resuelve Fegora automáticamente a partir de la configuración de la cuenta.
  </Tab>

  <Tab title="🇸🇻 El Salvador">
    Se emite como **Comprobante de Crédito Fiscal (CCF)**, tipo MH `03` — venta entre contribuyentes (B2B) con derecho a crédito fiscal. El receptor debe declarar `MH_NRC` y `MH_CODIGO_ACTIVIDAD` en `receptor.datosAdicionales`, y el documento debe incluir `NUMERO_SECUENCIAL` en `datosAdicionales` de nivel raíz. Vea [El Salvador](/paises/el-salvador#campos-específicos-del-país).
  </Tab>

  <Tab title="🇩🇴 República Dominicana">
    Se emite como **Factura de Crédito Fiscal Electrónica (FCFE)**, tipo DGII `31` — a menos que `receptor.afiliacionIva` sea `"REGIMEN_ESPECIAL"`, en cuyo caso se emite como **Comprobante de Régimen Especial (CERP)**, tipo DGII `44`.
  </Tab>
</Tabs>

### facturaCambiaria

Venta a crédito con un calendario de abonos pactados. Sólo existe en Guatemala.

Se activa de dos formas equivalentes: enviando `tipo: "facturaCambiaria"` explícitamente, **o** enviando `tipo: "factura"` (o el valor por defecto) junto con `abonosPactados[]` no vacío — Fegora la reconoce igual como cambiaria en ambos casos. El código SAT exacto también varía por régimen de la cuenta (`FCAM`, o `FCCA`/`FCAP`/`FCPE`/`FCAE` para agropecuario/pequeño contribuyente), igual que con `factura`.

```json theme={null}
{
  "receptor": { "id": "12345678", "nombre": "Comercial Ejemplo, S.A." },
  "items": [
    { "descripcion": "Mobiliario de oficina", "precioUnitario": 4500.00 }
  ],
  "abonosPactados": [
    { "fecha": "2026-08-15", "monto": 1500.00 },
    { "fecha": "2026-09-15", "monto": 1500.00 },
    { "fecha": "2026-10-15", "monto": 1500.00 }
  ]
}
```

<Note>
  En El Salvador y República Dominicana, `abonosPactados[]` también se acepta, pero se usa para describir **formas de pago** del documento — no activa un tipo de documento distinto (esos países no tienen un tipo "cambiaria" propio).
</Note>

### facturaEspecial

El **emisor** factura en nombre de un proveedor o prestador de servicios que se negó a emitir factura. Sólo Guatemala (`FESP`) y El Salvador (Factura de Sujeto Excluido, `FSE`, tipo MH `14`) la soportan.

```json theme={null}
{
  "tipo": "facturaEspecial",
  "receptor": {
    "id": "87654321",
    "nombre": "Proveedor Informal Ejemplo"
  },
  "items": [
    { "tipo": "servicio", "descripcion": "Servicio de transporte de carga", "precioUnitario": 800.00 }
  ]
}
```

<Tabs>
  <Tab title="🇬🇹 Guatemala">
    Fegora agrega automáticamente la leyenda legal exigida (Art. 52, Decreto 27-92 de la Ley del IVA) como un dato adicional del documento certificado; no es necesario declararla. La respuesta incluye además un bloque `retencionesFacturaEspecial` con las retenciones de ISR/IVA calculadas.
  </Tab>

  <Tab title="🇸🇻 El Salvador">
    El receptor de una FSE **no** debe declarar `MH_NRC` ni usar `receptor.tipoId: "NIT"` — el Ministerio de Hacienda rechaza esa combinación. Use `receptor.tipoId: "OTRO"` con un identificador libre. Retenciones de renta (`RETENCION_RENTA`/`MH_RENTA_RETENIDA`) funcionan de forma consistente sólo en este tipo. Detalle en [El Salvador](/paises/el-salvador#identificación-del-receptor).
  </Tab>
</Tabs>

### facturaExportacion (o esExportacion: true)

Venta a un receptor en el extranjero. Requiere el bloque `datosExportacion` (ver [Estructura del DTE](/dte/estructura#datosexportacion)) y está exenta de IVA automáticamente — no es necesario declarar `esExentoIva` ni `motivoExencionIva`.

```json theme={null}
{
  "tipo": "facturaExportacion",
  "receptor": {
    "id": "CF",
    "nombre": "Comprador Extranjero Ejemplo"
  },
  "items": [
    { "descripcion": "Artesanías variadas", "precioUnitario": 1200.00 }
  ],
  "datosExportacion": {
    "nombreConsignatario": "Importadora Ejemplo Ltda.",
    "direccionConsignatario": "Av. Principal 123, Ciudad Ejemplo",
    "incoterm": "FOB"
  }
}
```

<Warning>
  **Guatemala: exportación a Consumidor Final por Q2,500 o más.** Por el Acuerdo Gubernativo 12-2023, una exportación con receptor Consumidor Final (`receptor.id: "CF"`) no puede tener un monto total mayor o igual a Q2,500 (o su equivalente en la moneda del documento). Fegora rechaza la solicitud antes de enviarla a la SAT. Vea [Guatemala](/paises/guatemala#reglas-de-validación-específicas).
</Warning>

Cada país mapea la exportación a un tipo/complemento distinto — vea la tabla de arriba (`FACT` + complemento en GT, FEX `11` en SV, CEXP `46` en DO).

## Notas

### notaCredito / notaDebito

Documentos que ajustan un documento previo: la nota de crédito reduce o anula su efecto (por ejemplo una devolución); la nota de débito lo incrementa (por ejemplo un cargo adicional).

**Campos obligatorios adicionales** — a diferencia de la documentación histórica (que sólo mencionaba `idDteOriginal`), el validador actual exige **ambos** campos a nivel raíz:

| Campo           | Obligatorio | Descripción                                                                 |
| --------------- | ----------- | --------------------------------------------------------------------------- |
| `idDteOriginal` | **Sí**      | El `id` (UUID) del documento original al que hace referencia.               |
| `motivoAjuste`  | **Sí**      | Motivo del ajuste, en texto libre (por ejemplo `"Devolución de producto"`). |

```json theme={null}
{
  "tipo": "notaCredito",
  "idDteOriginal": "3FAAF95B-894E-4B80-8253-B32F9A85CBFF",
  "motivoAjuste": "Devolución de producto",
  "items": [
    { "descripcion": "Devolución parcial", "precioUnitario": 150.00 }
  ]
}
```

<Note>
  Si no se envía `receptor`, se hereda del documento original (incluyendo sus `datosAdicionales` país-específicos, como `MH_NRC`/`MH_CODIGO_ACTIVIDAD` en El Salvador). Si `idDteOriginal` no corresponde a un documento existente, se rechaza con `codigo: "FEG_DTE_CREA_010"` — vea [Manejo de errores](/primeros-pasos/errores).
</Note>

<Warning>
  El referenciar un documento anterior a la migración de Fegora (sin `id` propio de Fegora) — mostrado en ejemplos de 2019 como un objeto `dteOriginal` con `esRegimenAntiguo`, `serie`, `numero`, etc. — **no está disponible** en el comando de creación actual. Sólo se acepta `idDteOriginal` como UUID de un DTE existente en la base de Fegora. Vea la nota correspondiente en [Estructura del DTE](/dte/estructura).
</Warning>

### notaAbono

Registra un abono/pago aplicado sobre una factura cambiaria. Sólo Guatemala.

```json theme={null}
{
  "tipo": "notaAbono",
  "receptor": {
    "id": "CF",
    "nombre": "Cliente Ejemplo, S.A."
  },
  "items": [
    { "descripcion": "Abono mensual", "precioUnitario": 500.00 }
  ]
}
```

<Note>
  A diferencia de `notaCredito`/`notaDebito`, el validador actual **no exige** `idDteOriginal` ni `motivoAjuste` para `notaAbono` — puede enviarlos (por ejemplo para referenciar la factura cambiaria original), pero no son obligatorios.
</Note>

<Note>
  Los ítems de una nota de abono no llevan línea de IVA (`items[].impuestos` queda vacío) — igual que en `recibo` y `reciboDonacion`, ya que estos tres tipos no representan una venta gravada nueva.
</Note>

## Recibos

Ambos tipos de recibo son exclusivos de Guatemala; ni El Salvador ni República Dominicana los soportan.

### recibo

Cobros exentos de IVA que no corresponden a venta de bienes/servicios — por ejemplo cuotas, colegiaturas o membresías.

```json theme={null}
{
  "tipo": "recibo",
  "motivoExencionIva": "LEY_IVA_ART8_NUM1",
  "receptor": {
    "id": "CF",
    "nombre": "Padre de Familia Ejemplo"
  },
  "items": [
    { "descripcion": "Colegiatura mensual", "precioUnitario": 850.00 }
  ]
}
```

<Warning>
  A diferencia de `reciboDonacion` (que asigna su motivo de exención automáticamente), **`recibo` no asigna un `motivoExencionIva` por defecto** — el documento se marca como exento de IVA, pero si no se declara un motivo explícito, la SAT puede rechazarlo al certificar por no incluir la frase de exención requerida. Envíe siempre `motivoExencionIva` explícito con este tipo (por ejemplo `LEY_IVA_ART8_NUM1` para colegiaturas, o `LEY_IVA_ART7_NUM10` para cuotas de asociaciones/colegios).
</Warning>

### reciboDonacion

Donaciones recibidas, exentas de IVA por ley. Fegora asigna automáticamente `motivoExencionIva: "LEY_IVA_ART7_NUM9"` (frase SAT 4-4) sin que el cliente deba declararlo.

**Campo adicional requerido**: el documento debe declarar el tipo de personería jurídica del donante en `datosAdicionales`:

```json theme={null}
{
  "tipo": "reciboDonacion",
  "receptor": {
    "id": "CF",
    "nombre": "Donante Ejemplo"
  },
  "datosAdicionales": [
    { "nombre": "TIPO_PERSONERIA", "valor": "719" }
  ],
  "items": [
    { "descripcion": "Donación recibida", "precioUnitario": 1000.00 }
  ]
}
```

<Note>
  `TIPO_PERSONERIA` usa un código numérico del catálogo de personerías jurídicas de la SAT (no un texto como `"INDIVIDUAL"`/`"JURIDICA"`) — el código exacto depende de la personería registrada para la cuenta emisora. Vea [Guatemala](/paises/guatemala#campos-específicos-del-país).
</Note>

## Campos obligatorios adicionales por tipo — resumen

| `tipo`                                       | Campos adicionales obligatorios                                                                                              |
| -------------------------------------------- | ---------------------------------------------------------------------------------------------------------------------------- |
| `notaCredito`, `notaDebito`                  | `idDteOriginal`, `motivoAjuste`                                                                                              |
| `facturaExportacion` / `esExportacion: true` | `datosExportacion.nombreConsignatario`, `datosExportacion.direccionConsignatario`                                            |
| `reciboDonacion`                             | `datosAdicionales[TIPO_PERSONERIA]`                                                                                          |
| `recibo`                                     | `motivoExencionIva` explícito (recomendado; no forzado por el validador — ver advertencia arriba)                            |
| `factura` en El Salvador (CCF)               | `receptor.datosAdicionales[MH_NRC]`, `receptor.datosAdicionales[MH_CODIGO_ACTIVIDAD]`, `datosAdicionales[NUMERO_SECUENCIAL]` |

Para el detalle de impuestos y exenciones aplicables a cada tipo, vea [Impuestos](/dte/impuestos).
