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

# Emitir un comprobante

> Emite un documento tributario electrónico, consulta su estado y descarga el PDF o el XML.

Esta guía cubre el flujo completo de emisión: crear el comprobante, consultar su estado y obtener sus representaciones (PDF y XML). Todas las peticiones usan la **API key** de tu empresa en el header `X-Api-Key`.

## Prerequisitos

La empresa emisora debe estar [dada de alta](/guias/dar-de-alta-empresa) con certificado y folios cargados.

## 1. Emitir el comprobante

Envía una petición `POST` con los datos del comprobante. La emisión es [asíncrona](/guias/como-funciona#la-emisión-es-asíncrona): Emify recibe el documento, lo genera, lo firma y lo envía al SII en segundo plano.

```bash theme={null}
curl -X POST https://api.emify.co/api/companies/{company_id}/invoices \
  -H "X-Api-Key: tu_api_key" \
  -H "Content-Type: application/json" \
  -d @factura.json
```

Ejemplo de cuerpo para una **factura electrónica** en Chile:

```json factura.json theme={null}
{
  "branch_office": 1,
  "invoice_type": "FCE",
  "invoice_date": "2025-01-31 06:00:00",
  "payment_due_date": "2025-01-31",
  "external_reference": "1526815",
  "issuer": {
    "legal_name": "CONTABILIUM CHILE SPA",
    "document_type": "RUT",
    "document_number": "77450199-1",
    "address": {
      "country": "CL",
      "region": "CL-AN",
      "city": "CL-ANF",
      "address": "Napoleon 3200"
    },
    "tax_information": {
      "activity": "OTRAS ACTIVIDADES DE TECNOLOGIA DE LA INFORMACION Y DE SERVICIOS INFORMATICOS",
      "activity_codes": [620200, 620900, 702000],
      "resolution_date": "2014-08-22",
      "resolution_number": "80"
    }
  },
  "recipient": {
    "legal_name": "TUDISTRIBUIDORA.CL SPA",
    "document_type": "RUT",
    "document_number": "76995025-7",
    "address": {
      "country": "CL",
      "region": "CL-LI",
      "city": "CL-QTC",
      "address": "LOS MILITARES 5620 OF 905"
    },
    "tax_information": { "activity": "VENTAS DE PRODUCTOS" }
  },
  "currency": { "code": "CLP", "exchange_rate": 1 },
  "payment_method": { "code": "CON", "description": "Contado" },
  "items": [
    {
      "quantity": 2,
      "code_unit_of_measure": "u",
      "discount_amount": 0,
      "unit_price": 5,
      "description": "PLAN FULL",
      "taxes": [{ "type": "CL_GRAV_BAS", "amount": 2, "rate": 19 }]
    }
  ],
  "totals": {
    "sub_total": 10,
    "discount": 0,
    "taxes": [{ "type": "CL_GRAV_BAS", "amount": 2, "base_amount": 10, "rate": 19 }],
    "total": 12
  }
}
```

Los campos clave del cuerpo:

| Campo                  | Descripción                                                                 |
| ---------------------- | --------------------------------------------------------------------------- |
| `branch_office`        | Sucursal emisora.                                                           |
| `invoice_type`         | Tipo de documento. Ver [tipos de documento](/guias/tipos-de-documento).     |
| `issuer` / `recipient` | Datos del emisor y del receptor, con su dirección e información tributaria. |
| `currency`             | Moneda (`CLP`) y tipo de cambio.                                            |
| `items`                | Ítems con cantidad, precio unitario e impuestos.                            |
| `totals`               | Subtotal, descuentos, impuestos y total.                                    |

<Tip>
  El detalle campo por campo (tipos, obligatoriedad, objetos anidados) está en la [referencia de la API](/api-reference/introduccion). Los valores de tipos de documento, monedas, impuestos y unidades salen de los [catálogos de referencia](/guias/tipos-de-documento).
</Tip>

La respuesta confirma la recepción e incluye el `id` del documento y su estado inicial.

## 2. Consultar el estado

El estado se resuelve de forma asíncrona. Consulta el documento hasta que llegue a un estado final, o mejor, usa [webhooks](/esenciales/webhooks).

```bash theme={null}
curl https://api.emify.co/api/companies/{company_id}/invoices/{invoice_id} \
  -H "X-Api-Key: tu_api_key"
```

Los valores de `status` y `fiscal_status`, y qué significan, están en [Ciclo de vida de un documento](/guias/ciclo-de-vida-documento).

## 3. Descargar el PDF

Una vez aprobado, descarga la representación impresa. Formatos: `A4`, `80mm`, `58mm`.

```bash theme={null}
curl -X POST https://api.emify.co/api/companies/{company_id}/invoices/{invoice_id}/download-pdf/A4 \
  -H "X-Api-Key: tu_api_key" \
  --output comprobante.pdf
```

Para obtener el PDF en Base64 (por ejemplo, para incrustarlo en otro sistema), usa `download-base64/{formato}`.

## 4. Descargar el XML

```bash theme={null}
curl https://api.emify.co/api/companies/{company_id}/invoices/{invoice_id}/xml \
  -H "X-Api-Key: tu_api_key" \
  --output comprobante.xml
```

## Anular un comprobante

En Chile, un documento emitido no se "borra": se anula emitiendo una **nota de crédito** que lo referencia. Envía un `POST` a `invoices` con `invoice_type` de nota de crédito (`NCV`), el `reason_code` correspondiente y `billing_reference` apuntando al documento original.

```json theme={null}
{
  "invoice_type": "NCV",
  "reason_code": "ANU",
  "billing_reference": [
    { "branch_office": 1, "number": 65, "invoice_type": "BOL", "invoice_date": "2025-01-30 16:00:00" }
  ]
}
```

Ver los códigos de anulación en [tipos de documento](/guias/tipos-de-documento#razones-de-anulación).

<Note>
  El documento referenciado en `billing_reference` no necesita haber sido emitido por Emify: puedes referenciar un documento emitido por otro proveedor o sistema y Emify lo acepta, enviando la referencia al SII tal cual la informas para que él la valide.

  Cuando el documento referenciado **sí** existe en Emify, se aplican las validaciones habituales: no puedes anularlo dos veces, el tipo referenciado debe ser anulable y el tipo de la nota debe coincidir con el tipo de anulación esperado.
</Note>
