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

# Factura con Exoneración

> Emitir una factura electrónica con exoneración de impuestos

Envía una factura electrónica (tipoDoc `"1"`) con exoneración de impuestos. La exoneración se aplica dentro del objeto `impuesto` de cada línea del detalle de servicio.

<Note>
  Existen dos modalidades de exoneración: **autorizaciones** (emitidas por
  entidades autorizadas) y **gobierno** (instituciones públicas con artículo e
  inciso de ley).
</Note>

## Request

```
POST https://{empresa}.mipos.co.cr/api/enviar/items
```

### Campos principales

Los campos principales son idénticos a la [Factura Electrónica](/api-reference/cliente/enviar-factura): `emisor`, `numeroReferencia`, `codigoActividad`, `tipoDoc` (`"1"`), `receptor`, `folioType`, `fechaEmision`, `resumenFactura`, `otrosCargos`.

### Exoneración en el impuesto

La diferencia está dentro de cada elemento del array `impuesto` en `detalleServicio`, que incluye un objeto `exoneracion`:

<ParamField body="exoneracion" type="object" required>
  Datos del documento de exoneración.

  <Expandable title="Propiedades">
    <ParamField body="tipoDocumento" type="string" required>
      Tipo de documento de exoneración:

      * `"01"` — Compras autorizadas
      * `"02"` — Ventas exentas a diplomáticos
      * `"03"` — Autorizado por ley especial
      * `"04"` — Exoneraciones DGTH
      * `"05"` — Zonas Francas
      * `"99"` — Otros
    </ParamField>

    <ParamField body="numeroDocumento" type="string" required>
      Número del documento de exoneración (ej: `"AL-00080875-23"`).
    </ParamField>

    <ParamField body="nombreInstitucion" type="string" required>
      Código o nombre de la institución que emite la exoneración.

      * `"01"` — Instituciones del Estado
      * `"04"` — DGTH (Dirección General de Tributación y Hacienda)
    </ParamField>

    <ParamField body="fechaEmision" type="string" required>
      Fecha de emisión del documento de exoneración en formato ISO 8601.
    </ParamField>

    <ParamField body="porcentajeExoneracion" type="number" required>
      Porcentaje de exoneración (ej: `13` para exoneración total del IVA).
    </ParamField>

    <ParamField body="nombreInstitucionOtros" type="string">
      Nombre completo de la institución (requerido para tipo `"01"` gobierno).
    </ParamField>

    <ParamField body="articulo" type="string">
      Artículo de ley que fundamenta la exoneración (para instituciones gobierno).
    </ParamField>

    <ParamField body="inciso" type="number">
      Inciso del artículo de ley (para instituciones gobierno).
    </ParamField>
  </Expandable>
</ParamField>

## Ejemplo: Exoneración estándar (DGTH)

<RequestExample>
  ```bash cURL theme={null}
  curl -X POST https://{empresa}.mipos.co.cr/api/enviar/items \
    -H "Content-Type: application/json" \
    -H "Authorization: Bearer {token}" \
    -d '{
      "emisor": "3102955154",
      "numeroReferencia": 18,
      "codigoActividad": "6201.0",
      "tipoDoc": "1",
      "receptor": {
        "nombre": "JUAN PEREZ GARCIA",
        "telefono": "50684444",
        "identificacion": {
          "tipo": "01",
          "numero": "504300485"
        },
        "correoElectronico": "cliente@ejemplo.com"
      },
      "folioType": "INVOICE",
      "fechaEmision": "2024-08-23T10:30:00-06:00",
      "resumenFactura": {
        "codigoTipoMoneda": {
          "codigoMoneda": "CRC"
        },
        "mediosPago": [
          {
            "tipoMedioPago":"01",
            "totalMedioPago":"20000.00"
          },
          {
            "tipoMedioPago":"06",
            "totalMedioPago":"5160.90"
          }
        ],
        "totalOtrosCargos": "387.09"
      },
      "detalleServicio": [
        {
          "codigo": "8421000000000",
          "detalle": "INTERNET RESIDENCIAL 200 MBPS",
          "cantidad": 1.0,
          "impuesto": [
            {
              "monto": "2875.53",
              "codigo": "01",
              "tarifa": "13",
              "codigoTarifa": "08",
              "exoneracion": {
                "numeroDocumento": "AL-00080875-23",
                "fechaEmision": "2023-10-11T00:00:00",
                "nombreInstitucion": "04",
                "porcentajeExoneracion": 13,
                "tipoDocumento": "04"
              }
            }
          ],
          "subTotal": "22119.47",
          "descuento": "0.00",
          "montoTotal": "22119.47",
          "numeroLinea": 1,
          "impuestoNeto": 2875.53,
          "unidadMedida": "Os",
          "precioUnitario": "22119.47",
          "codigoComercial": [
            { "tipo": "04", "codigo": "I_INT" }
          ],
          "montoTotalLinea": 24995.0,
          "unidadMedidaComercial": "Os"
        }
      ]
    }'
  ```

  ```php PHP theme={null}
  $ch = curl_init('https://{empresa}.mipos.co.cr/api/enviar/items');
  curl_setopt_array($ch, [
      CURLOPT_POST           => true,
      CURLOPT_RETURNTRANSFER => true,
      CURLOPT_HTTPHEADER     => [
          'Content-Type: application/json',
          'Authorization: Bearer ' . $token,
      ],
      CURLOPT_POSTFIELDS     => json_encode([
          'emisor'            => '3102955154',
          'numeroReferencia'  => 18,
          'codigoActividad'   => '6201.0',
          'tipoDoc'           => '1',
          'receptor'          => [
              'nombre'             => 'JUAN PEREZ GARCIA',
              'telefono'           => '50684444',
              'identificacion'     => ['tipo' => '01', 'numero' => '504300485'],
              'correoElectronico'  => 'cliente@ejemplo.com',
          ],
          'folioType'         => 'INVOICE',
          'fechaEmision'      => date('c'),
          'resumenFactura'    => [
              'codigoTipoMoneda' => ['codigoMoneda' => 'CRC'],
              'totalOtrosCargos' => '387.09',
          ],
          'detalleServicio'   => [
              [
                  'codigo'          => '8421000000000',
                  'detalle'         => 'INTERNET RESIDENCIAL 200 MBPS',
                  'cantidad'        => 1.0,
                  'precioUnitario'  => '22119.47',
                  'subTotal'        => '22119.47',
                  'montoTotal'      => '22119.47',
                  'descuento'       => '0.00',
                  'numeroLinea'     => 1,
                  'unidadMedida'    => 'Os',
                  'impuestoNeto'    => 2875.53,
                  'montoTotalLinea' => 24995.0,
                  'impuesto'        => [
                      [
                          'codigo'       => '01',
                          'codigoTarifa' => '08',
                          'tarifa'       => '13',
                          'monto'        => '2875.53',
                          'exoneracion'  => [
                              'numeroDocumento'       => 'AL-00080875-23',
                              'fechaEmision'          => '2023-10-11T00:00:00',
                              'nombreInstitucion'     => '04',
                              'porcentajeExoneracion' => 13,
                              'tipoDocumento'         => '04',
                          ],
                      ],
                  ],
              ],
          ],
      ]),
  ]);

  $response = curl_exec($ch);
  $httpCode = curl_getinfo($ch, CURLINFO_HTTP_CODE);
  curl_close($ch);
  ```

  ```javascript Node.js theme={null}
  const response = await fetch("https://{empresa}.mipos.co.cr/api/enviar/items", {
    method: "POST",
    headers: {
      "Content-Type": "application/json",
      Authorization: `Bearer ${token}`,
    },
    body: JSON.stringify({
      emisor: "3102955154",
      numeroReferencia: 18,
      codigoActividad: "6201.0",
      tipoDoc: "1",
      receptor: {
        nombre: "JUAN PEREZ GARCIA",
        telefono: "50684444",
        identificacion: { tipo: "01", numero: "504300485" },
        correoElectronico: "cliente@ejemplo.com",
      },
      folioType: "INVOICE",
      fechaEmision: new Date().toISOString(),
      resumenFactura: {
        codigoTipoMoneda: { codigoMoneda: "CRC" },
        totalOtrosCargos: "387.09",
      },
      detalleServicio: [
        {
          codigo: "8421000000000",
          detalle: "INTERNET RESIDENCIAL 200 MBPS",
          cantidad: 1.0,
          precioUnitario: "22119.47",
          subTotal: "22119.47",
          montoTotal: "22119.47",
          descuento: "0.00",
          numeroLinea: 1,
          unidadMedida: "Os",
          impuestoNeto: 2875.53,
          montoTotalLinea: 24995.0,
          impuesto: [
            {
              codigo: "01",
              codigoTarifa: "08",
              tarifa: "13",
              monto: "2875.53",
              exoneracion: {
                numeroDocumento: "AL-00080875-23",
                fechaEmision: "2023-10-11T00:00:00",
                nombreInstitucion: "04",
                porcentajeExoneracion: 13,
                tipoDocumento: "04",
              },
            },
          ],
        },
      ],
    }),
  });

  const data = await response.json();
  ```

  ```python Python theme={null}
  import requests
  from datetime import datetime

  response = requests.post(
      'https://{empresa}.mipos.co.cr/api/enviar/items',
      headers={'Authorization': f'Bearer {token}'},
      json={
          'emisor': '3102955154',
          'numeroReferencia': 18,
          'codigoActividad': '6201.0',
          'tipoDoc': '1',
          'receptor': {
              'nombre': 'JUAN PEREZ GARCIA',
              'telefono': '50684444',
              'identificacion': {'tipo': '01', 'numero': '504300485'},
              'correoElectronico': 'cliente@ejemplo.com',
          },
          'folioType': 'INVOICE',
          'fechaEmision': datetime.now().isoformat(),
          'resumenFactura': {
              'codigoTipoMoneda': {'codigoMoneda': 'CRC'},
              'totalOtrosCargos': '387.09',
          },
          'detalleServicio': [
              {
                  'codigo': '8421000000000',
                  'detalle': 'INTERNET RESIDENCIAL 200 MBPS',
                  'cantidad': 1.0,
                  'precioUnitario': '22119.47',
                  'subTotal': '22119.47',
                  'montoTotal': '22119.47',
                  'descuento': '0.00',
                  'numeroLinea': 1,
                  'unidadMedida': 'Os',
                  'impuestoNeto': 2875.53,
                  'montoTotalLinea': 24995.0,
                  'impuesto': [
                      {
                          'codigo': '01',
                          'codigoTarifa': '08',
                          'tarifa': '13',
                          'monto': '2875.53',
                          'exoneracion': {
                              'numeroDocumento': 'AL-00080875-23',
                              'fechaEmision': '2023-10-11T00:00:00',
                              'nombreInstitucion': '04',
                              'porcentajeExoneracion': 13,
                              'tipoDocumento': '04',
                          },
                      },
                  ],
              },
          ],
      },
  )

  data = response.json()
  ```
</RequestExample>

## Ejemplo: Exoneración gobierno (con artículo e inciso)

Para instituciones del Estado, se agregan los campos `nombreInstitucionOtros`, `articulo` e `inciso`:

```json theme={null}
"exoneracion": {
  "numeroDocumento": "7293",
  "fechaEmision": "1992-04-03T00:00:00",
  "nombreInstitucion": "01",
  "nombreInstitucionOtros": "CAJA COSTARRICENSE DEL SEGURO SOCIAL",
  "porcentajeExoneracion": 13,
  "tipoDocumento": "03",
  "articulo": "2",
  "inciso": 1
}
```

<ResponseExample>
  ```json 200 — Documento enviado theme={null}
  {
    "status": "success",
    "message": "Documento enviado correctamente",
    "clave": "50628032600310295515400100001010000000018146404019"
  }
  ```

  ```json 401 — No autorizado theme={null}
  {
    "error": "unauthorized",
    "message": "Token inválido o expirado"
  }
  ```
</ResponseExample>
