# line_discount_not_available_for_channel (/docs/errores/line_discount_not_available_for_channel)

Mandaste `items[].discount_percent` en una empresa con `emission_channel=sfg`.

|                    |                                                                        |
| ------------------ | ---------------------------------------------------------------------- |
| **Código**         | `line_discount_not_available_for_channel`                              |
| **Tipo**           | `unprocessable_error` — Bien formado, pero viola una regla del dominio |
| **HTTP**           | `422`                                                                  |
| **¿Reintentable?** | No                                                                     |

## Qué hacer [#qué-hacer]

El formulario de emisión del portal del SII no tiene ningún campo de descuento por línea que hayamos capturado nunca — el formulario capturado tiene sus entradas de descuento comentadas. Aceptarlo te cotizaría un total con descuento y emitiría el documento sin él, así que se rechaza en vez de descartarse en silencio. Métele el descuento al `items[].unit_price`, o emite por `emission_channel=mercado`, cuyo motor escribe el `&lt;DescuentoPct&gt;` del SII. `global_discounts` se rechaza en este canal por la misma razón. Un `0` sí se acepta: es exactamente lo que el portal emitiría.

> **Advertencia**
>
> Reintentar el mismo request va a fallar igual. Cambia el request, no la frecuencia.

## El sobre [#el-sobre]

```json
{
  "error": {
    "type": "unprocessable_error",
    "code": "line_discount_not_available_for_channel",
    "message": "…",
    "hint": "The SII portal’s emission form has no per-line discount field we have ever captured — the captured form comments its discount inputs out. Accepting the field would quote you a discounted total and file the undiscounted one, so it is refused rather than silently dropped. Fold the discount into `items[].unit_price`, or emit through `emission_channel=mercado`, whose engine writes the SII’s `<DescuentoPct>`. `global_discounts` is refused on this channel for the same reason.",
    "retriable": false,
    "doc_url": "https://docs.facturia.cl/errors/line_discount_not_available_for_channel",
    "request_id": "req_01K2R7Q9M4T2VB"
  }
}
```

Programa contra `code`, nunca contra `message` — la prosa se puede reescribir, el código no (§5.8).

`hint` y `retriable` llegan en la respuesta, con estos mismos valores: son función del `code` y salen del mismo diccionario que sirve `GET /v1/error_codes`, así que el sobre y el diccionario no pueden discrepar. `hint` va en inglés a propósito — el español de este código es esta ficha. Más en [El sobre de error](/docs/errores).

## También [#también]

- [Todos los códigos](/docs/errores/codigos): La tabla completa, agrupada por dónde te la vas a encontrar.

- [El sobre de error](/docs/errores): Los nueve tipos, el request_id y cómo manejarlos en la práctica.

La copia legible por máquina de esta ficha vive en `GET /v1/error_codes`, sin autenticación.
