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

# Emitir una autofactura electrónica

> Tipo de DE 4 — compras a no-contribuyentes o vendedores extranjeros.

La **Autofactura Electrónica** (`tipo_de: 4`) la emite el **comprador**, no el vendedor. Se usa cuando comprás a alguien que no puede emitir factura electrónica:

* **Productores agropecuarios no inscriptos** en el RUC.
* **Vendedores informales** (cazadores, recolectores, artesanos no contribuyentes).
* **Vendedores extranjeros** sin RUC paraguayo.

A diferencia de la factura, en la autofactura el **vendedor** es el que aparece en el documento, no el cliente.

## Restricción importante

**Todos los items de una autofactura deben ser EXENTOS** (`iva_tipo: 3`). Esto es obligatorio por SIFEN — si enviás un item con IVA 10% o 5%, e-Miti rechaza el request con error `AutofacturaSoloExentoError` antes de armar el XML.

## Variables del ejemplo

```bash theme={null}
export EMITI_BASE_URL="https://api.emiti.fravelabs.com"
export EMITI_API_KEY="emiti_k_xxxxxxxxxxxxxxxxxxxxxxxx"
```

## Caso 1 — Compra a productor no-contribuyente

Compraste 500 kg de soja a un productor que no tiene RUC. Tu RUC (el comprador) ya está en el certificado configurado en e-Miti. En el body, declarás los datos del **vendedor** (el productor):

```bash theme={null}
curl -s "$EMITI_BASE_URL/v1/de/emitir" \
  -X POST \
  -H "Authorization: ApiKey $EMITI_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "establecimiento": "001",
    "punto": "001",
    "tipo_de": 4,
    "tipo_transaccion": 10,
    "id_interno": "AF-2026-0001",
    "receptor": {
      "nombre": "Acopio Central SA",
      "ruc": "80012345-6",
      "tipo_documento": 1,
      "numero_documento": "12345678"
    },
    "autofactura": {
      "naturaleza_vendedor": 1,
      "tipo_documento": 1,
      "numero_documento": "1234567",
      "nombre": "Juan Pérez González",
      "direccion": "Compañía San Miguel s/n",
      "numero_casa": 0,
      "codigo_departamento": 5,
      "ciudad": "Caaguazú",
      "codigo_ciudad": 51,
      "direccion_provision": "Compañía San Miguel s/n",
      "codigo_departamento_provision": 5,
      "ciudad_provision": "Caaguazú",
      "codigo_ciudad_provision": 51
    },
    "items": [
      {
        "descripcion": "Soja a granel",
        "cantidad": "500.0",
        "precio_unitario": "2500.00",
        "iva_tipo": 3
      }
    ]
  }'
```

Notar:

* `tipo_de: 4` → autofactura.
* `tipo_transaccion: 10` → compra de productos (otros valores típicos: `11` compra de servicios, `13` muestras médicas).
* **`receptor`** es **tu empresa** (el comprador). Sus datos se autocompletan en parte desde el tenant si los omitís, pero conviene enviarlos explícitos.
* **`autofactura`** describe al **vendedor**. Es obligatorio.
* **`items[].iva_tipo: 3`** → EXENTO. Cualquier otro valor falla la validación.

## Caso 2 — Compra a vendedor extranjero

Para un vendedor sin RUC paraguayo y residencia fuera del país, cambiá `naturaleza_vendedor`:

```json theme={null}
{
  "establecimiento": "001",
  "punto": "001",
  "tipo_de": 4,
  "tipo_transaccion": 11,
  "receptor": {
    "nombre": "Empresa Compradora SA",
    "ruc": "80012345-6",
    "tipo_documento": 1,
    "numero_documento": "12345678"
  },
  "autofactura": {
    "naturaleza_vendedor": 2,
    "tipo_documento": 2,
    "numero_documento": "AB123456",
    "nombre": "John Smith",
    "direccion": "1234 Main St",
    "numero_casa": 0,
    "codigo_departamento": 1,
    "ciudad": "Asunción",
    "codigo_ciudad": 1,
    "direccion_provision": "1234 Main St",
    "codigo_departamento_provision": 1,
    "ciudad_provision": "Asunción",
    "codigo_ciudad_provision": 1
  },
  "items": [
    {
      "descripcion": "Servicio de auditoría externa",
      "cantidad": "1.0",
      "precio_unitario": "5000000.00",
      "iva_tipo": 3
    }
  ]
}
```

* `naturaleza_vendedor: 2` → EXTRANJERO.
* `autofactura.tipo_documento: 2` → PASAPORTE (otros: `1` cédula paraguaya, `3` cédula extranjera, `4` carnet de residencia).
* Los campos `direccion_provision` / `codigo_departamento_provision` / `ciudad_provision` / `codigo_ciudad_provision` representan el **lugar donde se entregó el bien o se prestó el servicio**, no la dirección del vendedor. En servicios prestados localmente, completalos con la dirección del comprador en Paraguay.

## Campos del objeto `autofactura`

| Campo                                                                                                 | Tipo     | Requerido | Notas                                                                                                                                       |
| ----------------------------------------------------------------------------------------------------- | -------- | --------- | ------------------------------------------------------------------------------------------------------------------------------------------- |
| `naturaleza_vendedor`                                                                                 | `int`    | sí        | `1` No-contribuyente (default), `2` Extranjero.                                                                                             |
| `tipo_documento`                                                                                      | `int`    | sí        | `1` Cédula PY (default), `2` Pasaporte, `3` Cédula extranjera, `4` Carnet de residencia, `5` Innominado, `6` Tarjeta diplomática, `9` Otro. |
| `numero_documento`                                                                                    | `string` | sí        | Cédula, pasaporte u otro.                                                                                                                   |
| `nombre`                                                                                              | `string` | sí        | Nombre completo del vendedor.                                                                                                               |
| `direccion`                                                                                           | `string` | sí        | Dirección del vendedor.                                                                                                                     |
| `numero_casa`                                                                                         | `int`    | sí        | Default `0` si no aplica.                                                                                                                   |
| `codigo_departamento`                                                                                 | `int`    | sí        | Código SET del departamento.                                                                                                                |
| `ciudad`                                                                                              | `string` | sí        | Nombre de la ciudad.                                                                                                                        |
| `codigo_ciudad`                                                                                       | `int`    | sí        | Código SET de la ciudad.                                                                                                                    |
| `direccion_provision`, `codigo_departamento_provision`, `ciudad_provision`, `codigo_ciudad_provision` | varios   | sí        | Lugar de provisión del bien/servicio.                                                                                                       |

Los códigos de departamento y ciudad están en el catálogo de SET, accesible en `GET /v1/catalogos/...`.

## Errores típicos

| Error                                                               | Causa                                     | Acción                                      |
| ------------------------------------------------------------------- | ----------------------------------------- | ------------------------------------------- |
| `VALIDACION_MULTIPLES_CAMPOS` con mensaje "items deben ser EXENTOS" | Algún item tiene `iva_tipo: 1` o `2`.     | Cambiar todos los items a `iva_tipo: 3`.    |
| `VALIDACION_MULTIPLES_CAMPOS` con campos del objeto `autofactura`   | Falta algún campo requerido del vendedor. | Completar todos los campos listados arriba. |

## Siguiente paso

Mismo flujo que cualquier DE: [polling de estado](/concepts/flujo-asincrono) hasta `A`, descarga del KuDE.
