> ## 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.

# Emita su primer DTE

> Guía rápida para emitir un Documento Tributario Electrónico de principio a fin.

Esta guía emite un DTE mínimo de principio a fin: obtener un token, enviar el documento y revisar el resultado. Los ejemplos usan datos ficticios — reemplácelos por los de su cuenta.

<Steps>
  <Step title="Obtenga un token de acceso">
    Toda llamada al API requiere un token `Bearer`. Vea el detalle en [Autenticación](/primeros-pasos/autenticacion).

    ```bash theme={null}
    curl -X POST https://api.fegora.com/token \
      -H "Content-Type: application/x-www-form-urlencoded" \
      -d "grant_type=password&client_id=apiApp&username=12345678&password=contrasenia-ejemplo"
    ```

    Guarde el `access_token` de la respuesta — lo usará en el siguiente paso.
  </Step>

  <Step title="Construya el DTE mínimo">
    Un DTE necesita, como mínimo, un `receptor` y al menos un `item` con `descripcion` y `precioUnitario`. Todo lo demás (tipo de documento, moneda, fecha de emisión, datos del emisor) toma un valor por defecto a partir de la configuración de la cuenta.

    ```json theme={null}
    {
      "receptor": {
        "id": "CF",
        "nombre": "CONSUMIDOR FINAL"
      },
      "items": [
        {
          "descripcion": "Servicio de consultoría",
          "cantidad": 1,
          "precioUnitario": 100.00
        }
      ]
    }
    ```

    <Note>
      `receptor.id: "CF"` identifica a un consumidor final (sin NIT). Si el receptor es un contribuyente, use su NIT (GT), RNC (DO) o el identificador que aplique (DUI/NIT/pasaporte en SV) en `receptor.id`.
    </Note>
  </Step>

  <Step title="Envíe el documento con POST /dte">
    ```bash theme={null}
    curl -X POST https://api.fegora.com/dte \
      -H "Authorization: Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9...ejemplo" \
      -H "Content-Type: application/json" \
      -d '{
            "receptor": { "id": "CF", "nombre": "CONSUMIDOR FINAL" },
            "items": [
              { "descripcion": "Servicio de consultoría", "cantidad": 1, "precioUnitario": 100.00 }
            ]
          }'
    ```

    Si la certificación ante la autoridad fiscal (SAT/MH/DGII, vía el certificador de la cuenta) es exitosa, la respuesta es `200 OK` con el DTE completo, incluida su información de certificación. Si la certificación es rechazada, el API responde con un error — vea [Manejo de errores](/primeros-pasos/errores).
  </Step>

  <Step title="Inspeccione la respuesta">
    La respuesta trae el documento certificado. Los campos clave para este primer recorrido:

    ```json theme={null}
    {
      "id": "8F3A1C2E-9B7D-4E51-8A0F-1234567890AB",
      "tipo": "factura",
      "serie": "A1B2C3D4",
      "numero": 1023,
      "estado": "Certificado",
      "fechaEmision": "2026-07-12T10:15:00",
      "fechaCertificacion": "2026-07-12T10:15:03",
      "moneda": "GTQ",
      "total": 100.00,
      "selloEntidadFiscal": "eyJhbGciOi...ejemplo",
      "verificacionCertificadorUri": "https://verificador.certificador-ejemplo.com/consulta?id=8F3A1C2E-...",
      "archivoXmlUri": "https://cdn.fegora.com/dtes/8F3A1C2E-9B7D-4E51-8A0F-1234567890AB.xml",
      "archivoPdfUri": null,
      "dteUri": "https://www.fegora.com/dtes/8F3A1C2E-9B7D-4E51-8A0F-1234567890AB",
      "items": [
        {
          "descripcion": "Servicio de consultoría",
          "cantidad": 1,
          "precioUnitario": 100.00,
          "total": 100.00,
          "impuestos": [
            { "nombreCorto": "IVA", "codigoUnidadGravable": 1, "montoGravable": 89.285714, "montoImpuesto": 10.714286 }
          ]
        }
      ]
    }
    ```

    * **`id`** es el identificador único del documento (UUID) — en la mayoría de certificadores corresponde al número de autorización emitido por la autoridad fiscal. Es el valor que debe conservar en su sistema para referenciar el documento después (por ejemplo al emitir una nota de crédito).
    * **`archivoXmlUri`** apunta al XML certificado del documento.
    * **`archivoPdfUri`** viene `null` en la respuesta de creación — el PDF se genera bajo demanda la primera vez que se solicita (siguiente paso).

    Consulte [Estructura del DTE](/dte/estructura) para el detalle completo de campos de la respuesta.
  </Step>

  <Step title="Descargue el PDF">
    El PDF se genera (y se cachea) la primera vez que se solicita:

    ```bash theme={null}
    curl -X GET https://api.fegora.com/dte/8F3A1C2E-9B7D-4E51-8A0F-1234567890AB/pdf \
      -o factura.pdf
    ```

    Este endpoint no requiere el header `Authorization` — el enlace puede compartirse directamente (por ejemplo, en un correo al receptor). Para forzar una nueva generación del PDF (por ejemplo tras corregir una plantilla), agregue `?regenerar=true` a la URL.
  </Step>
</Steps>
