line_discount_not_available_for_channel
`items[].discount_percent` was sent on an `emission_channel=sfg` empresa.
items[].discount_percent was sent on an emission_channel=sfg empresa.
| Code | line_discount_not_available_for_channel |
| Type | unprocessable_error — Well formed, but breaks a domain rule |
| HTTP | 422 |
| Retriable? | No |
What to do
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.
Retrying the same request will fail the same way. Change the request, not the frequency.
The envelope
{
"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"
}
}Program against code, never against message — the prose can be rewritten, the code cannot (§5.8).
hint and retriable arrive in the response with these exact values: they are a function of code and come from the same dictionary GET /v1/error_codes serves, so the envelope and the dictionary cannot disagree. Both are English on the wire by design — one registry, one language. More in The error envelope.
See also
Every code
The error envelope
The machine-readable copy of this page lives at GET /v1/error_codes, unauthenticated.