EU court clears Catalan amnesty

The European ruling clears the path, but the amnesty remains frozen in legal limbo.
Cumadóireacht íomhá · tobriefThe Court of Justice of the European Union has removed the largest European legal obstacle facing Spain's Catalan amnesty. In a ruling on 16 July, the court said EU law does not prevent Madrid from pardoning offences linked to the Catalan independence push (Euronews, Brussels Signal).
That matters for Pedro Sánchez, whose government depends on Catalan pro-independence votes. But the ruling is not the end of the story. Luxembourg has not granted amnesty to anyone. It has said only that EU law does not, in itself, block Spain from doing so. The decision now moves back to Spanish judges, and several of them have already made clear they will not treat the judgment as automatic absolution.
How the case reached Luxembourg
The route to the EU court ran through Article 267 of the Treaty on the Functioning of the European Union, the mechanism that lets national judges ask Luxembourg how EU law should be read (Article 267 TFEU). The CJEU answers the European law question. The national court then applies that answer to the case before it.
Two Spanish courts used that route. Spain's Tribunal de Cuentas, the national auditing body, asked whether writing off financial liability for public money spent on the 2017 Catalan independence referendum breached EU rules protecting public funds. Separately, the Audiencia Nacional, a high criminal court, asked whether amnesty for defendants in a terrorism case linked to Catalan independence weakened the EU's anti-terrorism directive (RTVE).
Both objections rejected, one limit preserved
The court rejected both objections. On the financial side, it found that spending Spanish public money on an illegal referendum did not harm the EU budget (Brussels Signal). On terrorism, it accepted that the Spanish amnesty was drawn tightly enough for the EU directive to remain intact: the law applied only to the Catalan independence context and excluded acts that caused intentional serious human-rights harm.
There was one boundary Luxembourg would not allow Madrid to cross. The court objected to a provision that could have required Spanish judges to close cases within two months, before the CJEU had finished answering their questions (Internazionale/Reuters). Spain can legislate for amnesties. It cannot shut down the EU judicial channel while judges are using it.
Puigdemont stays in legal limbo
For former Catalan officials facing accounting claims before the Tribunal de Cuentas, the path towards amnesty is now much clearer (Eurasia Review). For Carles Puigdemont, it is still narrow.
Within hours of the ruling, Supreme Court judge Pablo Llarena kept Puigdemont's national arrest warrant in place (Antena 3). His reasoning does not depend on EU law. Llarena argues that Puigdemont's alleged misuse of public funds involved personal enrichment, which Spain's amnesty statute itself excludes. Luxembourg was not asked to decide that point. Spain's Constitutional Court, which has delayed its own ruling on the amnesty until autumn, is now the forum that matters (Eurasia Review).
For Pedro Sánchez, the judgment gives him a usable political answer. The opposition's strongest legal attack, that the amnesty breached EU law, has now been tested and rejected. Sánchez can tell Junts and ERC, the two main Catalan pro-independence parties whose votes keep his government alive, that his promise has cleared the European hurdle (Ouest-France). Pro-independence leaders answered by demanding immediate and full application. German and French coverage treated the judgment more cautiously: a legal checkpoint, not an endorsement of separatism (taz).
Luxembourg could decide whether EU law stood in the way of Spain's amnesty. It could not decide whether Spain's own courts will embrace it. The European objection has been stripped away. The delay, the discretion and the consequences now sit with Madrid's judges.
Details about this article
- Model:
- claude-opus-4-6
- Generated:
- 7/17/2026, 10:50:33 AM
- Pipeline run:
- eu_pipeline_20260717_090439
- Watermark:
- SynthID (Google's invisible watermark)
- Human review:
- None before publication