Calendário de feriados
Os prazos da propriedade industrial chilena são contados em dias úteis, então o corpus mantém o calendário de feriados legais para os seus próprios cálculos (janelas de oposição, prazos de apelação). Este guia cobre o endpoint que o expõe, para que você calcule esses mesmos prazos por conta própria — e audite os nossos.
O esquema completo e sempre atualizado por campo vive na referência OpenAPI interativa em
/docs(Scalar). Este guia explica o contrato e aponta para essa referência — não reescreve o esquema. Quando um campo não está documentado aqui,/docsé autoritativo.
Ao longo do guia a URL base é escrita como $TARNO_BASE_URL e a chave como $TARNO_API_KEY, e cada
chamada leva o cabeçalho X-API-Key.
GET /v1/feriados · scope insights:read · equivalente MCP: get_feriados
curl -sS "$TARNO_BASE_URL/v1/feriados?anio=2026" -H "X-API-Key: $TARNO_API_KEY"
[
{ "fecha": "2026-01-01", "nombre": "Año Nuevo", "tipo": "regular", "origen": "seed:reglas-permanentes" },
{ "fecha": "2026-04-03", "nombre": "Viernes Santo", "tipo": "regular", "origen": "seed:reglas-permanentes" }
]
| Parâmetro | O que faz |
|---|---|
anio |
Atalho para um ano inteiro. |
desde / hasta |
Intervalo explícito e inclusivo (ISO YYYY-MM-DD). Quando informados, prevalecem sobre anio. |
tipo |
regular ou excepcional (veja abaixo). |
envelope |
true adiciona { data, coverage, dataAsOf }. |
Regulares frente a excepcionais
Cada linha declara se um algoritmo consegue reproduzi-la:
regular— derivada das regras permanentes: datas fixas, o computus da Páscoa, os deslocamentos para segunda/sexta das leis 19.668 e 20.299 e os feriados adicionais das Fiestas Patrias e do Ano-Novo das leis 20.215 e 20.983 (se 18 e 19 caem terça-quarta, a segunda dia 17 é feriado; quarta-quinta, a sexta dia 20; sábado-domingo, a sexta dia 17; e se 1º de janeiro cai num domingo, a segunda dia 2).excepcional— criada por uma lei ad-hoc para um único dia de um único ano, ou por um decreto de eleição. Nenhuma regra a produz: só pode ser lida de uma lista.
origen completa o quadro dizendo de onde saiu aquela linha (Ley 20.215,
Ley 21.462, decreto:dia-de-eleccion, seed:reglas-permanentes). Um origen que começa por
loader: marca uma linha escrita pelo refresco automático, e não por uma migração revista.
A distinção não é acadêmica. O feriado de sexta-feira 2024-09-20 faltava no calendário, e a sua ausência rompia o teto legal de 15 dias úteis do prazo de apelação em 65 casos medidos. Um feriado ausente não aparece até deslocar um prazo.
# quais feriados nenhum cálculo automático consegue reproduzir?
curl -sS "$TARNO_BASE_URL/v1/feriados?tipo=excepcional" -H "X-API-Key: $TARNO_API_KEY"
A cobertura é finita — e é um dado, não uma dedução
O calendário cobre um intervalo de anos declarado explicitamente. Fora dele não há dado, e isso não significa que não haja feriados: significa que não sabemos. A diferença não é académica — são coisas opostas:
- não há feriados nesse trecho → a sua contagem de dias úteis está correta;
- esse trecho não está carregado → a contagem degrada para só-fins-de-semana e devolve um prazo mais longo do que o real, sem que nada falhe. Esse é o erro perigoso: diria a um advogado que tem mais tempo do que tem.
curl -sS "$TARNO_BASE_URL/v1/feriados/cobertura" -H "X-API-Key: $TARNO_API_KEY"
{ "from": "2013-01-01", "through": "2030-12-31" }
GET /v1/feriados/cobertura · scope insights:read · equivalente MCP: get_feriados_cobertura
É barato e cacheável (Cache-Control: public, max-age=3600), por isso, se congelar o calendário no
seu repositório, pode escrever este intervalo junto aos dados e o seu artefacto passa a dizer de
que anos responde.
Não é o min/max das linhas, e é aí que está toda a graça. O min/max descreve o que existe,
não o que o calendário afirma: se um ano entrasse pela metade — só o Natal, por exemplo — o min/max
diria «cubro até esse 25 de dezembro» e congelaria um ano a 5 % julgando-o completo. O intervalo só
avança quando um ano está inteiro, e por isso termina a 31 de dezembro do último ano
declarado e não no dia do último feriado.
Pedir fora do intervalo é um erro, nunca uma lista vazia
curl -sS "$TARNO_BASE_URL/v1/feriados?desde=2031-01-01&hasta=2031-12-31" -H "X-API-Key: $TARNO_API_KEY"
{
"error": {
"code": "fuera_de_cobertura",
"message": "El calendario cubre 2013-01-01 → 2030-12-31; el rango pedido lo excede.",
"requestId": "…",
"coverage": { "from": "2013-01-01", "through": "2030-12-31" }
}
}
HTTP 422. Nunca um 200 com lista vazia ou parcial. O intervalo viaja dentro do erro, por
isso não precisa de uma segunda chamada para saber contra o que bateu. Em MCP o mesmo caso devolve
um resultado de erro com o mesmo code e a mesma coverage.
Dois detalhes de contorno:
- Um extremo aberto não é erro.
?desde=2030-12-01é limitado pelo que existir; só se verificam os limites que indica explicitamente. - Dentro do intervalo, vazio significa vazio.
?desde=2026-02-01&hasta=2026-02-28devolve[]com um 200 porque fevereiro de 2026 não tem feriados, e isso é um dado fiável.
Se preferir uma única chamada, ?envelope=true traz a mesma cobertura declarada junto aos dados:
{ "data": [ … ], "coverage": { "desde": "2013-01-01", "hasta": "2030-12-31" }, "dataAsOf": "…" }
Com que frequência é atualizado
Um trabalho semanal atualiza a janela de hoje até dois anos à frente: dá entrada aos
feriados novos (uma lei ad-hoc costuma ser publicada com poucas semanas de antecedência) e
retira os que deixam de o ser — o caso típico é uma eleição que muda da data planeada para a
data em que se realizou. Fora dessa janela o calendário só muda por uma migração revista.
dataAsOf no envelope diz quando o corpus foi tocado pela última vez.
Uma nuance a ter em conta se calcular prazos muito à frente: os feriados regulares derivam das regras permanentes e por isso cobrem a janela inteira, mas os excepcionais só se detetam até onde chegam as fontes públicas que os publicam — hoje pouco mais de um ano. Para qualquer prazo em curso é de sobra: o mais longo do sistema são 30 dias úteis.